@odx/angular 4.0.2 → 5.0.0

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.
Files changed (126) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/breakpoints/lib/breakpoints.config.d.ts +1 -1
  3. package/components/calendar/lib/calendar.config.d.ts +2 -2
  4. package/components/datepicker/lib/datepicker.config.d.ts +2 -2
  5. package/components/error-page/README.md +3 -0
  6. package/components/error-page/index.d.ts +2 -0
  7. package/components/error-page/lib/error-page.component.d.ts +7 -0
  8. package/components/error-page/lib/error-page.config.d.ts +16 -0
  9. package/components/form-field/lib/form-field.config.d.ts +1 -1
  10. package/components/icon/lib/icon.config.d.ts +1 -1
  11. package/components/main-menu/lib/main-menu.config.d.ts +1 -1
  12. package/components/main-menu/lib/main-menu.i18n.d.ts +2 -2
  13. package/components/modal/lib/modal.config.d.ts +1 -1
  14. package/components/paginator/lib/paginator.config.d.ts +2 -2
  15. package/components/toast/lib/toast.config.d.ts +1 -1
  16. package/esm2022/components/error-page/index.mjs +3 -0
  17. package/esm2022/components/error-page/lib/error-page.component.mjs +28 -0
  18. package/esm2022/components/error-page/lib/error-page.config.mjs +10 -0
  19. package/esm2022/components/error-page/odx-angular-components-error-page.mjs +5 -0
  20. package/esm2022/components/main-menu/lib/main-menu.i18n.mjs +1 -1
  21. package/esm2022/index.mjs +1 -2
  22. package/esm2022/internal/index.mjs +4 -3
  23. package/esm2022/internal/lib/decorators/css-component.mjs +19 -0
  24. package/esm2022/internal/lib/decorators/css-modifier.mjs +49 -0
  25. package/esm2022/internal/lib/decorators/index.mjs +3 -0
  26. package/esm2022/internal/lib/helpers/camel-to-kebab-case.mjs +12 -0
  27. package/esm2022/internal/lib/helpers/decorator-property-name.mjs +4 -0
  28. package/esm2022/internal/lib/helpers/deepmerge.mjs +6 -0
  29. package/esm2022/internal/lib/helpers/get-css-variables.mjs +22 -0
  30. package/esm2022/internal/lib/helpers/get-enum-values.mjs +6 -0
  31. package/esm2022/internal/lib/helpers/index.mjs +6 -0
  32. package/esm2022/internal/lib/logger.mjs +42 -0
  33. package/esm2022/internal/translate/index.mjs +1 -3
  34. package/esm2022/internal/translate/lib/models/index.mjs +2 -2
  35. package/esm2022/internal/translate/lib/models/translation-object.mjs +2 -0
  36. package/esm2022/internal/translate/lib/translate.config.mjs +1 -8
  37. package/esm2022/internal/translate/lib/translate.service.mjs +19 -12
  38. package/esm2022/lib/services/window-ref.mjs +4 -3
  39. package/esm2022/localization/index.mjs +6 -0
  40. package/esm2022/localization/lib/features/index.mjs +3 -0
  41. package/esm2022/localization/lib/features/with-http-language-header.mjs +23 -0
  42. package/esm2022/localization/lib/features/with-http-language-query-param.mjs +23 -0
  43. package/esm2022/localization/lib/loaders/browser-language-loader.mjs +6 -0
  44. package/esm2022/localization/lib/loaders/index.mjs +2 -0
  45. package/esm2022/localization/lib/localization.config.mjs +21 -0
  46. package/esm2022/localization/lib/localization.service.mjs +45 -0
  47. package/esm2022/localization/lib/models/index.mjs +3 -0
  48. package/esm2022/localization/lib/models/language-loader-fn.mjs +2 -0
  49. package/esm2022/localization/lib/models/localization-feature.mjs +4 -0
  50. package/esm2022/localization/odx-angular-localization.mjs +5 -0
  51. package/esm2022/sdk/lib/application-environment.mjs +4 -2
  52. package/esm2022/utils/lib/helpers/cache-storage-client.mjs +53 -0
  53. package/esm2022/utils/lib/helpers/get-language-code.mjs +5 -0
  54. package/esm2022/utils/lib/helpers/index.mjs +4 -1
  55. package/esm2022/utils/lib/helpers/match-url.mjs +8 -0
  56. package/esm2022/utils/lib/helpers/provide-config.mjs +21 -9
  57. package/fesm2022/odx-angular-components-error-page.mjs +42 -0
  58. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -0
  59. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  60. package/fesm2022/odx-angular-internal-translate.mjs +27 -44
  61. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  62. package/fesm2022/odx-angular-internal.mjs +43 -1
  63. package/fesm2022/odx-angular-internal.mjs.map +1 -1
  64. package/fesm2022/odx-angular-localization.mjs +113 -0
  65. package/fesm2022/odx-angular-localization.mjs.map +1 -0
  66. package/fesm2022/odx-angular-sdk.mjs +3 -1
  67. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  68. package/fesm2022/odx-angular-utils.mjs +86 -9
  69. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  70. package/fesm2022/odx-angular.mjs +3 -4
  71. package/fesm2022/odx-angular.mjs.map +1 -1
  72. package/index.d.ts +0 -1
  73. package/internal/index.d.ts +3 -2
  74. package/internal/lib/logger.d.ts +15 -0
  75. package/internal/translate/index.d.ts +0 -2
  76. package/internal/translate/lib/models/index.d.ts +1 -1
  77. package/internal/translate/lib/models/translation-object.d.ts +1 -0
  78. package/internal/translate/lib/translate.config.d.ts +2 -5
  79. package/internal/translate/lib/translate.service.d.ts +5 -6
  80. package/localization/README.md +3 -0
  81. package/localization/index.d.ts +5 -0
  82. package/localization/lib/features/index.d.ts +2 -0
  83. package/localization/lib/features/with-http-language-header.d.ts +9 -0
  84. package/localization/lib/features/with-http-language-query-param.d.ts +9 -0
  85. package/localization/lib/loaders/browser-language-loader.d.ts +2 -0
  86. package/localization/lib/loaders/index.d.ts +1 -0
  87. package/localization/lib/localization.config.d.ts +9 -0
  88. package/localization/lib/localization.service.d.ts +15 -0
  89. package/localization/lib/models/index.d.ts +2 -0
  90. package/localization/lib/models/language-loader-fn.d.ts +2 -0
  91. package/localization/lib/models/localization-feature.d.ts +5 -0
  92. package/package.json +13 -1
  93. package/sdk/lib/application-environment.d.ts +2 -1
  94. package/theming/lib/theming.config.d.ts +1 -1
  95. package/utils/lib/helpers/cache-storage-client.d.ts +14 -0
  96. package/utils/lib/helpers/index.d.ts +3 -0
  97. package/utils/lib/helpers/match-url.d.ts +2 -0
  98. package/utils/lib/helpers/provide-config.d.ts +3 -2
  99. package/esm2022/internal/decorators/css-component.mjs +0 -19
  100. package/esm2022/internal/decorators/css-modifier.mjs +0 -49
  101. package/esm2022/internal/decorators/index.mjs +0 -3
  102. package/esm2022/internal/helpers/camel-to-kebab-case.mjs +0 -12
  103. package/esm2022/internal/helpers/decorator-property-name.mjs +0 -4
  104. package/esm2022/internal/helpers/deepmerge.mjs +0 -6
  105. package/esm2022/internal/helpers/get-css-variables.mjs +0 -22
  106. package/esm2022/internal/helpers/get-enum-values.mjs +0 -6
  107. package/esm2022/internal/helpers/index.mjs +0 -6
  108. package/esm2022/internal/translate/lib/helpers/get-language-code.mjs +0 -6
  109. package/esm2022/internal/translate/lib/helpers/index.mjs +0 -2
  110. package/esm2022/internal/translate/lib/models/translation.mjs +0 -2
  111. package/esm2022/internal/translate/lib/services/index.mjs +0 -2
  112. package/esm2022/internal/translate/lib/services/language.service.mjs +0 -21
  113. package/internal/translate/lib/helpers/index.d.ts +0 -1
  114. package/internal/translate/lib/models/translation.d.ts +0 -2
  115. package/internal/translate/lib/services/index.d.ts +0 -1
  116. package/internal/translate/lib/services/language.service.d.ts +0 -8
  117. /package/internal/{decorators → lib/decorators}/css-component.d.ts +0 -0
  118. /package/internal/{decorators → lib/decorators}/css-modifier.d.ts +0 -0
  119. /package/internal/{decorators → lib/decorators}/index.d.ts +0 -0
  120. /package/internal/{helpers → lib/helpers}/camel-to-kebab-case.d.ts +0 -0
  121. /package/internal/{helpers → lib/helpers}/decorator-property-name.d.ts +0 -0
  122. /package/internal/{helpers → lib/helpers}/deepmerge.d.ts +0 -0
  123. /package/internal/{helpers → lib/helpers}/get-css-variables.d.ts +0 -0
  124. /package/internal/{helpers → lib/helpers}/get-enum-values.d.ts +0 -0
  125. /package/internal/{helpers → lib/helpers}/index.d.ts +0 -0
  126. /package/{internal/translate → utils}/lib/helpers/get-language-code.d.ts +0 -0
