@o3r/application 11.0.0-rc.9 → 11.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,9 @@
1
1
  import type { ConnectContentMessage, DevtoolsCommonOptions, MessageDataTypes, OtterMessageContent, RequestMessagesContentMessage } from '@o3r/core';
2
2
  export interface ApplicationDevtoolsServiceOptions extends DevtoolsCommonOptions {
3
+ /**
4
+ * Application name
5
+ */
6
+ appName?: string;
3
7
  /**
4
8
  * CSS classname applied to an HTML tag to hide it, ignore it, in the e2e visual testing process
5
9
  */
@@ -20,6 +24,10 @@ export interface SessionInformation {
20
24
  }
21
25
  /** Information relative loaded application */
22
26
  export interface ApplicationInformation {
27
+ /**
28
+ * Application name
29
+ */
30
+ appName: string;
23
31
  /** Application Version */
24
32
  appVersion: string;
25
33
  /**
@@ -43,7 +51,19 @@ export interface ToggleVisualTestingMessage extends OtterMessageContent<'toggleV
43
51
  /** Application Information Message Content */
44
52
  export interface ApplicationInformationContentMessage extends ApplicationInformation, OtterMessageContent<'applicationInformation'> {
45
53
  }
46
- type ApplicationMessageContents = ApplicationInformationContentMessage | ToggleVisualTestingMessage;
54
+ /** State selection message */
55
+ export interface StateSelectionContentMessage extends OtterMessageContent<'stateSelection'> {
56
+ /** Name of the state */
57
+ stateName: string;
58
+ /** Color of the state */
59
+ stateColor: string;
60
+ /** Contrast color of the state */
61
+ stateColorContrast: string;
62
+ }
63
+ /** Unselect state message */
64
+ export interface UnselectStateContentMessage extends OtterMessageContent<'unselectState'> {
65
+ }
66
+ type ApplicationMessageContents = ApplicationInformationContentMessage | StateSelectionContentMessage | UnselectStateContentMessage | ToggleVisualTestingMessage;
47
67
  /** List of possible DataTypes for Application messages */
48
68
  export type ApplicationMessageDataTypes = MessageDataTypes<ApplicationMessageContents>;
49
69
  /** List of all messages for application purpose */
@@ -1 +1 @@
1
- {"version":3,"file":"application-devkit.interface.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devkit.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAEpJ,MAAM,WAAW,iCAAkC,SAAQ,qBAAqB;IAC9E;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,aAAa,EAAE,IAAI,CAAC;CACrB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,4BAA4B;AAC5B,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;IAC5F,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,8CAA8C;AAC9C,MAAM,WAAW,oCAAqC,SAAQ,sBAAsB,EAAE,mBAAmB,CAAC,wBAAwB,CAAC;CAClI;AAED,KAAK,0BAA0B,GAC3B,oCAAoC,GACpC,0BAA0B,CAAC;AAE/B,0DAA0D;AAC1D,MAAM,MAAM,2BAA2B,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;AAEvF,mDAAmD;AACnD,MAAM,MAAM,mCAAmC,GAC3C,0BAA0B,GAC1B,qBAAqB,GACrB,6BAA6B,CAAC,2BAA2B,CAAC,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,oBAAoB,YAAa,GAAG,mDAMhD,CAAC"}
1
+ {"version":3,"file":"application-devkit.interface.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devkit.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAEpJ,MAAM,WAAW,iCAAkC,SAAQ,qBAAqB;IAC9E;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,aAAa,EAAE,IAAI,CAAC;CACrB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,4BAA4B;AAC5B,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;IAC5F,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,8CAA8C;AAC9C,MAAM,WAAW,oCAAqC,SAAQ,sBAAsB,EAAE,mBAAmB,CAAC,wBAAwB,CAAC;CAClI;AAED,8BAA8B;AAC9B,MAAM,WAAW,4BAA6B,SAAQ,mBAAmB,CAAC,gBAAgB,CAAC;IACzF,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,6BAA6B;AAC7B,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB,CAAC,eAAe,CAAC;CAAG;AAE5F,KAAK,0BAA0B,GAC3B,oCAAoC,GACpC,4BAA4B,GAC5B,2BAA2B,GAC3B,0BAA0B,CAAC;AAE/B,0DAA0D;AAC1D,MAAM,MAAM,2BAA2B,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;AAEvF,mDAAmD;AACnD,MAAM,MAAM,mCAAmC,GAC3C,0BAA0B,GAC1B,qBAAqB,GACrB,6BAA6B,CAAC,2BAA2B,CAAC,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,oBAAoB,YAAa,GAAG,mDAQhD,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import { OnDestroy } from '@angular/core';
2
2
  import { DevtoolsServiceInterface } from '@o3r/core';
3
3
  import { LoggerService } from '@o3r/logger';
4
- import { ApplicationDevtoolsServiceOptions } from './application-devkit.interface';
4
+ import { type ApplicationDevtoolsServiceOptions } from './application-devkit.interface';
5
5
  import { OtterApplicationDevtools } from './application-devtools.service';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class ApplicationDevtoolsMessageService implements OnDestroy, DevtoolsServiceInterface {
8
8
  private readonly logger;
9
9
  private readonly applicationDevtools;
10
+ private readonly document;
10
11
  private readonly options;
11
12
  private readonly subscriptions;
12
13
  private readonly sendMessage;
@@ -27,6 +28,8 @@ export declare class ApplicationDevtoolsMessageService implements OnDestroy, Dev
27
28
  * @param message
28
29
  */
29
30
  private handleEvents;
31
+ private unselectState;
32
+ private onStateSelection;
30
33
  /**
31
34
  * Toggle visual testing rendering
32
35
  * @param enabled activate or deactivate the visual testing mode
@@ -1 +1 @@
1
- {"version":3,"file":"application-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.message.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,SAAS,EAAY,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAA0C,MAAM,WAAW,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,iCAAiC,EAA0F,MAAM,gCAAgC,CAAC;AAC3K,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;;AAG1E,qBAGa,iCAAkC,YAAW,SAAS,EAAE,wBAAwB;IAQvF,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IARxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAE5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyD;gBAGhE,MAAM,EAAE,aAAa,EACrB,mBAAmB,EAAE,wBAAwB,EACN,OAAO,CAAC,EAAE,iCAAiC;IAWvG,OAAO,CAAC,0BAA0B;IAIlC;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAIjC,kBAAkB;IACX,QAAQ;IAOf,kBAAkB;IACX,WAAW;yCAvFP,iCAAiC;6CAAjC,iCAAiC;CA0F7C"}
1
+ {"version":3,"file":"application-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.message.service.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,SAAS,EAAY,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAA0C,MAAM,WAAW,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EACL,KAAK,iCAAiC,EAKvC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;;AAK1E,qBAGa,iCAAkC,YAAW,SAAS,EAAE,wBAAwB;IASvF,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IATxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAE5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyD;gBAGhE,MAAM,EAAE,aAAa,EACrB,mBAAmB,EAAE,wBAAwB,EACN,OAAO,CAAC,EAAE,iCAAiC;IAWvG,OAAO,CAAC,0BAA0B;IAIlC;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;IAuBxB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAIjC,kBAAkB;IACX,QAAQ;IAQf,kBAAkB;IACX,WAAW;yCA/HP,iCAAiC;6CAAjC,iCAAiC;CAkI7C"}
@@ -1,12 +1,11 @@
1
- import { BuildTimeProperties } from '@o3r/core';
2
- import { ApplicationInformation } from './application-devkit.interface';
1
+ import type { ApplicationInformation } from './application-devkit.interface';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class OtterApplicationDevtools {
5
- private readonly document?;
6
- private readonly env?;
7
- constructor(document?: any, env?: BuildTimeProperties | undefined);
4
+ private readonly options;
5
+ private readonly document;
6
+ private readonly env;
8
7
  getApplicationInformation(): ApplicationInformation;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<OtterApplicationDevtools, [{ optional: true; }, { optional: true; }]>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<OtterApplicationDevtools, never>;
10
9
  static ɵprov: i0.ɵɵInjectableDeclaration<OtterApplicationDevtools>;
11
10
  }
12
11
  //# sourceMappingURL=application-devtools.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application-devtools.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAA2B,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;;AAExE,qBACa,wBAAwB;IAGH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACV,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBADpB,QAAQ,CAAC,KAAK,EACE,GAAG,CAAC,iCAAqB;IAInF,yBAAyB,IAAI,sBAAsB;yCAR/C,wBAAwB;6CAAxB,wBAAwB;CAcpC"}
1
+ {"version":3,"file":"application-devtools.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;;AAG7E,qBACa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkE;IAC1F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwD;IAGrE,yBAAyB,IAAI,sBAAsB;yCAN/C,wBAAwB;6CAAxB,wBAAwB;CAapC"}
@@ -4,8 +4,10 @@
4
4
  */
5
5
  export const isApplicationMessage = (message) => {
6
6
  return message && (message.dataType === 'toggleVisualTesting' ||
7
+ message.dataType === 'stateSelection' ||
7
8
  message.dataType === 'applicationInformation' ||
9
+ message.dataType === 'unselectState' ||
8
10
  message.dataType === 'requestMessages' ||
9
11
  message.dataType === 'connect');
10
12
  };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2a2l0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvYXBwbGljYXRpb24tZGV2a2l0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRUE7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFZLEVBQWtELEVBQUU7SUFDbkcsT0FBTyxPQUFPLElBQUksQ0FDaEIsT0FBTyxDQUFDLFFBQVEsS0FBSyxxQkFBcUI7UUFDMUMsT0FBTyxDQUFDLFFBQVEsS0FBSyx3QkFBd0I7UUFDN0MsT0FBTyxDQUFDLFFBQVEsS0FBSyxpQkFBaUI7UUFDdEMsT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbm5lY3RDb250ZW50TWVzc2FnZSwgRGV2dG9vbHNDb21tb25PcHRpb25zLCBNZXNzYWdlRGF0YVR5cGVzLCBPdHRlck1lc3NhZ2VDb250ZW50LCBSZXF1ZXN0TWVzc2FnZXNDb250ZW50TWVzc2FnZSB9IGZyb20gJ0BvM3IvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zIGV4dGVuZHMgRGV2dG9vbHNDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIENTUyBjbGFzc25hbWUgYXBwbGllZCB0byBhbiBIVE1MIHRhZyB0byBoaWRlIGl0LCBpZ25vcmUgaXQsIGluIHRoZSBlMmUgdmlzdWFsIHRlc3RpbmcgcHJvY2Vzc1xuICAgKi9cbiAgZTJlSWdub3JlQ2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2Vzc2lvbiBpbmZvcm1hdGlvbiB1c2VkIHRvIHRyYWNrIGFsbCB0aGUgY2FsbHMgZG9uZSBieSBvbmUgb3Igc2V2ZXJhbCBBUElzIG9mIHRoZSBTREsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvbkluZm9ybWF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBzZXNzaW9uIElEXG4gICAqL1xuICBpZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGdlbmVyYXRlZCB0aW1lXG4gICAqL1xuICBnZW5lcmF0ZWRUaW1lOiBEYXRlO1xufVxuXG4vKiogSW5mb3JtYXRpb24gcmVsYXRpdmUgbG9hZGVkIGFwcGxpY2F0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uSW5mb3JtYXRpb24ge1xuICAvKiogQXBwbGljYXRpb24gVmVyc2lvbiAqL1xuICBhcHBWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXNzaW9uIEluZm9ybWF0aW9uXG4gICAqIEBub3RlIFRoaXMgaXMgYSBzZXNzaW9uIElEIHdpbGwgYmUgcHJvdmlkZWQgb25seSB3aXRoIHRoZSBBbWFkZXVzIE90dGVyIGltcGxlbWVudGF0aW9uIG9mIHRoZSBhcHBsaWNhdGlvbiBwYWNrYWdlLlxuICAgKi9cbiAgc2Vzc2lvbj86IFNlc3Npb25JbmZvcm1hdGlvbjtcbiAgLyoqXG4gICAqIExvZyBMaW5rXG4gICAqIEBub3RlIFRoaXMgYSBsaW5rIHRvIEFsZiBsb2dzLCBpdCB3aWxsIGJlIHByb3ZpZGVkIG9ubHkgd2l0aCB0aGUgQW1hZGV1cyBPdHRlciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYXBwbGljYXRpb24gcGFja2FnZS5cbiAgICovXG4gIGxvZ0xpbms/OiBzdHJpbmc7XG4gIC8qKiBJcyBQcm9kdWN0aW9uIEVudmlyb25tZW50ICovXG4gIGlzUHJvZHVjdGlvbjogYm9vbGVhbjtcbn1cblxuLyoqIFRvZ2dsZSBWaXN1YWwgVGVzdGluZyAqL1xuZXhwb3J0IGludGVyZmFjZSBUb2dnbGVWaXN1YWxUZXN0aW5nTWVzc2FnZSBleHRlbmRzIE90dGVyTWVzc2FnZUNvbnRlbnQ8J3RvZ2dsZVZpc3VhbFRlc3RpbmcnPiB7XG4gIC8qKiBUb2dnbGUgdGhlIHZpc3VhbCB0ZXN0aW5nIG1vZGUgKi9cbiAgdG9nZ2xlPzogYm9vbGVhbjtcbn1cblxuXG4vKiogQXBwbGljYXRpb24gSW5mb3JtYXRpb24gTWVzc2FnZSBDb250ZW50ICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uSW5mb3JtYXRpb25Db250ZW50TWVzc2FnZSBleHRlbmRzIEFwcGxpY2F0aW9uSW5mb3JtYXRpb24sIE90dGVyTWVzc2FnZUNvbnRlbnQ8J2FwcGxpY2F0aW9uSW5mb3JtYXRpb24nPiB7XG59XG5cbnR5cGUgQXBwbGljYXRpb25NZXNzYWdlQ29udGVudHMgPVxuICB8IEFwcGxpY2F0aW9uSW5mb3JtYXRpb25Db250ZW50TWVzc2FnZVxuICB8IFRvZ2dsZVZpc3VhbFRlc3RpbmdNZXNzYWdlO1xuXG4vKiogTGlzdCBvZiBwb3NzaWJsZSBEYXRhVHlwZXMgZm9yIEFwcGxpY2F0aW9uIG1lc3NhZ2VzICovXG5leHBvcnQgdHlwZSBBcHBsaWNhdGlvbk1lc3NhZ2VEYXRhVHlwZXMgPSBNZXNzYWdlRGF0YVR5cGVzPEFwcGxpY2F0aW9uTWVzc2FnZUNvbnRlbnRzPjtcblxuLyoqIExpc3Qgb2YgYWxsIG1lc3NhZ2VzIGZvciBhcHBsaWNhdGlvbiBwdXJwb3NlICovXG5leHBvcnQgdHlwZSBBdmFpbGFibGVBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cyA9XG4gIHwgQXBwbGljYXRpb25NZXNzYWdlQ29udGVudHNcbiAgfCBDb25uZWN0Q29udGVudE1lc3NhZ2VcbiAgfCBSZXF1ZXN0TWVzc2FnZXNDb250ZW50TWVzc2FnZTxBcHBsaWNhdGlvbk1lc3NhZ2VEYXRhVHlwZXM+O1xuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGUgZ2l2ZW4gbWVzc2FnZSBpcyBhIEFwcGxpY2F0aW9uIG1lc3NhZ2VcbiAqIEBwYXJhbSBtZXNzYWdlIG1lc3NhZ2UgdG8gY2hlY2tcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQXBwbGljYXRpb25NZXNzYWdlID0gKG1lc3NhZ2U6IGFueSk6IG1lc3NhZ2UgaXMgQXZhaWxhYmxlQXBwbGljYXRpb25NZXNzYWdlQ29udGVudHMgPT4ge1xuICByZXR1cm4gbWVzc2FnZSAmJiAoXG4gICAgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ3RvZ2dsZVZpc3VhbFRlc3RpbmcnIHx8XG4gICAgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ2FwcGxpY2F0aW9uSW5mb3JtYXRpb24nIHx8XG4gICAgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ3JlcXVlc3RNZXNzYWdlcycgfHxcbiAgICBtZXNzYWdlLmRhdGFUeXBlID09PSAnY29ubmVjdCcpO1xufTtcbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2a2l0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvYXBwbGljYXRpb24tZGV2a2l0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3RkE7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFZLEVBQWtELEVBQUU7SUFDbkcsT0FBTyxPQUFPLElBQUksQ0FDaEIsT0FBTyxDQUFDLFFBQVEsS0FBSyxxQkFBcUI7UUFDMUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxnQkFBZ0I7UUFDckMsT0FBTyxDQUFDLFFBQVEsS0FBSyx3QkFBd0I7UUFDN0MsT0FBTyxDQUFDLFFBQVEsS0FBSyxlQUFlO1FBQ3BDLE9BQU8sQ0FBQyxRQUFRLEtBQUssaUJBQWlCO1FBQ3RDLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25uZWN0Q29udGVudE1lc3NhZ2UsIERldnRvb2xzQ29tbW9uT3B0aW9ucywgTWVzc2FnZURhdGFUeXBlcywgT3R0ZXJNZXNzYWdlQ29udGVudCwgUmVxdWVzdE1lc3NhZ2VzQ29udGVudE1lc3NhZ2UgfSBmcm9tICdAbzNyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyBleHRlbmRzIERldnRvb2xzQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBcHBsaWNhdGlvbiBuYW1lXG4gICAqL1xuICBhcHBOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQ1NTIGNsYXNzbmFtZSBhcHBsaWVkIHRvIGFuIEhUTUwgdGFnIHRvIGhpZGUgaXQsIGlnbm9yZSBpdCwgaW4gdGhlIGUyZSB2aXN1YWwgdGVzdGluZyBwcm9jZXNzXG4gICAqL1xuICBlMmVJZ25vcmVDbGFzcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZXNzaW9uIGluZm9ybWF0aW9uIHVzZWQgdG8gdHJhY2sgYWxsIHRoZSBjYWxscyBkb25lIGJ5IG9uZSBvciBzZXZlcmFsIEFQSXMgb2YgdGhlIFNESy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uSW5mb3JtYXRpb24ge1xuICAvKipcbiAgICogVGhlIHNlc3Npb24gSURcbiAgICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZ2VuZXJhdGVkIHRpbWVcbiAgICovXG4gIGdlbmVyYXRlZFRpbWU6IERhdGU7XG59XG5cbi8qKiBJbmZvcm1hdGlvbiByZWxhdGl2ZSBsb2FkZWQgYXBwbGljYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25JbmZvcm1hdGlvbiB7XG4gIC8qKlxuICAgKiBBcHBsaWNhdGlvbiBuYW1lXG4gICAqL1xuICBhcHBOYW1lOiBzdHJpbmc7XG4gIC8qKiBBcHBsaWNhdGlvbiBWZXJzaW9uICovXG4gIGFwcFZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFNlc3Npb24gSW5mb3JtYXRpb25cbiAgICogQG5vdGUgVGhpcyBpcyBhIHNlc3Npb24gSUQgd2lsbCBiZSBwcm92aWRlZCBvbmx5IHdpdGggdGhlIEFtYWRldXMgT3R0ZXIgaW1wbGVtZW50YXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIHBhY2thZ2UuXG4gICAqL1xuICBzZXNzaW9uPzogU2Vzc2lvbkluZm9ybWF0aW9uO1xuICAvKipcbiAgICogTG9nIExpbmtcbiAgICogQG5vdGUgVGhpcyBhIGxpbmsgdG8gQWxmIGxvZ3MsIGl0IHdpbGwgYmUgcHJvdmlkZWQgb25seSB3aXRoIHRoZSBBbWFkZXVzIE90dGVyIGltcGxlbWVudGF0aW9uIG9mIHRoZSBhcHBsaWNhdGlvbiBwYWNrYWdlLlxuICAgKi9cbiAgbG9nTGluaz86IHN0cmluZztcbiAgLyoqIElzIFByb2R1Y3Rpb24gRW52aXJvbm1lbnQgKi9cbiAgaXNQcm9kdWN0aW9uOiBib29sZWFuO1xufVxuXG4vKiogVG9nZ2xlIFZpc3VhbCBUZXN0aW5nICovXG5leHBvcnQgaW50ZXJmYWNlIFRvZ2dsZVZpc3VhbFRlc3RpbmdNZXNzYWdlIGV4dGVuZHMgT3R0ZXJNZXNzYWdlQ29udGVudDwndG9nZ2xlVmlzdWFsVGVzdGluZyc+IHtcbiAgLyoqIFRvZ2dsZSB0aGUgdmlzdWFsIHRlc3RpbmcgbW9kZSAqL1xuICB0b2dnbGU/OiBib29sZWFuO1xufVxuXG5cbi8qKiBBcHBsaWNhdGlvbiBJbmZvcm1hdGlvbiBNZXNzYWdlIENvbnRlbnQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25JbmZvcm1hdGlvbkNvbnRlbnRNZXNzYWdlIGV4dGVuZHMgQXBwbGljYXRpb25JbmZvcm1hdGlvbiwgT3R0ZXJNZXNzYWdlQ29udGVudDwnYXBwbGljYXRpb25JbmZvcm1hdGlvbic+IHtcbn1cblxuLyoqIFN0YXRlIHNlbGVjdGlvbiBtZXNzYWdlICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlU2VsZWN0aW9uQ29udGVudE1lc3NhZ2UgZXh0ZW5kcyBPdHRlck1lc3NhZ2VDb250ZW50PCdzdGF0ZVNlbGVjdGlvbic+IHtcbiAgLyoqIE5hbWUgb2YgdGhlIHN0YXRlICovXG4gIHN0YXRlTmFtZTogc3RyaW5nO1xuICAvKiogQ29sb3Igb2YgdGhlIHN0YXRlICovXG4gIHN0YXRlQ29sb3I6IHN0cmluZztcbiAgLyoqIENvbnRyYXN0IGNvbG9yIG9mIHRoZSBzdGF0ZSAqL1xuICBzdGF0ZUNvbG9yQ29udHJhc3Q6IHN0cmluZztcbn1cblxuLyoqIFVuc2VsZWN0IHN0YXRlIG1lc3NhZ2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5zZWxlY3RTdGF0ZUNvbnRlbnRNZXNzYWdlIGV4dGVuZHMgT3R0ZXJNZXNzYWdlQ29udGVudDwndW5zZWxlY3RTdGF0ZSc+IHt9XG5cbnR5cGUgQXBwbGljYXRpb25NZXNzYWdlQ29udGVudHMgPVxuICB8IEFwcGxpY2F0aW9uSW5mb3JtYXRpb25Db250ZW50TWVzc2FnZVxuICB8IFN0YXRlU2VsZWN0aW9uQ29udGVudE1lc3NhZ2VcbiAgfCBVbnNlbGVjdFN0YXRlQ29udGVudE1lc3NhZ2VcbiAgfCBUb2dnbGVWaXN1YWxUZXN0aW5nTWVzc2FnZTtcblxuLyoqIExpc3Qgb2YgcG9zc2libGUgRGF0YVR5cGVzIGZvciBBcHBsaWNhdGlvbiBtZXNzYWdlcyAqL1xuZXhwb3J0IHR5cGUgQXBwbGljYXRpb25NZXNzYWdlRGF0YVR5cGVzID0gTWVzc2FnZURhdGFUeXBlczxBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cz47XG5cbi8qKiBMaXN0IG9mIGFsbCBtZXNzYWdlcyBmb3IgYXBwbGljYXRpb24gcHVycG9zZSAqL1xuZXhwb3J0IHR5cGUgQXZhaWxhYmxlQXBwbGljYXRpb25NZXNzYWdlQ29udGVudHMgPVxuICB8IEFwcGxpY2F0aW9uTWVzc2FnZUNvbnRlbnRzXG4gIHwgQ29ubmVjdENvbnRlbnRNZXNzYWdlXG4gIHwgUmVxdWVzdE1lc3NhZ2VzQ29udGVudE1lc3NhZ2U8QXBwbGljYXRpb25NZXNzYWdlRGF0YVR5cGVzPjtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIG1lc3NhZ2UgaXMgYSBBcHBsaWNhdGlvbiBtZXNzYWdlXG4gKiBAcGFyYW0gbWVzc2FnZSBtZXNzYWdlIHRvIGNoZWNrXG4gKi9cbmV4cG9ydCBjb25zdCBpc0FwcGxpY2F0aW9uTWVzc2FnZSA9IChtZXNzYWdlOiBhbnkpOiBtZXNzYWdlIGlzIEF2YWlsYWJsZUFwcGxpY2F0aW9uTWVzc2FnZUNvbnRlbnRzID0+IHtcbiAgcmV0dXJuIG1lc3NhZ2UgJiYgKFxuICAgIG1lc3NhZ2UuZGF0YVR5cGUgPT09ICd0b2dnbGVWaXN1YWxUZXN0aW5nJyB8fFxuICAgIG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdzdGF0ZVNlbGVjdGlvbicgfHxcbiAgICBtZXNzYWdlLmRhdGFUeXBlID09PSAnYXBwbGljYXRpb25JbmZvcm1hdGlvbicgfHxcbiAgICBtZXNzYWdlLmRhdGFUeXBlID09PSAndW5zZWxlY3RTdGF0ZScgfHxcbiAgICBtZXNzYWdlLmRhdGFUeXBlID09PSAncmVxdWVzdE1lc3NhZ2VzJyB8fFxuICAgIG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdjb25uZWN0Jyk7XG59O1xuIl19
@@ -1,4 +1,5 @@
1
- import { Inject, Injectable, Optional } from '@angular/core';
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { inject, Inject, Injectable, Optional } from '@angular/core';
2
3
  import { filterMessageContent, sendOtterMessage } from '@o3r/core';
3
4
  import { LoggerService } from '@o3r/logger';
4
5
  import { isVisualTestingEnabled, prepareVisualTesting, toggleVisualTestingRender } from '@o3r/testing/visual-test/utils';
@@ -9,10 +10,12 @@ import { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "@o3r/logger";
11
12
  import * as i2 from "./application-devtools.service";
13
+ const OTTER_STATE_RIBBON_ID = 'otter-devtools-state-ribbon';
12
14
  export class ApplicationDevtoolsMessageService {
13
15
  constructor(logger, applicationDevtools, options) {
14
16
  this.logger = logger;
15
17
  this.applicationDevtools = applicationDevtools;
18
+ this.document = inject(DOCUMENT);
16
19
  this.subscriptions = new Subscription();
17
20
  this.sendMessage = (sendOtterMessage);
18
21
  this.options = {
@@ -62,11 +65,48 @@ export class ApplicationDevtoolsMessageService {
62
65
  this.toggleVisualTestingRender(message.toggle);
63
66
  break;
64
67
  }
68
+ case 'stateSelection': {
69
+ this.onStateSelection(message);
70
+ break;
71
+ }
72
+ case 'unselectState': {
73
+ this.unselectState();
74
+ break;
75
+ }
65
76
  default: {
66
77
  this.logger.warn('Message ignored by the application service', message);
67
78
  }
68
79
  }
69
80
  }
81
+ unselectState() {
82
+ const ribbonElement = this.document.body.querySelector(`#${OTTER_STATE_RIBBON_ID}`);
83
+ if (ribbonElement) {
84
+ ribbonElement.remove();
85
+ }
86
+ }
87
+ onStateSelection(message) {
88
+ let ribbonElement = this.document.body.querySelector(`#${OTTER_STATE_RIBBON_ID}`);
89
+ if (!ribbonElement) {
90
+ ribbonElement = this.document.createElement('div');
91
+ ribbonElement.id = OTTER_STATE_RIBBON_ID;
92
+ this.document.body.appendChild(ribbonElement);
93
+ }
94
+ if (message.stateName) {
95
+ ribbonElement.innerHTML = message.stateName;
96
+ ribbonElement.style.background = message.stateColor;
97
+ ribbonElement.style.color = message.stateColorContrast;
98
+ ribbonElement.style.position = 'fixed';
99
+ ribbonElement.style.bottom = '0';
100
+ ribbonElement.style.right = '0';
101
+ ribbonElement.style.transform = 'translate(calc(100% * (1 - cos(45deg)))) rotate(-45deg)';
102
+ ribbonElement.style.transformOrigin = 'bottom left';
103
+ ribbonElement.style.clipPath = 'inset(0 -100%)';
104
+ ribbonElement.style.boxShadow = `0px 0px 0px 999px ${message.stateColor}`;
105
+ }
106
+ else {
107
+ ribbonElement.style.display = 'none';
108
+ }
109
+ }
70
110
  /**
71
111
  * Toggle visual testing rendering
72
112
  * @param enabled activate or deactivate the visual testing mode
@@ -78,6 +118,7 @@ export class ApplicationDevtoolsMessageService {
78
118
  activate() {
79
119
  this.subscriptions.add(fromEvent(window, 'message').pipe(filterMessageContent(isApplicationMessage)).subscribe((e) => this.handleEvents(e)));
80
120
  prepareVisualTesting(this.options.e2eIgnoreClass);
121
+ this.sendApplicationInformation();
81
122
  }
82
123
  /** @inheritDoc */
83
124
  ngOnDestroy() {
@@ -97,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
97
138
  type: Inject,
98
139
  args: [OTTER_APPLICATION_DEVTOOLS_OPTIONS]
99
140
  }] }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RldmtpdC9hcHBsaWNhdGlvbi1kZXZ0b29scy5tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBNEIsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUMseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4SCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQXVHLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0ssT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFLOUgsTUFBTSxPQUFPLGlDQUFpQztJQU81QyxZQUNxQixNQUFxQixFQUNyQixtQkFBNkMsRUFDTixPQUEyQztRQUZsRixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMEI7UUFOakQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5DLGdCQUFXLEdBQUcsQ0FBQSxnQkFBcUQsQ0FBQSxDQUFDO1FBTW5GLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLDBDQUEwQztZQUM3QyxHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7UUFDekYsS0FBSyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssbUJBQW1CLENBQUMsSUFBb0M7UUFDOUQsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxZQUFZLENBQUMsT0FBNEM7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFMUUsUUFBUSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLHFCQUFxQixDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDL0MsTUFBTTtZQUNSLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHlCQUF5QixDQUFDLE9BQWlCO1FBQ2pELHlCQUF5QixDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNySCxDQUFDO1FBQ0Ysb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7aUlBekZVLGlDQUFpQyx1RkFVcEIsa0NBQWtDO3FJQVYvQyxpQ0FBaUMsY0FGaEMsTUFBTTs7MkZBRVAsaUNBQWlDO2tCQUg3QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBV00sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERldnRvb2xzU2VydmljZUludGVyZmFjZSwgZmlsdGVyTWVzc2FnZUNvbnRlbnQsIHNlbmRPdHRlck1lc3NhZ2UgfSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB7IGlzVmlzdWFsVGVzdGluZ0VuYWJsZWQsIHByZXBhcmVWaXN1YWxUZXN0aW5nLHRvZ2dsZVZpc3VhbFRlc3RpbmdSZW5kZXIgfSBmcm9tICdAbzNyL3Rlc3RpbmcvdmlzdWFsLXRlc3QvdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucywgQXBwbGljYXRpb25NZXNzYWdlRGF0YVR5cGVzLCBBdmFpbGFibGVBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cywgaXNBcHBsaWNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldmtpdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3R0ZXJBcHBsaWNhdGlvbkRldnRvb2xzIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kZXZ0b29scy5zZXJ2aWNlJztcbmltcG9ydCB7IE9UVEVSX0FQUExJQ0FUSU9OX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUywgT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfT1BUSU9OUyB9IGZyb20gJy4vYXBwbGljYXRpb24tZGV2dG9vbHMudG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkRldnRvb2xzTWVzc2FnZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIERldnRvb2xzU2VydmljZUludGVyZmFjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlbmRNZXNzYWdlID0gc2VuZE90dGVyTWVzc2FnZTxBdmFpbGFibGVBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGljYXRpb25EZXZ0b29sczogT3R0ZXJBcHBsaWNhdGlvbkRldnRvb2xzLFxuICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChPVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19PUFRJT05TKSBvcHRpb25zPzogQXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbmRBcHBsaWNhdGlvbkluZm9ybWF0aW9uKCkge1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ2FwcGxpY2F0aW9uSW5mb3JtYXRpb24nLCB0aGlzLmFwcGxpY2F0aW9uRGV2dG9vbHMuZ2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBjb25uZWN0IHRoZSBwbHVnaW4gdG8gdGhlIE90dGVyIERldlRvb2xzIGV4dGVuc2lvblxuICAgKi9cbiAgcHJpdmF0ZSBjb25uZWN0UGx1Z2luKCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdPdHRlciBEZXZUb29scyBpcyBwbHVnZ2VkIHRvIGFwcGxpY2F0aW9uIHNlcnZpY2Ugb2YgdGhlIGFwcGxpY2F0aW9uJyk7XG4gICAgdm9pZCB0aGlzLnNlbmRBcHBsaWNhdGlvbkluZm9ybWF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gdHJpZ2dlciBhIHJlLXNlbmQgYSByZXF1ZXN0ZWQgbWVzc2FnZXMgdG8gdGhlIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG9ubHkgcmVzdHJpY3RlZCBsaXN0IG9mIG1lc3NhZ2VzIHRvIHJlLXNlbmRcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlUmVFbWl0UmVxdWVzdChvbmx5PzogQXBwbGljYXRpb25NZXNzYWdlRGF0YVR5cGVzW10pIHtcbiAgICBpZiAoIW9ubHkgfHwgb25seS5pbmNsdWRlcygnYXBwbGljYXRpb25JbmZvcm1hdGlvbicpKSB7XG4gICAgICB0aGlzLnNlbmRBcHBsaWNhdGlvbkluZm9ybWF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGhhbmRsZSB0aGUgaW5jb21pbmcgbWVzc2FnZXMgZnJvbSBPdHRlciBDaHJvbWUgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSBldmVudCBFdmVudCBjb21pbmcgZnJvbSB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVFdmVudHMobWVzc2FnZTogQXZhaWxhYmxlQXBwbGljYXRpb25NZXNzYWdlQ29udGVudHMpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTWVzc2FnZSBoYW5kbGluZyBieSB0aGUgYXBwbGljYXRpb24gc2VydmljZScsIG1lc3NhZ2UpO1xuXG4gICAgc3dpdGNoIChtZXNzYWdlLmRhdGFUeXBlKSB7XG4gICAgICBjYXNlICdjb25uZWN0Jzoge1xuICAgICAgICB0aGlzLmNvbm5lY3RQbHVnaW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdyZXF1ZXN0TWVzc2FnZXMnOiB7XG4gICAgICAgIHRoaXMuaGFuZGxlUmVFbWl0UmVxdWVzdChtZXNzYWdlLm9ubHkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3RvZ2dsZVZpc3VhbFRlc3RpbmcnOiB7XG4gICAgICAgIHRoaXMudG9nZ2xlVmlzdWFsVGVzdGluZ1JlbmRlcihtZXNzYWdlLnRvZ2dsZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdNZXNzYWdlIGlnbm9yZWQgYnkgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UnLCBtZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIHZpc3VhbCB0ZXN0aW5nIHJlbmRlcmluZ1xuICAgKiBAcGFyYW0gZW5hYmxlZCBhY3RpdmF0ZSBvciBkZWFjdGl2YXRlIHRoZSB2aXN1YWwgdGVzdGluZyBtb2RlXG4gICAqL1xuICBwcml2YXRlIHRvZ2dsZVZpc3VhbFRlc3RpbmdSZW5kZXIoZW5hYmxlZD86IGJvb2xlYW4pIHtcbiAgICB0b2dnbGVWaXN1YWxUZXN0aW5nUmVuZGVyKGVuYWJsZWQgPT09IHVuZGVmaW5lZCA/ICFpc1Zpc3VhbFRlc3RpbmdFbmFibGVkKCkgOiBlbmFibGVkKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgYWN0aXZhdGUoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdtZXNzYWdlJykucGlwZShmaWx0ZXJNZXNzYWdlQ29udGVudChpc0FwcGxpY2F0aW9uTWVzc2FnZSkpLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5oYW5kbGVFdmVudHMoZSkpXG4gICAgKTtcbiAgICBwcmVwYXJlVmlzdWFsVGVzdGluZyh0aGlzLm9wdGlvbnMuZTJlSWdub3JlQ2xhc3MpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RldmtpdC9hcHBsaWNhdGlvbi1kZXZ0b29scy5tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUE0QixvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBQyx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFJTCxvQkFBb0IsRUFFckIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUU5SCxNQUFNLHFCQUFxQixHQUFHLDZCQUE2QixDQUFDO0FBSzVELE1BQU0sT0FBTyxpQ0FBaUM7SUFRNUMsWUFDcUIsTUFBcUIsRUFDckIsbUJBQTZDLEVBQ04sT0FBMkM7UUFGbEYsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTBCO1FBVGpELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFHNUIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5DLGdC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QixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDckgsQ0FBQztRQUNGLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO2lJQWpJVSxpQ0FBaUMsdUZBV3BCLGtDQUFrQztxSUFYL0MsaUNBQWlDLGNBRmhDLE1BQU07OzJGQUVQLGlDQUFpQztrQkFIN0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVlNLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERldnRvb2xzU2VydmljZUludGVyZmFjZSwgZmlsdGVyTWVzc2FnZUNvbnRlbnQsIHNlbmRPdHRlck1lc3NhZ2UgfSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB7IGlzVmlzdWFsVGVzdGluZ0VuYWJsZWQsIHByZXBhcmVWaXN1YWxUZXN0aW5nLHRvZ2dsZVZpc3VhbFRlc3RpbmdSZW5kZXIgfSBmcm9tICdAbzNyL3Rlc3RpbmcvdmlzdWFsLXRlc3QvdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIHR5cGUgQXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zLFxuICB0eXBlIEFwcGxpY2F0aW9uTWVzc2FnZURhdGFUeXBlcyxcbiAgdHlwZSBBdmFpbGFibGVBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cyxcbiAgaXNBcHBsaWNhdGlvbk1lc3NhZ2UsXG4gIHR5cGUgU3RhdGVTZWxlY3Rpb25Db250ZW50TWVzc2FnZVxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldmtpdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3R0ZXJBcHBsaWNhdGlvbkRldnRvb2xzIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kZXZ0b29scy5zZXJ2aWNlJztcbmltcG9ydCB7IE9UVEVSX0FQUExJQ0FUSU9OX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUywgT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfT1BUSU9OUyB9IGZyb20gJy4vYXBwbGljYXRpb24tZGV2dG9vbHMudG9rZW4nO1xuXG5jb25zdCBPVFRFUl9TVEFURV9SSUJCT05fSUQgPSAnb3R0ZXItZGV2dG9vbHMtc3RhdGUtcmliYm9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25EZXZ0b29sc01lc3NhZ2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95LCBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBBcHBsaWNhdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VuZE1lc3NhZ2UgPSBzZW5kT3R0ZXJNZXNzYWdlPEF2YWlsYWJsZUFwcGxpY2F0aW9uTWVzc2FnZUNvbnRlbnRzPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvbkRldnRvb2xzOiBPdHRlckFwcGxpY2F0aW9uRGV2dG9vbHMsXG4gICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9UVEVSX0FQUExJQ0FUSU9OX0RFVlRPT0xTX09QVElPTlMpIG9wdGlvbnM/OiBBcHBsaWNhdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi5PVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19ERUZBVUxUX09QVElPTlMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNBY3RpdmF0ZWRPbkJvb3RzdHJhcCkge1xuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VuZEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKSB7XG4gICAgdGhpcy5zZW5kTWVzc2FnZSgnYXBwbGljYXRpb25JbmZvcm1hdGlvbicsIHRoaXMuYXBwbGljYXRpb25EZXZ0b29scy5nZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNvbm5lY3QgdGhlIHBsdWdpbiB0byB0aGUgT3R0ZXIgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqL1xuICBwcml2YXRlIGNvbm5lY3RQbHVnaW4oKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ090dGVyIERldlRvb2xzIGlzIHBsdWdnZWQgdG8gYXBwbGljYXRpb24gc2VydmljZSBvZiB0aGUgYXBwbGljYXRpb24nKTtcbiAgICB2b2lkIHRoaXMuc2VuZEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byB0cmlnZ2VyIGEgcmUtc2VuZCBhIHJlcXVlc3RlZCBtZXNzYWdlcyB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gb25seSByZXN0cmljdGVkIGxpc3Qgb2YgbWVzc2FnZXMgdG8gcmUtc2VuZFxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVSZUVtaXRSZXF1ZXN0KG9ubHk/OiBBcHBsaWNhdGlvbk1lc3NhZ2VEYXRhVHlwZXNbXSkge1xuICAgIGlmICghb25seSB8fCBvbmx5LmluY2x1ZGVzKCdhcHBsaWNhdGlvbkluZm9ybWF0aW9uJykpIHtcbiAgICAgIHRoaXMuc2VuZEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBpbmNvbWluZyBtZXNzYWdlcyBmcm9tIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIGV2ZW50IEV2ZW50IGNvbWluZyBmcm9tIHRoZSBPdHRlciBDaHJvbWUgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSBtZXNzYWdlXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUV2ZW50cyhtZXNzYWdlOiBBdmFpbGFibGVBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdNZXNzYWdlIGhhbmRsaW5nIGJ5IHRoZSBhcHBsaWNhdGlvbiBzZXJ2aWNlJywgbWVzc2FnZSk7XG5cbiAgICBzd2l0Y2ggKG1lc3NhZ2UuZGF0YVR5cGUpIHtcbiAgICAgIGNhc2UgJ2Nvbm5lY3QnOiB7XG4gICAgICAgIHRoaXMuY29ubmVjdFBsdWdpbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3JlcXVlc3RNZXNzYWdlcyc6IHtcbiAgICAgICAgdGhpcy5oYW5kbGVSZUVtaXRSZXF1ZXN0KG1lc3NhZ2Uub25seSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAndG9nZ2xlVmlzdWFsVGVzdGluZyc6IHtcbiAgICAgICAgdGhpcy50b2dnbGVWaXN1YWxUZXN0aW5nUmVuZGVyKG1lc3NhZ2UudG9nZ2xlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdzdGF0ZVNlbGVjdGlvbic6IHtcbiAgICAgICAgdGhpcy5vblN0YXRlU2VsZWN0aW9uKG1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3Vuc2VsZWN0U3RhdGUnOiB7XG4gICAgICAgIHRoaXMudW5zZWxlY3RTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignTWVzc2FnZSBpZ25vcmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBzZXJ2aWNlJywgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1bnNlbGVjdFN0YXRlKCkge1xuICAgIGNvbnN0IHJpYmJvbkVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oYCMke09UVEVSX1NUQVRFX1JJQkJPTl9JRH1gKTtcbiAgICBpZiAocmliYm9uRWxlbWVudCkge1xuICAgICAgcmliYm9uRWxlbWVudC5yZW1vdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uU3RhdGVTZWxlY3Rpb24obWVzc2FnZTogU3RhdGVTZWxlY3Rpb25Db250ZW50TWVzc2FnZSkge1xuICAgIGxldCByaWJib25FbGVtZW50ID0gdGhpcy5kb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KGAjJHtPVFRFUl9TVEFURV9SSUJCT05fSUR9YCk7XG4gICAgaWYgKCFyaWJib25FbGVtZW50KSB7XG4gICAgICByaWJib25FbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHJpYmJvbkVsZW1lbnQuaWQgPSBPVFRFUl9TVEFURV9SSUJCT05fSUQ7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmliYm9uRWxlbWVudCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnN0YXRlTmFtZSkge1xuICAgICAgcmliYm9uRWxlbWVudC5pbm5lckhUTUwgPSBtZXNzYWdlLnN0YXRlTmFtZTtcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IG1lc3NhZ2Uuc3RhdGVDb2xvcjtcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUuY29sb3IgPSBtZXNzYWdlLnN0YXRlQ29sb3JDb250cmFzdDtcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgICAgcmliYm9uRWxlbWVudC5zdHlsZS5ib3R0b20gPSAnMCc7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzAnO1xuICAgICAgcmliYm9uRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKGNhbGMoMTAwJSAqICgxIC0gY29zKDQ1ZGVnKSkpKSByb3RhdGUoLTQ1ZGVnKSc7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9ICdib3R0b20gbGVmdCc7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLmNsaXBQYXRoID0gJ2luc2V0KDAgLTEwMCUpJztcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUuYm94U2hhZG93ID0gYDBweCAwcHggMHB4IDk5OXB4ICR7bWVzc2FnZS5zdGF0ZUNvbG9yfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIHZpc3VhbCB0ZXN0aW5nIHJlbmRlcmluZ1xuICAgKiBAcGFyYW0gZW5hYmxlZCBhY3RpdmF0ZSBvciBkZWFjdGl2YXRlIHRoZSB2aXN1YWwgdGVzdGluZyBtb2RlXG4gICAqL1xuICBwcml2YXRlIHRvZ2dsZVZpc3VhbFRlc3RpbmdSZW5kZXIoZW5hYmxlZD86IGJvb2xlYW4pIHtcbiAgICB0b2dnbGVWaXN1YWxUZXN0aW5nUmVuZGVyKGVuYWJsZWQgPT09IHVuZGVmaW5lZCA/ICFpc1Zpc3VhbFRlc3RpbmdFbmFibGVkKCkgOiBlbmFibGVkKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgYWN0aXZhdGUoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdtZXNzYWdlJykucGlwZShmaWx0ZXJNZXNzYWdlQ29udGVudChpc0FwcGxpY2F0aW9uTWVzc2FnZSkpLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5oYW5kbGVFdmVudHMoZSkpXG4gICAgKTtcbiAgICBwcmVwYXJlVmlzdWFsVGVzdGluZyh0aGlzLm9wdGlvbnMuZTJlSWdub3JlQ2xhc3MpO1xuICAgIHRoaXMuc2VuZEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,34 +1,27 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { Inject, Injectable, Optional } from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
3
  import { isProductionEnvironment } from '@o3r/core';
4
4
  import { ENVIRONMENT_CONFIG_TOKEN } from '@o3r/routing';
5
+ import { OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';
5
6
  import * as i0 from "@angular/core";
6
7
  export class OtterApplicationDevtools {
7
- constructor(document, env) {
8
- this.document = document;
9
- this.env = env;
8
+ constructor() {
9
+ this.options = inject(OTTER_APPLICATION_DEVTOOLS_OPTIONS, { optional: true });
10
+ this.document = inject(DOCUMENT, { optional: true });
11
+ this.env = inject(ENVIRONMENT_CONFIG_TOKEN, { optional: true });
10
12
  }
11
13
  getApplicationInformation() {
12
14
  return {
15
+ appName: this.options?.appName || 'unknown',
13
16
  appVersion: this.env?.APP_VERSION || 'unknown',
14
17
  isProduction: isProductionEnvironment(this.document?.body.dataset)
15
18
  };
16
19
  }
17
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OtterApplicationDevtools, deps: [{ token: DOCUMENT, optional: true }, { token: ENVIRONMENT_CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
20
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OtterApplicationDevtools, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
18
21
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OtterApplicationDevtools, providedIn: 'root' }); }
19
22
  }
20
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OtterApplicationDevtools, decorators: [{
21
24
  type: Injectable,
22
25
  args: [{ providedIn: 'root' }]
23
- }], ctorParameters: () => [{ type: undefined, decorators: [{
24
- type: Optional
25
- }, {
26
- type: Inject,
27
- args: [DOCUMENT]
28
- }] }, { type: undefined, decorators: [{
29
- type: Optional
30
- }, {
31
- type: Inject,
32
- args: [ENVIRONMENT_CONFIG_TOKEN]
33
- }] }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvYXBwbGljYXRpb24tZGV2dG9vbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBdUIsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUl4RCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLFlBQ2lELFFBQWMsRUFDRSxHQUF5QjtRQUR6QyxhQUFRLEdBQVIsUUFBUSxDQUFNO1FBQ0UsUUFBRyxHQUFILEdBQUcsQ0FBc0I7SUFDMUYsQ0FBQztJQUdNLHlCQUF5QjtRQUM5QixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxJQUFJLFNBQVM7WUFDOUMsWUFBWSxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUNuRSxDQUFDO0lBQ0osQ0FBQztpSUFiVSx3QkFBd0Isa0JBR2IsUUFBUSw2QkFDUix3QkFBd0I7cUlBSm5DLHdCQUF3QixjQURYLE1BQU07OzJGQUNuQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFJN0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdWlsZFRpbWVQcm9wZXJ0aWVzLCBpc1Byb2R1Y3Rpb25FbnZpcm9ubWVudCB9IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVF9DT05GSUdfVE9LRU4gfSBmcm9tICdAbzNyL3JvdXRpbmcnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvcm1hdGlvbiB9IGZyb20gJy4vYXBwbGljYXRpb24tZGV2a2l0LmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgT3R0ZXJBcHBsaWNhdGlvbkRldnRvb2xzIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50PzogYW55LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRU5WSVJPTk1FTlRfQ09ORklHX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGVudj86IEJ1aWxkVGltZVByb3BlcnRpZXMpIHtcbiAgfVxuXG5cbiAgcHVibGljIGdldEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKTogQXBwbGljYXRpb25JbmZvcm1hdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcFZlcnNpb246IHRoaXMuZW52Py5BUFBfVkVSU0lPTiB8fCAndW5rbm93bicsXG4gICAgICBpc1Byb2R1Y3Rpb246IGlzUHJvZHVjdGlvbkVudmlyb25tZW50KHRoaXMuZG9jdW1lbnQ/LmJvZHkuZGF0YXNldClcbiAgICB9O1xuICB9XG59XG4iXX0=
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvYXBwbGljYXRpb24tZGV2dG9vbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFnQix1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR2xGLE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFFbUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEQsUUFBRyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBVTdFO0lBUFEseUJBQXlCO1FBQzlCLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksU0FBUztZQUMzQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxXQUFXLElBQUksU0FBUztZQUM5QyxZQUFZLEVBQUUsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBa0IsQ0FBQztTQUM5RSxDQUFDO0lBQ0osQ0FBQztpSUFaVSx3QkFBd0I7cUlBQXhCLHdCQUF3QixjQURYLE1BQU07OzJGQUNuQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIERhdGFzZXQsIGlzUHJvZHVjdGlvbkVudmlyb25tZW50IH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7IEVOVklST05NRU5UX0NPTkZJR19UT0tFTiB9IGZyb20gJ0BvM3Ivcm91dGluZyc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uSW5mb3JtYXRpb24gfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldmtpdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfT1BUSU9OUyB9IGZyb20gJy4vYXBwbGljYXRpb24tZGV2dG9vbHMudG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE90dGVyQXBwbGljYXRpb25EZXZ0b29scyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChPVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19PUFRJT05TLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5ULCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudiA9IGluamVjdChFTlZJUk9OTUVOVF9DT05GSUdfVE9LRU4sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cblxuICBwdWJsaWMgZ2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbigpOiBBcHBsaWNhdGlvbkluZm9ybWF0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwTmFtZTogdGhpcy5vcHRpb25zPy5hcHBOYW1lIHx8ICd1bmtub3duJyxcbiAgICAgIGFwcFZlcnNpb246IHRoaXMuZW52Py5BUFBfVkVSU0lPTiB8fCAndW5rbm93bicsXG4gICAgICBpc1Byb2R1Y3Rpb246IGlzUHJvZHVjdGlvbkVudmlyb25tZW50KHRoaXMuZG9jdW1lbnQ/LmJvZHkuZGF0YXNldCBhcyBEYXRhc2V0KVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Optional, Inject, InjectionToken, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, Optional, Inject, NgModule } from '@angular/core';
3
3
  import { DOCUMENT } from '@angular/common';
4
4
  import { isProductionEnvironment, sendOtterMessage, filterMessageContent } from '@o3r/core';
5
5
  import { ENVIRONMENT_CONFIG_TOKEN } from '@o3r/routing';
@@ -23,44 +23,38 @@ function prefersReducedMotion() {
23
23
  */
24
24
  const isApplicationMessage = (message) => {
25
25
  return message && (message.dataType === 'toggleVisualTesting' ||
26
+ message.dataType === 'stateSelection' ||
26
27
  message.dataType === 'applicationInformation' ||
28
+ message.dataType === 'unselectState' ||
27
29
  message.dataType === 'requestMessages' ||
28
30
  message.dataType === 'connect');
29
31
  };
30
32
 
33
+ const OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS = {
34
+ isActivatedOnBootstrap: false
35
+ };
36
+ const OTTER_APPLICATION_DEVTOOLS_OPTIONS = new InjectionToken('Otter Application Devtools options');
37
+
31
38
  class OtterApplicationDevtools {
32
- constructor(document, env) {
33
- this.document = document;
34
- this.env = env;
39
+ constructor() {
40
+ this.options = inject(OTTER_APPLICATION_DEVTOOLS_OPTIONS, { optional: true });
41
+ this.document = inject(DOCUMENT, { optional: true });
42
+ this.env = inject(ENVIRONMENT_CONFIG_TOKEN, { optional: true });
35
43
  }
36
44
  getApplicationInformation() {
37
45
  return {
46
+ appName: this.options?.appName || 'unknown',
38
47
  appVersion: this.env?.APP_VERSION || 'unknown',
39
48
  isProduction: isProductionEnvironment(this.document?.body.dataset)
40
49
  };
41
50
  }
42
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OtterApplicationDevtools, deps: [{ token: DOCUMENT, optional: true }, { token: ENVIRONMENT_CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
51
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OtterApplicationDevtools, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
52
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OtterApplicationDevtools, providedIn: 'root' }); }
44
53
  }
45
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OtterApplicationDevtools, decorators: [{
46
55
  type: Injectable,
47
56
  args: [{ providedIn: 'root' }]
48
- }], ctorParameters: () => [{ type: undefined, decorators: [{
49
- type: Optional
50
- }, {
51
- type: Inject,
52
- args: [DOCUMENT]
53
- }] }, { type: undefined, decorators: [{
54
- type: Optional
55
- }, {
56
- type: Inject,
57
- args: [ENVIRONMENT_CONFIG_TOKEN]
58
- }] }] });
59
-
60
- const OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS = {
61
- isActivatedOnBootstrap: false
62
- };
63
- const OTTER_APPLICATION_DEVTOOLS_OPTIONS = new InjectionToken('Otter Application Devtools options');
57
+ }] });
64
58
 
