@o3r/application 11.6.0-prerelease.3 → 11.6.0-prerelease.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/devkit/application-devkit.interface.d.ts.map +1 -1
- package/devkit/application-devtools.console.service.d.ts.map +1 -1
- package/devkit/application-devtools.message.service.d.ts +2 -6
- package/devkit/application-devtools.message.service.d.ts.map +1 -1
- package/devkit/application-devtools.module.d.ts.map +1 -1
- package/devkit/application-devtools.service.d.ts.map +1 -1
- package/devkit/application-devtools.token.d.ts +1 -1
- package/devkit/application-devtools.token.d.ts.map +1 -1
- package/esm2022/devkit/application-devkit.interface.mjs +7 -7
- package/esm2022/devkit/application-devtools.console.service.mjs +8 -10
- package/esm2022/devkit/application-devtools.message.service.mjs +17 -21
- package/esm2022/devkit/application-devtools.module.mjs +10 -10
- package/esm2022/devkit/application-devtools.service.mjs +9 -9
- package/esm2022/devkit/application-devtools.token.mjs +2 -2
- package/esm2022/devkit/index.mjs +1 -1
- package/fesm2022/o3r-application.mjs +26 -32
- package/fesm2022/o3r-application.mjs.map +1 -1
- package/package.json +6 -6
- package/schematics/ng-add/helpers/devtools-registration.d.ts +0 -2
- package/schematics/ng-add/helpers/devtools-registration.d.ts.map +1 -1
- package/schematics/ng-add/helpers/devtools-registration.js +2 -4
- package/schematics/ng-add/index.d.ts.map +1 -1
- package/schematics/ng-add/index.js +13 -5
- package/schematics/ng-add/schema.d.ts.map +1 -1
- package/schematics/ng-update/index.d.ts.map +1 -1
- package/schematics/ng-update/index.js +1 -2
- package/schematics/ng-update/v10.0/update-cms-config.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-devkit.interface.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devkit.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"application-devkit.interface.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devkit.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,WAAW,CAAC;AAEnB,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;AAED,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,KAAG,OAAO,IAAI,mCAQ9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-devtools.console.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.console.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application-devtools.console.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.console.service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iCAAiC,EAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;;AAMxC,qBAGa,iCAAkC,YAAW,wBAAwB;IAO9E,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IANtC,4DAA4D;IAC5D,gBAAuB,gBAAgB,iBAAiB;IAExD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAGzC,mBAAmB,EAAE,wBAAwB,EACN,OAAO,CAAC,EAAE,iCAAiC;IASrG,kBAAkB;IACX,QAAQ;IAQf,kEAAkE;IAC3D,sBAAsB;yCA3BlB,iCAAiC;6CAAjC,iCAAiC;CA8B7C"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
1
|
import { DevtoolsServiceInterface } from '@o3r/core';
|
|
3
2
|
import { LoggerService } from '@o3r/logger';
|
|
4
3
|
import { type ApplicationDevtoolsServiceOptions } from './application-devkit.interface';
|
|
5
4
|
import { OtterApplicationDevtools } from './application-devtools.service';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class ApplicationDevtoolsMessageService implements
|
|
6
|
+
export declare class ApplicationDevtoolsMessageService implements DevtoolsServiceInterface {
|
|
8
7
|
private readonly logger;
|
|
9
8
|
private readonly applicationDevtools;
|
|
10
9
|
private readonly document;
|
|
11
10
|
private readonly options;
|
|
12
|
-
private readonly subscriptions;
|
|
13
11
|
private readonly sendMessage;
|
|
12
|
+
private readonly destroyRef;
|
|
14
13
|
constructor(logger: LoggerService, applicationDevtools: OtterApplicationDevtools, options?: ApplicationDevtoolsServiceOptions);
|
|
15
14
|
private sendApplicationInformation;
|
|
16
15
|
/**
|
|
@@ -24,7 +23,6 @@ export declare class ApplicationDevtoolsMessageService implements OnDestroy, Dev
|
|
|
24
23
|
private handleReEmitRequest;
|
|
25
24
|
/**
|
|
26
25
|
* Function to handle the incoming messages from Otter Chrome DevTools extension
|
|
27
|
-
* @param event Event coming from the Otter Chrome DevTools extension
|
|
28
26
|
* @param message
|
|
29
27
|
*/
|
|
30
28
|
private handleEvents;
|
|
@@ -37,8 +35,6 @@ export declare class ApplicationDevtoolsMessageService implements OnDestroy, Dev
|
|
|
37
35
|
private toggleVisualTestingRender;
|
|
38
36
|
/** @inheritDoc */
|
|
39
37
|
activate(): void;
|
|
40
|
-
/** @inheritDoc */
|
|
41
|
-
ngOnDestroy(): void;
|
|
42
38
|
static ɵfac: i0.ɵɵFactoryDeclaration<ApplicationDevtoolsMessageService, [null, null, { optional: true; }]>;
|
|
43
39
|
static ɵprov: i0.ɵɵInjectableDeclaration<ApplicationDevtoolsMessageService>;
|
|
44
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.message.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.message.service.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,wBAAwB,EAGzB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,aAAa,EACd,MAAM,aAAa,CAAC;AASrB,OAAO,EACL,KAAK,iCAAiC,EAKvC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;;AAQxC,qBAGa,iCAAkC,YAAW,wBAAwB;IAO9E,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAPtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyD;IACrF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAG9B,MAAM,EAAE,aAAa,EACrB,mBAAmB,EAAE,wBAAwB,EACN,OAAO,CAAC,EAAE,iCAAiC;IAWrG,OAAO,CAAC,0BAA0B;IAIlC;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;IAuBxB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAIjC,kBAAkB;IACX,QAAQ;yCAnHJ,iCAAiC;6CAAjC,iCAAiC;CA2H7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-devtools.module.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.module.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"application-devtools.module.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,iCAAiC,EAClC,MAAM,gCAAgC,CAAC;;AAexC,qBAQa,yBAAyB;IACpC;;;OAGG;WACW,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,iCAAiC,CAAC,GAAG,mBAAmB,CAAC,yBAAyB,CAAC;yCALlH,yBAAyB;0CAAzB,yBAAyB;0CAAzB,yBAAyB;CAgBrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-devtools.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application-devtools.service.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.service.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,sBAAsB,EACvB,MAAM,gCAAgC,CAAC;;AAKxC,qBACa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkE;IAC1F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwD;IAErE,yBAAyB,IAAI,sBAAsB;yCAL/C,wBAAwB;6CAAxB,wBAAwB;CAYpC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
import { ApplicationDevtoolsServiceOptions } from './application-devkit.interface';
|
|
3
|
-
export declare const OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS: ApplicationDevtoolsServiceOptions
|
|
3
|
+
export declare const OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS: Readonly<ApplicationDevtoolsServiceOptions>;
|
|
4
4
|
export declare const OTTER_APPLICATION_DEVTOOLS_OPTIONS: InjectionToken<ApplicationDevtoolsServiceOptions>;
|
|
5
5
|
//# sourceMappingURL=application-devtools.token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-devtools.token.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.token.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"application-devtools.token.d.ts","sourceRoot":"","sources":["../../src/devkit/application-devtools.token.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iCAAiC,EAClC,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,0CAA0C,EAAE,QAAQ,CAAC,iCAAiC,CAEzF,CAAC;AAEX,eAAO,MAAM,kCAAkC,mDAA8F,CAAC"}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* @param message message to check
|
|
4
4
|
*/
|
|
5
5
|
export const isApplicationMessage = (message) => {
|
|
6
|
-
return message && (message.dataType === 'toggleVisualTesting'
|
|
7
|
-
message.dataType === 'stateSelection'
|
|
8
|
-
message.dataType === 'applicationInformation'
|
|
9
|
-
message.dataType === 'unselectState'
|
|
10
|
-
message.dataType === 'requestMessages'
|
|
11
|
-
message.dataType === 'connect');
|
|
6
|
+
return message && (message.dataType === 'toggleVisualTesting'
|
|
7
|
+
|| message.dataType === 'stateSelection'
|
|
8
|
+
|| message.dataType === 'applicationInformation'
|
|
9
|
+
|| message.dataType === 'unselectState'
|
|
10
|
+
|| message.dataType === 'requestMessages'
|
|
11
|
+
|| message.dataType === 'connect');
|
|
12
12
|
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2a2l0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvYXBwbGljYXRpb24tZGV2a2l0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RkE7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFZLEVBQWtELEVBQUU7SUFDbkcsT0FBTyxPQUFPLElBQUksQ0FDaEIsT0FBTyxDQUFDLFFBQVEsS0FBSyxxQkFBcUI7V0FDdkMsT0FBTyxDQUFDLFFBQVEsS0FBSyxnQkFBZ0I7V0FDckMsT0FBTyxDQUFDLFFBQVEsS0FBSyx3QkFBd0I7V0FDN0MsT0FBTyxDQUFDLFFBQVEsS0FBSyxlQUFlO1dBQ3BDLE9BQU8sQ0FBQyxRQUFRLEtBQUssaUJBQWlCO1dBQ3RDLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDb25uZWN0Q29udGVudE1lc3NhZ2UsXG4gIERldnRvb2xzQ29tbW9uT3B0aW9ucyxcbiAgTWVzc2FnZURhdGFUeXBlcyxcbiAgT3R0ZXJNZXNzYWdlQ29udGVudCxcbiAgUmVxdWVzdE1lc3NhZ2VzQ29udGVudE1lc3NhZ2UsXG59IGZyb20gJ0BvM3IvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zIGV4dGVuZHMgRGV2dG9vbHNDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEFwcGxpY2F0aW9uIG5hbWVcbiAgICovXG4gIGFwcE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDU1MgY2xhc3NuYW1lIGFwcGxpZWQgdG8gYW4gSFRNTCB0YWcgdG8gaGlkZSBpdCwgaWdub3JlIGl0LCBpbiB0aGUgZTJlIHZpc3VhbCB0ZXN0aW5nIHByb2Nlc3NcbiAgICovXG4gIGUyZUlnbm9yZUNsYXNzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlc3Npb24gaW5mb3JtYXRpb24gdXNlZCB0byB0cmFjayBhbGwgdGhlIGNhbGxzIGRvbmUgYnkgb25lIG9yIHNldmVyYWwgQVBJcyBvZiB0aGUgU0RLLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb25JbmZvcm1hdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgc2Vzc2lvbiBJRFxuICAgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBnZW5lcmF0ZWQgdGltZVxuICAgKi9cbiAgZ2VuZXJhdGVkVGltZTogRGF0ZTtcbn1cblxuLyoqIEluZm9ybWF0aW9uIHJlbGF0aXZlIGxvYWRlZCBhcHBsaWNhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbkluZm9ybWF0aW9uIHtcbiAgLyoqXG4gICAqIEFwcGxpY2F0aW9uIG5hbWVcbiAgICovXG4gIGFwcE5hbWU6IHN0cmluZztcbiAgLyoqIEFwcGxpY2F0aW9uIFZlcnNpb24gKi9cbiAgYXBwVmVyc2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogU2Vzc2lvbiBJbmZvcm1hdGlvblxuICAgKiBAbm90ZSBUaGlzIGlzIGEgc2Vzc2lvbiBJRCB3aWxsIGJlIHByb3ZpZGVkIG9ubHkgd2l0aCB0aGUgQW1hZGV1cyBPdHRlciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYXBwbGljYXRpb24gcGFja2FnZS5cbiAgICovXG4gIHNlc3Npb24/OiBTZXNzaW9uSW5mb3JtYXRpb247XG4gIC8qKlxuICAgKiBMb2cgTGlua1xuICAgKiBAbm90ZSBUaGlzIGEgbGluayB0byBBbGYgbG9ncywgaXQgd2lsbCBiZSBwcm92aWRlZCBvbmx5IHdpdGggdGhlIEFtYWRldXMgT3R0ZXIgaW1wbGVtZW50YXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIHBhY2thZ2UuXG4gICAqL1xuICBsb2dMaW5rPzogc3RyaW5nO1xuICAvKiogSXMgUHJvZHVjdGlvbiBFbnZpcm9ubWVudCAqL1xuICBpc1Byb2R1Y3Rpb246IGJvb2xlYW47XG59XG5cbi8qKiBUb2dnbGUgVmlzdWFsIFRlc3RpbmcgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9nZ2xlVmlzdWFsVGVzdGluZ01lc3NhZ2UgZXh0ZW5kcyBPdHRlck1lc3NhZ2VDb250ZW50PCd0b2dnbGVWaXN1YWxUZXN0aW5nJz4ge1xuICAvKiogVG9nZ2xlIHRoZSB2aXN1YWwgdGVzdGluZyBtb2RlICovXG4gIHRvZ2dsZT86IGJvb2xlYW47XG59XG5cbi8qKiBBcHBsaWNhdGlvbiBJbmZvcm1hdGlvbiBNZXNzYWdlIENvbnRlbnQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25JbmZvcm1hdGlvbkNvbnRlbnRNZXNzYWdlIGV4dGVuZHMgQXBwbGljYXRpb25JbmZvcm1hdGlvbiwgT3R0ZXJNZXNzYWdlQ29udGVudDwnYXBwbGljYXRpb25JbmZvcm1hdGlvbic+IHtcbn1cblxuLyoqIFN0YXRlIHNlbGVjdGlvbiBtZXNzYWdlICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlU2VsZWN0aW9uQ29udGVudE1lc3NhZ2UgZXh0ZW5kcyBPdHRlck1lc3NhZ2VDb250ZW50PCdzdGF0ZVNlbGVjdGlvbic+IHtcbiAgLyoqIE5hbWUgb2YgdGhlIHN0YXRlICovXG4gIHN0YXRlTmFtZTogc3RyaW5nO1xuICAvKiogQ29sb3Igb2YgdGhlIHN0YXRlICovXG4gIHN0YXRlQ29sb3I6IHN0cmluZztcbiAgLyoqIENvbnRyYXN0IGNvbG9yIG9mIHRoZSBzdGF0ZSAqL1xuICBzdGF0ZUNvbG9yQ29udHJhc3Q6IHN0cmluZztcbn1cblxuLyoqIFVuc2VsZWN0IHN0YXRlIG1lc3NhZ2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5zZWxlY3RTdGF0ZUNvbnRlbnRNZXNzYWdlIGV4dGVuZHMgT3R0ZXJNZXNzYWdlQ29udGVudDwndW5zZWxlY3RTdGF0ZSc+IHt9XG5cbnR5cGUgQXBwbGljYXRpb25NZXNzYWdlQ29udGVudHMgPVxuICB8IEFwcGxpY2F0aW9uSW5mb3JtYXRpb25Db250ZW50TWVzc2FnZVxuICB8IFN0YXRlU2VsZWN0aW9uQ29udGVudE1lc3NhZ2VcbiAgfCBVbnNlbGVjdFN0YXRlQ29udGVudE1lc3NhZ2VcbiAgfCBUb2dnbGVWaXN1YWxUZXN0aW5nTWVzc2FnZTtcblxuLyoqIExpc3Qgb2YgcG9zc2libGUgRGF0YVR5cGVzIGZvciBBcHBsaWNhdGlvbiBtZXNzYWdlcyAqL1xuZXhwb3J0IHR5cGUgQXBwbGljYXRpb25NZXNzYWdlRGF0YVR5cGVzID0gTWVzc2FnZURhdGFUeXBlczxBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cz47XG5cbi8qKiBMaXN0IG9mIGFsbCBtZXNzYWdlcyBmb3IgYXBwbGljYXRpb24gcHVycG9zZSAqL1xuZXhwb3J0IHR5cGUgQXZhaWxhYmxlQXBwbGljYXRpb25NZXNzYWdlQ29udGVudHMgPVxuICB8IEFwcGxpY2F0aW9uTWVzc2FnZUNvbnRlbnRzXG4gIHwgQ29ubmVjdENvbnRlbnRNZXNzYWdlXG4gIHwgUmVxdWVzdE1lc3NhZ2VzQ29udGVudE1lc3NhZ2U8QXBwbGljYXRpb25NZXNzYWdlRGF0YVR5cGVzPjtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIG1lc3NhZ2UgaXMgYSBBcHBsaWNhdGlvbiBtZXNzYWdlXG4gKiBAcGFyYW0gbWVzc2FnZSBtZXNzYWdlIHRvIGNoZWNrXG4gKi9cbmV4cG9ydCBjb25zdCBpc0FwcGxpY2F0aW9uTWVzc2FnZSA9IChtZXNzYWdlOiBhbnkpOiBtZXNzYWdlIGlzIEF2YWlsYWJsZUFwcGxpY2F0aW9uTWVzc2FnZUNvbnRlbnRzID0+IHtcbiAgcmV0dXJuIG1lc3NhZ2UgJiYgKFxuICAgIG1lc3NhZ2UuZGF0YVR5cGUgPT09ICd0b2dnbGVWaXN1YWxUZXN0aW5nJ1xuICAgIHx8IG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdzdGF0ZVNlbGVjdGlvbidcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAnYXBwbGljYXRpb25JbmZvcm1hdGlvbidcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAndW5zZWxlY3RTdGF0ZSdcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAncmVxdWVzdE1lc3NhZ2VzJ1xuICAgIHx8IG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdjb25uZWN0Jyk7XG59O1xuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { OtterApplicationDevtools } from './application-devtools.service';
|
|
4
|
-
import { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';
|
|
1
|
+
/* eslint-disable no-console -- purpose of the service is to log in the console */
|
|
2
|
+
import { Inject, Injectable, Optional, } from '@angular/core';
|
|
3
|
+
import { OtterApplicationDevtools, } from './application-devtools.service';
|
|
4
|
+
import { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS, } from './application-devtools.token';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "./application-devtools.service";
|
|
7
7
|
export class ApplicationDevtoolsConsoleService {
|
|
@@ -17,9 +17,7 @@ export class ApplicationDevtoolsConsoleService {
|
|
|
17
17
|
/** @inheritDoc */
|
|
18
18
|
activate() {
|
|
19
19
|
const windowWithDevtools = window;
|
|
20
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
21
20
|
windowWithDevtools._OTTER_DEVTOOLS_ ||= {};
|
|
22
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
23
21
|
windowWithDevtools._OTTER_DEVTOOLS_[ApplicationDevtoolsConsoleService.windowModuleName] = this;
|
|
24
22
|
console.info(`Otter Application Devtools is now accessible via the _OTTER_DEVTOOLS_.${ApplicationDevtoolsConsoleService.windowModuleName} variable`);
|
|
25
23
|
}
|
|
@@ -27,10 +25,10 @@ export class ApplicationDevtoolsConsoleService {
|
|
|
27
25
|
displayApplicationInfo() {
|
|
28
26
|
console.info('Application info', this.applicationDevtools.getApplicationInformation());
|
|
29
27
|
}
|
|
30
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
31
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
28
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsConsoleService, deps: [{ token: i1.OtterApplicationDevtools }, { token: OTTER_APPLICATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsConsoleService, providedIn: 'root' }); }
|
|
32
30
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsConsoleService, decorators: [{
|
|
34
32
|
type: Injectable,
|
|
35
33
|
args: [{
|
|
36
34
|
providedIn: 'root'
|
|
@@ -41,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
41
39
|
type: Inject,
|
|
42
40
|
args: [OTTER_APPLICATION_DEVTOOLS_OPTIONS]
|
|
43
41
|
}] }] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMuY29uc29sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RldmtpdC9hcHBsaWNhdGlvbi1kZXZ0b29scy5jb25zb2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0ZBQWtGO0FBQ2xGLE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEVBQ0wsd0JBQXdCLEdBQ3pCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUNMLDBDQUEwQyxFQUMxQyxrQ0FBa0MsR0FDbkMsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBS3RDLE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUMsNERBQTREO2FBQ3JDLHFCQUFnQixHQUFHLGFBQWEsQUFBaEIsQ0FBaUI7SUFJeEQsWUFDbUIsbUJBQTZDLEVBQ04sT0FBMkM7UUFEbEYsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUc5RCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRywwQ0FBMEMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBRTdFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFFBQVE7UUFDYixNQUFNLGtCQUFrQixHQUF1QixNQUFNLENBQUM7UUFDdEQsa0JBQWtCLENBQUMsZ0JBQWdCLEtBQUssRUFBRSxDQUFDO1FBQzNDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLGlDQUFpQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRS9GLE9BQU8sQ0FBQyxJQUFJLENBQUMseUVBQXlFLGlDQUFpQyxDQUFDLGdCQUFnQixXQUFXLENBQUMsQ0FBQztJQUN2SixDQUFDO0lBRUQsa0VBQWtFO0lBQzNELHNCQUFzQjtRQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztrSUE3QlUsaUNBQWlDLDBEQVF0QixrQ0FBa0M7c0lBUjdDLGlDQUFpQyxjQUZoQyxNQUFNOzs0RkFFUCxpQ0FBaUM7a0JBSDdDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgLS0gcHVycG9zZSBvZiB0aGUgc2VydmljZSBpcyB0byBsb2cgaW4gdGhlIGNvbnNvbGUgKi9cbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2UsXG4gIFdpbmRvd1dpdGhEZXZ0b29scyxcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyxcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kZXZraXQuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIE90dGVyQXBwbGljYXRpb25EZXZ0b29scyxcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kZXZ0b29scy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE9UVEVSX0FQUExJQ0FUSU9OX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUyxcbiAgT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfT1BUSU9OUyxcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kZXZ0b29scy50b2tlbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uRGV2dG9vbHNDb25zb2xlU2VydmljZSBpbXBsZW1lbnRzIERldnRvb2xzU2VydmljZUludGVyZmFjZSB7XG4gIC8qKiBOYW1lIG9mIHRoZSBXaW5kb3cgcHJvcGVydHkgdG8gYWNjZXNzIHRvIHRoZSBkZXZ0b29scyAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHdpbmRvd01vZHVsZU5hbWUgPSAnYXBwbGljYXRpb24nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGljYXRpb25EZXZ0b29sczogT3R0ZXJBcHBsaWNhdGlvbkRldnRvb2xzLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfT1BUSU9OUykgb3B0aW9ucz86IEFwcGxpY2F0aW9uRGV2dG9vbHNTZXJ2aWNlT3B0aW9uc1xuICApIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLk9UVEVSX0FQUExJQ0FUSU9OX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pc0FjdGl2YXRlZE9uQm9vdHN0cmFwKSB7XG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBhY3RpdmF0ZSgpIHtcbiAgICBjb25zdCB3aW5kb3dXaXRoRGV2dG9vbHM6IFdpbmRvd1dpdGhEZXZ0b29scyA9IHdpbmRvdztcbiAgICB3aW5kb3dXaXRoRGV2dG9vbHMuX09UVEVSX0RFVlRPT0xTXyB8fD0ge307XG4gICAgd2luZG93V2l0aERldnRvb2xzLl9PVFRFUl9ERVZUT09MU19bQXBwbGljYXRpb25EZXZ0b29sc0NvbnNvbGVTZXJ2aWNlLndpbmRvd01vZHVsZU5hbWVdID0gdGhpcztcblxuICAgIGNvbnNvbGUuaW5mbyhgT3R0ZXIgQXBwbGljYXRpb24gRGV2dG9vbHMgaXMgbm93IGFjY2Vzc2libGUgdmlhIHRoZSBfT1RURVJfREVWVE9PTFNfLiR7QXBwbGljYXRpb25EZXZ0b29sc0NvbnNvbGVTZXJ2aWNlLndpbmRvd01vZHVsZU5hbWV9IHZhcmlhYmxlYCk7XG4gIH1cblxuICAvKiogRGlzcGxheSB0aGUgaW5mb3JtYXRpb24gcmVsYXRpdmUgdG8gdGhlIHJ1bm5pbmcgYXBwbGljYXRpb24gKi9cbiAgcHVibGljIGRpc3BsYXlBcHBsaWNhdGlvbkluZm8oKSB7XG4gICAgY29uc29sZS5pbmZvKCdBcHBsaWNhdGlvbiBpbmZvJywgdGhpcy5hcHBsaWNhdGlvbkRldnRvb2xzLmdldEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { inject, Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
1
|
+
import { DOCUMENT, } from '@angular/common';
|
|
2
|
+
import { DestroyRef, inject, Inject, Injectable, Optional, } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed, } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { filterMessageContent, sendOtterMessage, } from '@o3r/core';
|
|
5
|
+
import { LoggerService, } from '@o3r/logger';
|
|
6
|
+
import { isVisualTestingEnabled, prepareVisualTesting, toggleVisualTestingRender, } from '@o3r/testing/visual-test/utils';
|
|
7
|
+
import { fromEvent, } from 'rxjs';
|
|
8
|
+
import { isApplicationMessage, } from './application-devkit.interface';
|
|
9
|
+
import { OtterApplicationDevtools, } from './application-devtools.service';
|
|
10
|
+
import { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS, } from './application-devtools.token';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "@o3r/logger";
|
|
12
13
|
import * as i2 from "./application-devtools.service";
|
|
@@ -16,8 +17,8 @@ export class ApplicationDevtoolsMessageService {
|
|
|
16
17
|
this.logger = logger;
|
|
17
18
|
this.applicationDevtools = applicationDevtools;
|
|
18
19
|
this.document = inject(DOCUMENT);
|
|
19
|
-
this.subscriptions = new Subscription();
|
|
20
20
|
this.sendMessage = (sendOtterMessage);
|
|
21
|
+
this.destroyRef = inject(DestroyRef);
|
|
21
22
|
this.options = {
|
|
22
23
|
...OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS,
|
|
23
24
|
...options
|
|
@@ -47,7 +48,6 @@ export class ApplicationDevtoolsMessageService {
|
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* Function to handle the incoming messages from Otter Chrome DevTools extension
|
|
50
|
-
* @param event Event coming from the Otter Chrome DevTools extension
|
|
51
51
|
* @param message
|
|
52
52
|
*/
|
|
53
53
|
handleEvents(message) {
|
|
@@ -89,7 +89,7 @@ export class ApplicationDevtoolsMessageService {
|
|
|
89
89
|
if (!ribbonElement) {
|
|
90
90
|
ribbonElement = this.document.createElement('div');
|
|
91
91
|
ribbonElement.id = OTTER_STATE_RIBBON_ID;
|
|
92
|
-
this.document.body.
|
|
92
|
+
this.document.body.append(ribbonElement);
|
|
93
93
|
}
|
|
94
94
|
if (message.stateName) {
|
|
95
95
|
ribbonElement.innerHTML = message.stateName;
|
|
@@ -116,18 +116,14 @@ export class ApplicationDevtoolsMessageService {
|
|
|
116
116
|
}
|
|
117
117
|
/** @inheritDoc */
|
|
118
118
|
activate() {
|
|
119
|
-
|
|
119
|
+
fromEvent(window, 'message').pipe(takeUntilDestroyed(this.destroyRef), filterMessageContent(isApplicationMessage)).subscribe((e) => this.handleEvents(e));
|
|
120
120
|
prepareVisualTesting(this.options.e2eIgnoreClass);
|
|
121
121
|
this.sendApplicationInformation();
|
|
122
122
|
}
|
|
123
|
-
/** @
|
|
124
|
-
|
|
125
|
-
this.subscriptions.unsubscribe();
|
|
126
|
-
}
|
|
127
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ApplicationDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: i2.OtterApplicationDevtools }, { token: OTTER_APPLICATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
128
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ApplicationDevtoolsMessageService, providedIn: 'root' }); }
|
|
123
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: i2.OtterApplicationDevtools }, { token: OTTER_APPLICATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
124
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsMessageService, providedIn: 'root' }); }
|
|
129
125
|
}
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsMessageService, decorators: [{
|
|
131
127
|
type: Injectable,
|
|
132
128
|
args: [{
|
|
133
129
|
providedIn: 'root'
|
|
@@ -138,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
138
134
|
type: Inject,
|
|
139
135
|
args: [OTTER_APPLICATION_DEVTOOLS_OPTIONS]
|
|
140
136
|
}] }] });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RldmtpdC9hcHBsaWNhdGlvbi1kZXZ0b29scy5tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUE0QixvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBQyx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFJTCxvQkFBb0IsRUFFckIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUU5SCxNQUFNLHFCQUFxQixHQUFHLDZCQUE2QixDQUFDO0FBSzVELE1BQU0sT0FBTyxpQ0FBaUM7SUFRNUMsWUFDcUIsTUFBcUIsRUFDckIsbUJBQTZDLEVBQ04sT0FBMkM7UUFGbEYsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTBCO1FBVGpELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFHNUIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5DLGdC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QixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDckgsQ0FBQztRQUNGLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO2tJQWpJVSxpQ0FBaUMsdUZBV3BCLGtDQUFrQztzSUFYL0MsaUNBQWlDLGNBRmhDLE1BQU07OzRGQUVQLGlDQUFpQztrQkFIN0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVlNLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERldnRvb2xzU2VydmljZUludGVyZmFjZSwgZmlsdGVyTWVzc2FnZUNvbnRlbnQsIHNlbmRPdHRlck1lc3NhZ2UgfSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB7IGlzVmlzdWFsVGVzdGluZ0VuYWJsZWQsIHByZXBhcmVWaXN1YWxUZXN0aW5nLHRvZ2dsZVZpc3VhbFRlc3RpbmdSZW5kZXIgfSBmcm9tICdAbzNyL3Rlc3RpbmcvdmlzdWFsLXRlc3QvdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIHR5cGUgQXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zLFxuICB0eXBlIEFwcGxpY2F0aW9uTWVzc2FnZURhdGFUeXBlcyxcbiAgdHlwZSBBdmFpbGFibGVBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cyxcbiAgaXNBcHBsaWNhdGlvbk1lc3NhZ2UsXG4gIHR5cGUgU3RhdGVTZWxlY3Rpb25Db250ZW50TWVzc2FnZVxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldmtpdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3R0ZXJBcHBsaWNhdGlvbkRldnRvb2xzIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kZXZ0b29scy5zZXJ2aWNlJztcbmltcG9ydCB7IE9UVEVSX0FQUExJQ0FUSU9OX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUywgT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfT1BUSU9OUyB9IGZyb20gJy4vYXBwbGljYXRpb24tZGV2dG9vbHMudG9rZW4nO1xuXG5jb25zdCBPVFRFUl9TVEFURV9SSUJCT05fSUQgPSAnb3R0ZXItZGV2dG9vbHMtc3RhdGUtcmliYm9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25EZXZ0b29sc01lc3NhZ2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95LCBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBBcHBsaWNhdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VuZE1lc3NhZ2UgPSBzZW5kT3R0ZXJNZXNzYWdlPEF2YWlsYWJsZUFwcGxpY2F0aW9uTWVzc2FnZUNvbnRlbnRzPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvbkRldnRvb2xzOiBPdHRlckFwcGxpY2F0aW9uRGV2dG9vbHMsXG4gICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9UVEVSX0FQUExJQ0FUSU9OX0RFVlRPT0xTX09QVElPTlMpIG9wdGlvbnM/OiBBcHBsaWNhdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi5PVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19ERUZBVUxUX09QVElPTlMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNBY3RpdmF0ZWRPbkJvb3RzdHJhcCkge1xuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VuZEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKSB7XG4gICAgdGhpcy5zZW5kTWVzc2FnZSgnYXBwbGljYXRpb25JbmZvcm1hdGlvbicsIHRoaXMuYXBwbGljYXRpb25EZXZ0b29scy5nZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNvbm5lY3QgdGhlIHBsdWdpbiB0byB0aGUgT3R0ZXIgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqL1xuICBwcml2YXRlIGNvbm5lY3RQbHVnaW4oKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ090dGVyIERldlRvb2xzIGlzIHBsdWdnZWQgdG8gYXBwbGljYXRpb24gc2VydmljZSBvZiB0aGUgYXBwbGljYXRpb24nKTtcbiAgICB2b2lkIHRoaXMuc2VuZEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byB0cmlnZ2VyIGEgcmUtc2VuZCBhIHJlcXVlc3RlZCBtZXNzYWdlcyB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gb25seSByZXN0cmljdGVkIGxpc3Qgb2YgbWVzc2FnZXMgdG8gcmUtc2VuZFxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVSZUVtaXRSZXF1ZXN0KG9ubHk/OiBBcHBsaWNhdGlvbk1lc3NhZ2VEYXRhVHlwZXNbXSkge1xuICAgIGlmICghb25seSB8fCBvbmx5LmluY2x1ZGVzKCdhcHBsaWNhdGlvbkluZm9ybWF0aW9uJykpIHtcbiAgICAgIHRoaXMuc2VuZEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBpbmNvbWluZyBtZXNzYWdlcyBmcm9tIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIGV2ZW50IEV2ZW50IGNvbWluZyBmcm9tIHRoZSBPdHRlciBDaHJvbWUgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSBtZXNzYWdlXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUV2ZW50cyhtZXNzYWdlOiBBdmFpbGFibGVBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdNZXNzYWdlIGhhbmRsaW5nIGJ5IHRoZSBhcHBsaWNhdGlvbiBzZXJ2aWNlJywgbWVzc2FnZSk7XG5cbiAgICBzd2l0Y2ggKG1lc3NhZ2UuZGF0YVR5cGUpIHtcbiAgICAgIGNhc2UgJ2Nvbm5lY3QnOiB7XG4gICAgICAgIHRoaXMuY29ubmVjdFBsdWdpbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3JlcXVlc3RNZXNzYWdlcyc6IHtcbiAgICAgICAgdGhpcy5oYW5kbGVSZUVtaXRSZXF1ZXN0KG1lc3NhZ2Uub25seSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAndG9nZ2xlVmlzdWFsVGVzdGluZyc6IHtcbiAgICAgICAgdGhpcy50b2dnbGVWaXN1YWxUZXN0aW5nUmVuZGVyKG1lc3NhZ2UudG9nZ2xlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdzdGF0ZVNlbGVjdGlvbic6IHtcbiAgICAgICAgdGhpcy5vblN0YXRlU2VsZWN0aW9uKG1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3Vuc2VsZWN0U3RhdGUnOiB7XG4gICAgICAgIHRoaXMudW5zZWxlY3RTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignTWVzc2FnZSBpZ25vcmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBzZXJ2aWNlJywgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1bnNlbGVjdFN0YXRlKCkge1xuICAgIGNvbnN0IHJpYmJvbkVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oYCMke09UVEVSX1NUQVRFX1JJQkJPTl9JRH1gKTtcbiAgICBpZiAocmliYm9uRWxlbWVudCkge1xuICAgICAgcmliYm9uRWxlbWVudC5yZW1vdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uU3RhdGVTZWxlY3Rpb24obWVzc2FnZTogU3RhdGVTZWxlY3Rpb25Db250ZW50TWVzc2FnZSkge1xuICAgIGxldCByaWJib25FbGVtZW50ID0gdGhpcy5kb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KGAjJHtPVFRFUl9TVEFURV9SSUJCT05fSUR9YCk7XG4gICAgaWYgKCFyaWJib25FbGVtZW50KSB7XG4gICAgICByaWJib25FbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHJpYmJvbkVsZW1lbnQuaWQgPSBPVFRFUl9TVEFURV9SSUJCT05fSUQ7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmliYm9uRWxlbWVudCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnN0YXRlTmFtZSkge1xuICAgICAgcmliYm9uRWxlbWVudC5pbm5lckhUTUwgPSBtZXNzYWdlLnN0YXRlTmFtZTtcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IG1lc3NhZ2Uuc3RhdGVDb2xvcjtcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUuY29sb3IgPSBtZXNzYWdlLnN0YXRlQ29sb3JDb250cmFzdDtcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgICAgcmliYm9uRWxlbWVudC5zdHlsZS5ib3R0b20gPSAnMCc7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzAnO1xuICAgICAgcmliYm9uRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKGNhbGMoMTAwJSAqICgxIC0gY29zKDQ1ZGVnKSkpKSByb3RhdGUoLTQ1ZGVnKSc7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9ICdib3R0b20gbGVmdCc7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLmNsaXBQYXRoID0gJ2luc2V0KDAgLTEwMCUpJztcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUuYm94U2hhZG93ID0gYDBweCAwcHggMHB4IDk5OXB4ICR7bWVzc2FnZS5zdGF0ZUNvbG9yfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIHZpc3VhbCB0ZXN0aW5nIHJlbmRlcmluZ1xuICAgKiBAcGFyYW0gZW5hYmxlZCBhY3RpdmF0ZSBvciBkZWFjdGl2YXRlIHRoZSB2aXN1YWwgdGVzdGluZyBtb2RlXG4gICAqL1xuICBwcml2YXRlIHRvZ2dsZVZpc3VhbFRlc3RpbmdSZW5kZXIoZW5hYmxlZD86IGJvb2xlYW4pIHtcbiAgICB0b2dnbGVWaXN1YWxUZXN0aW5nUmVuZGVyKGVuYWJsZWQgPT09IHVuZGVmaW5lZCA/ICFpc1Zpc3VhbFRlc3RpbmdFbmFibGVkKCkgOiBlbmFibGVkKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgYWN0aXZhdGUoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdtZXNzYWdlJykucGlwZShmaWx0ZXJNZXNzYWdlQ29udGVudChpc0FwcGxpY2F0aW9uTWVzc2FnZSkpLnN1YnNjcmliZSgoZSkgPT4gdGhpcy5oYW5kbGVFdmVudHMoZSkpXG4gICAgKTtcbiAgICBwcmVwYXJlVmlzdWFsVGVzdGluZyh0aGlzLm9wdGlvbnMuZTJlSWdub3JlQ2xhc3MpO1xuICAgIHRoaXMuc2VuZEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RldmtpdC9hcHBsaWNhdGlvbi1kZXZ0b29scy5tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsR0FDVCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLGdCQUFnQixHQUNqQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsYUFBYSxHQUNkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLHlCQUF5QixHQUMxQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBSUwsb0JBQW9CLEdBRXJCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUNMLHdCQUF3QixHQUN6QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCwwQ0FBMEMsRUFDMUMsa0NBQWtDLEdBQ25DLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFFdEMsTUFBTSxxQkFBcUIsR0FBRyw2QkFBNkIsQ0FBQztBQUs1RCxNQUFNLE9BQU8saUNBQWlDO0lBTTVDLFlBQ21CLE1BQXFCLEVBQ3JCLG1CQUE2QyxFQUNOLE9BQTJDO1FBRmxGLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQVAvQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FB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SSxDQUMvQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ25DLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLENBQzNDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO2tJQTFIVSxpQ0FBaUMsdUZBU3RCLGtDQUFrQztzSUFUN0MsaUNBQWlDLGNBRmhDLE1BQU07OzRGQUVQLGlDQUFpQztrQkFIN0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVVJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRE9DVU1FTlQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBpbmplY3QsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgdGFrZVVudGlsRGVzdHJveWVkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2UsXG4gIGZpbHRlck1lc3NhZ2VDb250ZW50LFxuICBzZW5kT3R0ZXJNZXNzYWdlLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTG9nZ2VyU2VydmljZSxcbn0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHtcbiAgaXNWaXN1YWxUZXN0aW5nRW5hYmxlZCxcbiAgcHJlcGFyZVZpc3VhbFRlc3RpbmcsXG4gIHRvZ2dsZVZpc3VhbFRlc3RpbmdSZW5kZXIsXG59IGZyb20gJ0BvM3IvdGVzdGluZy92aXN1YWwtdGVzdC91dGlscyc7XG5pbXBvcnQge1xuICBmcm9tRXZlbnQsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgdHlwZSBBcHBsaWNhdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnMsXG4gIHR5cGUgQXBwbGljYXRpb25NZXNzYWdlRGF0YVR5cGVzLFxuICB0eXBlIEF2YWlsYWJsZUFwcGxpY2F0aW9uTWVzc2FnZUNvbnRlbnRzLFxuICBpc0FwcGxpY2F0aW9uTWVzc2FnZSxcbiAgdHlwZSBTdGF0ZVNlbGVjdGlvbkNvbnRlbnRNZXNzYWdlLFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldmtpdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgT3R0ZXJBcHBsaWNhdGlvbkRldnRvb2xzLFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldnRvb2xzLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICBPVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19PUFRJT05TLFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldnRvb2xzLnRva2VuJztcblxuY29uc3QgT1RURVJfU1RBVEVfUklCQk9OX0lEID0gJ290dGVyLWRldnRvb2xzLXN0YXRlLXJpYmJvbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uRGV2dG9vbHNNZXNzYWdlU2VydmljZSBpbXBsZW1lbnRzIERldnRvb2xzU2VydmljZUludGVyZmFjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEFwcGxpY2F0aW9uRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBzZW5kTWVzc2FnZSA9IHNlbmRPdHRlck1lc3NhZ2U8QXZhaWxhYmxlQXBwbGljYXRpb25NZXNzYWdlQ29udGVudHM+O1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvbkRldnRvb2xzOiBPdHRlckFwcGxpY2F0aW9uRGV2dG9vbHMsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19PUFRJT05TKSBvcHRpb25zPzogQXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbmRBcHBsaWNhdGlvbkluZm9ybWF0aW9uKCkge1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ2FwcGxpY2F0aW9uSW5mb3JtYXRpb24nLCB0aGlzLmFwcGxpY2F0aW9uRGV2dG9vbHMuZ2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBjb25uZWN0IHRoZSBwbHVnaW4gdG8gdGhlIE90dGVyIERldlRvb2xzIGV4dGVuc2lvblxuICAgKi9cbiAgcHJpdmF0ZSBjb25uZWN0UGx1Z2luKCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdPdHRlciBEZXZUb29scyBpcyBwbHVnZ2VkIHRvIGFwcGxpY2F0aW9uIHNlcnZpY2Ugb2YgdGhlIGFwcGxpY2F0aW9uJyk7XG4gICAgdm9pZCB0aGlzLnNlbmRBcHBsaWNhdGlvbkluZm9ybWF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gdHJpZ2dlciBhIHJlLXNlbmQgYSByZXF1ZXN0ZWQgbWVzc2FnZXMgdG8gdGhlIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG9ubHkgcmVzdHJpY3RlZCBsaXN0IG9mIG1lc3NhZ2VzIHRvIHJlLXNlbmRcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlUmVFbWl0UmVxdWVzdChvbmx5PzogQXBwbGljYXRpb25NZXNzYWdlRGF0YVR5cGVzW10pIHtcbiAgICBpZiAoIW9ubHkgfHwgb25seS5pbmNsdWRlcygnYXBwbGljYXRpb25JbmZvcm1hdGlvbicpKSB7XG4gICAgICB0aGlzLnNlbmRBcHBsaWNhdGlvbkluZm9ybWF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGhhbmRsZSB0aGUgaW5jb21pbmcgbWVzc2FnZXMgZnJvbSBPdHRlciBDaHJvbWUgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSBtZXNzYWdlXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUV2ZW50cyhtZXNzYWdlOiBBdmFpbGFibGVBcHBsaWNhdGlvbk1lc3NhZ2VDb250ZW50cykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdNZXNzYWdlIGhhbmRsaW5nIGJ5IHRoZSBhcHBsaWNhdGlvbiBzZXJ2aWNlJywgbWVzc2FnZSk7XG5cbiAgICBzd2l0Y2ggKG1lc3NhZ2UuZGF0YVR5cGUpIHtcbiAgICAgIGNhc2UgJ2Nvbm5lY3QnOiB7XG4gICAgICAgIHRoaXMuY29ubmVjdFBsdWdpbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3JlcXVlc3RNZXNzYWdlcyc6IHtcbiAgICAgICAgdGhpcy5oYW5kbGVSZUVtaXRSZXF1ZXN0KG1lc3NhZ2Uub25seSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAndG9nZ2xlVmlzdWFsVGVzdGluZyc6IHtcbiAgICAgICAgdGhpcy50b2dnbGVWaXN1YWxUZXN0aW5nUmVuZGVyKG1lc3NhZ2UudG9nZ2xlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdzdGF0ZVNlbGVjdGlvbic6IHtcbiAgICAgICAgdGhpcy5vblN0YXRlU2VsZWN0aW9uKG1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3Vuc2VsZWN0U3RhdGUnOiB7XG4gICAgICAgIHRoaXMudW5zZWxlY3RTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignTWVzc2FnZSBpZ25vcmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBzZXJ2aWNlJywgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1bnNlbGVjdFN0YXRlKCkge1xuICAgIGNvbnN0IHJpYmJvbkVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oYCMke09UVEVSX1NUQVRFX1JJQkJPTl9JRH1gKTtcbiAgICBpZiAocmliYm9uRWxlbWVudCkge1xuICAgICAgcmliYm9uRWxlbWVudC5yZW1vdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uU3RhdGVTZWxlY3Rpb24obWVzc2FnZTogU3RhdGVTZWxlY3Rpb25Db250ZW50TWVzc2FnZSkge1xuICAgIGxldCByaWJib25FbGVtZW50ID0gdGhpcy5kb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KGAjJHtPVFRFUl9TVEFURV9SSUJCT05fSUR9YCk7XG4gICAgaWYgKCFyaWJib25FbGVtZW50KSB7XG4gICAgICByaWJib25FbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHJpYmJvbkVsZW1lbnQuaWQgPSBPVFRFUl9TVEFURV9SSUJCT05fSUQ7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kKHJpYmJvbkVsZW1lbnQpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5zdGF0ZU5hbWUpIHtcbiAgICAgIHJpYmJvbkVsZW1lbnQuaW5uZXJIVE1MID0gbWVzc2FnZS5zdGF0ZU5hbWU7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBtZXNzYWdlLnN0YXRlQ29sb3I7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLmNvbG9yID0gbWVzc2FnZS5zdGF0ZUNvbG9yQ29udHJhc3Q7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUuYm90dG9tID0gJzAnO1xuICAgICAgcmliYm9uRWxlbWVudC5zdHlsZS5yaWdodCA9ICcwJztcbiAgICAgIHJpYmJvbkVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZShjYWxjKDEwMCUgKiAoMSAtIGNvcyg0NWRlZykpKSkgcm90YXRlKC00NWRlZyknO1xuICAgICAgcmliYm9uRWxlbWVudC5zdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSAnYm90dG9tIGxlZnQnO1xuICAgICAgcmliYm9uRWxlbWVudC5zdHlsZS5jbGlwUGF0aCA9ICdpbnNldCgwIC0xMDAlKSc7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLmJveFNoYWRvdyA9IGAwcHggMHB4IDBweCA5OTlweCAke21lc3NhZ2Uuc3RhdGVDb2xvcn1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByaWJib25FbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB2aXN1YWwgdGVzdGluZyByZW5kZXJpbmdcbiAgICogQHBhcmFtIGVuYWJsZWQgYWN0aXZhdGUgb3IgZGVhY3RpdmF0ZSB0aGUgdmlzdWFsIHRlc3RpbmcgbW9kZVxuICAgKi9cbiAgcHJpdmF0ZSB0b2dnbGVWaXN1YWxUZXN0aW5nUmVuZGVyKGVuYWJsZWQ/OiBib29sZWFuKSB7XG4gICAgdG9nZ2xlVmlzdWFsVGVzdGluZ1JlbmRlcihlbmFibGVkID09PSB1bmRlZmluZWQgPyAhaXNWaXN1YWxUZXN0aW5nRW5hYmxlZCgpIDogZW5hYmxlZCk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGFjdGl2YXRlKCkge1xuICAgIGZyb21FdmVudCh3aW5kb3csICdtZXNzYWdlJykucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgZmlsdGVyTWVzc2FnZUNvbnRlbnQoaXNBcHBsaWNhdGlvbk1lc3NhZ2UpXG4gICAgKS5zdWJzY3JpYmUoKGUpID0+IHRoaXMuaGFuZGxlRXZlbnRzKGUpKTtcbiAgICBwcmVwYXJlVmlzdWFsVGVzdGluZyh0aGlzLm9wdGlvbnMuZTJlSWdub3JlQ2xhc3MpO1xuICAgIHRoaXMuc2VuZEFwcGxpY2F0aW9uSW5mb3JtYXRpb24oKTtcbiAgfVxufVxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { ApplicationDevtoolsConsoleService } from './application-devtools.console.service';
|
|
3
|
-
import { ApplicationDevtoolsMessageService } from './application-devtools.message.service';
|
|
4
|
-
import { OtterApplicationDevtools } from './application-devtools.service';
|
|
5
|
-
import { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';
|
|
1
|
+
import { NgModule, } from '@angular/core';
|
|
2
|
+
import { ApplicationDevtoolsConsoleService, } from './application-devtools.console.service';
|
|
3
|
+
import { ApplicationDevtoolsMessageService, } from './application-devtools.message.service';
|
|
4
|
+
import { OtterApplicationDevtools, } from './application-devtools.service';
|
|
5
|
+
import { OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS, OTTER_APPLICATION_DEVTOOLS_OPTIONS, } from './application-devtools.token';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class ApplicationDevtoolsModule {
|
|
8
8
|
/**
|
|
@@ -20,16 +20,16 @@ export class ApplicationDevtoolsModule {
|
|
|
20
20
|
]
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
24
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
25
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
23
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
24
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsModule }); }
|
|
25
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsModule, providers: [
|
|
26
26
|
{ provide: OTTER_APPLICATION_DEVTOOLS_OPTIONS, useValue: OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS },
|
|
27
27
|
ApplicationDevtoolsMessageService,
|
|
28
28
|
ApplicationDevtoolsConsoleService,
|
|
29
29
|
OtterApplicationDevtools
|
|
30
30
|
] }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsModule, decorators: [{
|
|
33
33
|
type: NgModule,
|
|
34
34
|
args: [{
|
|
35
35
|
providers: [
|
|
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
40
40
|
]
|
|
41
41
|
}]
|
|
42
42
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RldmtpdC9hcHBsaWNhdGlvbi1kZXZ0b29scy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQ0wsaUNBQWlDLEdBQ2xDLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUNMLGlDQUFpQyxHQUNsQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFDTCx3QkFBd0IsR0FDekIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsMENBQTBDLEVBQzFDLGtDQUFrQyxHQUNuQyxNQUFNLDhCQUE4QixDQUFDOztBQVV0QyxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBbUQ7UUFDMUUsT0FBTztZQUNMLFFBQVEsRUFBRSx5QkFBeUI7WUFDbkMsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsMENBQTBDLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUN0SSxpQ0FBaUM7Z0JBQ2pDLGlDQUFpQztnQkFDakMsd0JBQXdCO2FBQ3pCO1NBQ0YsQ0FBQztJQUNKLENBQUM7a0lBZlUseUJBQXlCO21JQUF6Qix5QkFBeUI7bUlBQXpCLHlCQUF5QixhQVB6QjtZQUNULEVBQUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLFFBQVEsRUFBRSwwQ0FBMEMsRUFBRTtZQUNyRyxpQ0FBaUM7WUFDakMsaUNBQWlDO1lBQ2pDLHdCQUF3QjtTQUN6Qjs7NEZBRVUseUJBQXlCO2tCQVJyQyxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxRQUFRLEVBQUUsMENBQTBDLEVBQUU7d0JBQ3JHLGlDQUFpQzt3QkFDakMsaUNBQWlDO3dCQUNqQyx3QkFBd0I7cUJBQ3pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBBcHBsaWNhdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnMsXG59IGZyb20gJy4vYXBwbGljYXRpb24tZGV2a2l0LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkRldnRvb2xzQ29uc29sZVNlcnZpY2UsXG59IGZyb20gJy4vYXBwbGljYXRpb24tZGV2dG9vbHMuY29uc29sZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uRGV2dG9vbHNNZXNzYWdlU2VydmljZSxcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kZXZ0b29scy5tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgT3R0ZXJBcHBsaWNhdGlvbkRldnRvb2xzLFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldnRvb2xzLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICBPVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19PUFRJT05TLFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldnRvb2xzLnRva2VuJztcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBPVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19PUFRJT05TLCB1c2VWYWx1ZTogT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfREVGQVVMVF9PUFRJT05TIH0sXG4gICAgQXBwbGljYXRpb25EZXZ0b29sc01lc3NhZ2VTZXJ2aWNlLFxuICAgIEFwcGxpY2F0aW9uRGV2dG9vbHNDb25zb2xlU2VydmljZSxcbiAgICBPdHRlckFwcGxpY2F0aW9uRGV2dG9vbHNcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkRldnRvb2xzTW9kdWxlIHtcbiAgLyoqXG4gICAqIEluaXRpYWxpemUgT3R0ZXIgRGV2dG9vbHNcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW5zdHJ1bWVudChvcHRpb25zOiBQYXJ0aWFsPEFwcGxpY2F0aW9uRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucz4pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFwcGxpY2F0aW9uRGV2dG9vbHNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFwcGxpY2F0aW9uRGV2dG9vbHNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBPVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19PUFRJT05TLCB1c2VWYWx1ZTogeyAuLi5PVFRFUl9BUFBMSUNBVElPTl9ERVZUT09MU19ERUZBVUxUX09QVElPTlMsIC4uLm9wdGlvbnMgfSwgbXVsdGk6IGZhbHNlIH0sXG4gICAgICAgIEFwcGxpY2F0aW9uRGV2dG9vbHNNZXNzYWdlU2VydmljZSxcbiAgICAgICAgQXBwbGljYXRpb25EZXZ0b29sc0NvbnNvbGVTZXJ2aWNlLFxuICAgICAgICBPdHRlckFwcGxpY2F0aW9uRGV2dG9vbHNcbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { isProductionEnvironment } from '@o3r/core';
|
|
4
|
-
import { ENVIRONMENT_CONFIG_TOKEN } from '@o3r/routing';
|
|
5
|
-
import { OTTER_APPLICATION_DEVTOOLS_OPTIONS } from './application-devtools.token';
|
|
1
|
+
import { DOCUMENT, } from '@angular/common';
|
|
2
|
+
import { inject, Injectable, } from '@angular/core';
|
|
3
|
+
import { isProductionEnvironment, } from '@o3r/core';
|
|
4
|
+
import { ENVIRONMENT_CONFIG_TOKEN, } from '@o3r/routing';
|
|
5
|
+
import { OTTER_APPLICATION_DEVTOOLS_OPTIONS, } from './application-devtools.token';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class OtterApplicationDevtools {
|
|
8
8
|
constructor() {
|
|
@@ -17,11 +17,11 @@ export class OtterApplicationDevtools {
|
|
|
17
17
|
isProduction: isProductionEnvironment(this.document?.body.dataset)
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
21
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
20
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtterApplicationDevtools, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtterApplicationDevtools, providedIn: 'root' }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtterApplicationDevtools, decorators: [{
|
|
24
24
|
type: Injectable,
|
|
25
25
|
args: [{ providedIn: 'root' }]
|
|
26
26
|
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvYXBwbGljYXRpb24tZGV2dG9vbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxHQUNULE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLHVCQUF1QixHQUN4QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsd0JBQXdCLEdBQ3pCLE1BQU0sY0FBYyxDQUFDO0FBSXRCLE9BQU8sRUFDTCxrQ0FBa0MsR0FDbkMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLHdCQUF3QjtJQURyQztRQUVtQixZQUFPLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRCxRQUFHLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FTN0U7SUFQUSx5QkFBeUI7UUFDOUIsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTO1lBQzNDLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsSUFBSSxTQUFTO1lBQzlDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFrQixDQUFDO1NBQzlFLENBQUM7SUFDSixDQUFDO2tJQVhVLHdCQUF3QjtzSUFBeEIsd0JBQXdCLGNBRFgsTUFBTTs7NEZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBET0NVTUVOVCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGluamVjdCxcbiAgSW5qZWN0YWJsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICB0eXBlIERhdGFzZXQsXG4gIGlzUHJvZHVjdGlvbkVudmlyb25tZW50LFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRU5WSVJPTk1FTlRfQ09ORklHX1RPS0VOLFxufSBmcm9tICdAbzNyL3JvdXRpbmcnO1xuaW1wb3J0IHR5cGUge1xuICBBcHBsaWNhdGlvbkluZm9ybWF0aW9uLFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldmtpdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfT1BUSU9OUyxcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kZXZ0b29scy50b2tlbic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgT3R0ZXJBcHBsaWNhdGlvbkRldnRvb2xzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KE9UVEVSX0FQUExJQ0FUSU9OX0RFVlRPT0xTX09QVElPTlMsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW52ID0gaW5qZWN0KEVOVklST05NRU5UX0NPTkZJR19UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwdWJsaWMgZ2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbigpOiBBcHBsaWNhdGlvbkluZm9ybWF0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwTmFtZTogdGhpcy5vcHRpb25zPy5hcHBOYW1lIHx8ICd1bmtub3duJyxcbiAgICAgIGFwcFZlcnNpb246IHRoaXMuZW52Py5BUFBfVkVSU0lPTiB8fCAndW5rbm93bicsXG4gICAgICBpc1Byb2R1Y3Rpb246IGlzUHJvZHVjdGlvbkVudmlyb25tZW50KHRoaXMuZG9jdW1lbnQ/LmJvZHkuZGF0YXNldCBhcyBEYXRhc2V0KVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { InjectionToken, } from '@angular/core';
|
|
2
2
|
export const OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS = {
|
|
3
3
|
isActivatedOnBootstrap: false
|
|
4
4
|
};
|
|
5
5
|
export const OTTER_APPLICATION_DEVTOOLS_OPTIONS = new InjectionToken('Otter Application Devtools options');
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGV2dG9vbHMudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2FwcGxpY2F0aW9uLWRldnRvb2xzLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFLdkIsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQWdEO0lBQ3JHLHNCQUFzQixFQUFFLEtBQUs7Q0FDckIsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUFvQyxvQ0FBb0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0aW9uVG9rZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zLFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRldmtpdC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgT1RURVJfQVBQTElDQVRJT05fREVWVE9PTFNfREVGQVVMVF9PUFRJT05TOiBSZWFkb25seTxBcHBsaWNhdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnM+ID0ge1xuICBpc0FjdGl2YXRlZE9uQm9vdHN0cmFwOiBmYWxzZVxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IE9UVEVSX0FQUExJQ0FUSU9OX0RFVlRPT0xTX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXBwbGljYXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zPignT3R0ZXIgQXBwbGljYXRpb24gRGV2dG9vbHMgb3B0aW9ucycpO1xuIl19
|
package/esm2022/devkit/index.mjs
CHANGED
|
@@ -4,4 +4,4 @@ export * from './application-devtools.message.service';
|
|
|
4
4
|
export * from './application-devtools.module';
|
|
5
5
|
export * from './application-devtools.service';
|
|
6
6
|
export * from './application-devtools.token';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbi1kZXZraXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24tZGV2dG9vbHMuY29uc29sZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24tZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24tZGV2dG9vbHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24tZGV2dG9vbHMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uLWRldnRvb2xzLnRva2VuJztcbiJdfQ==
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, Injectable, Optional, Inject, NgModule } from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, Injectable, Optional, Inject, DestroyRef, 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';
|
|
6
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
7
|
import * as i1 from '@o3r/logger';
|
|
7
8
|
import { toggleVisualTestingRender, isVisualTestingEnabled, prepareVisualTesting } from '@o3r/testing/visual-test/utils';
|
|
8
|
-
import {
|
|
9
|
+
import { fromEvent } from 'rxjs';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Method that returns the setting of the user regarding animations.
|
|
@@ -22,12 +23,12 @@ function prefersReducedMotion() {
|
|
|
22
23
|
* @param message message to check
|
|
23
24
|
*/
|
|
24
25
|
const isApplicationMessage = (message) => {
|
|
25
|
-
return message && (message.dataType === 'toggleVisualTesting'
|
|
26
|
-
message.dataType === 'stateSelection'
|
|
27
|
-
message.dataType === 'applicationInformation'
|
|
28
|
-
message.dataType === 'unselectState'
|
|
29
|
-
message.dataType === 'requestMessages'
|
|
30
|
-
message.dataType === 'connect');
|
|
26
|
+
return message && (message.dataType === 'toggleVisualTesting'
|
|
27
|
+
|| message.dataType === 'stateSelection'
|
|
28
|
+
|| message.dataType === 'applicationInformation'
|
|
29
|
+
|| message.dataType === 'unselectState'
|
|
30
|
+
|| message.dataType === 'requestMessages'
|
|
31
|
+
|| message.dataType === 'connect');
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
const OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS = {
|
|
@@ -48,15 +49,15 @@ class OtterApplicationDevtools {
|
|
|
48
49
|
isProduction: isProductionEnvironment(this.document?.body.dataset)
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
52
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
52
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtterApplicationDevtools, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
53
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtterApplicationDevtools, providedIn: 'root' }); }
|
|
53
54
|
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtterApplicationDevtools, decorators: [{
|
|
55
56
|
type: Injectable,
|
|
56
57
|
args: [{ providedIn: 'root' }]
|
|
57
58
|
}] });
|
|
58
59
|
|
|
59
|
-
/* eslint-disable no-console */
|
|
60
|
+
/* eslint-disable no-console -- purpose of the service is to log in the console */
|
|
60
61
|
class ApplicationDevtoolsConsoleService {
|
|
61
62
|
/** Name of the Window property to access to the devtools */
|
|
62
63
|
static { this.windowModuleName = 'application'; }
|
|
@@ -70,9 +71,7 @@ class ApplicationDevtoolsConsoleService {
|
|
|
70
71
|
/** @inheritDoc */
|
|
71
72
|
activate() {
|
|
72
73
|
const windowWithDevtools = window;
|
|
73
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
74
74
|
windowWithDevtools._OTTER_DEVTOOLS_ ||= {};
|
|
75
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
76
75
|
windowWithDevtools._OTTER_DEVTOOLS_[ApplicationDevtoolsConsoleService.windowModuleName] = this;
|
|
77
76
|
console.info(`Otter Application Devtools is now accessible via the _OTTER_DEVTOOLS_.${ApplicationDevtoolsConsoleService.windowModuleName} variable`);
|
|
78
77
|
}
|
|
@@ -80,10 +79,10 @@ class ApplicationDevtoolsConsoleService {
|
|
|
80
79
|
displayApplicationInfo() {
|
|
81
80
|
console.info('Application info', this.applicationDevtools.getApplicationInformation());
|
|
82
81
|
}
|
|
83
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
84
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
82
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsConsoleService, deps: [{ token: OtterApplicationDevtools }, { token: OTTER_APPLICATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
83
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsConsoleService, providedIn: 'root' }); }
|
|
85
84
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsConsoleService, decorators: [{
|
|
87
86
|
type: Injectable,
|
|
88
87
|
args: [{
|
|
89
88
|
providedIn: 'root'
|
|
@@ -101,8 +100,8 @@ class ApplicationDevtoolsMessageService {
|
|
|
101
100
|
this.logger = logger;
|
|
102
101
|
this.applicationDevtools = applicationDevtools;
|
|
103
102
|
this.document = inject(DOCUMENT);
|
|
104
|
-
this.subscriptions = new Subscription();
|
|
105
103
|
this.sendMessage = (sendOtterMessage);
|
|
104
|
+
this.destroyRef = inject(DestroyRef);
|
|
106
105
|
this.options = {
|
|
107
106
|
...OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS,
|
|
108
107
|
...options
|
|
@@ -132,7 +131,6 @@ class ApplicationDevtoolsMessageService {
|
|
|
132
131
|
}
|
|
133
132
|
/**
|
|
134
133
|
* Function to handle the incoming messages from Otter Chrome DevTools extension
|
|
135
|
-
* @param event Event coming from the Otter Chrome DevTools extension
|
|
136
134
|
* @param message
|
|
137
135
|
*/
|
|
138
136
|
handleEvents(message) {
|
|
@@ -174,7 +172,7 @@ class ApplicationDevtoolsMessageService {
|
|
|
174
172
|
if (!ribbonElement) {
|
|
175
173
|
ribbonElement = this.document.createElement('div');
|
|
176
174
|
ribbonElement.id = OTTER_STATE_RIBBON_ID;
|
|
177
|
-
this.document.body.
|
|
175
|
+
this.document.body.append(ribbonElement);
|
|
178
176
|
}
|
|
179
177
|
if (message.stateName) {
|
|
180
178
|
ribbonElement.innerHTML = message.stateName;
|
|
@@ -201,18 +199,14 @@ class ApplicationDevtoolsMessageService {
|
|
|
201
199
|
}
|
|
202
200
|
/** @inheritDoc */
|
|
203
201
|
activate() {
|
|
204
|
-
|
|
202
|
+
fromEvent(window, 'message').pipe(takeUntilDestroyed(this.destroyRef), filterMessageContent(isApplicationMessage)).subscribe((e) => this.handleEvents(e));
|
|
205
203
|
prepareVisualTesting(this.options.e2eIgnoreClass);
|
|
206
204
|
this.sendApplicationInformation();
|
|
207
205
|
}
|
|
208
|
-
/** @
|
|
209
|
-
|
|
210
|
-
this.subscriptions.unsubscribe();
|
|
211
|
-
}
|
|
212
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ApplicationDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: OtterApplicationDevtools }, { token: OTTER_APPLICATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
213
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ApplicationDevtoolsMessageService, providedIn: 'root' }); }
|
|
206
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: OtterApplicationDevtools }, { token: OTTER_APPLICATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
207
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsMessageService, providedIn: 'root' }); }
|
|
214
208
|
}
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsMessageService, decorators: [{
|
|
216
210
|
type: Injectable,
|
|
217
211
|
args: [{
|
|
218
212
|
providedIn: 'root'
|
|
@@ -240,16 +234,16 @@ class ApplicationDevtoolsModule {
|
|
|
240
234
|
]
|
|
241
235
|
};
|
|
242
236
|
}
|
|
243
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
244
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
245
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
237
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
238
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsModule }); }
|
|
239
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsModule, providers: [
|
|
246
240
|
{ provide: OTTER_APPLICATION_DEVTOOLS_OPTIONS, useValue: OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS },
|
|
247
241
|
ApplicationDevtoolsMessageService,
|
|
248
242
|
ApplicationDevtoolsConsoleService,
|
|
249
243
|
OtterApplicationDevtools
|
|
250
244
|
] }); }
|
|
251
245
|
}
|
|
252
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationDevtoolsModule, decorators: [{
|
|
253
247
|
type: NgModule,
|
|
254
248
|
args: [{
|
|
255
249
|
providers: [
|
|
@@ -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.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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"}
|
|
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 {\n ConnectContentMessage,\n DevtoolsCommonOptions,\n MessageDataTypes,\n OtterMessageContent,\n RequestMessagesContentMessage,\n} 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/** 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 {\n InjectionToken,\n} from '@angular/core';\nimport {\n ApplicationDevtoolsServiceOptions,\n} from './application-devkit.interface';\n\nexport const OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS: Readonly<ApplicationDevtoolsServiceOptions> = {\n isActivatedOnBootstrap: false\n} as const;\n\nexport const OTTER_APPLICATION_DEVTOOLS_OPTIONS = new InjectionToken<ApplicationDevtoolsServiceOptions>('Otter Application Devtools options');\n","import {\n DOCUMENT,\n} from '@angular/common';\nimport {\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n type Dataset,\n isProductionEnvironment,\n} from '@o3r/core';\nimport {\n ENVIRONMENT_CONFIG_TOKEN,\n} from '@o3r/routing';\nimport type {\n ApplicationInformation,\n} from './application-devkit.interface';\nimport {\n OTTER_APPLICATION_DEVTOOLS_OPTIONS,\n} 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 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 -- purpose of the service is to log in the console */\nimport {\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport type {\n DevtoolsServiceInterface,\n WindowWithDevtools,\n} from '@o3r/core';\nimport {\n ApplicationDevtoolsServiceOptions,\n} from './application-devkit.interface';\nimport {\n OtterApplicationDevtools,\n} from './application-devtools.service';\nimport {\n OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_APPLICATION_DEVTOOLS_OPTIONS,\n} 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\n /** @inheritDoc */\n public activate() {\n const windowWithDevtools: WindowWithDevtools = window;\n windowWithDevtools._OTTER_DEVTOOLS_ ||= {};\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 {\n DOCUMENT,\n} from '@angular/common';\nimport {\n DestroyRef,\n inject,\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n} from '@angular/core/rxjs-interop';\nimport {\n DevtoolsServiceInterface,\n filterMessageContent,\n sendOtterMessage,\n} from '@o3r/core';\nimport {\n LoggerService,\n} from '@o3r/logger';\nimport {\n isVisualTestingEnabled,\n prepareVisualTesting,\n toggleVisualTestingRender,\n} from '@o3r/testing/visual-test/utils';\nimport {\n fromEvent,\n} from 'rxjs';\nimport {\n type ApplicationDevtoolsServiceOptions,\n type ApplicationMessageDataTypes,\n type AvailableApplicationMessageContents,\n isApplicationMessage,\n type StateSelectionContentMessage,\n} from './application-devkit.interface';\nimport {\n OtterApplicationDevtools,\n} from './application-devtools.service';\nimport {\n OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_APPLICATION_DEVTOOLS_OPTIONS,\n} 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 DevtoolsServiceInterface {\n private readonly document = inject(DOCUMENT);\n private readonly options: ApplicationDevtoolsServiceOptions;\n private readonly sendMessage = sendOtterMessage<AvailableApplicationMessageContents>;\n private readonly destroyRef = inject(DestroyRef);\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 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.append(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 fromEvent(window, 'message').pipe(\n takeUntilDestroyed(this.destroyRef),\n filterMessageContent(isApplicationMessage)\n ).subscribe((e) => this.handleEvents(e));\n prepareVisualTesting(this.options.e2eIgnoreClass);\n this.sendApplicationInformation();\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport type {\n ApplicationDevtoolsServiceOptions,\n} from './application-devkit.interface';\nimport {\n ApplicationDevtoolsConsoleService,\n} from './application-devtools.console.service';\nimport {\n ApplicationDevtoolsMessageService,\n} from './application-devtools.message.service';\nimport {\n OtterApplicationDevtools,\n} from './application-devtools.service';\nimport {\n OTTER_APPLICATION_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_APPLICATION_DEVTOOLS_OPTIONS,\n} 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 * 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.6.0-prerelease.
|
|
3
|
+
"version": "11.6.0-prerelease.31",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
"@angular-devkit/schematics": "~18.2.0",
|
|
29
29
|
"@angular/common": "~18.2.0",
|
|
30
30
|
"@angular/core": "~18.2.0",
|
|
31
|
-
"@o3r/core": "^11.6.0-prerelease.
|
|
32
|
-
"@o3r/logger": "^11.6.0-prerelease.
|
|
33
|
-
"@o3r/routing": "^11.6.0-prerelease.
|
|
34
|
-
"@o3r/schematics": "^11.6.0-prerelease.
|
|
35
|
-
"@o3r/testing": "^11.6.0-prerelease.
|
|
31
|
+
"@o3r/core": "^11.6.0-prerelease.31",
|
|
32
|
+
"@o3r/logger": "^11.6.0-prerelease.31",
|
|
33
|
+
"@o3r/routing": "^11.6.0-prerelease.31",
|
|
34
|
+
"@o3r/schematics": "^11.6.0-prerelease.31",
|
|
35
|
+
"@o3r/testing": "^11.6.0-prerelease.31",
|
|
36
36
|
"@schematics/angular": "~18.2.0",
|
|
37
37
|
"rxjs": "^7.8.1",
|
|
38
38
|
"typescript": "~5.5.4"
|
|
@@ -2,8 +2,6 @@ import { Rule } from '@angular-devkit/schematics';
|
|
|
2
2
|
import type { NgAddSchematicsSchema } from '../schema';
|
|
3
3
|
/**
|
|
4
4
|
* Register Devtools to the application
|
|
5
|
-
* @param tree
|
|
6
|
-
* @param context
|
|
7
5
|
* @param options
|
|
8
6
|
*/
|
|
9
7
|
export declare const registerDevtools: (options: NgAddSchematicsSchema) => Promise<Rule>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools-registration.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/helpers/devtools-registration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"devtools-registration.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/helpers/devtools-registration.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,IAAI,EACL,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,WAAW,CAAC;AAOnB;;;GAGG;AACH,eAAO,MAAM,gBAAgB,YAAmB,qBAAqB,KAAG,OAAO,CAAC,IAAI,CAgBnF,CAAC"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerDevtools = void 0;
|
|
4
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
-
const path = require("node:path");
|
|
6
4
|
const node_fs_1 = require("node:fs");
|
|
5
|
+
const path = require("node:path");
|
|
6
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
7
7
|
const DEVTOOL_MODULE_NAME = 'ApplicationDevtoolsModule';
|
|
8
8
|
const CONSOLE_DEVTOOL_SERVICE_NAME = 'ApplicationDevtoolsConsoleService';
|
|
9
9
|
const MESSAGE_DEVTOOL_SERVICE_NAME = 'ApplicationDevtoolsMessageService';
|
|
10
10
|
const PACKAGE_NAME = JSON.parse((0, node_fs_1.readFileSync)(path.resolve(__dirname, '..', '..', '..', 'package.json'), { encoding: 'utf8' })).name;
|
|
11
11
|
/**
|
|
12
12
|
* Register Devtools to the application
|
|
13
|
-
* @param tree
|
|
14
|
-
* @param context
|
|
15
13
|
* @param options
|
|
16
14
|
*/
|
|
17
15
|
const registerDevtools = async (options) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAGL,MAAM,4BAA4B,CAAC;AAUpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AA6GlB;;;GAGG;AACH,eAAO,MAAM,KAAK,YAAa,qBAAqB,KAAG,IAGtD,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ngAdd = void 0;
|
|
4
|
+
const path = require("node:path");
|
|
4
5
|
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
6
|
const utility_1 = require("@schematics/angular/utility");
|
|
6
|
-
const path = require("node:path");
|
|
7
7
|
const devtools_registration_1 = require("./helpers/devtools-registration");
|
|
8
8
|
const reportMissingSchematicsDep = (logger) => (reason) => {
|
|
9
9
|
logger.error(`[ERROR]: Adding @o3r/application has failed.
|
|
@@ -19,8 +19,8 @@ function ngAddFn(options) {
|
|
|
19
19
|
/* ng add rules */
|
|
20
20
|
return async (tree, context) => {
|
|
21
21
|
const { getAppModuleFilePath, getWorkspaceConfig, insertImportToModuleFile, setupDependencies, getO3rPeerDeps, getProjectNewDependenciesTypes, getPackageInstallConfig } = await Promise.resolve().then(() => require('@o3r/schematics'));
|
|
22
|
-
const { isImported } = await Promise.resolve().then(() => require('@schematics/angular/utility/ast-utils'));
|
|
23
|
-
const ts = await Promise.resolve().then(() => require('typescript'));
|
|
22
|
+
const { isImported } = await Promise.resolve().then(() => require('@schematics/angular/utility/ast-utils')).catch(() => ({ isImported: undefined }));
|
|
23
|
+
const ts = await Promise.resolve().then(() => require('typescript')).catch(() => undefined);
|
|
24
24
|
const packageJsonPath = path.resolve(__dirname, '..', '..', 'package.json');
|
|
25
25
|
const depsInfo = getO3rPeerDeps(packageJsonPath);
|
|
26
26
|
const workspaceProject = options.projectName ? getWorkspaceConfig(tree)?.projects[options.projectName] : undefined;
|
|
@@ -31,9 +31,17 @@ function ngAddFn(options) {
|
|
|
31
31
|
return tree;
|
|
32
32
|
}
|
|
33
33
|
const sourceFileContent = tree.readText(moduleFilePath);
|
|
34
|
-
const sourceFile = ts
|
|
34
|
+
const sourceFile = ts?.createSourceFile(moduleFilePath, sourceFileContent, ts.ScriptTarget.ES2015, true);
|
|
35
|
+
if (!sourceFile) {
|
|
36
|
+
context.logger.warn('No Typescript executor detected, the ng-add process will be skipped.');
|
|
37
|
+
return tree;
|
|
38
|
+
}
|
|
39
|
+
if (!isImported) {
|
|
40
|
+
context.logger.warn('No @schematics/angular dependency detected, the ng-add process will be skipped.');
|
|
41
|
+
return tree;
|
|
42
|
+
}
|
|
35
43
|
if (isImported(sourceFile, 'prefersReducedMotion', '@o3r/application')) {
|
|
36
|
-
context.logger.info('
|
|
44
|
+
context.logger.info('prefersReducedMotion from @o3r/application is already imported.');
|
|
37
45
|
return tree;
|
|
38
46
|
}
|
|
39
47
|
const importInRootModule = (name, file, moduleFunction) => additionalRules.push((0, utility_1.addRootImport)(options.projectName, ({ code, external }) => code `\n${external(name, file)}${moduleFunction}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-update/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-update/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,IAAI,EACL,MAAM,4BAA4B,CAAC;AAKpC;;GAEG;AAEH,wBAAgB,WAAW,IAAI,IAAI,CAMlC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
3
|
-
/* eslint-disable camelcase */
|
|
4
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
3
|
exports.updateV10_0 = updateV10_0;
|
|
6
4
|
const schematics_1 = require("@angular-devkit/schematics");
|
|
@@ -8,6 +6,7 @@ const update_cms_config_1 = require("./v10.0/update-cms-config");
|
|
|
8
6
|
/**
|
|
9
7
|
* update of Otter library V10.0
|
|
10
8
|
*/
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- function name contains the version
|
|
11
10
|
function updateV10_0() {
|
|
12
11
|
const updateRules = [
|
|
13
12
|
(0, update_cms_config_1.updateCmsJsonFile)()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-cms-config.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-update/v10.0/update-cms-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update-cms-config.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-update/v10.0/update-cms-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,IAAI,EACL,MAAM,4BAA4B,CAAC;AAEpC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAuBxC"}
|