@@ -0,0 +1,9 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ import { LanguageLoaderFn, LocalizationFeature } from './models';
3
+ export declare const DEFAULT_AVAILABLE_LANGUAGES: string[];
4
+ export interface LocalizationConfig {
5
+ activeLanguageLoader?: LanguageLoaderFn;
6
+ availableLanguages: string[];
7
+ }
8
+ export declare const LocalizationConfig: import("@angular/core").InjectionToken<Partial<LocalizationConfig>>, LocalizationDefaultConfig: LocalizationConfig, injectLocalizationConfig: () => LocalizationConfig, provideLocalizationConfig: <D extends import("@odx/angular/utils").ConfigDependencies<unknown> = import("@odx/angular/utils").ConfigDependencies<Partial<LocalizationConfig>>>(config: import("@odx/angular/utils").ConfigProvider<Partial<LocalizationConfig>, D>) => import("@angular/core").ValueProvider | import("@angular/core").FactoryProvider;
9
+ export declare function provideLocalization(config: Partial<LocalizationConfig>, ...features: LocalizationFeature[]): EnvironmentProviders;
@@ -0,0 +1,15 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class LocalizationService {
3
+ private readonly injector;
4
+ private readonly localizationConfig;
5
+ private readonly availableLanguageSet;
6
+ private readonly activeLanguage$$;
7
+ readonly activeLanguage$: import("rxjs").Observable<string>;
8
+ readonly availableLanguages: string[];
9
+ readonly defaultLanguage: string;
10
+ getActiveLanguage(): string;
11
+ setActiveLanguage(language: string): void;
12
+ loadActiveLanguage(): Promise<void>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocalizationService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<LocalizationService>;
15
+ }
@@ -0,0 +1,2 @@
1
+ export * from './language-loader-fn';
2
+ export * from './localization-feature';
@@ -0,0 +1,2 @@
1
+ import { ObservableInput } from 'rxjs';
2
+ export type LanguageLoaderFn = () => ObservableInput<string | undefined>;
@@ -0,0 +1,5 @@
1
+ import { EnvironmentProviders, Provider } from '@angular/core';
2
+ export type LocalizationFeature = EnvironmentProviders & {
3
+ ɵodxBrand: '@odx/angular/localization::LocalizationFeature';
4
+ };
5
+ export declare function makeLocalizationFeature(provider: Provider[] | EnvironmentProviders): LocalizationFeature;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/angular",
3
- "version": "4.0.2",
3
+ "version": "5.0.0",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -73,6 +73,12 @@
73
73
  "esm": "./esm2022/internal/odx-angular-internal.mjs",
