Skip to content

Commit 83b064c

Browse files
committed
Add HDSSettings singleton and unit-aware formatting (Plan 11 Phase 1)
- HDSSettings: hook to Application/Connection, typed get/set, browser defaults fallback, 1 event per setting storage model - formatEventDate: locale-aware date formatting (DD.MM.YYYY etc.) - eventToShortText: unit conversion using model conversions (mass, length, temperature) - HDSModel-Conversions: reads conversion factors from data model
1 parent c253d9e commit 83b064c

25 files changed

Lines changed: 772 additions & 24 deletions
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { HDSModel } from './HDSModel';
2+
import type { UnitSystem } from '../settings/HDSSettings';
3+
export interface ConversionResult {
4+
value: number;
5+
targetEventType: string;
6+
}
7+
/**
8+
* Conversions — Extension of HDSModel
9+
*
10+
* Reads conversion definitions from the model (pack.json → conversions).
11+
* Each category (mass, length, temperature) defines:
12+
* - metric/imperial unit names
13+
* - factors: { from: { to: number | [factor, offset] } }
14+
*/
15+
export declare class HDSModelConversions {
16+
#private;
17+
constructor(model: HDSModel);
18+
/**
19+
* Convert a numeric value from one event type to the preferred unit system.
20+
* Returns null if no conversion is needed or available.
21+
*
22+
* @param eventType - e.g. "mass/kg"
23+
* @param value - the numeric value to convert
24+
* @param targetSystem - "metric" or "imperial"
25+
*/
26+
convert(eventType: string, value: number, targetSystem: UnitSystem): ConversionResult | null;
27+
}
28+
//# sourceMappingURL=HDSModel-Conversions.d.ts.map

js/HDSModel/HDSModel-Conversions.d.ts.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/HDSModel/HDSModel-Conversions.js

Lines changed: 75 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/HDSModel/HDSModel-Conversions.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/HDSModel/HDSModel.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { HDSModelAuthorizations } from './HDSModel-Authorizations';
33
import { HDSModelItemsDefs } from './HDSModel-ItemsDefs';
44
import { HDSModelEventTypes } from './HDSModel-EventTypes';
55
import { HDSModelDatasources } from './HDSModel-Datasources';
6+
import { HDSModelConversions } from './HDSModel-Conversions';
67
export declare class HDSModel {
78
#private;
89
/**
@@ -34,5 +35,6 @@ export declare class HDSModel {
3435
get authorizations(): HDSModelAuthorizations;
3536
get eventTypes(): HDSModelEventTypes;
3637
get datasources(): HDSModelDatasources;
38+
get conversions(): HDSModelConversions;
3739
}
3840
//# sourceMappingURL=HDSModel.d.ts.map

js/HDSModel/HDSModel.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/HDSModel/HDSModel.js

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/HDSModel/HDSModel.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/HDSModel/eventToShortText.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* Format a Unix timestamp (seconds) as a date string.
3-
* Centralized here so we can later hook into user locale/format preferences.
3+
* Uses HDSSettings dateFormat + timezone when available, otherwise ISO date.
44
*/
55
export declare function formatEventDate(timeSec: number): string;
66
/**

js/HDSModel/eventToShortText.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)