65
59
  /* eslint-disable no-console */
66
60
  class ApplicationDevtoolsConsoleService {
@@ -101,10 +95,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
101
95
  args: [OTTER_APPLICATION_DEVTOOLS_OPTIONS]
102
96
  }] }] });
103
97
 
98
+ const OTTER_STATE_RIBBON_ID = 'otter-devtools-state-ribbon';
104
99
  class ApplicationDevtoolsMessageService {
105
100
  constructor(logger, applicationDevtools, options) {
106
101
  this.logger = logger;
107
102
  this.applicationDevtools = applicationDevtools;
103
+ this.document = inject(DOCUMENT);
108
104
  this.subscriptions = new Subscription();
109
105
  this.sendMessage = (sendOtterMessage);
110
106
  this.options = {
@@ -154,11 +150,48 @@ class ApplicationDevtoolsMessageService {
154
150
  this.toggleVisualTestingRender(message.toggle);
155
151
  break;
156
152
  }
153
+ case 'stateSelection': {
154
+ this.onStateSelection(message);
155
+ break;
156
+ }
157
+ case 'unselectState': {
158
+ this.unselectState();
159
+ break;
160
+ }
157
161
  default: {
158
162
  this.logger.warn('Message ignored by the application service', message);
159
163
  }
160
164
  }
161
165
  }
166
+ unselectState() {
167
+ const ribbonElement = this.document.body.querySelector(`#${OTTER_STATE_RIBBON_ID}`);
168
+ if (ribbonElement) {
169
+ ribbonElement.remove();
170
+ }
171
+ }
172
+ onStateSelection(message) {
173
+ let ribbonElement = this.document.body.querySelector(`#${OTTER_STATE_RIBBON_ID}`);
174
+ if (!ribbonElement) {
175
+ ribbonElement = this.document.createElement('div');
176
+ ribbonElement.id = OTTER_STATE_RIBBON_ID;
177
+ this.document.body.appendChild(ribbonElement);
178
+ }
179
+ if (message.stateName) {
180
+ ribbonElement.innerHTML = message.stateName;
181
+ ribbonElement.style.background = message.stateColor;
182
+ ribbonElement.style.color = message.stateColorContrast;
183
+ ribbonElement.style.position = 'fixed';
184
+ ribbonElement.style.bottom = '0';
185
+ ribbonElement.style.right = '0';
186
+ ribbonElement.style.transform = 'translate(calc(100% * (1 - cos(45deg)))) rotate(-45deg)';
187
+ ribbonElement.style.transformOrigin = 'bottom left';
188
+ ribbonElement.style.clipPath = 'inset(0 -100%)';
189
+ ribbonElement.style.boxShadow = `0px 0px 0px 999px ${message.stateColor}`;
190
+ }
191
+ else {
192
+ ribbonElement.style.display = 'none';
193
+ }
194
+ }
162
195
  /**
163
196
  * Toggle visual testing rendering
164
197
  * @param enabled activate or deactivate the visual testing mode
@@ -170,6 +203,7 @@ class ApplicationDevtoolsMessageService {
170
203
  activate() {
171
204
  this.subscriptions.add(fromEvent(window, 'message').pipe(filterMessageContent(isApplicationMessage)).subscribe((e) => this.handleEvents(e)));
172
205
  prepareVisualTesting(this.options.e2eIgnoreClass);
206
+ this.sendApplicationInformation();
173
207
  }
174
208
  /** @inheritDoc */
175
209
  ngOnDestroy() {
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-application.mjs","sources":["../../src/browser-preference/helper.ts","../../src/devkit/application-devkit.interface.ts","../../src/devkit/application-devtools.service.ts","../../src/devkit/application-devtools.token.ts","../../src/devkit/application-devtools.console.service.ts","../../src/devkit/application-devtools.message.service.ts","../../src/devkit/application-devtools.module.ts","../../src/o3r-application.ts"],"sourcesContent":["/**\n * Method that returns the setting of the user regarding animations.\n * This setting is generally set in the Operating System settings, and it is used by browsers.\n * Refer to: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion\n */\nexport function prefersReducedMotion(): boolean {\n const mediaQueryList = window.matchMedia('(prefers-reduced-motion)');\n\n return mediaQueryList.matches;\n}\n","import type { ConnectContentMessage, DevtoolsCommonOptions, MessageDataTypes, OtterMessageContent, RequestMessagesContentMessage } from '@o3r/core';\n\nexport interface ApplicationDevtoolsServiceOptions extends DevtoolsCommonOptions {\n /**\n * CSS classname applied to an HTML tag to hide it, ignore it, in the e2e visual testing process\n */\n e2eIgnoreClass?: string;\n}\n\n/**\n * Session information used to track all the calls done by one or several APIs of the SDK.\n */\nexport interface SessionInformation {\n /**\n * The session ID\n */\n id: string;\n /**\n * The generated time\n */\n generatedTime: Date;\n}\n\n/** Information relative loaded application */\nexport interface ApplicationInformation {\n /** Application Version */\n appVersion: string;\n /**\n * Session Information\n * @note This is a session ID will be provided only with the Amadeus Otter implementation of the application package.\n */\n session?: SessionInformation;\n /**\n * Log Link\n * @note This a link to Alf logs, it will be provided only with the Amadeus Otter implementation of the application package.\n */\n logLink?: string;\n /** Is Production Environment */\n isProduction: boolean;\n}\n\n/** Toggle Visual Testing */\nexport interface ToggleVisualTestingMessage extends OtterMessageContent<'toggleVisualTesting'> {\n /** Toggle the visual testing mode */\n toggle?: boolean;\n}\n\n\n/** Application Information Message Content */\nexport interface ApplicationInformationContentMessage extends ApplicationInformation, OtterMessageContent<'applicationInformation'> {\n}\n\ntype ApplicationMessageContents =\n | ApplicationInformationContentMessage\n | ToggleVisualTestingMessage;\n\n/** List of possible DataTypes for Application messages */\nexport type ApplicationMessageDataTypes = MessageDataTypes<ApplicationMessageContents>;\n\n/** List of all messages for application purpose */\nexport type AvailableApplicationMessageContents =\n | ApplicationMessageContents\n | ConnectContentMessage\n | RequestMessagesContentMessage<ApplicationMessageDataTypes>;\n\n/**\n * Determine if the given message is a Application message\n * @param message message to check\n */\nexport const isApplicationMessage = (message: any): message is AvailableApplicationMessageContents => {\n return message && (\n message.dataType === 'toggleVisualTesting' ||\n message.dataType === 'applicationInformation' ||\n message.dataType === 'requestMessages' ||\n message.dataType === 'connect');\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { BuildTimeProperties, isProductionEnvironment } from '@o3r/core';\nimport { ENVIRONMENT_CONFIG_TOKEN } from '@o3r/routing';\nimport { ApplicationInformation } from './application-devkit.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class OtterApplicationDevtools {\n\n constructor(\n @Optional() @Inject(DOCUMENT) private readonly document?: any,\n @Optional() @Inject(ENVIRONMENT_CONFIG_TOKEN) private readonly env?: BuildTimeProperties) {\n }\n\n\n public getApplicationInformation(): ApplicationInformation {\n return {\n appVersion: this.env?.APP_VERSION || 'unknown',\n isProduction: isProductionEnvironment(this.document?.body.dataset)\n };\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ApplicationDevtoolsServiceOptions } from './application-devkit.interface';\n\nexport const OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS: ApplicationDevtoolsServiceOptions = {\n isActivatedOnBootstrap: false\n};\n\nexport const OTTER_APPLICATION_DEVTOOLS_OPTIONS: InjectionToken<ApplicationDevtoolsServiceOptions> = new InjectionToken<ApplicationDevtoolsServiceOptions>('Otter Application Devtools options');\n","/* eslint-disable no-console */\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport type { DevtoolsServiceInterface, WindowWithDevtools } from '@o3r/core';\nimport { ApplicationDevtoolsServiceOptions } from './application-devkit.interface';\nimport { OtterApplicationDevtools } from './application-devtools.service';\nimport { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationDevtoolsConsoleService implements DevtoolsServiceInterface {\n /** Name of the Window property to access to the devtools */\n public static readonly windowModuleName = 'application';\n\n private readonly options: ApplicationDevtoolsServiceOptions;\n\n constructor(\n private readonly applicationDevtools: OtterApplicationDevtools,\n @Optional() @Inject(OTTER_APPLICATION_DEVTOOLS_OPTIONS) options?: ApplicationDevtoolsServiceOptions\n ) {\n this.options = { ...OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, ...options };\n\n if (this.options.isActivatedOnBootstrap) {\n this.activate();\n }\n }\n /** @inheritDoc */\n public activate() {\n const windowWithDevtools: WindowWithDevtools = window;\n // eslint-disable-next-line no-underscore-dangle\n windowWithDevtools._OTTER_DEVTOOLS_ ||= {};\n // eslint-disable-next-line no-underscore-dangle\n windowWithDevtools._OTTER_DEVTOOLS_[ApplicationDevtoolsConsoleService.windowModuleName] = this;\n\n console.info(`Otter Application Devtools is now accessible via the _OTTER_DEVTOOLS_.${ApplicationDevtoolsConsoleService.windowModuleName} variable`);\n }\n\n /** Display the information relative to the running application */\n public displayApplicationInfo() {\n console.info('Application info', this.applicationDevtools.getApplicationInformation());\n }\n}\n","import { Inject, Injectable, OnDestroy, Optional } from '@angular/core';\nimport { DevtoolsServiceInterface, filterMessageContent, sendOtterMessage } from '@o3r/core';\nimport { LoggerService } from '@o3r/logger';\nimport { isVisualTestingEnabled, prepareVisualTesting,toggleVisualTestingRender } from '@o3r/testing/visual-test/utils';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { ApplicationDevtoolsServiceOptions, ApplicationMessageDataTypes, AvailableApplicationMessageContents, isApplicationMessage } from './application-devkit.interface';\nimport { OtterApplicationDevtools } from './application-devtools.service';\nimport { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationDevtoolsMessageService implements OnDestroy, DevtoolsServiceInterface {\n private readonly options: ApplicationDevtoolsServiceOptions;\n\n private readonly subscriptions = new Subscription();\n\n private readonly sendMessage = sendOtterMessage<AvailableApplicationMessageContents>;\n\n constructor(\n private readonly logger: LoggerService,\n private readonly applicationDevtools: OtterApplicationDevtools,\n @Optional() @Inject(OTTER_APPLICATION_DEVTOOLS_OPTIONS) options?: ApplicationDevtoolsServiceOptions) {\n this.options = {\n ...OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS,\n ...options\n };\n\n if (this.options.isActivatedOnBootstrap) {\n this.activate();\n }\n }\n\n private sendApplicationInformation() {\n this.sendMessage('applicationInformation', this.applicationDevtools.getApplicationInformation());\n }\n\n /**\n * Function to connect the plugin to the Otter DevTools extension\n */\n private connectPlugin() {\n this.logger.debug('Otter DevTools is plugged to application service of the application');\n void this.sendApplicationInformation();\n }\n\n /**\n * Function to trigger a re-send a requested messages to the Otter Chrome DevTools extension\n * @param only restricted list of messages to re-send\n */\n private handleReEmitRequest(only?: ApplicationMessageDataTypes[]) {\n if (!only || only.includes('applicationInformation')) {\n this.sendApplicationInformation();\n }\n }\n\n /**\n * Function to handle the incoming messages from Otter Chrome DevTools extension\n * @param event Event coming from the Otter Chrome DevTools extension\n * @param message\n */\n private handleEvents(message: AvailableApplicationMessageContents) {\n this.logger.debug('Message handling by the application service', message);\n\n switch (message.dataType) {\n case 'connect': {\n this.connectPlugin();\n break;\n }\n case 'requestMessages': {\n this.handleReEmitRequest(message.only);\n break;\n }\n case 'toggleVisualTesting': {\n this.toggleVisualTestingRender(message.toggle);\n break;\n }\n default: {\n this.logger.warn('Message ignored by the application service', message);\n }\n }\n }\n\n /**\n * Toggle visual testing rendering\n * @param enabled activate or deactivate the visual testing mode\n */\n private toggleVisualTestingRender(enabled?: boolean) {\n toggleVisualTestingRender(enabled === undefined ? !isVisualTestingEnabled() : enabled);\n }\n\n /** @inheritDoc */\n public activate() {\n this.subscriptions.add(\n fromEvent(window, 'message').pipe(filterMessageContent(isApplicationMessage)).subscribe((e) => this.handleEvents(e))\n );\n prepareVisualTesting(this.options.e2eIgnoreClass);\n }\n\n /** @inheritDoc */\n public ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport type { ApplicationDevtoolsServiceOptions } from './application-devkit.interface';\nimport { ApplicationDevtoolsConsoleService } from './application-devtools.console.service';\nimport { ApplicationDevtoolsMessageService } from './application-devtools.message.service';\nimport { OtterApplicationDevtools } from './application-devtools.service';\nimport { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';\n\n@NgModule({\n providers: [\n { provide: OTTER_APPLICATION_DEVTOOLS_OPTIONS, useValue: OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS },\n ApplicationDevtoolsMessageService,\n ApplicationDevtoolsConsoleService,\n OtterApplicationDevtools\n ]\n})\nexport class ApplicationDevtoolsModule {\n\n /**\n * Initialize Otter Devtools\n * @param options\n */\n public static instrument(options: Partial<ApplicationDevtoolsServiceOptions>): ModuleWithProviders<ApplicationDevtoolsModule> {\n return {\n ngModule: ApplicationDevtoolsModule,\n providers: [\n { provide: OTTER_APPLICATION_DEVTOOLS_OPTIONS, useValue: {...OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, ...options}, multi: false },\n ApplicationDevtoolsMessageService,\n ApplicationDevtoolsConsoleService,\n OtterApplicationDevtools\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"o3r-application.mjs","sources":["../../src/browser-preference/helper.ts","../../src/devkit/application-devkit.interface.ts","../../src/devkit/application-devtools.token.ts","../../src/devkit/application-devtools.service.ts","../../src/devkit/application-devtools.console.service.ts","../../src/devkit/application-devtools.message.service.ts","../../src/devkit/application-devtools.module.ts","../../src/o3r-application.ts"],"sourcesContent":["/**\n * Method that returns the setting of the user regarding animations.\n * This setting is generally set in the Operating System settings, and it is used by browsers.\n * Refer to: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion\n */\nexport function prefersReducedMotion(): boolean {\n const mediaQueryList = window.matchMedia('(prefers-reduced-motion)');\n\n return mediaQueryList.matches;\n}\n","import type { ConnectContentMessage, DevtoolsCommonOptions, MessageDataTypes, OtterMessageContent, RequestMessagesContentMessage } from '@o3r/core';\n\nexport interface ApplicationDevtoolsServiceOptions extends DevtoolsCommonOptions {\n /**\n * Application name\n */\n appName?: string;\n /**\n * CSS classname applied to an HTML tag to hide it, ignore it, in the e2e visual testing process\n */\n e2eIgnoreClass?: string;\n}\n\n/**\n * Session information used to track all the calls done by one or several APIs of the SDK.\n */\nexport interface SessionInformation {\n /**\n * The session ID\n */\n id: string;\n /**\n * The generated time\n */\n generatedTime: Date;\n}\n\n/** Information relative loaded application */\nexport interface ApplicationInformation {\n /**\n * Application name\n */\n appName: string;\n /** Application Version */\n appVersion: string;\n /**\n * Session Information\n * @note This is a session ID will be provided only with the Amadeus Otter implementation of the application package.\n */\n session?: SessionInformation;\n /**\n * Log Link\n * @note This a link to Alf logs, it will be provided only with the Amadeus Otter implementation of the application package.\n */\n logLink?: string;\n /** Is Production Environment */\n isProduction: boolean;\n}\n\n/** Toggle Visual Testing */\nexport interface ToggleVisualTestingMessage extends OtterMessageContent<'toggleVisualTesting'> {\n /** Toggle the visual testing mode */\n toggle?: boolean;\n}\n\n\n/** Application Information Message Content */\nexport interface ApplicationInformationContentMessage extends ApplicationInformation, OtterMessageContent<'applicationInformation'> {\n}\n\n/** State selection message */\nexport interface StateSelectionContentMessage extends OtterMessageContent<'stateSelection'> {\n /** Name of the state */\n stateName: string;\n /** Color of the state */\n stateColor: string;\n /** Contrast color of the state */\n stateColorContrast: string;\n}\n\n/** Unselect state message */\nexport interface UnselectStateContentMessage extends OtterMessageContent<'unselectState'> {}\n\ntype ApplicationMessageContents =\n | ApplicationInformationContentMessage\n | StateSelectionContentMessage\n | UnselectStateContentMessage\n | ToggleVisualTestingMessage;\n\n/** List of possible DataTypes for Application messages */\nexport type ApplicationMessageDataTypes = MessageDataTypes<ApplicationMessageContents>;\n\n/** List of all messages for application purpose */\nexport type AvailableApplicationMessageContents =\n | ApplicationMessageContents\n | ConnectContentMessage\n | RequestMessagesContentMessage<ApplicationMessageDataTypes>;\n\n/**\n * Determine if the given message is a Application message\n * @param message message to check\n */\nexport const isApplicationMessage = (message: any): message is AvailableApplicationMessageContents => {\n return message && (\n message.dataType === 'toggleVisualTesting' ||\n message.dataType === 'stateSelection' ||\n message.dataType === 'applicationInformation' ||\n message.dataType === 'unselectState' ||\n message.dataType === 'requestMessages' ||\n message.dataType === 'connect');\n};\n","import { InjectionToken } from '@angular/core';\nimport { ApplicationDevtoolsServiceOptions } from './application-devkit.interface';\n\nexport const OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS: ApplicationDevtoolsServiceOptions = {\n isActivatedOnBootstrap: false\n};\n\nexport const OTTER_APPLICATION_DEVTOOLS_OPTIONS: InjectionToken<ApplicationDevtoolsServiceOptions> = new InjectionToken<ApplicationDevtoolsServiceOptions>('Otter Application Devtools options');\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { type Dataset, isProductionEnvironment } from '@o3r/core';\nimport { ENVIRONMENT_CONFIG_TOKEN } from '@o3r/routing';\nimport type { ApplicationInformation } from './application-devkit.interface';\nimport { OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';\n\n@Injectable({ providedIn: 'root' })\nexport class OtterApplicationDevtools {\n private readonly options = inject(OTTER_APPLICATION_DEVTOOLS_OPTIONS, { optional: true });\n private readonly document = inject(DOCUMENT, { optional: true });\n private readonly env = inject(ENVIRONMENT_CONFIG_TOKEN, { optional: true });\n\n\n public getApplicationInformation(): ApplicationInformation {\n return {\n appName: this.options?.appName || 'unknown',\n appVersion: this.env?.APP_VERSION || 'unknown',\n isProduction: isProductionEnvironment(this.document?.body.dataset as Dataset)\n };\n }\n}\n","/* eslint-disable no-console */\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport type { DevtoolsServiceInterface, WindowWithDevtools } from '@o3r/core';\nimport { ApplicationDevtoolsServiceOptions } from './application-devkit.interface';\nimport { OtterApplicationDevtools } from './application-devtools.service';\nimport { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationDevtoolsConsoleService implements DevtoolsServiceInterface {\n /** Name of the Window property to access to the devtools */\n public static readonly windowModuleName = 'application';\n\n private readonly options: ApplicationDevtoolsServiceOptions;\n\n constructor(\n private readonly applicationDevtools: OtterApplicationDevtools,\n @Optional() @Inject(OTTER_APPLICATION_DEVTOOLS_OPTIONS) options?: ApplicationDevtoolsServiceOptions\n ) {\n this.options = { ...OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, ...options };\n\n if (this.options.isActivatedOnBootstrap) {\n this.activate();\n }\n }\n /** @inheritDoc */\n public activate() {\n const windowWithDevtools: WindowWithDevtools = window;\n // eslint-disable-next-line no-underscore-dangle\n windowWithDevtools._OTTER_DEVTOOLS_ ||= {};\n // eslint-disable-next-line no-underscore-dangle\n windowWithDevtools._OTTER_DEVTOOLS_[ApplicationDevtoolsConsoleService.windowModuleName] = this;\n\n console.info(`Otter Application Devtools is now accessible via the _OTTER_DEVTOOLS_.${ApplicationDevtoolsConsoleService.windowModuleName} variable`);\n }\n\n /** Display the information relative to the running application */\n public displayApplicationInfo() {\n console.info('Application info', this.applicationDevtools.getApplicationInformation());\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Inject, Injectable, OnDestroy, Optional } from '@angular/core';\nimport { DevtoolsServiceInterface, filterMessageContent, sendOtterMessage } from '@o3r/core';\nimport { LoggerService } from '@o3r/logger';\nimport { isVisualTestingEnabled, prepareVisualTesting,toggleVisualTestingRender } from '@o3r/testing/visual-test/utils';\nimport { fromEvent, Subscription } from 'rxjs';\nimport {\n type ApplicationDevtoolsServiceOptions,\n type ApplicationMessageDataTypes,\n type AvailableApplicationMessageContents,\n isApplicationMessage,\n type StateSelectionContentMessage\n} from './application-devkit.interface';\nimport { OtterApplicationDevtools } from './application-devtools.service';\nimport { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';\n\nconst OTTER_STATE_RIBBON_ID = 'otter-devtools-state-ribbon';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationDevtoolsMessageService implements OnDestroy, DevtoolsServiceInterface {\n private readonly document = inject(DOCUMENT);\n private readonly options: ApplicationDevtoolsServiceOptions;\n\n private readonly subscriptions = new Subscription();\n\n private readonly sendMessage = sendOtterMessage<AvailableApplicationMessageContents>;\n\n constructor(\n private readonly logger: LoggerService,\n private readonly applicationDevtools: OtterApplicationDevtools,\n @Optional() @Inject(OTTER_APPLICATION_DEVTOOLS_OPTIONS) options?: ApplicationDevtoolsServiceOptions) {\n this.options = {\n ...OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS,\n ...options\n };\n\n if (this.options.isActivatedOnBootstrap) {\n this.activate();\n }\n }\n\n private sendApplicationInformation() {\n this.sendMessage('applicationInformation', this.applicationDevtools.getApplicationInformation());\n }\n\n /**\n * Function to connect the plugin to the Otter DevTools extension\n */\n private connectPlugin() {\n this.logger.debug('Otter DevTools is plugged to application service of the application');\n void this.sendApplicationInformation();\n }\n\n /**\n * Function to trigger a re-send a requested messages to the Otter Chrome DevTools extension\n * @param only restricted list of messages to re-send\n */\n private handleReEmitRequest(only?: ApplicationMessageDataTypes[]) {\n if (!only || only.includes('applicationInformation')) {\n this.sendApplicationInformation();\n }\n }\n\n /**\n * Function to handle the incoming messages from Otter Chrome DevTools extension\n * @param event Event coming from the Otter Chrome DevTools extension\n * @param message\n */\n private handleEvents(message: AvailableApplicationMessageContents) {\n this.logger.debug('Message handling by the application service', message);\n\n switch (message.dataType) {\n case 'connect': {\n this.connectPlugin();\n break;\n }\n case 'requestMessages': {\n this.handleReEmitRequest(message.only);\n break;\n }\n case 'toggleVisualTesting': {\n this.toggleVisualTestingRender(message.toggle);\n break;\n }\n case 'stateSelection': {\n this.onStateSelection(message);\n break;\n }\n case 'unselectState': {\n this.unselectState();\n break;\n }\n default: {\n this.logger.warn('Message ignored by the application service', message);\n }\n }\n }\n\n private unselectState() {\n const ribbonElement = this.document.body.querySelector<HTMLDivElement>(`#${OTTER_STATE_RIBBON_ID}`);\n if (ribbonElement) {\n ribbonElement.remove();\n }\n }\n\n private onStateSelection(message: StateSelectionContentMessage) {\n let ribbonElement = this.document.body.querySelector<HTMLDivElement>(`#${OTTER_STATE_RIBBON_ID}`);\n if (!ribbonElement) {\n ribbonElement = this.document.createElement('div');\n ribbonElement.id = OTTER_STATE_RIBBON_ID;\n this.document.body.appendChild(ribbonElement);\n }\n if (message.stateName) {\n ribbonElement.innerHTML = message.stateName;\n ribbonElement.style.background = message.stateColor;\n ribbonElement.style.color = message.stateColorContrast;\n ribbonElement.style.position = 'fixed';\n ribbonElement.style.bottom = '0';\n ribbonElement.style.right = '0';\n ribbonElement.style.transform = 'translate(calc(100% * (1 - cos(45deg)))) rotate(-45deg)';\n ribbonElement.style.transformOrigin = 'bottom left';\n ribbonElement.style.clipPath = 'inset(0 -100%)';\n ribbonElement.style.boxShadow = `0px 0px 0px 999px ${message.stateColor}`;\n } else {\n ribbonElement.style.display = 'none';\n }\n }\n\n /**\n * Toggle visual testing rendering\n * @param enabled activate or deactivate the visual testing mode\n */\n private toggleVisualTestingRender(enabled?: boolean) {\n toggleVisualTestingRender(enabled === undefined ? !isVisualTestingEnabled() : enabled);\n }\n\n /** @inheritDoc */\n public activate() {\n this.subscriptions.add(\n fromEvent(window, 'message').pipe(filterMessageContent(isApplicationMessage)).subscribe((e) => this.handleEvents(e))\n );\n prepareVisualTesting(this.options.e2eIgnoreClass);\n this.sendApplicationInformation();\n }\n\n /** @inheritDoc */\n public ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport type { ApplicationDevtoolsServiceOptions } from './application-devkit.interface';\nimport { ApplicationDevtoolsConsoleService } from './application-devtools.console.service';\nimport { ApplicationDevtoolsMessageService } from './application-devtools.message.service';\nimport { OtterApplicationDevtools } from './application-devtools.service';\nimport { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';\n\n@NgModule({\n providers: [\n { provide: OTTER_APPLICATION_DEVTOOLS_OPTIONS, useValue: OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS },\n ApplicationDevtoolsMessageService,\n ApplicationDevtoolsConsoleService,\n OtterApplicationDevtools\n ]\n})\nexport class ApplicationDevtoolsModule {\n\n /**\n * Initialize Otter Devtools\n * @param options\n */\n public static instrument(options: Partial<ApplicationDevtoolsServiceOptions>): ModuleWithProviders<ApplicationDevtoolsModule> {\n return {\n ngModule: ApplicationDevtoolsModule,\n providers: [\n { provide: OTTER_APPLICATION_DEVTOOLS_OPTIONS, useValue: {...OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, ...options}, multi: false },\n ApplicationDevtoolsMessageService,\n ApplicationDevtoolsConsoleService,\n OtterApplicationDevtools\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/application",
3
- "version": "11.0.0-rc.9",
3
+ "version": "11.0.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -28,11 +28,11 @@
28
28
  "@angular-devkit/schematics": "~18.0.0",
29
29
  "@angular/common": "~18.0.0",
30
30
  "@angular/core": "~18.0.0",
31
- "@o3r/core": "^11.0.0-rc.9",
32
- "@o3r/logger": "^11.0.0-rc.9",
33
- "@o3r/routing": "^11.0.0-rc.9",
34
- "@o3r/schematics": "^11.0.0-rc.9",
35
- "@o3r/testing": "^11.0.0-rc.9",
31
+ "@o3r/core": "^11.0.1",
32
+ "@o3r/logger": "^11.0.1",
33
+ "@o3r/routing": "^11.0.1",
34
+ "@o3r/schematics": "^11.0.1",
35
+ "@o3r/testing": "^11.0.1",
36
36
  "@schematics/angular": "~18.0.0",
37
37
  "rxjs": "^7.8.1",
38
38
  "typescript": "~5.4.2"
@@ -30,6 +30,10 @@
30
30
  "functionalContentsFolder": {
31
31
  "type": "string",
32
32
  "description": "The relative path to the functional contents metadata folder to import"
33
+ },
34
+ "migrationScriptFolder": {
35
+ "type": "string",
36
+ "description": "The relative path to the migration scripts"
33
37
  }
34
38
  }
35
39
  }
@@ -22,7 +22,7 @@ function updateCmsJsonFile() {
22
22
  }
23
23
  });
24
24
  Object.entries(filesToUpdate).forEach(([path, contentObj]) => {
25
- contentObj.$schema = 'https://github.com/AmadeusITGroup/otter/blob/main/packages/@o3r/application/schemas/cms.json';
25
+ contentObj.$schema = 'https://github.com/AmadeusITGroup/otter/blob/main/packages/@o3r/application/schemas/cms.schema.json';
26
26
  tree.overwrite(path, JSON.stringify(contentObj, null, 2));
27
27
  });
28
28
  return tree;
@@ -1 +1 @@
1
- {"version":3,"file":"update-cms-config.js","sourceRoot":"","sources":["../../../../schematics/ng-update/v10.0/update-cms-config.ts"],"names":[],"mappings":";;;AACA,yCAAqC;AAErC;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,aAAa,GAAwB,EAAE,CAAC;QAE9C,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YAClB,IAAI,IAAA,oBAAQ,EAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,UAAU,GAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;wBAC1D,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;oBACnC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,GAAG,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;YAC3D,UAAU,CAAC,OAAO,GAAG,8FAA8F,CAAC;YACpH,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAvBD,8CAuBC"}
1
+ {"version":3,"file":"update-cms-config.js","sourceRoot":"","sources":["../../../../schematics/ng-update/v10.0/update-cms-config.ts"],"names":[],"mappings":";;;AACA,yCAAqC;AAErC;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,aAAa,GAAwB,EAAE,CAAC;QAE9C,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YAClB,IAAI,IAAA,oBAAQ,EAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,UAAU,GAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;wBAC1D,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;oBACnC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,GAAG,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;YAC3D,UAAU,CAAC,OAAO,GAAG,qGAAqG,CAAC;YAC3H,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAvBD,8CAuBC"}