74
74
  "default": "./fesm2022/odx-angular-internal.mjs"
75
75
  },
76
+ "./localization": {
77
+ "types": "./localization/index.d.ts",
78
+ "esm2022": "./esm2022/localization/odx-angular-localization.mjs",
79
+ "esm": "./esm2022/localization/odx-angular-localization.mjs",
80
+ "default": "./fesm2022/odx-angular-localization.mjs"
81
+ },
76
82
  "./rxjs": {
77
83
  "types": "./rxjs/index.d.ts",
78
84
  "esm2022": "./esm2022/rxjs/odx-angular-rxjs.mjs",
@@ -271,6 +277,12 @@
271
277
  "esm": "./esm2022/components/dropdown/odx-angular-components-dropdown.mjs",
272
278
  "default": "./fesm2022/odx-angular-components-dropdown.mjs"
273
279
  },
280
+ "./components/error-page": {
281
+ "types": "./components/error-page/index.d.ts",
282
+ "esm2022": "./esm2022/components/error-page/odx-angular-components-error-page.mjs",
283
+ "esm": "./esm2022/components/error-page/odx-angular-components-error-page.mjs",
284
+ "default": "./fesm2022/odx-angular-components-error-page.mjs"
285
+ },
274
286
  "./components/form-field": {
275
287
  "types": "./components/form-field/index.d.ts",
276
288
  "esm2022": "./esm2022/components/form-field/odx-angular-components-form-field.mjs",
@@ -1,6 +1,7 @@
1
1
  import { ApplicationRef, InjectionToken } from '@angular/core';
2
+ import { CacheStorageClient } from '@odx/angular/utils';
2
3
  export type ApplicationEnvironmentLoader<EnvironmentData, Params extends unknown[]> = (...args: Params) => Promise<EnvironmentData>;
3
- export declare function createHttpApplicationEnvironmentLoader<Data>(handler: (res: Response) => Promise<Data>): ApplicationEnvironmentLoader<Data, Parameters<typeof fetch>>;
4
+ export declare function createHttpApplicationEnvironmentLoader<Data>(handler: (dto: unknown) => Promise<Data>): ApplicationEnvironmentLoader<Data, Parameters<CacheStorageClient['request']>>;
4
5
  export declare function createApplicationEnvironment<Data, Params extends unknown[]>(loader: ApplicationEnvironmentLoader<Data, Params>): {
5
6
  APPLICATION_ENVIRONMENT: InjectionToken<Data>;
6
7
  injectApplicationEnvironment: () => Data;
@@ -6,5 +6,5 @@ export interface ThemingConfig {
6
6
  defaultTheme: Theme;
7
7
  storage?: Storage | null;
8
8
  }
9
- export declare const ThemingConfig: import("@angular/core").InjectionToken<Partial<ThemingConfig>>, injectThemingConfig: () => ThemingConfig, provideThemingConfig: <D extends ConfigDependencies<unknown> = ConfigDependencies<ThemingConfig>>(config: ConfigProvider<Partial<ThemingConfig>, D>) => import("@angular/core").FactoryProvider | import("@angular/core").ValueProvider;
9
+ export declare const ThemingConfig: import("@angular/core").InjectionToken<Partial<ThemingConfig>>, injectThemingConfig: () => ThemingConfig, provideThemingConfig: <D extends ConfigDependencies<unknown> = ConfigDependencies<Partial<ThemingConfig>>>(config: ConfigProvider<Partial<ThemingConfig>, D>) => import("@angular/core").FactoryProvider | import("@angular/core").ValueProvider;
10
10
  export declare function provideTheming<D extends ConfigDependencies = ConfigDependencies<ThemingConfig>>(config: ConfigProvider<Partial<ThemingConfig>, D>): EnvironmentProviders;
@@ -0,0 +1,14 @@
1
+ export declare const HTTP_ETAG_HEADER = "Etag";
2
+ export declare const HTTP_IF_NONE_MATCH_HEADER = "If-None-Match";
3
+ export declare const HTTP_CACHE_CONTROL_HEADER = "Cache-Control";
4
+ export declare class CacheStorageClient {
5
+ private readonly cacheKey;
6
+ private readonly cacheStorage;
7
+ constructor(cacheKey: string, cacheStorage?: CacheStorage);
8
+ delete(request: RequestInfo | URL): Promise<boolean>;
9
+ deleteAll(): Promise<void>;
10
+ request<T>(requestInfo: RequestInfo | URL, shouldDelete?: ({ status }: Response) => boolean): Promise<T | null>;
11
+ protected getCache(): Promise<Cache>;
12
+ protected prepareRequest(cache: Cache, requestInfo: RequestInfo | URL): Promise<Request>;
13
+ protected sendRequest(cache: Cache, request: Request): Promise<Response | null>;
14
+ }
@@ -2,15 +2,18 @@ export * from './angular';
2
2
  export * from './array';
3
3
  export * from './build-url';
4
4
  export * from './build-website-url';
5
+ export * from './cache-storage-client';
5
6
  export * from './coercion';
6
7
  export * from './debounce';
7
8
  export * from './defer-fn';
8
9
  export * from './dom';
9
10
  export * from './event-manager';
10
11
  export * from './get-axis';
12
+ export * from './get-language-code';
11
13
  export * from './get-opposite-side';
12
14
  export * from './get-side';
13
15
  export * from './get-unique-id';
16
+ export * from './match-url';
14
17
  export * from './ng-changes';
15
18
  export * from './provide-config';
16
19
  export * from './queue';
@@ -0,0 +1,2 @@
1
+ export declare function isUrlMatcher(value: unknown): value is string | RegExp;
2
+ export declare function matchUrl(url: string, filter: string | RegExp): boolean;
@@ -7,6 +7,7 @@ interface ConfigFactoryProvider<T, D extends ConfigDependencies> {
7
7
  }
8
8
  export type ConfigDependencies<T = unknown> = ReadonlyArray<Type<T> | InjectionToken<T>>;
9
9
  export type ConfigProvider<T = unknown, D extends ConfigDependencies = []> = ConfigFactoryProvider<T, D> | T;
10
- export declare function provideConfig<T extends object, D extends ConfigDependencies = ConfigDependencies>(token: InjectionToken<T> | string, config: ConfigProvider<T, D>): FactoryProvider | ValueProvider;
11
- export declare function createConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T): Record<`${N}Config`, InjectionToken<Partial<T>>> & Record<`${N}DefaultConfig`, T> & Record<`inject${N}Config`, () => T> & Record<`provide${N}Config`, <D extends ConfigDependencies<unknown> = ConfigDependencies<T>>(config: ConfigProvider<Partial<T>, D>) => FactoryProvider | ValueProvider>;
10
+ export type ConfigTransformFn<T = unknown> = (config: Partial<T>) => Partial<T>;
11
+ export declare function provideConfig<T extends object, D extends ConfigDependencies = ConfigDependencies>(token: InjectionToken<T> | string, config: ConfigProvider<T, D>, transform?: ConfigTransformFn<T>): FactoryProvider | ValueProvider;
12
+ export declare function createConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T, transform?: ConfigTransformFn<T>): Record<`${N}Config`, InjectionToken<Partial<T>>> & Record<`${N}DefaultConfig`, T> & Record<`inject${N}Config`, () => T> & Record<`provide${N}Config`, <D extends ConfigDependencies<unknown> = ConfigDependencies<Partial<T>>>(config: ConfigProvider<Partial<T>, D>) => FactoryProvider | ValueProvider>;
12
13
  export {};
