@tstdl/base 0.81.0 → 0.81.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.eslintrc.js CHANGED
@@ -52,6 +52,7 @@ module.exports = {
52
52
  '@typescript-eslint/prefer-readonly-parameter-types': ['off', { checkParameterProperties: false }],
53
53
  '@typescript-eslint/quotes': ['warn', 'single'],
54
54
  '@typescript-eslint/restrict-template-expressions': ['error', { allowNumber: true, allowBoolean: true, allowNullish: true }],
55
+ '@typescript-eslint/sort-type-constituents': 'off',
55
56
  '@typescript-eslint/sort-type-union-intersection-members': 'off',
56
57
  '@typescript-eslint/space-before-function-paren': ['warn', { anonymous: 'never', named: 'never', asyncArrow: 'always' }],
57
58
  '@typescript-eslint/typedef': 'off',
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NotSupportedError = void 0;
4
- const type_guards_1 = require("../utils/type-guards");
4
+ const enum_1 = require("../utils/enum");
5
5
  const custom_error_1 = require("./custom.error");
6
6
  class NotSupportedError extends custom_error_1.CustomError {
7
7
  constructor(message = 'Not supported.') {
8
8
  super({ message });
9
9
  }
10
10
  static fromEnum(enumeration, name, value) {
11
- const valueName = (0, type_guards_1.isNumber)(value) ? enumeration[value] ?? value : value;
11
+ const valueName = (0, enum_1.enumValueName)(enumeration, value);
12
12
  return new NotSupportedError(`${name} "${valueName}" is not supported.`);
13
13
  }
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"not-supported.error.js","sourceRoot":"","sources":["../../source/error/not-supported.error.ts"],"names":[],"mappings":";;;AACA,sDAA+C;AAC/C,iDAA6C;AAE7C,MAAa,iBAAkB,SAAQ,0BAAW;IAGhD,YAAY,UAAkB,gBAAgB;QAC5C,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,WAA8B,EAAE,IAAY,EAAE,KAAuB;QACnF,MAAM,SAAS,GAAG,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAExE,OAAO,IAAI,iBAAiB,CAAC,GAAG,IAAI,KAAK,SAAS,qBAAqB,CAAC,CAAC;IAC3E,CAAC;;AAXH,8CAYC;AAXiB,2BAAS,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"not-supported.error.js","sourceRoot":"","sources":["../../source/error/not-supported.error.ts"],"names":[],"mappings":";;;AACA,wCAA6C;AAC7C,iDAA6C;AAE7C,MAAa,iBAAkB,SAAQ,0BAAW;IAGhD,YAAY,UAAkB,gBAAgB;QAC5C,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,WAA8B,EAAE,IAAY,EAAE,KAAuB;QACnF,MAAM,SAAS,GAAG,IAAA,oBAAa,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,IAAI,iBAAiB,CAAC,GAAG,IAAI,KAAK,SAAS,qBAAqB,CAAC,CAAC;IAC3E,CAAC;;AAVH,8CAWC;AAViB,2BAAS,GAAG,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tstdl/base",
3
- "version": "0.81.0",
3
+ "version": "0.81.1",
4
4
  "author": "Patrick Hein",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -2,7 +2,7 @@ import type { JsonPath } from "../../json-path";
2
2
  import type { CoercerContext, CoerceResult } from '../types';
3
3
  import { SchemaValueCoercer } from '../types';
4
4
  export declare class BooleanCoercer extends SchemaValueCoercer {
5
- readonly sourceType: (NumberConstructor | StringConstructor | BigIntConstructor)[];
5
+ readonly sourceType: (StringConstructor | NumberConstructor | BigIntConstructor)[];
6
6
  readonly targetType: BooleanConstructor;
7
7
  coerce(value: number | string | bigint, path: JsonPath, context: CoercerContext): CoerceResult;
8
8
  }
@@ -2,7 +2,7 @@ import type { JsonPath } from "../../json-path";
2
2
  import type { CoercerContext, CoerceResult } from '../types';
3
3
  import { SchemaValueCoercer } from '../types';
4
4
  export declare class DateCoercer extends SchemaValueCoercer {
5
- readonly sourceType: (NumberConstructor | StringConstructor | BigIntConstructor)[];
5
+ readonly sourceType: (StringConstructor | NumberConstructor | BigIntConstructor)[];
6
6
  readonly targetType: DateConstructor;
7
7
  coerce(value: number | string | bigint, path: JsonPath, context: CoercerContext): CoerceResult;
8
8
  }
@@ -2,7 +2,7 @@ import type { JsonPath } from "../../json-path";
2
2
  import type { CoercerContext, CoerceResult } from '../types';
3
3
  import { SchemaValueCoercer } from '../types';
4
4
  export declare class StringCoercer extends SchemaValueCoercer {
5
- readonly sourceType: (DateConstructor | NumberConstructor | BooleanConstructor | BigIntConstructor)[];
5
+ readonly sourceType: (DateConstructor | BooleanConstructor | NumberConstructor | BigIntConstructor)[];
6
6
  readonly targetType: StringConstructor;
7
7
  coerce(value: number | boolean | bigint | Date, path: JsonPath, context: CoercerContext): CoerceResult;
8
8
  }
@@ -4,7 +4,7 @@ import type { ConstraintContext, ConstraintResult } from '../types';
4
4
  import { SchemaValueConstraint } from '../types';
5
5
  export declare class MaximumLengthConstraint extends SchemaValueConstraint {
6
6
  private readonly maximumLength;
7
- readonly suitableTypes: (ArrayConstructor | Uint8ArrayConstructor | StringConstructor | Int8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor | ArrayBufferConstructor)[];
7
+ readonly suitableTypes: (Uint8ArrayConstructor | StringConstructor | Int8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor | ArrayBufferConstructor | ArrayConstructor)[];
8
8
  readonly expects: string;
9
9
  constructor(maximumLength: number);
10
10
  validate(value: string, path: JsonPath, context: ConstraintContext): ConstraintResult;
@@ -4,7 +4,7 @@ import type { ConstraintContext, ConstraintResult } from '../types';
4
4
  import { SchemaValueConstraint } from '../types';
5
5
  export declare class MinimumLengthConstraint extends SchemaValueConstraint {
6
6
  private readonly minimumLength;
7
- readonly suitableTypes: (ArrayConstructor | Uint8ArrayConstructor | StringConstructor | Int8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor | ArrayBufferConstructor)[];
7
+ readonly suitableTypes: (Uint8ArrayConstructor | StringConstructor | Int8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor | ArrayBufferConstructor | ArrayConstructor)[];
8
8
  readonly expects: string;
9
9
  constructor(minimumLength: number);
10
10
  validate(value: string | ArrayLike<any> | ArrayBuffer, path: JsonPath, context: ConstraintContext): ConstraintResult;
@@ -1,3 +1,4 @@
1
+ import type { Enumeration, EnumerationValue } from "../types";
1
2
  import type { PropertyName } from "../utils/object/property-name";
2
3
  import type { Observable } from 'rxjs';
3
4
  export declare type Language = {
@@ -9,18 +10,25 @@ export declare type LocalizeItem<Parameters = void> = string | LocalizeFunction<
9
10
  declare type LocalizationTemplate = {
10
11
  [key: string]: LocalizeItem<any> | LocalizationTemplate;
11
12
  };
12
- export declare type Localization<T extends LocalizationTemplate = LocalizationTemplate> = {
13
+ export declare type EnumerationLocalization<T extends Enumeration = Enumeration> = {
14
+ [P in EnumerationValue<T>]: LocalizeItem<any>;
15
+ };
16
+ export declare type EnumerationLocalizationEntry<T extends Enumeration = Enumeration> = [T, EnumerationLocalization<T>];
17
+ export declare type Localization<T extends LocalizationTemplate = LocalizationTemplate, Enums extends Enumeration[] = []> = {
13
18
  language: Language;
14
19
  keys: T;
20
+ enums: {
21
+ [P in keyof Enums]: EnumerationLocalizationEntry<Enums[P]>;
22
+ };
15
23
  };
16
24
  declare const parametersSymbol: unique symbol;
17
25
  export declare type LocalizationKey<Parameters = void> = PropertyName & {
18
26
  [parametersSymbol]: Parameters;
19
27
  };
20
- export declare type LocalizationData<Parameters = any> = LocalizationKey | {
28
+ export declare type LocalizationData<Parameters = any> = LocalizationKey | LocalizationDataObject<Parameters> | {
21
29
  key: LocalizationKey;
22
30
  parameters?: void;
23
- } | LocalizationDataObject<Parameters>;
31
+ };
24
32
  export declare type LocalizationDataObject<Parameters> = {
25
33
  key: LocalizationKey<Parameters>;
26
34
  parameters: Parameters;
@@ -37,11 +45,12 @@ export declare function localizationData<T>(data: LocalizationData<T>): Localiza
37
45
  * @param localization
38
46
  * @returns
39
47
  */
40
- export declare function getLocalizationKeys<T extends Localization>(_localization?: T): LocalizationKeys<T['keys']>;
48
+ export declare function getLocalizationKeys<T extends Localization<any, any>>(_localization?: T): LocalizationKeys<T['keys']>;
41
49
  export declare class LocalizationService {
42
50
  private readonly localizations;
43
51
  private readonly activeLanguageSubject;
44
52
  private readonly availableLanguagesSubject;
53
+ private get activeLocalization();
45
54
  get availableLanguages(): readonly Language[];
46
55
  get activeLanguage(): Language | undefined;
47
56
  readonly activeLanguage$: Observable<Language | undefined>;
@@ -55,6 +64,10 @@ export declare class LocalizationService {
55
64
  tryGetItem<Parameters>(key: LocalizationKey<Parameters> | LocalizationData<Parameters>): LocalizeItem | undefined;
56
65
  hasKey<Parameters>(key: LocalizationKey<Parameters> | LocalizationData<Parameters>): boolean;
57
66
  localize<Parameters>(data: LocalizationKey<Parameters> | LocalizationData<Parameters>): string;
67
+ localizeEnum<T extends Enumeration>(enumeration: T, value: EnumerationValue<T>, parameters?: unknown): string;
58
68
  localize$<Parameters>(data: LocalizationData<Parameters>): Observable<string>;
69
+ localizeEnum$<T extends Enumeration>(enumeration: T, value: EnumerationValue<T>, parameters?: unknown): Observable<string>;
70
+ private localizeItem;
59
71
  }
72
+ export declare function enumerationLocalization<T extends Enumeration>(enumeration: T, localization: EnumerationLocalization<T>): EnumerationLocalizationEntry<T>;
60
73
  export {};
@@ -9,8 +9,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.LocalizationService = exports.getLocalizationKeys = exports.localizationData = exports.getLocalizationKey = exports.isLocalizationKey = void 0;
12
+ exports.enumerationLocalization = exports.LocalizationService = exports.getLocalizationKeys = exports.localizationData = exports.getLocalizationKey = exports.isLocalizationKey = void 0;
13
13
  const container_1 = require("../container");
14
+ const enum_1 = require("../utils/enum");
14
15
  const object_1 = require("../utils/object/object");
15
16
  const property_name_1 = require("../utils/object/property-name");
16
17
  const type_guards_1 = require("../utils/type-guards");
@@ -46,6 +47,12 @@ let LocalizationService = class LocalizationService {
46
47
  this.activeLanguage$ = this.activeLanguageSubject.asObservable();
47
48
  this.availableLanguages$ = this.availableLanguagesSubject.asObservable();
48
49
  }
50
+ get activeLocalization() {
51
+ if ((0, type_guards_1.isUndefined)(this.activeLanguage)) {
52
+ throw new Error('Language not set.');
53
+ }
54
+ return this.localizations.get(this.activeLanguage.code);
55
+ }
49
56
  get availableLanguages() {
50
57
  return this.availableLanguagesSubject.value;
51
58
  }
@@ -103,6 +110,20 @@ let LocalizationService = class LocalizationService {
103
110
  const key = dataIsLocalizationKey ? data[property_name_1.propertyName] : data.key[property_name_1.propertyName];
104
111
  const parameters = dataIsLocalizationKey ? {} : data.parameters;
105
112
  const templateOrFunction = this.localizations.get(this.activeLanguage.code)?.keys.get(key);
113
+ return this.localizeItem(key, templateOrFunction, parameters);
114
+ }
115
+ localizeEnum(enumeration, value, parameters) {
116
+ const key = (0, type_guards_1.isArray)(enumeration) ? value : (0, enum_1.enumValueName)(enumeration, value);
117
+ const item = this.activeLocalization?.enums.get(enumeration)?.[value];
118
+ return this.localizeItem(key, item, parameters);
119
+ }
120
+ localize$(data) {
121
+ return this.activeLanguage$.pipe((0, rxjs_1.map)(() => this.localize(data)));
122
+ }
123
+ localizeEnum$(enumeration, value, parameters) {
124
+ return this.activeLanguage$.pipe((0, rxjs_1.map)(() => this.localizeEnum(enumeration, value, parameters)));
125
+ }
126
+ localizeItem(key, templateOrFunction, parameters) {
106
127
  if ((0, type_guards_1.isUndefined)(templateOrFunction)) {
107
128
  return `__${key}__`;
108
129
  }
@@ -123,19 +144,21 @@ let LocalizationService = class LocalizationService {
123
144
  result += template.slice(currentIndex);
124
145
  return result;
125
146
  }
126
- localize$(data) {
127
- return this.activeLanguage$.pipe((0, rxjs_1.map)(() => this.localize(data)));
128
- }
129
147
  };
130
148
  LocalizationService = __decorate([
131
149
  (0, container_1.singleton)(),
132
150
  __metadata("design:paramtypes", [])
133
151
  ], LocalizationService);
134
152
  exports.LocalizationService = LocalizationService;
135
- function buildMappedLocalization({ language, keys }) {
153
+ function enumerationLocalization(enumeration, localization) {
154
+ return [enumeration, localization];
155
+ }
156
+ exports.enumerationLocalization = enumerationLocalization;
157
+ function buildMappedLocalization({ language, keys, enums }) {
136
158
  const mappedLocalization = {
137
159
  language,
138
- keys: new Map((0, object_1.deepEntries)(keys))
160
+ keys: new Map((0, object_1.deepEntries)(keys)),
161
+ enums: new Map(enums)
139
162
  };
140
163
  return mappedLocalization;
141
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"localization.service.js","sourceRoot":"","sources":["../../source/text/localization.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAwC;AAExC,mDAAoD;AAEpD,iEAAkG;AAClG,sDAA2H;AAE3H,+BAA4C;AAyC5C,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,OAAO,IAAA,8BAAc,EAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAFD,8CAEC;AAED,SAAgB,kBAAkB,CAAoB,GAAW;IAC/D,OAAO,EAAE,CAAC,4BAAY,CAAC,EAAE,GAAG,EAAiC,CAAC;AAChE,CAAC;AAFD,gDAEC;AAED,4CAA4C;AAC5C,SAAgB,gBAAgB,CAAI,IAAyB;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAFD,4CAEC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAyB,aAAiB;IAC3E,OAAO,IAAA,oCAAoB,GAA4C,CAAC;AAC1E,CAAC;AAFD,kDAEC;AAOD,MAAM,iBAAiB,GAAG,uCAAuC,CAAC;AAG3D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAgB9B;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,qBAAqB,GAAG,IAAI,sBAAe,CAAuB,SAAS,CAAC,CAAC;QAClF,IAAI,CAAC,yBAAyB,GAAG,IAAI,sBAAe,CAAa,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;QACjE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,CAAC;IAC3E,CAAC;IAlBD,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;IAC9C,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;IAC1C,CAAC;IAcD,oBAAoB,CAAC,GAAG,aAA6B;QACnD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;YACxC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACtD,MAAM,IAAI,KAAK,CAAC,gBAAgB,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,IAAI,uBAAuB,CAAC,CAAC;aACnH;YAED,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAEvE,IAAI,IAAA,yBAAW,EAAC,IAAI,CAAC,cAAc,CAAC,EAAE;gBACpC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;aACpC;YAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClF,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACzD;IACH,CAAC;IAED,WAAW,CAAC,YAAoB;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,YAAoB;QAC9B,OAAO,IAAA,+BAAiB,EAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC;IACpG,CAAC;IAED,WAAW,CAAC,cAAiC;QAC3C,MAAM,QAAQ,GAAG,IAAA,sBAAQ,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;QAE9G,IAAI,IAAA,yBAAW,EAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC7C;QAED,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe,CAAC,YAA0B;QACxC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAa,GAA+D;QACpF,IAAI,IAAA,yBAAW,EAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACpC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC,CAAC,CAAE,GAAuC,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;QACxH,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAa,GAA+D;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,IAAA,uBAAS,EAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,0CAA0C;IAC1C,QAAQ,CAAa,IAAgE;QACnF,IAAI,IAAA,yBAAW,EAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;QAED,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,4BAAY,CAAC,CAAC,CAAC,CAAE,IAAwC,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;QACrH,MAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,IAAwC,CAAC,UAAU,CAAC;QAErG,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE3F,IAAI,IAAA,yBAAW,EAAC,kBAAkB,CAAC,EAAE;YACnC,OAAO,KAAK,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,IAAA,wBAAU,EAAC,kBAAkB,CAAC,EAAE;YAClC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;SACvC;QAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QACpC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAA,uBAAS,EAAC,UAAU,CAAC,IAAI,IAAA,sBAAQ,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAmB,CAAC;QACjH,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAErD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE;YACjD,MAAM,aAAa,GAAG,MAAO,CAAC,WAAW,CAAE,CAAC;YAE5C,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,IAAI,kBAAkB,CAAC,aAAa,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC;YACtE,YAAY,GAAG,KAAM,GAAG,KAAM,CAAC,MAAM,CAAC;SACvC;QAED,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,CAAa,IAAkC;QACtD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;CACF,CAAA;AA1HY,mBAAmB;IAD/B,IAAA,qBAAS,GAAE;;GACC,mBAAmB,CA0H/B;AA1HY,kDAAmB;AA4HhC,SAAS,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAgB;IAC/D,MAAM,kBAAkB,GAAuB;QAC7C,QAAQ;QACR,IAAI,EAAE,IAAI,GAAG,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;KACjC,CAAC;IAEF,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"localization.service.js","sourceRoot":"","sources":["../../source/text/localization.service.ts"],"names":[],"mappings":"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"}
package/utils/enum.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { EnumerationEntries, EnumerationKey, EnumerationObject, EnumerationValue } from "../types";
2
+ export declare function enumValueName<T extends EnumerationObject>(enumeration: T, value: T[keyof T]): string;
2
3
  export declare function enumEntries<T extends EnumerationObject>(enumeration: T): EnumerationEntries<T>;
3
4
  export declare function enumKeys<T extends EnumerationObject>(enumeration: T): EnumerationKey<T>[];
4
5
  export declare function enumValues<T extends EnumerationObject>(enumeration: T): EnumerationValue<T>[];
package/utils/enum.js CHANGED
@@ -1,12 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.randomEnumValue = exports.enumValues = exports.enumKeys = exports.enumEntries = void 0;
3
+ exports.randomEnumValue = exports.enumValues = exports.enumKeys = exports.enumEntries = exports.enumValueName = void 0;
4
4
  const array_1 = require("./array/array");
5
5
  const function_1 = require("./function");
6
6
  const object_1 = require("./object/object");
7
+ const type_guards_1 = require("./type-guards");
7
8
  const memoizedEnumEntries = (0, function_1.memoizeSingle)(_enumEntries, { weak: true });
8
9
  const memoizedEnumKeys = (0, function_1.memoizeSingle)(_enumKeys, { weak: true });
9
10
  const memoizedEnumValues = (0, function_1.memoizeSingle)(_enumValues, { weak: true });
11
+ function enumValueName(enumeration, value) {
12
+ return (0, type_guards_1.isNumber)(value) ? enumeration[value]?.toString() ?? value.toString() : value;
13
+ }
14
+ exports.enumValueName = enumValueName;
10
15
  function enumEntries(enumeration) {
11
16
  return memoizedEnumEntries(enumeration);
12
17
  }
package/utils/enum.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../source/utils/enum.ts"],"names":[],"mappings":";;;AACA,yCAA2C;AAC3C,yCAA2C;AAC3C,4CAAgD;AAEhD,MAAM,mBAAmB,GAAG,IAAA,wBAAa,EAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACxE,MAAM,gBAAgB,GAAG,IAAA,wBAAa,EAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,MAAM,kBAAkB,GAAG,IAAA,wBAAa,EAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtE,SAAgB,WAAW,CAA8B,WAAc;IACrE,OAAO,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC;AAFD,kCAEC;AAED,SAAgB,QAAQ,CAA8B,WAAc;IAClE,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC;AAFD,4BAEC;AAED,SAAgB,UAAU,CAA8B,WAAc;IACpE,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC;AAFD,gCAEC;AAED,SAAgB,eAAe,CAA8B,WAAc;IACzE,OAAO,IAAA,kBAAU,EAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7C,CAAC;AAFD,0CAEC;AAED,SAAS,YAAY,CAA8B,WAAc;IAC/D,OAAO,IAAA,sBAAa,EAAoB,WAAW,CAAC;SACjD,MAAM,CAAC,CAAC,KAAK,EAAgC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAA0B,CAAC;AAC9G,CAAC;AAED,SAAS,SAAS,CAA8B,WAAc;IAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAA0B,CAAC;IAClE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAA8B,WAAc;IAC9D,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAA0B,CAAC;IAClE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAwB,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../source/utils/enum.ts"],"names":[],"mappings":";;;AACA,yCAA2C;AAC3C,yCAA2C;AAC3C,4CAAgD;AAChD,+CAAyC;AAEzC,MAAM,mBAAmB,GAAG,IAAA,wBAAa,EAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACxE,MAAM,gBAAgB,GAAG,IAAA,wBAAa,EAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,MAAM,kBAAkB,GAAG,IAAA,wBAAa,EAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtE,SAAgB,aAAa,CAA8B,WAAc,EAAE,KAAiB;IAC1F,OAAO,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtF,CAAC;AAFD,sCAEC;AAED,SAAgB,WAAW,CAA8B,WAAc;IACrE,OAAO,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC;AAFD,kCAEC;AAED,SAAgB,QAAQ,CAA8B,WAAc;IAClE,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC;AAFD,4BAEC;AAED,SAAgB,UAAU,CAA8B,WAAc;IACpE,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC;AAFD,gCAEC;AAED,SAAgB,eAAe,CAA8B,WAAc;IACzE,OAAO,IAAA,kBAAU,EAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7C,CAAC;AAFD,0CAEC;AAED,SAAS,YAAY,CAA8B,WAAc;IAC/D,OAAO,IAAA,sBAAa,EAAoB,WAAW,CAAC;SACjD,MAAM,CAAC,CAAC,KAAK,EAAgC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAA0B,CAAC;AAC9G,CAAC;AAED,SAAS,SAAS,CAA8B,WAAc;IAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAA0B,CAAC;IAClE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAA8B,WAAc;IAC9D,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAA0B,CAAC;IAClE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAwB,CAAC,CAAC;AACjE,CAAC"}