@o3r/localization 10.2.0-prerelease.8 → 10.2.0-prerelease.81

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 (39) hide show
  1. package/README.md +3 -0
  2. package/devkit/localization-devkit.interface.d.ts +45 -2
  3. package/devkit/localization-devkit.interface.d.ts.map +1 -1
  4. package/devkit/localization-devtools.console.service.d.ts +6 -6
  5. package/devkit/localization-devtools.console.service.d.ts.map +1 -1
  6. package/devkit/localization-devtools.message.service.d.ts +11 -2
  7. package/devkit/localization-devtools.message.service.d.ts.map +1 -1
  8. package/devkit/localization-devtools.service.d.ts +30 -1
  9. package/devkit/localization-devtools.service.d.ts.map +1 -1
  10. package/devkit/localization-devtools.token.d.ts.map +1 -1
  11. package/esm2022/core/translate-messageformat-lazy.compiler.mjs +3 -3
  12. package/esm2022/devkit/localization-devkit.interface.mjs +1 -1
  13. package/esm2022/devkit/localization-devtools.console.service.mjs +17 -24
  14. package/esm2022/devkit/localization-devtools.message.service.mjs +73 -9
  15. package/esm2022/devkit/localization-devtools.module.mjs +4 -4
  16. package/esm2022/devkit/localization-devtools.service.mjs +58 -7
  17. package/esm2022/devkit/localization-devtools.token.mjs +3 -2
  18. package/esm2022/rules-engine/localization.handler-action.mjs +3 -3
  19. package/esm2022/rules-engine/localization.rules-engine.module.mjs +4 -4
  20. package/esm2022/stores/localization-override/localization-override.module.mjs +4 -4
  21. package/esm2022/tools/localization-translate.directive.mjs +3 -3
  22. package/esm2022/tools/localization-translate.pipe.mjs +6 -6
  23. package/esm2022/tools/localization.module.mjs +4 -4
  24. package/esm2022/tools/localization.service.mjs +10 -4
  25. package/esm2022/tools/localized-currency.pipe.mjs +3 -3
  26. package/esm2022/tools/localized-date.pipe.mjs +3 -3
  27. package/esm2022/tools/localized-decimal.pipe.mjs +3 -3
  28. package/esm2022/tools/text-direction.service.mjs +3 -3
  29. package/esm2022/tools/text-directionality.service.mjs +3 -3
  30. package/esm2022/tools/translations-loader.mjs +3 -3
  31. package/fesm2022/o3r-localization-rules-engine.mjs +7 -7
  32. package/fesm2022/o3r-localization.mjs +192 -78
  33. package/fesm2022/o3r-localization.mjs.map +1 -1
  34. package/package.json +21 -20
  35. package/schematics/ng-add/index.d.ts.map +1 -1
  36. package/schematics/ng-add/index.js +59 -59
  37. package/schematics/ng-add/index.js.map +1 -1
  38. package/tools/localization.service.d.ts +4 -0
  39. package/tools/localization.service.d.ts.map +1 -1