@@ -1,19 +0,0 @@
1
- import { decoratorPropertyName } from '../helpers';
2
- export const CSS_COMPONENT_NAME = decoratorPropertyName('CSSComponent', 'name');
3
- /** @internal */
4
- /* istanbul ignore next */
5
- export function CSSComponent(name, prefix = 'odx') {
6
- return (target) => {
7
- const cssClass = `${prefix}-${name}`;
8
- Object.defineProperty(target.prototype, CSS_COMPONENT_NAME, {
9
- value: cssClass,
10
- });
11
- (function (ngOnInit) {
12
- target.prototype.ngOnInit = function () {
13
- this.element.nativeElement.classList.add(cssClass);
14
- ngOnInit?.call(this);
15
- };
16
- })(target.prototype.ngOnInit);
17
- };
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9pbnRlcm5hbC9zcmMvZGVjb3JhdG9ycy9jc3MtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFPaEYsZ0JBQWdCO0FBQ2hCLDBCQUEwQjtBQUMxQixNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVksRUFBRSxNQUFNLEdBQUcsS0FBSztJQUN2RCxPQUFPLENBQUMsTUFBMEIsRUFBRSxFQUFFO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLEdBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtZQUMxRCxLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUM7UUFFSCxDQUFDLFVBQXlCLFFBQXFCO1lBQzdDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHO2dCQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlY29yYXRvclByb3BlcnR5TmFtZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3QgQ1NTX0NPTVBPTkVOVF9OQU1FID0gZGVjb3JhdG9yUHJvcGVydHlOYW1lKCdDU1NDb21wb25lbnQnLCAnbmFtZScpO1xuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgaW50ZXJmYWNlIENTU0NvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xufVxuXG4vKiogQGludGVybmFsICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGZ1bmN0aW9uIENTU0NvbXBvbmVudChuYW1lOiBzdHJpbmcsIHByZWZpeCA9ICdvZHgnKSB7XG4gIHJldHVybiAodGFyZ2V0OiBUeXBlPENTU0NvbXBvbmVudD4pID0+IHtcbiAgICBjb25zdCBjc3NDbGFzcyA9IGAke3ByZWZpeH0tJHtuYW1lfWA7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldC5wcm90b3R5cGUsIENTU19DT01QT05FTlRfTkFNRSwge1xuICAgICAgdmFsdWU6IGNzc0NsYXNzLFxuICAgIH0pO1xuXG4gICAgKGZ1bmN0aW9uICh0aGlzOiB1bmtub3duLCBuZ09uSW5pdD86ICgpID0+IHZvaWQpIHtcbiAgICAgIHRhcmdldC5wcm90b3R5cGUubmdPbkluaXQgPSBmdW5jdGlvbiAodGhpczogQ1NTQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoY3NzQ2xhc3MpO1xuICAgICAgICBuZ09uSW5pdD8uY2FsbCh0aGlzKTtcbiAgICAgIH07XG4gICAgfSkodGFyZ2V0LnByb3RvdHlwZS5uZ09uSW5pdCk7XG4gIH07XG59XG4iXX0=
@@ -1,49 +0,0 @@
1
- import { camelToKebabCase, decoratorPropertyName } from '../helpers';
2
- import { CSS_COMPONENT_NAME } from './css-component';
3
- /** @internal */
4
- /* istanbul ignore next */
5
- export function CSSModifier(options) {
6
- return (target, propertyKey) => {
7
- const propertyKeyName = propertyKey.toString();
8
- const propertyKeyKebabCase = camelToKebabCase(propertyKeyName);
9
- const propertySymbol = decoratorPropertyName('CSSModifier', propertyKeyName);
10
- const propertyDefaultValue = decoratorPropertyName('CSSModifier', `${propertyKeyName}_default`);
11
- function createModifierClass(value) {
12
- if (typeof value === 'boolean' || (typeof value === 'string' && value.length > 0)) {
13
- let modifier = typeof value === 'boolean' ? propertyKeyKebabCase : value;
14
- if (options?.withPrefix) {
15
- modifier = `${propertyKeyName}-${modifier}`;
16
- }
17
- if (options?.withComponentPrefix ?? true) {
18
- return `${this[CSS_COMPONENT_NAME]}--${modifier}`;
19
- }
20
- return modifier;
21
- }
22
- return null;
23
- }
24
- function getter() {
25
- return this[propertySymbol];
26
- }
27
- function setter(value) {
28
- this[propertyDefaultValue] ??= value;
29
- const currentValue = this[propertySymbol] ?? null;
30
- const nextValue = value ?? this[propertyDefaultValue] ?? null;
31
- if (nextValue !== currentValue) {
32
- const currentModifierClass = createModifierClass.call(this, currentValue);
33
- if (currentModifierClass !== null) {
34
- this.element.nativeElement.classList.remove(currentModifierClass);
35
- }
36
- const newModifierClass = createModifierClass.call(this, nextValue);
37
- if (newModifierClass !== null && (typeof nextValue === 'boolean' ? nextValue : true)) {
38
- this.element.nativeElement.classList.add(newModifierClass);
39
- }
40
- }
41
- this[propertySymbol] = nextValue;
42
- }
43
- Object.defineProperty(target, propertyKey, {
44
- get: getter,
45
- set: setter,
46
- });
47
- };
48
- }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLW1vZGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ludGVybmFsL3NyYy9kZWNvcmF0b3JzL2Nzcy1tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckUsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBVW5FLGdCQUFnQjtBQUNoQiwwQkFBMEI7QUFDMUIsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxPQUFPLENBQUMsTUFBb0IsRUFBRSxXQUF3QixFQUFFLEVBQUU7UUFDeEQsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9DLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0QsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsYUFBYSxFQUFFLEdBQUcsZUFBZSxVQUFVLENBQUMsQ0FBQztRQUVoRyxTQUFTLG1CQUFtQixDQUE2QixLQUFjO1lBQ3JFLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pGLElBQUksUUFBUSxHQUFHLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDekUsSUFBSSxPQUFPLEVBQUUsVUFBVSxFQUFFO29CQUN2QixRQUFRLEdBQUcsR0FBRyxlQUFlLElBQUksUUFBUSxFQUFFLENBQUM7aUJBQzdDO2dCQUNELElBQUksT0FBTyxFQUFFLG1CQUFtQixJQUFJLElBQUksRUFBRTtvQkFDeEMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2lCQUNuRDtnQkFDRCxPQUFPLFFBQVEsQ0FBQzthQUNqQjtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELFNBQVMsTUFBTTtZQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxTQUFTLE1BQU0sQ0FBNkIsS0FBYztZQUN4RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxLQUFLLENBQUM7WUFDckMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQztZQUNsRCxNQUFNLFNBQVMsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksSUFBSSxDQUFDO1lBRTlELElBQUksU0FBUyxLQUFLLFlBQVksRUFBRTtnQkFDOUIsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUMxRSxJQUFJLG9CQUFvQixLQUFLLElBQUksRUFBRTtvQkFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2lCQUNuRTtnQkFDRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ25FLElBQUksZ0JBQWdCLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNwRixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7aUJBQzVEO2FBQ0Y7WUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7WUFDekMsR0FBRyxFQUFFLE1BQU07WUFDWCxHQUFHLEVBQUUsTUFBTTtTQUNaLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYW1lbFRvS2ViYWJDYXNlLCBkZWNvcmF0b3JQcm9wZXJ0eU5hbWUgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTX0NPTVBPTkVOVF9OQU1FIH0gZnJvbSAnLi9jc3MtY29tcG9uZW50JztcblxuLyoqIEBpbnRlcm5hbCAqL1xuaW50ZXJmYWNlIENTU01vZGlmaWVyT3B0aW9ucyB7XG4gIHdpdGhDb21wb25lbnRQcmVmaXg/OiBib29sZWFuO1xuICB3aXRoUHJlZml4PzogYm9vbGVhbjtcbn1cblxudHlwZSBDU1NDb21wb25lbnRJbnN0YW5jZSA9IENTU0NvbXBvbmVudCAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4vKiogQGludGVybmFsICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGZ1bmN0aW9uIENTU01vZGlmaWVyKG9wdGlvbnM/OiBDU1NNb2RpZmllck9wdGlvbnMpIHtcbiAgcmV0dXJuICh0YXJnZXQ6IENTU0NvbXBvbmVudCwgcHJvcGVydHlLZXk6IFByb3BlcnR5S2V5KSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlLZXlOYW1lID0gcHJvcGVydHlLZXkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBwcm9wZXJ0eUtleUtlYmFiQ2FzZSA9IGNhbWVsVG9LZWJhYkNhc2UocHJvcGVydHlLZXlOYW1lKTtcbiAgICBjb25zdCBwcm9wZXJ0eVN5bWJvbCA9IGRlY29yYXRvclByb3BlcnR5TmFtZSgnQ1NTTW9kaWZpZXInLCBwcm9wZXJ0eUtleU5hbWUpO1xuICAgIGNvbnN0IHByb3BlcnR5RGVmYXVsdFZhbHVlID0gZGVjb3JhdG9yUHJvcGVydHlOYW1lKCdDU1NNb2RpZmllcicsIGAke3Byb3BlcnR5S2V5TmFtZX1fZGVmYXVsdGApO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlTW9kaWZpZXJDbGFzcyh0aGlzOiBDU1NDb21wb25lbnRJbnN0YW5jZSwgdmFsdWU6IHVua25vd24pIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPiAwKSkge1xuICAgICAgICBsZXQgbW9kaWZpZXIgPSB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyA/IHByb3BlcnR5S2V5S2ViYWJDYXNlIDogdmFsdWU7XG4gICAgICAgIGlmIChvcHRpb25zPy53aXRoUHJlZml4KSB7XG4gICAgICAgICAgbW9kaWZpZXIgPSBgJHtwcm9wZXJ0eUtleU5hbWV9LSR7bW9kaWZpZXJ9YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucz8ud2l0aENvbXBvbmVudFByZWZpeCA/PyB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIGAke3RoaXNbQ1NTX0NPTVBPTkVOVF9OQU1FXX0tLSR7bW9kaWZpZXJ9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9kaWZpZXI7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXR0ZXIodGhpczogQ1NTQ29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgIHJldHVybiB0aGlzW3Byb3BlcnR5U3ltYm9sXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXR0ZXIodGhpczogQ1NTQ29tcG9uZW50SW5zdGFuY2UsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgICB0aGlzW3Byb3BlcnR5RGVmYXVsdFZhbHVlXSA/Pz0gdmFsdWU7XG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzW3Byb3BlcnR5U3ltYm9sXSA/PyBudWxsO1xuICAgICAgY29uc3QgbmV4dFZhbHVlID0gdmFsdWUgPz8gdGhpc1twcm9wZXJ0eURlZmF1bHRWYWx1ZV0gPz8gbnVsbDtcblxuICAgICAgaWYgKG5leHRWYWx1ZSAhPT0gY3VycmVudFZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RpZmllckNsYXNzID0gY3JlYXRlTW9kaWZpZXJDbGFzcy5jYWxsKHRoaXMsIGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIGlmIChjdXJyZW50TW9kaWZpZXJDbGFzcyAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY3VycmVudE1vZGlmaWVyQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld01vZGlmaWVyQ2xhc3MgPSBjcmVhdGVNb2RpZmllckNsYXNzLmNhbGwodGhpcywgbmV4dFZhbHVlKTtcbiAgICAgICAgaWYgKG5ld01vZGlmaWVyQ2xhc3MgIT09IG51bGwgJiYgKHR5cGVvZiBuZXh0VmFsdWUgPT09ICdib29sZWFuJyA/IG5leHRWYWx1ZSA6IHRydWUpKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChuZXdNb2RpZmllckNsYXNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpc1twcm9wZXJ0eVN5bWJvbF0gPSBuZXh0VmFsdWU7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5S2V5LCB7XG4gICAgICBnZXQ6IGdldHRlcixcbiAgICAgIHNldDogc2V0dGVyLFxuICAgIH0pO1xuICB9O1xufVxuIl19
@@ -1,3 +0,0 @@
1
- export * from './css-component';
2
- export * from './css-modifier';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvc3JjL2RlY29yYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jc3MtY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY3NzLW1vZGlmaWVyJztcbiJdfQ==
@@ -1,12 +0,0 @@
1
- /** @internal */
2
- /* istanbul ignore next */
3
- export function camelToKebabCase(value) {
4
- if (value !== value.toLowerCase()) {
5
- return value.replace(/[A-Z]/g, (match, index) => {
6
- const char = match.toLowerCase();
7
- return index === 0 ? char : `-${char}`;
8
- });
9
- }
10
- return value;
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZWwtdG8ta2ViYWItY2FzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9pbnRlcm5hbC9zcmMvaGVscGVycy9jYW1lbC10by1rZWJhYi1jYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQUNoQiwwQkFBMEI7QUFDMUIsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWE7SUFDNUMsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRWpDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGludGVybmFsICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsVG9LZWJhYkNhc2UodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICh2YWx1ZSAhPT0gdmFsdWUudG9Mb3dlckNhc2UoKSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bQS1aXS9nLCAobWF0Y2gsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjaGFyID0gbWF0Y2gudG9Mb3dlckNhc2UoKTtcblxuICAgICAgcmV0dXJuIGluZGV4ID09PSAwID8gY2hhciA6IGAtJHtjaGFyfWA7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuIl19
@@ -1,4 +0,0 @@
1
- export function decoratorPropertyName(decoratorName, propertyName) {
2
- return `__ODX_${decoratorName}_${propertyName}__`;
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLXByb3BlcnR5LW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvc3JjL2hlbHBlcnMvZGVjb3JhdG9yLXByb3BlcnR5LW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLHFCQUFxQixDQUFxQyxhQUFnQixFQUFFLFlBQWU7SUFDekcsT0FBTyxTQUFTLGFBQWEsSUFBSSxZQUFZLElBQUksQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRlY29yYXRvclByb3BlcnR5TmFtZTxEIGV4dGVuZHMgc3RyaW5nLCBUIGV4dGVuZHMgc3RyaW5nPihkZWNvcmF0b3JOYW1lOiBELCBwcm9wZXJ0eU5hbWU6IFQpOiBgX19PRFhfJHtEfV8ke1R9X19gIHtcbiAgcmV0dXJuIGBfX09EWF8ke2RlY29yYXRvck5hbWV9XyR7cHJvcGVydHlOYW1lfV9fYDtcbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- import { deepmergeCustom } from 'deepmerge-ts';
2
- export const deepmerge = deepmergeCustom({
3
- mergeArrays: false,
4
- mergeSets: false,
5
- });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcG1lcmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ludGVybmFsL3NyYy9oZWxwZXJzL2RlZXBtZXJnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUEyQztJQUNqRixXQUFXLEVBQUUsS0FBSztJQUNsQixTQUFTLEVBQUUsS0FBSztDQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWVwbWVyZ2VDdXN0b20sIERlZXBNZXJnZUxlYWZVUkkgfSBmcm9tICdkZWVwbWVyZ2UtdHMnO1xuXG5leHBvcnQgY29uc3QgZGVlcG1lcmdlID0gZGVlcG1lcmdlQ3VzdG9tPHsgRGVlcE1lcmdlQXJyYXlzVVJJOiBEZWVwTWVyZ2VMZWFmVVJJIH0+KHtcbiAgbWVyZ2VBcnJheXM6IGZhbHNlLFxuICBtZXJnZVNldHM6IGZhbHNlLFxufSk7XG4iXX0=
@@ -1,22 +0,0 @@
1
- /* istanbul ignore next */
2
- function isSameDomain({ href }) {
3
- return !href || href.startsWith(window.location.origin);
4
- }
5
- /** @internal */
6
- /* istanbul ignore next */
7
- export function getCSSVariables(filter, selector = 'body') {
8
- const stylesheets = Array.from(document.styleSheets).filter(isSameDomain);
9
- return stylesheets.reduce((variables, { cssRules }) => {
10
- const rules = Array.from(cssRules).filter(({ type }) => type === CSSRule.STYLE_RULE);
11
- for (const { style, selectorText } of rules) {
12
- for (const propName of Array.from(style)) {
13
- const name = propName.trim();
14
- if (!name.startsWith('--') || !filter.test(name) || (selector && selectorText !== selector))
15
- continue;
16
- variables.push({ name, value: style.getPropertyValue(propName).trim() });
17
- }
18
- }
19
- return variables;
20
- }, []);
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNzcy12YXJpYWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvc3JjL2hlbHBlcnMvZ2V0LWNzcy12YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsMEJBQTBCO0FBQzFCLFNBQVMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFjO0lBQ3hDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxnQkFBZ0I7QUFDaEIsMEJBQTBCO0FBQzFCLE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBYyxFQUFFLFFBQVEsR0FBRyxNQUFNO0lBQy9ELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUxRSxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQTBCLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUM3RSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsVUFBVSxDQUFtQixDQUFDO1FBQ3ZHLEtBQUssTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxLQUFLLEVBQUU7WUFDM0MsS0FBSyxNQUFNLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxZQUFZLEtBQUssUUFBUSxDQUFDO29CQUFFLFNBQVM7Z0JBQ3RHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDMUU7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQ1NTVmFyaWFibGVEZWZpbml0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gaXNTYW1lRG9tYWluKHsgaHJlZiB9OiBTdHlsZVNoZWV0KTogYm9vbGVhbiB7XG4gIHJldHVybiAhaHJlZiB8fCBocmVmLnN0YXJ0c1dpdGgod2luZG93LmxvY2F0aW9uLm9yaWdpbik7XG59XG5cbi8qKiBAaW50ZXJuYWwgKi9cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q1NTVmFyaWFibGVzKGZpbHRlcjogUmVnRXhwLCBzZWxlY3RvciA9ICdib2R5Jyk6IENTU1ZhcmlhYmxlRGVmaW5pdGlvbltdIHtcbiAgY29uc3Qgc3R5bGVzaGVldHMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnN0eWxlU2hlZXRzKS5maWx0ZXIoaXNTYW1lRG9tYWluKTtcblxuICByZXR1cm4gc3R5bGVzaGVldHMucmVkdWNlPENTU1ZhcmlhYmxlRGVmaW5pdGlvbltdPigodmFyaWFibGVzLCB7IGNzc1J1bGVzIH0pID0+IHtcbiAgICBjb25zdCBydWxlcyA9IEFycmF5LmZyb20oY3NzUnVsZXMpLmZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUgPT09IENTU1J1bGUuU1RZTEVfUlVMRSkgYXMgQ1NTU3R5bGVSdWxlW107XG4gICAgZm9yIChjb25zdCB7IHN0eWxlLCBzZWxlY3RvclRleHQgfSBvZiBydWxlcykge1xuICAgICAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBBcnJheS5mcm9tKHN0eWxlKSkge1xuICAgICAgICBjb25zdCBuYW1lID0gcHJvcE5hbWUudHJpbSgpO1xuICAgICAgICBpZiAoIW5hbWUuc3RhcnRzV2l0aCgnLS0nKSB8fCAhZmlsdGVyLnRlc3QobmFtZSkgfHwgKHNlbGVjdG9yICYmIHNlbGVjdG9yVGV4dCAhPT0gc2VsZWN0b3IpKSBjb250aW51ZTtcbiAgICAgICAgdmFyaWFibGVzLnB1c2goeyBuYW1lLCB2YWx1ZTogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wTmFtZSkudHJpbSgpIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9LCBbXSk7XG59XG4iXX0=
@@ -1,6 +0,0 @@
1
- /** @internal */
2
- export function getEnumValues(e) {
3
- const keys = Object.keys(e);
4
- return keys.filter((key) => e[key] !== undefined).map((key) => e[key]);
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWVudW0tdmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ludGVybmFsL3NyYy9oZWxwZXJzL2dldC1lbnVtLXZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUFDaEIsTUFBTSxVQUFVLGFBQWEsQ0FBOEIsQ0FBNEI7SUFDckYsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVksQ0FBQztJQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW51bVZhbHVlczxURW51bSwgVEtleXMgZXh0ZW5kcyBzdHJpbmc+KGU6IHsgW2tleSBpbiBUS2V5c106IFRFbnVtIH0pOiBURW51bVtdIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGUpIGFzIFRLZXlzW107XG4gIHJldHVybiBrZXlzLmZpbHRlcigoa2V5KSA9PiBlW2tleV0gIT09IHVuZGVmaW5lZCkubWFwKChrZXkpID0+IGVba2V5XSk7XG59XG4iXX0=
@@ -1,6 +0,0 @@
1
- export * from './camel-to-kebab-case';
2
- export * from './decorator-property-name';
3
- export * from './deepmerge';
4
- export * from './get-css-variables';
5
- export * from './get-enum-values';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvc3JjL2hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FtZWwtdG8ta2ViYWItY2FzZSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvci1wcm9wZXJ0eS1uYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vZGVlcG1lcmdlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWNzcy12YXJpYWJsZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZW51bS12YWx1ZXMnO1xuIl19
@@ -1,6 +0,0 @@
1
- import { ODX_TRANSLATE_DEFAULT_LANGUAGE } from '../translate.config';
2
- export function getLanguageCode(language) {
3
- const [languageCode] = language.split(/-|_/);
4
- return languageCode?.toLowerCase() ?? ODX_TRANSLATE_DEFAULT_LANGUAGE;
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxhbmd1YWdlLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvdHJhbnNsYXRlL3NyYy9saWIvaGVscGVycy9nZXQtbGFuZ3VhZ2UtY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRSxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWdCO0lBQzlDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTdDLE9BQU8sWUFBWSxFQUFFLFdBQVcsRUFBRSxJQUFJLDhCQUE4QixDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPRFhfVFJBTlNMQVRFX0RFRkFVTFRfTEFOR1VBR0UgfSBmcm9tICcuLi90cmFuc2xhdGUuY29uZmlnJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlQ29kZShsYW5ndWFnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgW2xhbmd1YWdlQ29kZV0gPSBsYW5ndWFnZS5zcGxpdCgvLXxfLyk7XG5cbiAgcmV0dXJuIGxhbmd1YWdlQ29kZT8udG9Mb3dlckNhc2UoKSA/PyBPRFhfVFJBTlNMQVRFX0RFRkFVTFRfTEFOR1VBR0U7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './get-language-code';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvdHJhbnNsYXRlL3NyYy9saWIvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZXQtbGFuZ3VhZ2UtY29kZSc7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvdHJhbnNsYXRlL3NyYy9saWIvbW9kZWxzL3RyYW5zbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBUcmFuc2xhdGlvbiA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5leHBvcnQgdHlwZSBUcmFuc2xhdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBUcmFuc2xhdGlvbj47XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './language.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvdHJhbnNsYXRlL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2Uuc2VydmljZSc7XG4iXX0=
@@ -1,21 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { BehaviorSubject, distinctUntilChanged, shareReplay } from 'rxjs';
3
- import { getLanguageCode } from '../helpers';
4
- import { ODX_TRANSLATE_DEFAULT_LANGUAGE_CODE } from '../translate.config';
5
- import * as i0 from "@angular/core";
6
- export class LanguageService {
7
- constructor() {
8
- this.currentLanguageCode$$ = new BehaviorSubject(inject(ODX_TRANSLATE_DEFAULT_LANGUAGE_CODE));
9
- this.currentLanguageCode$ = this.currentLanguageCode$$.pipe(distinctUntilChanged(), shareReplay({ refCount: true }));
10
- }
11
- setLanguage(language) {
12
- this.currentLanguageCode$$.next(getLanguageCode(language));
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LanguageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LanguageService, providedIn: 'root' }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LanguageService, decorators: [{
18
- type: Injectable,
19
- args: [{ providedIn: 'root' }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9pbnRlcm5hbC90cmFuc2xhdGUvc3JjL2xpYi9zZXJ2aWNlcy9sYW5ndWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRzFFLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRW1CLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUM7UUFFMUYseUJBQW9CLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FLakk7SUFIUSxXQUFXLENBQUMsUUFBZ0I7UUFDakMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQVBVLGVBQWU7bUhBQWYsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldExhbmd1YWdlQ29kZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgT0RYX1RSQU5TTEFURV9ERUZBVUxUX0xBTkdVQUdFX0NPREUgfSBmcm9tICcuLi90cmFuc2xhdGUuY29uZmlnJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRMYW5ndWFnZUNvZGUkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoaW5qZWN0KE9EWF9UUkFOU0xBVEVfREVGQVVMVF9MQU5HVUFHRV9DT0RFKSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRMYW5ndWFnZUNvZGUkID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2VDb2RlJCQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pKTtcblxuICBwdWJsaWMgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudExhbmd1YWdlQ29kZSQkLm5leHQoZ2V0TGFuZ3VhZ2VDb2RlKGxhbmd1YWdlKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- export * from './get-language-code';
@@ -1,2 +0,0 @@
1
- export type Translation = Record<string, string>;
2
- export type Translations = Record<string, Translation>;
@@ -1 +0,0 @@
1
- export * from './language.service';
@@ -1,8 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class LanguageService {
3
- private readonly currentLanguageCode$$;
4
- readonly currentLanguageCode$: import("rxjs").Observable<string>;
5
- setLanguage(language: string): void;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<LanguageService, never>;
7
- static ɵprov: i0.ɵɵInjectableDeclaration<LanguageService>;
8
- }
File without changes