package/README.md CHANGED
@@ -9,6 +9,9 @@ This package is an [Otter Framework Module](https://github.com/AmadeusITGroup/ot
9
9
 
10
10
  ## Description
11
11
 
12
+ [![Stable Version](https://img.shields.io/npm/v/@o3r/localization?style=for-the-badge)](https://www.npmjs.com/package/@o3r/localization)
13
+ [![Bundle Size](https://img.shields.io/bundlephobia/min/@o3r/localization?color=green&style=for-the-badge)](https://www.npmjs.com/package/@o3r/localization)
14
+
12
15
  This module provides a fallback language/translation support and debug tools.
13
16
 
14
17
  ## How to install
@@ -1,21 +1,64 @@
1
1
  import type { ConnectContentMessage, ContextualizationDevtoolsCommonOptions, DevtoolsCommonOptions, MessageDataTypes, OtterMessageContent, RequestMessagesContentMessage } from '@o3r/core';
2
2
  import { Subscription } from 'rxjs';
3
+ import type { LocalizationMetadata } from '../core';
3
4
  export interface LocalizationDevtoolsServiceOptions extends DevtoolsCommonOptions, ContextualizationDevtoolsCommonOptions {
5
+ metadataFilePath: string;
6
+ }
7
+ /** Localizations message content */
8
+ export interface LocalizationsContentMessage extends OtterMessageContent<'localizations'> {
9
+ /** Localizations metadata */
10
+ localizations: LocalizationMetadata;
11
+ }
12
+ /** Languages message content */
13
+ export interface LanguagesContentMessage extends OtterMessageContent<'languages'> {
14
+ /** Languages available */
15
+ languages: string[];
16
+ }
17
+ /** Switch languages message content */
18
+ export interface SwitchLanguageContentMessage extends OtterMessageContent<'switchLanguage'> {
19
+ /** Language */
20
+ language: string;
4
21
  }
5
22
  /** Display localization key message content */
6
23
  export interface DisplayLocalizationKeysContentMessage extends OtterMessageContent<'displayLocalizationKeys'> {
7
24
  /** Toggle the display of the localization keys */
8
25
  toggle?: boolean;
9
26
  }
10
- type LocalizationMessageContents = DisplayLocalizationKeysContentMessage;
27
+ /** Update localization message content */
28
+ export interface UpdateLocalizationContentMessage extends OtterMessageContent<'updateLocalization'> {
29
+ /** Localization key */
30
+ key: string;
31
+ /** Localization value */
32
+ value: string;
33
+ /** Lang */
34
+ lang?: string;
35
+ }
36
+ /** Reload localization Keys message content */
37
+ export interface ReloadLocalizationKeysContentMessage extends OtterMessageContent<'reloadLocalizationKeys'> {
38
+ /** Lang */
39
+ lang?: string;
40
+ }
41
+ export interface IsTranslationDeactivationEnabledContentMessage extends OtterMessageContent<'isTranslationDeactivationEnabled'> {
42
+ enabled: boolean;
43
+ }
44
+ export interface GetTranslationValuesContentMessage extends OtterMessageContent<'getTranslationValuesContentMessage'> {
45
+ translations: {
46
+ [localizationKey: string]: string;
47
+ };
48
+ }
49
+ type LocalizationMessageContents = LanguagesContentMessage | ReloadLocalizationKeysContentMessage | SwitchLanguageContentMessage | LocalizationsContentMessage | DisplayLocalizationKeysContentMessage | UpdateLocalizationContentMessage | IsTranslationDeactivationEnabledContentMessage | GetTranslationValuesContentMessage;
11
50
  /** List of possible DataTypes for Localization messages */
12
- type LocalizationMessageDataTypes = MessageDataTypes<LocalizationMessageContents>;
51
+ export type LocalizationMessageDataTypes = MessageDataTypes<LocalizationMessageContents>;
13
52
  /** List of all messages for Localization purpose */
14
53
  export type AvailableLocalizationMessageContents = LocalizationMessageContents | ConnectContentMessage | RequestMessagesContentMessage<LocalizationMessageDataTypes>;
15
54
  /**
16
55
  * Contextualization devtools exposed for localization in CMS integration
17
56
  */
18
57
  export interface LocalizationContextualizationDevtools {
58
+ /**
59
+ * Is the translation deactivation enabled
60
+ */
61
+ isTranslationDeactivationEnabled(): boolean | Promise<boolean>;
19
62
  /**
20
63
  * Show localization keys
21
64
  * @param value value enforced by the DevTools extension
@@ -1 +1 @@
1
- {"version":3,"file":"localization-devkit.interface.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devkit.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sCAAsC,EACtC,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,WAAW,kCAAmC,SAAQ,qBAAqB,EAAE,sCAAsC;CACxH;AAED,+CAA+C;AAC/C,MAAM,WAAW,qCAAsC,SAAQ,mBAAmB,CAAC,yBAAyB,CAAC;IAC3G,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,KAAK,2BAA2B,GAC5B,qCAAqC,CAAC;AAE1C,2DAA2D;AAC3D,KAAK,4BAA4B,GAAG,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;AAElF,oDAAoD;AACpD,MAAM,MAAM,oCAAoC,GAC5C,2BAA2B,GAC3B,qBAAqB,GACrB,6BAA6B,CAAC,4BAA4B,CAAC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,qCAAqC;IACpD;;;OAGG;IACH,oBAAoB,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;OAEG;IACH,kBAAkB,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnD;;;OAGG;IACH,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAExG;;;OAGG;IACH,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,KAAK,YAAY,CAAC;IAElE;;;;OAIG;IACH,sBAAsB,EAAE,CAAC,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1G;;;;OAIG;IACH,sBAAsB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D"}
1
+ {"version":3,"file":"localization-devkit.interface.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devkit.interface.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,20 @@
1
- import { ApplicationRef } from '@angular/core';
2
1
  import type { DevtoolsServiceInterface } from '@o3r/core';
3
2
  import { Subscription } from 'rxjs';
4
- import { LocalizationService } from '../tools';
5
3
  import { LocalizationContextualizationDevtools, LocalizationDevtoolsServiceOptions } from './localization-devkit.interface';
6
4
  import { OtterLocalizationDevtools } from './localization-devtools.service';
7
5
  import * as i0 from "@angular/core";
8
6
  export declare class LocalizationDevtoolsConsoleService implements DevtoolsServiceInterface, LocalizationContextualizationDevtools {
9
7
  private readonly localizationDevtools;
10
- private readonly localizationService;
11
- private readonly appRef;
12
8
  private readonly options;
13
9
  /** Name of the Window property to access to the devtools */
14
10
  static readonly windowModuleName = "localization";
15
- constructor(localizationDevtools: OtterLocalizationDevtools, localizationService: LocalizationService, appRef: ApplicationRef, options?: LocalizationDevtoolsServiceOptions);
11
+ constructor(localizationDevtools: OtterLocalizationDevtools, options?: LocalizationDevtoolsServiceOptions);
16
12
  /** @inheritDoc */
17
13
  activate(): void;
14
+ /**
15
+ * @inheritdoc
16
+ */
17
+ isTranslationDeactivationEnabled(): boolean | Promise<boolean>;
18
18
  /**
19
19
  * @inheritdoc
20
20
  */
@@ -45,7 +45,7 @@ export declare class LocalizationDevtoolsConsoleService implements DevtoolsServi
45
45
  * @inheritdoc
46
46
  */
47
47
  reloadLocalizationKeys(language?: string): Promise<void>;
48
- static ɵfac: i0.ɵɵFactoryDeclaration<LocalizationDevtoolsConsoleService, [null, null, null, { optional: true; }]>;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocalizationDevtoolsConsoleService, [null, { optional: true; }]>;
49
49
  static ɵprov: i0.ɵɵInjectableDeclaration<LocalizationDevtoolsConsoleService>;
50
50
  }
51
51
  //# sourceMappingURL=localization-devtools.console.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localization-devtools.console.service.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devtools.console.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAgC,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAA4B,wBAAwB,EAAsB,MAAM,WAAW,CAAC;AACxG,OAAO,EAAiB,YAAY,EAAE,MAAM,MAAM,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,qCAAqC,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAC5H,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;;AAG5E,qBACa,kCAAmC,YAAW,wBAAwB,EAAE,qCAAqC;IAMtH,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACkC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPnF,4DAA4D;IAC5D,gBAAuB,gBAAgB,kBAAkB;gBAGtC,oBAAoB,EAAE,yBAAyB,EAC/C,mBAAmB,EAAE,mBAAmB,EACxC,MAAM,EAAE,cAAc,EACmC,OAAO,GAAE,kCAAgF;IAarK,kBAAkB;IACX,QAAQ;IAUf;;OAEG;IACI,oBAAoB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE;;OAEG;IACI,kBAAkB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrD;;OAEG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAYhH;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,GAAG,YAAY;IAIpE;;OAEG;IACI,sBAAsB,CAAC,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5G;;OAEG;IACU,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM;yCArF1C,kCAAkC;6CAAlC,kCAAkC;CA+F9C"}
1
+ {"version":3,"file":"localization-devtools.console.service.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devtools.console.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA4B,wBAAwB,EAAsB,MAAM,WAAW,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,qCAAqC,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAC5H,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;;AAG5E,qBACa,kCAAmC,YAAW,wBAAwB,EAAE,qCAAqC;IAMtH,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACoB,OAAO,CAAC,QAAQ,CAAC,OAAO;IALnF,4DAA4D;IAC5D,gBAAuB,gBAAgB,kBAAkB;gBAGtC,oBAAoB,EAAE,yBAAyB,EACU,OAAO,GAAE,kCAAgF;IAarK,kBAAkB;IACX,QAAQ;IAUf;;OAEG;IACI,gCAAgC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrE;;OAEG;IACI,oBAAoB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE;;OAEG;IACI,kBAAkB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrD;;OAEG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAWhH;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,GAAG,YAAY;IAIpE;;OAEG;IACI,sBAAsB,CAAC,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5G;;OAEG;IACI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM;yCApFpC,kCAAkC;6CAAlC,kCAAkC;CAuF9C"}
@@ -1,14 +1,23 @@
1
1
  import { OnDestroy } from '@angular/core';
2
2
  import { LoggerService } from '@o3r/logger';
3
+ import { LocalizationService } from '../tools';
3
4
  import { LocalizationDevtoolsServiceOptions } from './localization-devkit.interface';
4
5
  import { OtterLocalizationDevtools } from './localization-devtools.service';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class LocalizationDevtoolsMessageService implements OnDestroy {
7
8
  private readonly logger;
8
9
  private readonly localizationDevTools;
10
+ private readonly localizationService;
9
11
  private readonly options;
10
12
  private readonly subscriptions;
11
- constructor(logger: LoggerService, localizationDevTools: OtterLocalizationDevtools, options?: LocalizationDevtoolsServiceOptions);
13
+ private readonly sendMessage;
14
+ constructor(logger: LoggerService, localizationDevTools: OtterLocalizationDevtools, localizationService: LocalizationService, options?: LocalizationDevtoolsServiceOptions);
15
+ private sendLocalizationsMetadata;
16
+ /**
17
+ * Function to trigger a re-send a requested messages to the Otter Chrome DevTools extension
18
+ * @param only restricted list of messages to re-send
19
+ */
20
+ private handleReEmitRequest;
12
21
  /**
13
22
  * Function to handle the incoming messages from Otter Chrome DevTools extension
14
23
  * @param event Event coming from the Otter Chrome DevTools extension
@@ -23,7 +32,7 @@ export declare class LocalizationDevtoolsMessageService implements OnDestroy {
23
32
  activate(): void;
24
33
  /** @inheritDoc */
25
34
  ngOnDestroy(): void;
26
- static ɵfac: i0.ɵɵFactoryDeclaration<LocalizationDevtoolsMessageService, [null, null, { optional: true; }]>;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocalizationDevtoolsMessageService, [null, null, null, { optional: true; }]>;
27
36
  static ɵprov: i0.ɵɵInjectableDeclaration<LocalizationDevtoolsMessageService>;
28
37
  }
29
38
  //# sourceMappingURL=localization-devtools.message.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localization-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devtools.message.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,SAAS,EAAY,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAwC,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAC3H,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;;AAO5E,qBACa,kCAAmC,YAAW,SAAS;IAK9D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACkB,OAAO,CAAC,QAAQ,CAAC,OAAO;IALnF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAG/B,MAAM,EAAE,aAAa,EACrB,oBAAoB,EAAE,yBAAyB,EACQ,OAAO,GAAE,kCAAgF;IAOrK;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB,kBAAkB;IACX,QAAQ;IAMf,kBAAkB;IACX,WAAW;yCApDP,kCAAkC;6CAAlC,kCAAkC;CAuD9C"}
1
+ {"version":3,"file":"localization-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devtools.message.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,SAAS,EAAY,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAA6C,kCAAkC,EAAqC,MAAM,iCAAiC,CAAC;AACnK,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;;AAkB5E,qBACa,kCAAmC,YAAW,SAAS;IAOhE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACqB,OAAO,CAAC,QAAQ,CAAC,OAAO;IARnF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0D;gBAGnE,MAAM,EAAE,aAAa,EACrB,oBAAoB,EAAE,yBAAyB,EAC/C,mBAAmB,EAAE,mBAAmB,EACiB,OAAO,GAAE,kCAAgF;YAWvJ,yBAAyB;IAOvC;;;OAGG;YACW,mBAAmB;IAoBjC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAoCpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB,kBAAkB;IACX,QAAQ;IAMf,kBAAkB;IACX,WAAW;yCA5GP,kCAAkC;6CAAlC,kCAAkC;CA+G9C"}
@@ -1,9 +1,17 @@
1
+ import { ApplicationRef } from '@angular/core';
2
+ import { TranslateCompiler } from '@ngx-translate/core';
1
3
  import { Subscription } from 'rxjs';
2
4
  import { LocalizationService } from '../tools';
3
5
  import * as i0 from "@angular/core";
4
6
  export declare class OtterLocalizationDevtools {
5
7
  private readonly localizationService;
6
- constructor(localizationService: LocalizationService);
8
+ private readonly translateCompiler;
9
+ private readonly appRef;
10
+ constructor(localizationService: LocalizationService, translateCompiler: TranslateCompiler, appRef: ApplicationRef);
11
+ /**
12
+ * Is the translation deactivation enabled
13
+ */
14
+ isTranslationDeactivationEnabled(): boolean;
7
15
  /**
8
16
  * Show localization keys
9
17
  * @param value value enforced by the DevTools extension
@@ -18,6 +26,27 @@ export declare class OtterLocalizationDevtools {
18
26
  * @param fn called when the language is changed in the app
19
27
  */
20
28
  onLanguageChange(fn: (language: string) => any): Subscription;
29
+ /**
30
+ * Switch the current language to the specified value
31
+ * @param language new language to switch to
32
+ */
33
+ switchLanguage(language: string): Promise<void>;
34
+ /**
35
+ * Updates the specified localization key/values for the current language.
36
+ *
37
+ * Recommendation: To be used with a small number of keys to update to avoid performance issues.
38
+ * @param keyValues key/values to update
39
+ * @param language if not provided, the current language value
40
+ */
41
+ updateLocalizationKeys(keyValues: {
42
+ [key: string]: string;
43
+ }, language?: string): void | Promise<void>;
44
+ /**
45
+ * Reload a language from the language file
46
+ * @see https://github.com/ngx-translate/core/blob/master/packages/core/lib/translate.service.ts#L490
47
+ * @param language language to reload
48
+ */
49
+ reloadLocalizationKeys(language?: string): Promise<void>;
21
50
  static ɵfac: i0.ɵɵFactoryDeclaration<OtterLocalizationDevtools, never>;
22
51
  static ɵprov: i0.ɵɵInjectableDeclaration<OtterLocalizationDevtools>;
23
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"localization-devtools.service.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devtools.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;;AAE/C,qBACa,yBAAyB;IAExB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAErE;;;OAGG;IACI,oBAAoB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAIlD;;OAEG;IACI,kBAAkB;IAIzB;;;OAGG;IACI,gBAAgB,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,GAAG,YAAY;yCAvBzD,yBAAyB;6CAAzB,yBAAyB;CA+BrC"}
1
+ {"version":3,"file":"localization-devtools.service.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devtools.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAc,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAiB,YAAY,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;;AAG/C,qBACa,yBAAyB;IAGlC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,cAAc;IAGzC;;OAEG;IACI,gCAAgC;IAIvC;;;OAGG;IACI,oBAAoB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAKlD;;OAEG;IACI,kBAAkB;IAIzB;;;OAGG;IACI,gBAAgB,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,GAAG,YAAY;IASpE;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM;IAK5C;;;;;;OAMG;IACI,sBAAsB,CAAC,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5G;;;;OAIG;IACU,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM;yCA1E1C,yBAAyB;6CAAzB,yBAAyB;CA0FrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"localization-devtools.token.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devtools.token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAErF,eAAO,MAAM,2CAA2C,EAAE,kCAGzD,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,cAAc,CAAC,kCAAkC,CAAiG,CAAC"}
1
+ {"version":3,"file":"localization-devtools.token.d.ts","sourceRoot":"","sources":["../../src/devkit/localization-devtools.token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAErF,eAAO,MAAM,2CAA2C,EAAE,kCAIzD,CAAC;AAEF,eAAO,MAAM,mCAAmC,EAAE,cAAc,CAAC,kCAAkC,CAAiG,CAAC"}
@@ -54,10 +54,10 @@ export class TranslateMessageFormatLazyCompiler extends TranslateCompiler {
54
54
  return Object.keys(translations)
55
55
  .reduce(compilingStrategy, {});
56
56
  }
57
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TranslateMessageFormatLazyCompiler, deps: [{ token: MESSAGE_FORMAT_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
58
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TranslateMessageFormatLazyCompiler }); }
57
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TranslateMessageFormatLazyCompiler, deps: [{ token: MESSAGE_FORMAT_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
58
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TranslateMessageFormatLazyCompiler }); }
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TranslateMessageFormatLazyCompiler, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: TranslateMessageFormatLazyCompiler, decorators: [{
61
61
  type: Injectable
62
62
  }], ctorParameters: () => [{ type: undefined, decorators: [{
63
63
  type: Optional
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWRldmtpdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2xvY2FsaXphdGlvbi1kZXZraXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIENvbm5lY3RDb250ZW50TWVzc2FnZSxcbiAgQ29udGV4dHVhbGl6YXRpb25EZXZ0b29sc0NvbW1vbk9wdGlvbnMsXG4gIERldnRvb2xzQ29tbW9uT3B0aW9ucyxcbiAgTWVzc2FnZURhdGFUeXBlcyxcbiAgT3R0ZXJNZXNzYWdlQ29udGVudCxcbiAgUmVxdWVzdE1lc3NhZ2VzQ29udGVudE1lc3NhZ2Vcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsaXphdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnMgZXh0ZW5kcyBEZXZ0b29sc0NvbW1vbk9wdGlvbnMsIENvbnRleHR1YWxpemF0aW9uRGV2dG9vbHNDb21tb25PcHRpb25zIHtcbn1cblxuLyoqIERpc3BsYXkgbG9jYWxpemF0aW9uIGtleSBtZXNzYWdlIGNvbnRlbnQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcGxheUxvY2FsaXphdGlvbktleXNDb250ZW50TWVzc2FnZSBleHRlbmRzIE90dGVyTWVzc2FnZUNvbnRlbnQ8J2Rpc3BsYXlMb2NhbGl6YXRpb25LZXlzJz4ge1xuICAvKiogVG9nZ2xlIHRoZSBkaXNwbGF5IG9mIHRoZSBsb2NhbGl6YXRpb24ga2V5cyAqL1xuICB0b2dnbGU/OiBib29sZWFuO1xufVxuXG50eXBlIExvY2FsaXphdGlvbk1lc3NhZ2VDb250ZW50cyA9XG4gIHwgRGlzcGxheUxvY2FsaXphdGlvbktleXNDb250ZW50TWVzc2FnZTtcblxuLyoqIExpc3Qgb2YgcG9zc2libGUgRGF0YVR5cGVzIGZvciBMb2NhbGl6YXRpb24gbWVzc2FnZXMgKi9cbnR5cGUgTG9jYWxpemF0aW9uTWVzc2FnZURhdGFUeXBlcyA9IE1lc3NhZ2VEYXRhVHlwZXM8TG9jYWxpemF0aW9uTWVzc2FnZUNvbnRlbnRzPjtcblxuLyoqIExpc3Qgb2YgYWxsIG1lc3NhZ2VzIGZvciBMb2NhbGl6YXRpb24gcHVycG9zZSAqL1xuZXhwb3J0IHR5cGUgQXZhaWxhYmxlTG9jYWxpemF0aW9uTWVzc2FnZUNvbnRlbnRzID1cbiAgfCBMb2NhbGl6YXRpb25NZXNzYWdlQ29udGVudHNcbiAgfCBDb25uZWN0Q29udGVudE1lc3NhZ2VcbiAgfCBSZXF1ZXN0TWVzc2FnZXNDb250ZW50TWVzc2FnZTxMb2NhbGl6YXRpb25NZXNzYWdlRGF0YVR5cGVzPjtcblxuXG4vKipcbiAqIENvbnRleHR1YWxpemF0aW9uIGRldnRvb2xzIGV4cG9zZWQgZm9yIGxvY2FsaXphdGlvbiBpbiBDTVMgaW50ZWdyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6YXRpb25Db250ZXh0dWFsaXphdGlvbkRldnRvb2xzIHtcbiAgLyoqXG4gICAqIFNob3cgbG9jYWxpemF0aW9uIGtleXNcbiAgICogQHBhcmFtIHZhbHVlIHZhbHVlIGVuZm9yY2VkIGJ5IHRoZSBEZXZUb29scyBleHRlbnNpb25cbiAgICovXG4gIHNob3dMb2NhbGl6YXRpb25LZXlzOiAodmFsdWU/OiBib29sZWFuKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBsYW5ndWFnZVxuICAgKi9cbiAgZ2V0Q3VycmVudExhbmd1YWdlOiAoKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFN3aXRjaCB0aGUgY3VycmVudCBsYW5ndWFnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlXG4gICAqIEBwYXJhbSBsYW5ndWFnZSBuZXcgbGFuZ3VhZ2UgdG8gc3dpdGNoIHRvXG4gICAqL1xuICBzd2l0Y2hMYW5ndWFnZTogKGxhbmd1YWdlOiBzdHJpbmcpID0+IFByb21pc2U8eyBwcmV2aW91czogc3RyaW5nOyByZXF1ZXN0ZWQ6IHN0cmluZzsgY3VycmVudDogc3RyaW5nIH0+O1xuXG4gIC8qKlxuICAgKiBTZXR1cCBhIGxpc3RlbmVyIG9uIGxhbmd1YWdlIGNoYW5nZVxuICAgKiBAcGFyYW0gZm4gY2FsbGVkIHdoZW4gdGhlIGxhbmd1YWdlIGlzIGNoYW5nZWQgaW4gdGhlIGFwcFxuICAgKi9cbiAgb25MYW5ndWFnZUNoYW5nZTogKGZuOiAobGFuZ3VhZ2U6IHN0cmluZykgPT4gYW55KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHNwZWNpZmllZCBsb2NhbGl6YXRpb24ga2V5L3ZhbHVlcyBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICogQHBhcmFtIGtleVZhbHVlcyBrZXkvdmFsdWVzIHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgaWYgbm90IHByb3ZpZGVkLCB0aGUgY3VycmVudCBsYW5ndWFnZSB2YWx1ZVxuICAgKi9cbiAgdXBkYXRlTG9jYWxpemF0aW9uS2V5czogKGtleVZhbHVlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgbGFuZ3VhZ2U/OiBzdHJpbmcpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBSZWxvYWQgYSBsYW5ndWFnZSBmcm9tIHRoZSBsYW5ndWFnZSBmaWxlXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25neC10cmFuc2xhdGUvY29yZS9ibG9iL21hc3Rlci9wYWNrYWdlcy9jb3JlL2xpYi90cmFuc2xhdGUuc2VydmljZS50cyNMNDkwXG4gICAqIEBwYXJhbSBsYW5ndWFnZSBsYW5ndWFnZSB0byByZWxvYWRcbiAgICovXG4gIHJlbG9hZExvY2FsaXphdGlvbktleXM6IChsYW5ndWFnZT86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWRldmtpdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2xvY2FsaXphdGlvbi1kZXZraXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIENvbm5lY3RDb250ZW50TWVzc2FnZSxcbiAgQ29udGV4dHVhbGl6YXRpb25EZXZ0b29sc0NvbW1vbk9wdGlvbnMsXG4gIERldnRvb2xzQ29tbW9uT3B0aW9ucyxcbiAgTWVzc2FnZURhdGFUeXBlcyxcbiAgT3R0ZXJNZXNzYWdlQ29udGVudCxcbiAgUmVxdWVzdE1lc3NhZ2VzQ29udGVudE1lc3NhZ2Vcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBMb2NhbGl6YXRpb25NZXRhZGF0YSB9IGZyb20gJy4uL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsaXphdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnMgZXh0ZW5kcyBEZXZ0b29sc0NvbW1vbk9wdGlvbnMsIENvbnRleHR1YWxpemF0aW9uRGV2dG9vbHNDb21tb25PcHRpb25zIHtcbiAgbWV0YWRhdGFGaWxlUGF0aDogc3RyaW5nO1xufVxuXG4vKiogTG9jYWxpemF0aW9ucyBtZXNzYWdlIGNvbnRlbnQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemF0aW9uc0NvbnRlbnRNZXNzYWdlIGV4dGVuZHMgT3R0ZXJNZXNzYWdlQ29udGVudDwnbG9jYWxpemF0aW9ucyc+IHtcbiAgLyoqIExvY2FsaXphdGlvbnMgbWV0YWRhdGEgKi9cbiAgbG9jYWxpemF0aW9uczogTG9jYWxpemF0aW9uTWV0YWRhdGE7XG59XG5cbi8qKiBMYW5ndWFnZXMgbWVzc2FnZSBjb250ZW50ICovXG5leHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlc0NvbnRlbnRNZXNzYWdlIGV4dGVuZHMgT3R0ZXJNZXNzYWdlQ29udGVudDwnbGFuZ3VhZ2VzJz4ge1xuICAvKiogTGFuZ3VhZ2VzIGF2YWlsYWJsZSAqL1xuICBsYW5ndWFnZXM6IHN0cmluZ1tdO1xufVxuXG4vKiogU3dpdGNoIGxhbmd1YWdlcyBtZXNzYWdlIGNvbnRlbnQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dpdGNoTGFuZ3VhZ2VDb250ZW50TWVzc2FnZSBleHRlbmRzIE90dGVyTWVzc2FnZUNvbnRlbnQ8J3N3aXRjaExhbmd1YWdlJz4ge1xuICAvKiogTGFuZ3VhZ2UgKi9cbiAgbGFuZ3VhZ2U6IHN0cmluZztcbn1cblxuLyoqIERpc3BsYXkgbG9jYWxpemF0aW9uIGtleSBtZXNzYWdlIGNvbnRlbnQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcGxheUxvY2FsaXphdGlvbktleXNDb250ZW50TWVzc2FnZSBleHRlbmRzIE90dGVyTWVzc2FnZUNvbnRlbnQ8J2Rpc3BsYXlMb2NhbGl6YXRpb25LZXlzJz4ge1xuICAvKiogVG9nZ2xlIHRoZSBkaXNwbGF5IG9mIHRoZSBsb2NhbGl6YXRpb24ga2V5cyAqL1xuICB0b2dnbGU/OiBib29sZWFuO1xufVxuXG4vKiogVXBkYXRlIGxvY2FsaXphdGlvbiBtZXNzYWdlIGNvbnRlbnQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlTG9jYWxpemF0aW9uQ29udGVudE1lc3NhZ2UgZXh0ZW5kcyBPdHRlck1lc3NhZ2VDb250ZW50PCd1cGRhdGVMb2NhbGl6YXRpb24nPiB7XG4gIC8qKiBMb2NhbGl6YXRpb24ga2V5ICovXG4gIGtleTogc3RyaW5nO1xuICAvKiogTG9jYWxpemF0aW9uIHZhbHVlICovXG4gIHZhbHVlOiBzdHJpbmc7XG4gIC8qKiBMYW5nICovXG4gIGxhbmc/OiBzdHJpbmc7XG59XG5cbi8qKiBSZWxvYWQgbG9jYWxpemF0aW9uIEtleXMgbWVzc2FnZSBjb250ZW50ICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbG9hZExvY2FsaXphdGlvbktleXNDb250ZW50TWVzc2FnZSBleHRlbmRzIE90dGVyTWVzc2FnZUNvbnRlbnQ8J3JlbG9hZExvY2FsaXphdGlvbktleXMnPiB7XG4gIC8qKiBMYW5nICovXG4gIGxhbmc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNUcmFuc2xhdGlvbkRlYWN0aXZhdGlvbkVuYWJsZWRDb250ZW50TWVzc2FnZSBleHRlbmRzIE90dGVyTWVzc2FnZUNvbnRlbnQ8J2lzVHJhbnNsYXRpb25EZWFjdGl2YXRpb25FbmFibGVkJz4ge1xuICBlbmFibGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFRyYW5zbGF0aW9uVmFsdWVzQ29udGVudE1lc3NhZ2UgZXh0ZW5kcyBPdHRlck1lc3NhZ2VDb250ZW50PCdnZXRUcmFuc2xhdGlvblZhbHVlc0NvbnRlbnRNZXNzYWdlJz4ge1xuICB0cmFuc2xhdGlvbnM6IHsgW2xvY2FsaXphdGlvbktleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbnR5cGUgTG9jYWxpemF0aW9uTWVzc2FnZUNvbnRlbnRzID1cbiAgfCBMYW5ndWFnZXNDb250ZW50TWVzc2FnZVxuICB8IFJlbG9hZExvY2FsaXphdGlvbktleXNDb250ZW50TWVzc2FnZVxuICB8IFN3aXRjaExhbmd1YWdlQ29udGVudE1lc3NhZ2VcbiAgfCBMb2NhbGl6YXRpb25zQ29udGVudE1lc3NhZ2VcbiAgfCBEaXNwbGF5TG9jYWxpemF0aW9uS2V5c0NvbnRlbnRNZXNzYWdlXG4gIHwgVXBkYXRlTG9jYWxpemF0aW9uQ29udGVudE1lc3NhZ2VcbiAgfCBJc1RyYW5zbGF0aW9uRGVhY3RpdmF0aW9uRW5hYmxlZENvbnRlbnRNZXNzYWdlXG4gIHwgR2V0VHJhbnNsYXRpb25WYWx1ZXNDb250ZW50TWVzc2FnZTtcblxuLyoqIExpc3Qgb2YgcG9zc2libGUgRGF0YVR5cGVzIGZvciBMb2NhbGl6YXRpb24gbWVzc2FnZXMgKi9cbmV4cG9ydCB0eXBlIExvY2FsaXphdGlvbk1lc3NhZ2VEYXRhVHlwZXMgPSBNZXNzYWdlRGF0YVR5cGVzPExvY2FsaXphdGlvbk1lc3NhZ2VDb250ZW50cz47XG5cbi8qKiBMaXN0IG9mIGFsbCBtZXNzYWdlcyBmb3IgTG9jYWxpemF0aW9uIHB1cnBvc2UgKi9cbmV4cG9ydCB0eXBlIEF2YWlsYWJsZUxvY2FsaXphdGlvbk1lc3NhZ2VDb250ZW50cyA9XG4gIHwgTG9jYWxpemF0aW9uTWVzc2FnZUNvbnRlbnRzXG4gIHwgQ29ubmVjdENvbnRlbnRNZXNzYWdlXG4gIHwgUmVxdWVzdE1lc3NhZ2VzQ29udGVudE1lc3NhZ2U8TG9jYWxpemF0aW9uTWVzc2FnZURhdGFUeXBlcz47XG5cblxuLyoqXG4gKiBDb250ZXh0dWFsaXphdGlvbiBkZXZ0b29scyBleHBvc2VkIGZvciBsb2NhbGl6YXRpb24gaW4gQ01TIGludGVncmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemF0aW9uQ29udGV4dHVhbGl6YXRpb25EZXZ0b29scyB7XG4gIC8qKlxuICAgKiBJcyB0aGUgdHJhbnNsYXRpb24gZGVhY3RpdmF0aW9uIGVuYWJsZWRcbiAgICovXG4gIGlzVHJhbnNsYXRpb25EZWFjdGl2YXRpb25FbmFibGVkKCk6IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBTaG93IGxvY2FsaXphdGlvbiBrZXlzXG4gICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSBlbmZvcmNlZCBieSB0aGUgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqL1xuICBzaG93TG9jYWxpemF0aW9uS2V5czogKHZhbHVlPzogYm9vbGVhbikgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIGdldEN1cnJlbnRMYW5ndWFnZTogKCkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBTd2l0Y2ggdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZVxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgbmV3IGxhbmd1YWdlIHRvIHN3aXRjaCB0b1xuICAgKi9cbiAgc3dpdGNoTGFuZ3VhZ2U6IChsYW5ndWFnZTogc3RyaW5nKSA9PiBQcm9taXNlPHsgcHJldmlvdXM6IHN0cmluZzsgcmVxdWVzdGVkOiBzdHJpbmc7IGN1cnJlbnQ6IHN0cmluZyB9PjtcblxuICAvKipcbiAgICogU2V0dXAgYSBsaXN0ZW5lciBvbiBsYW5ndWFnZSBjaGFuZ2VcbiAgICogQHBhcmFtIGZuIGNhbGxlZCB3aGVuIHRoZSBsYW5ndWFnZSBpcyBjaGFuZ2VkIGluIHRoZSBhcHBcbiAgICovXG4gIG9uTGFuZ3VhZ2VDaGFuZ2U6IChmbjogKGxhbmd1YWdlOiBzdHJpbmcpID0+IGFueSkgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBzcGVjaWZpZWQgbG9jYWxpemF0aW9uIGtleS92YWx1ZXMgZm9yIHRoZSBjdXJyZW50IGxhbmd1YWdlXG4gICAqIEBwYXJhbSBrZXlWYWx1ZXMga2V5L3ZhbHVlcyB0byB1cGRhdGVcbiAgICogQHBhcmFtIGxhbmd1YWdlIGlmIG5vdCBwcm92aWRlZCwgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgdmFsdWVcbiAgICovXG4gIHVwZGF0ZUxvY2FsaXphdGlvbktleXM6IChrZXlWYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGxhbmd1YWdlPzogc3RyaW5nKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUmVsb2FkIGEgbGFuZ3VhZ2UgZnJvbSB0aGUgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3gtdHJhbnNsYXRlL2NvcmUvYmxvYi9tYXN0ZXIvcGFja2FnZXMvY29yZS9saWIvdHJhbnNsYXRlLnNlcnZpY2UudHMjTDQ5MFxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgbGFuZ3VhZ2UgdG8gcmVsb2FkXG4gICAqL1xuICByZWxvYWRMb2NhbGl6YXRpb25LZXlzOiAobGFuZ3VhZ2U/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG59XG4iXX0=
@@ -1,20 +1,14 @@
1
1
  /* eslint-disable no-console */
2
- import { ApplicationRef, Inject, Injectable, Optional } from '@angular/core';
3
- import { lastValueFrom } from 'rxjs';
4
- import { take } from 'rxjs/operators';
5
- import { LocalizationService } from '../tools';
2
+ import { Inject, Injectable, Optional } from '@angular/core';
6
3
  import { OtterLocalizationDevtools } from './localization-devtools.service';
7
4
  import { OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_LOCALIZATION_DEVTOOLS_OPTIONS } from './localization-devtools.token';
8
5
  import * as i0 from "@angular/core";
9
6
  import * as i1 from "./localization-devtools.service";
10
- import * as i2 from "../tools";
11
7
  export class LocalizationDevtoolsConsoleService {
12
8
  /** Name of the Window property to access to the devtools */
13
9
  static { this.windowModuleName = 'localization'; }
14
- constructor(localizationDevtools, localizationService, appRef, options = OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS) {
10
+ constructor(localizationDevtools, options = OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS) {
15
11
  this.localizationDevtools = localizationDevtools;
16
- this.localizationService = localizationService;
17
- this.appRef = appRef;
18
12
  this.options = options;
19
13
  if (this.options.isActivatedOnBootstrap
20
14
  || (this.options.isActivatedOnBootstrapWhenCMSContext
@@ -31,12 +25,17 @@ export class LocalizationDevtoolsConsoleService {
31
25
  windowWithDevtools._OTTER_DEVTOOLS_[LocalizationDevtoolsConsoleService.windowModuleName] = this;
32
26
  console.info(`Otter localization Devtools is now accessible via the _OTTER_DEVTOOLS_.${LocalizationDevtoolsConsoleService.windowModuleName} variable`);
33
27
  }
28
+ /**
29
+ * @inheritdoc
30
+ */
31
+ isTranslationDeactivationEnabled() {
32
+ return this.localizationDevtools.isTranslationDeactivationEnabled();
33
+ }
34
34
  /**
35
35
  * @inheritdoc
36
36
  */
37
37
  showLocalizationKeys(value) {
38
38
  this.localizationDevtools.showLocalizationKeys(value);
39
- this.appRef.tick();
40
39
  }
41
40
  /**
42
41
  * @inheritdoc
@@ -50,8 +49,7 @@ export class LocalizationDevtoolsConsoleService {
50
49
  */
51
50
  async switchLanguage(language) {
52
51
  const previous = this.localizationDevtools.getCurrentLanguage();
53
- await lastValueFrom(this.localizationService.useLanguage(language));
54
- this.appRef.tick();
52
+ await this.localizationDevtools.switchLanguage(language);
55
53
  const current = this.localizationDevtools.getCurrentLanguage();
56
54
  return {
57
55
  requested: language,
@@ -69,28 +67,23 @@ export class LocalizationDevtoolsConsoleService {
69
67
  * @inheritdoc
70
68
  */
71
69
  updateLocalizationKeys(keyValues, language) {
72
- this.localizationService.getTranslateService().setTranslation(language || this.localizationDevtools.getCurrentLanguage(), keyValues, true);
70
+ return this.localizationDevtools.updateLocalizationKeys(keyValues, language);
73
71
  }
74
72
  /**
75
73
  * @inheritdoc
76
74
  */
77
- async reloadLocalizationKeys(language) {
78
- const lang = language || this.localizationDevtools.getCurrentLanguage();
79
- const initialLocs = await lastValueFrom(this.localizationService
80
- .getTranslateService()
81
- .reloadLang(lang)
82
- .pipe(take(1)));
83
- return this.updateLocalizationKeys(initialLocs, lang);
75
+ reloadLocalizationKeys(language) {
76
+ return this.localizationDevtools.reloadLocalizationKeys(language);
84
77
  }
85
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsConsoleService, deps: [{ token: i1.OtterLocalizationDevtools }, { token: i2.LocalizationService }, { token: i0.ApplicationRef }, { token: OTTER_LOCALIZATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
86
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsConsoleService }); }
78
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsConsoleService, deps: [{ token: i1.OtterLocalizationDevtools }, { token: OTTER_LOCALIZATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
79
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsConsoleService }); }
87
80
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsConsoleService, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsConsoleService, decorators: [{
89
82
  type: Injectable
90
- }], ctorParameters: () => [{ type: i1.OtterLocalizationDevtools }, { type: i2.LocalizationService }, { type: i0.ApplicationRef }, { type: undefined, decorators: [{
83
+ }], ctorParameters: () => [{ type: i1.OtterLocalizationDevtools }, { type: undefined, decorators: [{
91
84
  type: Optional
92
85
  }, {
93
86
  type: Inject,
94
87
  args: [OTTER_LOCALIZATION_DEVTOOLS_OPTIONS]
95
88
  }] }] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWRldnRvb2xzLmNvbnNvbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvbG9jYWxpemF0aW9uLWRldnRvb2xzLmNvbnNvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBR2pJLE1BQU0sT0FBTyxrQ0FBa0M7SUFFN0MsNERBQTREO2FBQ3JDLHFCQUFnQixHQUFHLGNBQWMsQUFBakIsQ0FBa0I7SUFFekQsWUFDbUIsb0JBQStDLEVBQy9DLG1CQUF3QyxFQUN4QyxNQUFzQixFQUNtQyxVQUE4QywyQ0FBMkM7UUFIbEoseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQjtRQUMvQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ21DLFlBQU8sR0FBUCxPQUFPLENBQWtGO1FBRW5LLElBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0I7ZUFDaEMsQ0FDRCxJQUFJLENBQUMsT0FBTyxDQUFDLG9DQUFvQzttQkFDN0MsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFvQyxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQzdFLEVBQ0QsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFFBQVE7UUFDYixNQUFNLGtCQUFrQixHQUF1QixNQUFNLENBQUM7UUFDdEQsZ0RBQWdEO1FBQ2hELGtCQUFrQixDQUFDLGdCQUFnQixLQUFLLEVBQUUsQ0FBQztRQUMzQyxnREFBZ0Q7UUFDaEQsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFaEcsT0FBTyxDQUFDLElBQUksQ0FBQywwRUFBMEUsa0NBQWtDLENBQUMsZ0JBQWdCLFdBQVcsQ0FBQyxDQUFDO0lBQ3pKLENBQUM7SUFFRDs7T0FFRztJQUNJLG9CQUFvQixDQUFDLEtBQWU7UUFDekMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksa0JBQWtCO1FBQ3ZCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBZ0I7UUFDMUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDaEUsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDL0QsT0FBTztZQUNMLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFFBQVE7WUFDUixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLEVBQTZCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7T0FFRztJQUNJLHNCQUFzQixDQUFDLFNBQW9DLEVBQUUsUUFBaUI7UUFDbkYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLENBQUMsY0FBYyxDQUMzRCxRQUFRLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFLEVBQzFELFNBQVMsRUFDVCxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxRQUFpQjtRQUNuRCxNQUFNLElBQUksR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDeEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxhQUFhLENBQ3JDLElBQUksQ0FBQyxtQkFBbUI7YUFDckIsbUJBQW1CLEVBQUU7YUFDckIsVUFBVSxDQUFDLElBQUksQ0FBQzthQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztpSUE5RlUsa0NBQWtDLDRIQVN2QixtQ0FBbUM7cUlBVDlDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFEOUMsVUFBVTs7MEJBVU4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0dWFsaXphdGlvbkRhdGFzZXQsIERldnRvb2xzU2VydmljZUludGVyZmFjZSwgV2luZG93V2l0aERldnRvb2xzIH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi90b29scyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Db250ZXh0dWFsaXphdGlvbkRldnRvb2xzLCBMb2NhbGl6YXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24tZGV2a2l0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBPdHRlckxvY2FsaXphdGlvbkRldnRvb2xzIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24tZGV2dG9vbHMuc2VydmljZSc7XG5pbXBvcnQgeyBPVFRFUl9MT0NBTElaQVRJT05fREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLCBPVFRFUl9MT0NBTElaQVRJT05fREVWVE9PTFNfT1BUSU9OUyB9IGZyb20gJy4vbG9jYWxpemF0aW9uLWRldnRvb2xzLnRva2VuJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvbkRldnRvb2xzQ29uc29sZVNlcnZpY2UgaW1wbGVtZW50cyBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2UsIExvY2FsaXphdGlvbkNvbnRleHR1YWxpemF0aW9uRGV2dG9vbHMge1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBXaW5kb3cgcHJvcGVydHkgdG8gYWNjZXNzIHRvIHRoZSBkZXZ0b29scyAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHdpbmRvd01vZHVsZU5hbWUgPSAnbG9jYWxpemF0aW9uJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsaXphdGlvbkRldnRvb2xzOiBPdHRlckxvY2FsaXphdGlvbkRldnRvb2xzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPVFRFUl9MT0NBTElaQVRJT05fREVWVE9PTFNfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBMb2NhbGl6YXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zID0gT1RURVJfTE9DQUxJWkFUSU9OX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OU1xuICApIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLm9wdGlvbnMuaXNBY3RpdmF0ZWRPbkJvb3RzdHJhcFxuICAgICAgfHwgKFxuICAgICAgICB0aGlzLm9wdGlvbnMuaXNBY3RpdmF0ZWRPbkJvb3RzdHJhcFdoZW5DTVNDb250ZXh0XG4gICAgICAgICYmIChkb2N1bWVudC5ib2R5LmRhdGFzZXQgYXMgQ29udGV4dHVhbGl6YXRpb25EYXRhc2V0KS5jbXNjb250ZXh0ID09PSAndHJ1ZSdcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGFjdGl2YXRlKCkge1xuICAgIGNvbnN0IHdpbmRvd1dpdGhEZXZ0b29sczogV2luZG93V2l0aERldnRvb2xzID0gd2luZG93O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgIHdpbmRvd1dpdGhEZXZ0b29scy5fT1RURVJfREVWVE9PTFNfIHx8PSB7fTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICB3aW5kb3dXaXRoRGV2dG9vbHMuX09UVEVSX0RFVlRPT0xTX1tMb2NhbGl6YXRpb25EZXZ0b29sc0NvbnNvbGVTZXJ2aWNlLndpbmRvd01vZHVsZU5hbWVdID0gdGhpcztcblxuICAgIGNvbnNvbGUuaW5mbyhgT3R0ZXIgbG9jYWxpemF0aW9uIERldnRvb2xzIGlzIG5vdyBhY2Nlc3NpYmxlIHZpYSB0aGUgX09UVEVSX0RFVlRPT0xTXy4ke0xvY2FsaXphdGlvbkRldnRvb2xzQ29uc29sZVNlcnZpY2Uud2luZG93TW9kdWxlTmFtZX0gdmFyaWFibGVgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgcHVibGljIHNob3dMb2NhbGl6YXRpb25LZXlzKHZhbHVlPzogYm9vbGVhbik6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvY2FsaXphdGlvbkRldnRvb2xzLnNob3dMb2NhbGl6YXRpb25LZXlzKHZhbHVlKTtcbiAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50TGFuZ3VhZ2UoKTogc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjdXJyZW50TGFuZ3VhZ2UgPSB0aGlzLmxvY2FsaXphdGlvbkRldnRvb2xzLmdldEN1cnJlbnRMYW5ndWFnZSgpO1xuICAgIHJldHVybiBjdXJyZW50TGFuZ3VhZ2U7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzd2l0Y2hMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogUHJvbWlzZTx7IHByZXZpb3VzOiBzdHJpbmc7IHJlcXVlc3RlZDogc3RyaW5nOyBjdXJyZW50OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5sb2NhbGl6YXRpb25EZXZ0b29scy5nZXRDdXJyZW50TGFuZ3VhZ2UoKTtcbiAgICBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMubG9jYWxpemF0aW9uU2VydmljZS51c2VMYW5ndWFnZShsYW5ndWFnZSkpO1xuICAgIHRoaXMuYXBwUmVmLnRpY2soKTtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5sb2NhbGl6YXRpb25EZXZ0b29scy5nZXRDdXJyZW50TGFuZ3VhZ2UoKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVxdWVzdGVkOiBsYW5ndWFnZSxcbiAgICAgIHByZXZpb3VzLFxuICAgICAgY3VycmVudFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyBvbkxhbmd1YWdlQ2hhbmdlKGZuOiAobGFuZ3VhZ2U6IHN0cmluZykgPT4gYW55KTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25EZXZ0b29scy5vbkxhbmd1YWdlQ2hhbmdlKGZuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZUxvY2FsaXphdGlvbktleXMoa2V5VmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBsYW5ndWFnZT86IHN0cmluZyk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuZ2V0VHJhbnNsYXRlU2VydmljZSgpLnNldFRyYW5zbGF0aW9uKFxuICAgICAgbGFuZ3VhZ2UgfHwgdGhpcy5sb2NhbGl6YXRpb25EZXZ0b29scy5nZXRDdXJyZW50TGFuZ3VhZ2UoKSxcbiAgICAgIGtleVZhbHVlcyxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVsb2FkTG9jYWxpemF0aW9uS2V5cyhsYW5ndWFnZT86IHN0cmluZykge1xuICAgIGNvbnN0IGxhbmcgPSBsYW5ndWFnZSB8fCB0aGlzLmxvY2FsaXphdGlvbkRldnRvb2xzLmdldEN1cnJlbnRMYW5ndWFnZSgpO1xuICAgIGNvbnN0IGluaXRpYWxMb2NzID0gYXdhaXQgbGFzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMubG9jYWxpemF0aW9uU2VydmljZVxuICAgICAgICAuZ2V0VHJhbnNsYXRlU2VydmljZSgpXG4gICAgICAgIC5yZWxvYWRMYW5nKGxhbmcpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVMb2NhbGl6YXRpb25LZXlzKGluaXRpYWxMb2NzLCBsYW5nKTtcbiAgfVxufVxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWRldnRvb2xzLmNvbnNvbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvbG9jYWxpemF0aW9uLWRldnRvb2xzLmNvbnNvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFHakksTUFBTSxPQUFPLGtDQUFrQztJQUU3Qyw0REFBNEQ7YUFDckMscUJBQWdCLEdBQUcsY0FBYyxBQUFqQixDQUFrQjtJQUV6RCxZQUNtQixvQkFBK0MsRUFDVSxVQUE4QywyQ0FBMkM7UUFEbEoseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQjtRQUNVLFlBQU8sR0FBUCxPQUFPLENBQWtGO1FBRW5LLElBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0I7ZUFDaEMsQ0FDRCxJQUFJLENBQUMsT0FBTyxDQUFDLG9DQUFvQzttQkFDN0MsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFvQyxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQzdFLEVBQ0QsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFFBQVE7UUFDYixNQUFNLGtCQUFrQixHQUF1QixNQUFNLENBQUM7UUFDdEQsZ0RBQWdEO1FBQ2hELGtCQUFrQixDQUFDLGdCQUFnQixLQUFLLEVBQUUsQ0FBQztRQUMzQyxnREFBZ0Q7UUFDaEQsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFaEcsT0FBTyxDQUFDLElBQUksQ0FBQywwRUFBMEUsa0NBQWtDLENBQUMsZ0JBQWdCLFdBQVcsQ0FBQyxDQUFDO0lBQ3pKLENBQUM7SUFFRDs7T0FFRztJQUNJLGdDQUFnQztRQUNyQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7T0FFRztJQUNJLG9CQUFvQixDQUFDLEtBQWU7UUFDekMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFrQjtRQUN2QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN2RSxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQWdCO1FBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMvRCxPQUFPO1lBQ0wsU0FBUyxFQUFFLFFBQVE7WUFDbkIsUUFBUTtZQUNSLE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsRUFBNkI7UUFDbkQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksc0JBQXNCLENBQUMsU0FBb0MsRUFBRSxRQUFpQjtRQUNuRixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ksc0JBQXNCLENBQUMsUUFBaUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEUsQ0FBQztpSUF0RlUsa0NBQWtDLDJEQU92QixtQ0FBbUM7cUlBUDlDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFEOUMsVUFBVTs7MEJBUU4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHR1YWxpemF0aW9uRGF0YXNldCwgRGV2dG9vbHNTZXJ2aWNlSW50ZXJmYWNlLCBXaW5kb3dXaXRoRGV2dG9vbHMgfSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Db250ZXh0dWFsaXphdGlvbkRldnRvb2xzLCBMb2NhbGl6YXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24tZGV2a2l0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBPdHRlckxvY2FsaXphdGlvbkRldnRvb2xzIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24tZGV2dG9vbHMuc2VydmljZSc7XG5pbXBvcnQgeyBPVFRFUl9MT0NBTElaQVRJT05fREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLCBPVFRFUl9MT0NBTElaQVRJT05fREVWVE9PTFNfT1BUSU9OUyB9IGZyb20gJy4vbG9jYWxpemF0aW9uLWRldnRvb2xzLnRva2VuJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvbkRldnRvb2xzQ29uc29sZVNlcnZpY2UgaW1wbGVtZW50cyBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2UsIExvY2FsaXphdGlvbkNvbnRleHR1YWxpemF0aW9uRGV2dG9vbHMge1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBXaW5kb3cgcHJvcGVydHkgdG8gYWNjZXNzIHRvIHRoZSBkZXZ0b29scyAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHdpbmRvd01vZHVsZU5hbWUgPSAnbG9jYWxpemF0aW9uJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsaXphdGlvbkRldnRvb2xzOiBPdHRlckxvY2FsaXphdGlvbkRldnRvb2xzLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT1RURVJfTE9DQUxJWkFUSU9OX0RFVlRPT0xTX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogTG9jYWxpemF0aW9uRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyA9IE9UVEVSX0xPQ0FMSVpBVElPTl9ERVZUT09MU19ERUZBVUxUX09QVElPTlNcbiAgKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXBcbiAgICAgIHx8IChcbiAgICAgICAgdGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXBXaGVuQ01TQ29udGV4dFxuICAgICAgICAmJiAoZG9jdW1lbnQuYm9keS5kYXRhc2V0IGFzIENvbnRleHR1YWxpemF0aW9uRGF0YXNldCkuY21zY29udGV4dCA9PT0gJ3RydWUnXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBhY3RpdmF0ZSgpIHtcbiAgICBjb25zdCB3aW5kb3dXaXRoRGV2dG9vbHM6IFdpbmRvd1dpdGhEZXZ0b29scyA9IHdpbmRvdztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICB3aW5kb3dXaXRoRGV2dG9vbHMuX09UVEVSX0RFVlRPT0xTXyB8fD0ge307XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgd2luZG93V2l0aERldnRvb2xzLl9PVFRFUl9ERVZUT09MU19bTG9jYWxpemF0aW9uRGV2dG9vbHNDb25zb2xlU2VydmljZS53aW5kb3dNb2R1bGVOYW1lXSA9IHRoaXM7XG5cbiAgICBjb25zb2xlLmluZm8oYE90dGVyIGxvY2FsaXphdGlvbiBEZXZ0b29scyBpcyBub3cgYWNjZXNzaWJsZSB2aWEgdGhlIF9PVFRFUl9ERVZUT09MU18uJHtMb2NhbGl6YXRpb25EZXZ0b29sc0NvbnNvbGVTZXJ2aWNlLndpbmRvd01vZHVsZU5hbWV9IHZhcmlhYmxlYCk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyBpc1RyYW5zbGF0aW9uRGVhY3RpdmF0aW9uRW5hYmxlZCgpOiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxpemF0aW9uRGV2dG9vbHMuaXNUcmFuc2xhdGlvbkRlYWN0aXZhdGlvbkVuYWJsZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgcHVibGljIHNob3dMb2NhbGl6YXRpb25LZXlzKHZhbHVlPzogYm9vbGVhbik6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvY2FsaXphdGlvbkRldnRvb2xzLnNob3dMb2NhbGl6YXRpb25LZXlzKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRMYW5ndWFnZSgpOiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IHRoaXMubG9jYWxpemF0aW9uRGV2dG9vbHMuZ2V0Q3VycmVudExhbmd1YWdlKCk7XG4gICAgcmV0dXJuIGN1cnJlbnRMYW5ndWFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHN3aXRjaExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpOiBQcm9taXNlPHsgcHJldmlvdXM6IHN0cmluZzsgcmVxdWVzdGVkOiBzdHJpbmc7IGN1cnJlbnQ6IHN0cmluZyB9PiB7XG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLmxvY2FsaXphdGlvbkRldnRvb2xzLmdldEN1cnJlbnRMYW5ndWFnZSgpO1xuICAgIGF3YWl0IHRoaXMubG9jYWxpemF0aW9uRGV2dG9vbHMuc3dpdGNoTGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmxvY2FsaXphdGlvbkRldnRvb2xzLmdldEN1cnJlbnRMYW5ndWFnZSgpO1xuICAgIHJldHVybiB7XG4gICAgICByZXF1ZXN0ZWQ6IGxhbmd1YWdlLFxuICAgICAgcHJldmlvdXMsXG4gICAgICBjdXJyZW50XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgcHVibGljIG9uTGFuZ3VhZ2VDaGFuZ2UoZm46IChsYW5ndWFnZTogc3RyaW5nKSA9PiBhbnkpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsaXphdGlvbkRldnRvb2xzLm9uTGFuZ3VhZ2VDaGFuZ2UoZm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlTG9jYWxpemF0aW9uS2V5cyhrZXlWYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGxhbmd1YWdlPzogc3RyaW5nKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsaXphdGlvbkRldnRvb2xzLnVwZGF0ZUxvY2FsaXphdGlvbktleXMoa2V5VmFsdWVzLCBsYW5ndWFnZSk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyByZWxvYWRMb2NhbGl6YXRpb25LZXlzKGxhbmd1YWdlPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxpemF0aW9uRGV2dG9vbHMucmVsb2FkTG9jYWxpemF0aW9uS2V5cyhsYW5ndWFnZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,25 +1,71 @@
1
1
  import { Inject, Injectable, Optional } from '@angular/core';
2
- import { filterMessageContent } from '@o3r/core';
2
+ import { filterMessageContent, sendOtterMessage } from '@o3r/core';
3
3
  import { LoggerService } from '@o3r/logger';
4
- import { fromEvent, Subscription } from 'rxjs';
4
+ import { firstValueFrom, fromEvent, Subscription } from 'rxjs';
5
+ import { LocalizationService } from '../tools';
5
6
  import { OtterLocalizationDevtools } from './localization-devtools.service';
6
7
  import { OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_LOCALIZATION_DEVTOOLS_OPTIONS } from './localization-devtools.token';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@o3r/logger";
9
10
  import * as i2 from "./localization-devtools.service";
11
+ import * as i3 from "../tools";
10
12
  const isLocalizationMessage = (message) => {
11
- return message && message.dataType === 'displayLocalizationKeys';
13
+ return message && (message.dataType === 'displayLocalizationKeys'
14
+ || message.dataType === 'languages'
15
+ || message.dataType === 'switchLanguage'
16
+ || message.dataType === 'localizations'
17
+ || message.dataType === 'updateLocalization'
18
+ || message.dataType === 'requestMessages'
19
+ || message.dataType === 'connect'
20
+ || message.dataType === 'reloadLocalizationKeys'
21
+ || message.dataType === 'isTranslationDeactivationEnabled'
22
+ || message.dataType === 'getTranslationValuesContentMessage');
12
23
  };
13
24
  export class LocalizationDevtoolsMessageService {
14
- constructor(logger, localizationDevTools, options = OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS) {
25
+ constructor(logger, localizationDevTools, localizationService, options = OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS) {
15
26
  this.logger = logger;
16
27
  this.localizationDevTools = localizationDevTools;
28
+ this.localizationService = localizationService;
17
29
  this.options = options;
18
30
  this.subscriptions = new Subscription();
31
+ this.sendMessage = (sendOtterMessage);
32
+ this.options = {
33
+ ...OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS,
34
+ ...this.options
35
+ };
19
36
  if (this.options.isActivatedOnBootstrap) {
20
37
  this.activate();
21
38
  }
22
39
  }
40
+ async sendLocalizationsMetadata() {
41
+ const metadata = await (await fetch(this.options.metadataFilePath)).json();
42
+ this.sendMessage('localizations', {
43
+ localizations: metadata
44
+ });
45
+ }
46
+ /**
47
+ * Function to trigger a re-send a requested messages to the Otter Chrome DevTools extension
48
+ * @param only restricted list of messages to re-send
49
+ */
50
+ async handleReEmitRequest(only) {
51
+ if (!only || only.includes('localizations')) {
52
+ void this.sendLocalizationsMetadata();
53
+ }
54
+ if (!only || only.includes('switchLanguage')) {
55
+ this.sendMessage('switchLanguage', { language: this.localizationDevTools.getCurrentLanguage() });
56
+ }
57
+ if (!only || only.includes('languages')) {
58
+ this.sendMessage('languages', { languages: this.localizationService.getLanguages() });
59
+ }
60
+ if (!only || only.includes('getTranslationValuesContentMessage')) {
61
+ this.sendMessage('getTranslationValuesContentMessage', {
62
+ translations: await firstValueFrom(this.localizationService.getTranslateService().getTranslation(this.localizationService.getCurrentLanguage()))
63
+ });
64
+ }
65
+ if (!only || only.includes('isTranslationDeactivationEnabled')) {
66
+ this.sendMessage('isTranslationDeactivationEnabled', { enabled: this.localizationService.isTranslationDeactivationEnabled() });
67
+ }
68
+ }
23
69
  /**
24
70
  * Function to handle the incoming messages from Otter Chrome DevTools extension
25
71
  * @param event Event coming from the Otter Chrome DevTools extension
@@ -36,6 +82,24 @@ export class LocalizationDevtoolsMessageService {
36
82
  this.localizationDevTools.showLocalizationKeys(message.toggle);
37
83
  break;
38
84
  }
85
+ case 'requestMessages': {
86
+ void this.handleReEmitRequest(message.only);
87
+ break;
88
+ }
89
+ case 'switchLanguage': {
90
+ void this.localizationDevTools.switchLanguage(message.language);
91
+ break;
92
+ }
93
+ case 'updateLocalization': {
94
+ void this.localizationDevTools.updateLocalizationKeys({
95
+ [message.key]: message.value
96
+ }, message.lang);
97
+ break;
98
+ }
99
+ case 'reloadLocalizationKeys': {
100
+ void this.localizationDevTools.reloadLocalizationKeys(message.lang);
101
+ break;
102
+ }
39
103
  default: {
40
104
  this.logger.warn('Message ignored by the localization service', message);
41
105
  }
@@ -55,15 +119,15 @@ export class LocalizationDevtoolsMessageService {
55
119
  ngOnDestroy() {
56
120
  this.subscriptions.unsubscribe();
57
121
  }
58
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: i2.OtterLocalizationDevtools }, { token: OTTER_LOCALIZATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
59
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsMessageService }); }
122
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: i2.OtterLocalizationDevtools }, { token: i3.LocalizationService }, { token: OTTER_LOCALIZATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
123
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsMessageService }); }
60
124
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsMessageService, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsMessageService, decorators: [{
62
126
  type: Injectable
63
- }], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.OtterLocalizationDevtools }, { type: undefined, decorators: [{
127
+ }], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.OtterLocalizationDevtools }, { type: i3.LocalizationService }, { type: undefined, decorators: [{
64
128
  type: Optional
65
129
  }, {
66
130
  type: Inject,
67
131
  args: [OTTER_LOCALIZATION_DEVTOOLS_OPTIONS]
68
132
  }] }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvbG9jYWxpemF0aW9uLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDJDQUEyQyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFakksTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE9BQVksRUFBbUQsRUFBRTtJQUM5RixPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLHlCQUF5QixDQUFDO0FBQ25FLENBQUMsQ0FBQztBQUdGLE1BQU0sT0FBTyxrQ0FBa0M7SUFJN0MsWUFDcUIsTUFBcUIsRUFDckIsb0JBQStDLEVBQ1EsVUFBOEMsMkNBQTJDO1FBRmhKLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQjtRQUNRLFlBQU8sR0FBUCxPQUFPLENBQWtGO1FBTHBKLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU9sRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssWUFBWSxDQUFDLE9BQTZDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTNFLFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDZixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQy9ELE1BQU07WUFDUixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw2Q0FBNkMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMzRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWE7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3RILENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7aUlBdERVLGtDQUFrQyx3RkFPdkIsbUNBQW1DO3FJQVA5QyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVU7OzBCQVFOLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXJNZXNzYWdlQ29udGVudCB9IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF2YWlsYWJsZUxvY2FsaXphdGlvbk1lc3NhZ2VDb250ZW50cywgTG9jYWxpemF0aW9uRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyB9IGZyb20gJy4vbG9jYWxpemF0aW9uLWRldmtpdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3R0ZXJMb2NhbGl6YXRpb25EZXZ0b29scyB9IGZyb20gJy4vbG9jYWxpemF0aW9uLWRldnRvb2xzLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1RURVJfTE9DQUxJWkFUSU9OX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUywgT1RURVJfTE9DQUxJWkFUSU9OX0RFVlRPT0xTX09QVElPTlMgfSBmcm9tICcuL2xvY2FsaXphdGlvbi1kZXZ0b29scy50b2tlbic7XG5cbmNvbnN0IGlzTG9jYWxpemF0aW9uTWVzc2FnZSA9IChtZXNzYWdlOiBhbnkpOiBtZXNzYWdlIGlzIEF2YWlsYWJsZUxvY2FsaXphdGlvbk1lc3NhZ2VDb250ZW50cyA9PiB7XG4gIHJldHVybiBtZXNzYWdlICYmIG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdkaXNwbGF5TG9jYWxpemF0aW9uS2V5cyc7XG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uRGV2dG9vbHNNZXNzYWdlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsaXphdGlvbkRldlRvb2xzOiBPdHRlckxvY2FsaXphdGlvbkRldnRvb2xzLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT1RURVJfTE9DQUxJWkFUSU9OX0RFVlRPT0xTX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogTG9jYWxpemF0aW9uRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyA9IE9UVEVSX0xPQ0FMSVpBVElPTl9ERVZUT09MU19ERUZBVUxUX09QVElPTlMpIHtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNBY3RpdmF0ZWRPbkJvb3RzdHJhcCkge1xuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBoYW5kbGUgdGhlIGluY29taW5nIG1lc3NhZ2VzIGZyb20gT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gZXZlbnQgRXZlbnQgY29taW5nIGZyb20gdGhlIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRXZlbnRzKG1lc3NhZ2U6IEF2YWlsYWJsZUxvY2FsaXphdGlvbk1lc3NhZ2VDb250ZW50cykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdNZXNzYWdlIGhhbmRsaW5nIGJ5IHRoZSBsb2NhbGl6YXRpb24gc2VydmljZScsIG1lc3NhZ2UpO1xuXG4gICAgc3dpdGNoIChtZXNzYWdlLmRhdGFUeXBlKSB7XG4gICAgICBjYXNlICdjb25uZWN0Jzoge1xuICAgICAgICB0aGlzLmNvbm5lY3RQbHVnaW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdkaXNwbGF5TG9jYWxpemF0aW9uS2V5cyc6IHtcbiAgICAgICAgdGhpcy5sb2NhbGl6YXRpb25EZXZUb29scy5zaG93TG9jYWxpemF0aW9uS2V5cyhtZXNzYWdlLnRvZ2dsZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdNZXNzYWdlIGlnbm9yZWQgYnkgdGhlIGxvY2FsaXphdGlvbiBzZXJ2aWNlJywgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNvbm5lY3QgdGhlIHBsdWdpbiB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKi9cbiAgcHJpdmF0ZSBjb25uZWN0UGx1Z2luKCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdPdHRlciBEZXZUb29scyBpcyBwbHVnZ2VkIHRvIGxvY2FsaXphdGlvbiBzZXJ2aWNlIG9mIHRoZSBhcHBsaWNhdGlvbicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21lc3NhZ2UnKS5waXBlKGZpbHRlck1lc3NhZ2VDb250ZW50KGlzTG9jYWxpemF0aW9uTWVzc2FnZSkpLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5oYW5kbGVFdmVudHMoZSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvbG9jYWxpemF0aW9uLWRldnRvb2xzLm1lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7QUFFakksTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE9BQVksRUFBbUQsRUFBRTtJQUM5RixPQUFPLE9BQU8sSUFBSSxDQUNoQixPQUFPLENBQUMsUUFBUSxLQUFLLHlCQUF5QjtXQUMzQyxPQUFPLENBQUMsUUFBUSxLQUFLLFdBQVc7V0FDaEMsT0FBTyxDQUFDLFFBQVEsS0FBSyxnQkFBZ0I7V0FDckMsT0FBTyxDQUFDLFFBQVEsS0FBSyxlQUFlO1dBQ3BDLE9BQU8sQ0FBQyxRQUFRLEtBQUssb0JBQW9CO1dBQ3pDLE9BQU8sQ0FBQyxRQUFRLEtBQUssaUJBQWlCO1dBQ3RDLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUztXQUM5QixPQUFPLENBQUMsUUFBUSxLQUFLLHdCQUF3QjtXQUM3QyxPQUFPLENBQUMsUUFBUSxLQUFLLGtDQUFrQztXQUN2RCxPQUFPLENBQUMsUUFBUSxLQUFLLG9DQUFvQyxDQUM3RCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGtDQUFrQztJQU03QyxZQUNtQixNQUFxQixFQUNyQixvQkFBK0MsRUFDL0MsbUJBQXdDLEVBQ2lCLFVBQThDLDJDQUEyQztRQUhsSixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBMkI7UUFDL0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUNpQixZQUFPLEdBQVAsT0FBTyxDQUFrRjtRQVJwSixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkMsZ0JBQVcsR0FBRyxDQUFBLGdCQUFzRCxDQUFBLENBQUM7UUFRcEYsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsMkNBQTJDO1lBQzlDLEdBQUcsSUFBSSxDQUFDLE9BQU87U0FDaEIsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyx5QkFBeUI7UUFDckMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNFLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFO1lBQ2hDLGFBQWEsRUFBRSxRQUFRO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBcUM7UUFDckUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDNUMsS0FBSyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLG9DQUFvQyxDQUFDLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLG9DQUFvQyxFQUFFO2dCQUNyRCxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7YUFDakosQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQ0FBa0MsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0NBQWdDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakksQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssWUFBWSxDQUFDLE9BQTZDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTNFLFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDZixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQy9ELE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDdEIsS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDaEUsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLG9CQUFvQixDQUFDLENBQUMsQ0FBQztnQkFDMUIsS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUM7b0JBQ3BELENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLO2lCQUM3QixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakIsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLHdCQUF3QixDQUFDLENBQUMsQ0FBQztnQkFDOUIsS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwRSxNQUFNO1lBQ1IsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkNBQTZDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDM0UsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN0SCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNYLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO2lJQTlHVSxrQ0FBa0MsMkhBVXZCLG1DQUFtQztxSUFWOUMsa0NBQWtDOzsyRkFBbEMsa0NBQWtDO2tCQUQ5QyxVQUFVOzswQkFXTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyTWVzc2FnZUNvbnRlbnQsIHNlbmRPdHRlck1lc3NhZ2UgfSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL3Rvb2xzJztcbmltcG9ydCB7IHR5cGUgQXZhaWxhYmxlTG9jYWxpemF0aW9uTWVzc2FnZUNvbnRlbnRzLCBMb2NhbGl6YXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zLCB0eXBlIExvY2FsaXphdGlvbk1lc3NhZ2VEYXRhVHlwZXMgfSBmcm9tICcuL2xvY2FsaXphdGlvbi1kZXZraXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE90dGVyTG9jYWxpemF0aW9uRGV2dG9vbHMgfSBmcm9tICcuL2xvY2FsaXphdGlvbi1kZXZ0b29scy5zZXJ2aWNlJztcbmltcG9ydCB7IE9UVEVSX0xPQ0FMSVpBVElPTl9ERVZUT09MU19ERUZBVUxUX09QVElPTlMsIE9UVEVSX0xPQ0FMSVpBVElPTl9ERVZUT09MU19PUFRJT05TIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24tZGV2dG9vbHMudG9rZW4nO1xuXG5jb25zdCBpc0xvY2FsaXphdGlvbk1lc3NhZ2UgPSAobWVzc2FnZTogYW55KTogbWVzc2FnZSBpcyBBdmFpbGFibGVMb2NhbGl6YXRpb25NZXNzYWdlQ29udGVudHMgPT4ge1xuICByZXR1cm4gbWVzc2FnZSAmJiAoXG4gICAgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ2Rpc3BsYXlMb2NhbGl6YXRpb25LZXlzJ1xuICAgIHx8IG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdsYW5ndWFnZXMnXG4gICAgfHwgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ3N3aXRjaExhbmd1YWdlJ1xuICAgIHx8IG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdsb2NhbGl6YXRpb25zJ1xuICAgIHx8IG1lc3NhZ2UuZGF0YVR5cGUgPT09ICd1cGRhdGVMb2NhbGl6YXRpb24nXG4gICAgfHwgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ3JlcXVlc3RNZXNzYWdlcydcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAnY29ubmVjdCdcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAncmVsb2FkTG9jYWxpemF0aW9uS2V5cydcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAnaXNUcmFuc2xhdGlvbkRlYWN0aXZhdGlvbkVuYWJsZWQnXG4gICAgfHwgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ2dldFRyYW5zbGF0aW9uVmFsdWVzQ29udGVudE1lc3NhZ2UnXG4gICk7XG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uRGV2dG9vbHNNZXNzYWdlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VuZE1lc3NhZ2UgPSBzZW5kT3R0ZXJNZXNzYWdlPEF2YWlsYWJsZUxvY2FsaXphdGlvbk1lc3NhZ2VDb250ZW50cz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGl6YXRpb25EZXZUb29sczogT3R0ZXJMb2NhbGl6YXRpb25EZXZ0b29scyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPVFRFUl9MT0NBTElaQVRJT05fREVWVE9PTFNfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBMb2NhbGl6YXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zID0gT1RURVJfTE9DQUxJWkFUSU9OX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OU1xuICApIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi5PVFRFUl9MT0NBTElaQVRJT05fREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICAgICAgLi4udGhpcy5vcHRpb25zXG4gICAgfTtcbiAgICBpZiAodGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlbmRMb2NhbGl6YXRpb25zTWV0YWRhdGEoKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCAoYXdhaXQgZmV0Y2godGhpcy5vcHRpb25zLm1ldGFkYXRhRmlsZVBhdGgpKS5qc29uKCk7XG4gICAgdGhpcy5zZW5kTWVzc2FnZSgnbG9jYWxpemF0aW9ucycsIHtcbiAgICAgIGxvY2FsaXphdGlvbnM6IG1ldGFkYXRhXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gdHJpZ2dlciBhIHJlLXNlbmQgYSByZXF1ZXN0ZWQgbWVzc2FnZXMgdG8gdGhlIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG9ubHkgcmVzdHJpY3RlZCBsaXN0IG9mIG1lc3NhZ2VzIHRvIHJlLXNlbmRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlUmVFbWl0UmVxdWVzdChvbmx5PzogTG9jYWxpemF0aW9uTWVzc2FnZURhdGFUeXBlc1tdKSB7XG4gICAgaWYgKCFvbmx5IHx8IG9ubHkuaW5jbHVkZXMoJ2xvY2FsaXphdGlvbnMnKSkge1xuICAgICAgdm9pZCB0aGlzLnNlbmRMb2NhbGl6YXRpb25zTWV0YWRhdGEoKTtcbiAgICB9XG4gICAgaWYgKCFvbmx5IHx8IG9ubHkuaW5jbHVkZXMoJ3N3aXRjaExhbmd1YWdlJykpIHtcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ3N3aXRjaExhbmd1YWdlJywgeyBsYW5ndWFnZTogdGhpcy5sb2NhbGl6YXRpb25EZXZUb29scy5nZXRDdXJyZW50TGFuZ3VhZ2UoKSB9KTtcbiAgICB9XG4gICAgaWYgKCFvbmx5IHx8IG9ubHkuaW5jbHVkZXMoJ2xhbmd1YWdlcycpKSB7XG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKCdsYW5ndWFnZXMnLCB7IGxhbmd1YWdlczogdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldExhbmd1YWdlcygpIH0pO1xuICAgIH1cbiAgICBpZiAoIW9ubHkgfHwgb25seS5pbmNsdWRlcygnZ2V0VHJhbnNsYXRpb25WYWx1ZXNDb250ZW50TWVzc2FnZScpKSB7XG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKCdnZXRUcmFuc2xhdGlvblZhbHVlc0NvbnRlbnRNZXNzYWdlJywge1xuICAgICAgICB0cmFuc2xhdGlvbnM6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5nZXRUcmFuc2xhdGVTZXJ2aWNlKCkuZ2V0VHJhbnNsYXRpb24odGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpKSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoIW9ubHkgfHwgb25seS5pbmNsdWRlcygnaXNUcmFuc2xhdGlvbkRlYWN0aXZhdGlvbkVuYWJsZWQnKSkge1xuICAgICAgdGhpcy5zZW5kTWVzc2FnZSgnaXNUcmFuc2xhdGlvbkRlYWN0aXZhdGlvbkVuYWJsZWQnLCB7IGVuYWJsZWQ6IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pc1RyYW5zbGF0aW9uRGVhY3RpdmF0aW9uRW5hYmxlZCgpIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBoYW5kbGUgdGhlIGluY29taW5nIG1lc3NhZ2VzIGZyb20gT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gZXZlbnQgRXZlbnQgY29taW5nIGZyb20gdGhlIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRXZlbnRzKG1lc3NhZ2U6IEF2YWlsYWJsZUxvY2FsaXphdGlvbk1lc3NhZ2VDb250ZW50cykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdNZXNzYWdlIGhhbmRsaW5nIGJ5IHRoZSBsb2NhbGl6YXRpb24gc2VydmljZScsIG1lc3NhZ2UpO1xuXG4gICAgc3dpdGNoIChtZXNzYWdlLmRhdGFUeXBlKSB7XG4gICAgICBjYXNlICdjb25uZWN0Jzoge1xuICAgICAgICB0aGlzLmNvbm5lY3RQbHVnaW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdkaXNwbGF5TG9jYWxpemF0aW9uS2V5cyc6IHtcbiAgICAgICAgdGhpcy5sb2NhbGl6YXRpb25EZXZUb29scy5zaG93TG9jYWxpemF0aW9uS2V5cyhtZXNzYWdlLnRvZ2dsZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAncmVxdWVzdE1lc3NhZ2VzJzoge1xuICAgICAgICB2b2lkIHRoaXMuaGFuZGxlUmVFbWl0UmVxdWVzdChtZXNzYWdlLm9ubHkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3N3aXRjaExhbmd1YWdlJzoge1xuICAgICAgICB2b2lkIHRoaXMubG9jYWxpemF0aW9uRGV2VG9vbHMuc3dpdGNoTGFuZ3VhZ2UobWVzc2FnZS5sYW5ndWFnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAndXBkYXRlTG9jYWxpemF0aW9uJzoge1xuICAgICAgICB2b2lkIHRoaXMubG9jYWxpemF0aW9uRGV2VG9vbHMudXBkYXRlTG9jYWxpemF0aW9uS2V5cyh7XG4gICAgICAgICAgW21lc3NhZ2Uua2V5XTogbWVzc2FnZS52YWx1ZVxuICAgICAgICB9LCBtZXNzYWdlLmxhbmcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3JlbG9hZExvY2FsaXphdGlvbktleXMnOiB7XG4gICAgICAgIHZvaWQgdGhpcy5sb2NhbGl6YXRpb25EZXZUb29scy5yZWxvYWRMb2NhbGl6YXRpb25LZXlzKG1lc3NhZ2UubGFuZyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdNZXNzYWdlIGlnbm9yZWQgYnkgdGhlIGxvY2FsaXphdGlvbiBzZXJ2aWNlJywgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNvbm5lY3QgdGhlIHBsdWdpbiB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKi9cbiAgcHJpdmF0ZSBjb25uZWN0UGx1Z2luKCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdPdHRlciBEZXZUb29scyBpcyBwbHVnZ2VkIHRvIGxvY2FsaXphdGlvbiBzZXJ2aWNlIG9mIHRoZSBhcHBsaWNhdGlvbicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ21lc3NhZ2UnKS5waXBlKGZpbHRlck1lc3NhZ2VDb250ZW50KGlzTG9jYWxpemF0aW9uTWVzc2FnZSkpLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5oYW5kbGVFdmVudHMoZSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -21,16 +21,16 @@ export class LocalizationDevtoolsModule {
21
21
  ]
22
22
  };
23
23
  }
24
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
25
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsModule, imports: [LocalizationModule] }); }
26
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsModule, providers: [
24
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
25
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsModule, imports: [LocalizationModule] }); }
26
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsModule, providers: [
27
27
  { provide: OTTER_LOCALIZATION_DEVTOOLS_OPTIONS, useValue: OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS },
28
28
  LocalizationDevtoolsMessageService,
29
29
  LocalizationDevtoolsConsoleService,
30
30
  OtterLocalizationDevtools
31
31
  ], imports: [LocalizationModule] }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalizationDevtoolsModule, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LocalizationDevtoolsModule, decorators: [{
34
34
  type: NgModule,
35
35
  args: [{
36
36
  imports: [