@o3r/styling 11.6.0-prerelease.21 → 11.6.0-prerelease.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,3 @@
1
- import { OnDestroy } from '@angular/core';
2
1
  import { LoggerService } from '@o3r/logger';
3
2
  import { StylingDevtoolsServiceOptions } from './styling-devkit.interface';
4
3
  import { OtterStylingDevtools } from './styling-devtools.service';
@@ -6,12 +5,12 @@ import * as i0 from "@angular/core";
6
5
  /**
7
6
  * Service to handle communication between application and chrome extension for styling
8
7
  */
9
- export declare class StylingDevtoolsMessageService implements OnDestroy {
8
+ export declare class StylingDevtoolsMessageService {
10
9
  private readonly logger;
11
10
  private readonly stylingDevTools;
12
11
  private readonly options;
13
- private readonly subscriptions;
14
12
  private readonly sendMessage;
13
+ private readonly destroyRef;
15
14
  constructor(logger: LoggerService, stylingDevTools: OtterStylingDevtools, options?: StylingDevtoolsServiceOptions);
16
15
  private sendMetadata;
17
16
  /**
@@ -30,8 +29,6 @@ export declare class StylingDevtoolsMessageService implements OnDestroy {
30
29
  private connectPlugin;
31
30
  /** @inheritDoc */
32
31
  activate(): void;
33
- /** @inheritDoc */
34
- ngOnDestroy(): void;
35
32
  static ɵfac: i0.ɵɵFactoryDeclaration<StylingDevtoolsMessageService, [null, null, { optional: true; }]>;
36
33
  static ɵprov: i0.ɵɵInjectableDeclaration<StylingDevtoolsMessageService>;
37
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"styling-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/styling-devtools.message.service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,SAAS,EAEV,MAAM,eAAe,CAAC;AAKvB,OAAO,EACL,aAAa,EACd,MAAM,aAAa,CAAC;AAKrB,OAAO,EAEL,6BAA6B,EAE9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;;AAqDpC;;GAEG;AACH,qBACa,6BAA8B,YAAW,SAAS;IAM3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IACoB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP9E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqD;gBAG9D,MAAM,EAAE,aAAa,EACrB,eAAe,EAAE,oBAAoB,EACe,OAAO,GAAE,6BAAsE;YAUxI,YAAY;IAU1B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA0BpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB,kBAAkB;IACX,QAAQ;IAMf,kBAAkB;IACX,WAAW;yCAnFP,6BAA6B;6CAA7B,6BAA6B;CAsFzC"}
1
+ {"version":3,"file":"styling-devtools.message.service.d.ts","sourceRoot":"","sources":["../../src/devkit/styling-devtools.message.service.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,aAAa,EACd,MAAM,aAAa,CAAC;AAIrB,OAAO,EAEL,6BAA6B,EAE9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;;AAqDpC;;GAEG;AACH,qBACa,6BAA6B;IAKtC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IACoB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN9E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqD;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAG9B,MAAM,EAAE,aAAa,EACrB,eAAe,EAAE,oBAAoB,EACe,OAAO,GAAE,6BAAsE;YAUxI,YAAY;IAU1B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA0BpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB,kBAAkB;IACX,QAAQ;yCA3EJ,6BAA6B;6CAA7B,6BAA6B;CAiFzC"}
@@ -1,8 +1,9 @@
1
1
  /* eslint-disable no-console -- this is the purpose of this service */
2
- import { Inject, Injectable, Optional, } from '@angular/core';
2
+ import { DestroyRef, inject, Inject, Injectable, Optional, } from '@angular/core';
3
+ import { takeUntilDestroyed, } from '@angular/core/rxjs-interop';
3
4
  import { filterMessageContent, sendOtterMessage, } from '@o3r/core';
4
5
  import { LoggerService, } from '@o3r/logger';
5
- import { fromEvent, Subscription, } from 'rxjs';
6
+ import { fromEvent, } from 'rxjs';
6
7
  import { OtterStylingDevtools, } from './styling-devtools.service';
7
8
  import { OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS, OTTER_STYLING_DEVTOOLS_OPTIONS, } from './styling-devtools.token';
8
9
  import * as i0 from "@angular/core";
@@ -53,8 +54,8 @@ export class StylingDevtoolsMessageService {
53
54
  this.logger = logger;
54
55
  this.stylingDevTools = stylingDevTools;
55
56
  this.options = options;
56
- this.subscriptions = new Subscription();
57
57
  this.sendMessage = (sendOtterMessage);
58
+ this.destroyRef = inject(DestroyRef);
58
59
  this.options = {
59
60
  ...OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS,
60
61
  ...this.options
@@ -117,11 +118,7 @@ export class StylingDevtoolsMessageService {
117
118
  }
118
119
  /** @inheritDoc */
119
120
  activate() {
120
- this.subscriptions.add(fromEvent(window, 'message').pipe(filterMessageContent(isStylingMessage)).subscribe((e) => this.handleEvents(e)));
121
- }
122
- /** @inheritDoc */
123
- ngOnDestroy() {
124
- this.subscriptions.unsubscribe();
121
+ fromEvent(window, 'message').pipe(takeUntilDestroyed(this.destroyRef), filterMessageContent(isStylingMessage)).subscribe((e) => this.handleEvents(e));
125
122
  }
126
123
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StylingDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: i2.OtterStylingDevtools }, { token: OTTER_STYLING_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
127
124
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StylingDevtoolsMessageService }); }
@@ -134,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
134
131
  type: Inject,
135
132
  args: [OTTER_STYLING_DEVTOOLS_OPTIONS]
136
133
  }] }] });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGluZy1kZXZ0b29scy5tZXNzYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L3N0eWxpbmctZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNFQUFzRTtBQUN0RSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFFVixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixnQkFBZ0IsR0FDakIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUNMLGFBQWEsR0FDZCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLE1BQU0sQ0FBQztBQU1kLE9BQU8sRUFDTCxvQkFBb0IsR0FDckIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLDhCQUE4QixHQUMvQixNQUFNLDBCQUEwQixDQUFDOzs7O0FBRWxDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFZLEVBQThDLEVBQUU7SUFDcEYsT0FBTyxPQUFPLElBQUksQ0FDaEIsT0FBTyxDQUFDLFFBQVEsS0FBSyx3QkFBd0I7V0FDMUMsT0FBTyxDQUFDLFFBQVEsS0FBSyx1QkFBdUI7V0FDNUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxvQkFBb0I7V0FDekMsT0FBTyxDQUFDLFFBQVEsS0FBSyxpQkFBaUI7V0FDdEMsT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQ2xDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLHdCQUF3QixHQUFHLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztLQUNwRSxPQUFPLEVBQUU7S0FDVCxNQUFNLENBQUMsQ0FBQyxHQUFtQixFQUFFLFVBQVUsRUFBRSxFQUFFO0lBQzFDLElBQUks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QUM7SUFFRCxrQkFBa0I7SUFDWCxRQUFRO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDakgsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDWCxXQUFXO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztrSUFyRlUsNkJBQTZCLG1GQVFsQiw4QkFBOEI7c0lBUnpDLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVTs7MEJBU04sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlIC0tIHRoaXMgaXMgdGhlIHB1cnBvc2Ugb2YgdGhpcyBzZXJ2aWNlICovXG5pbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZmlsdGVyTWVzc2FnZUNvbnRlbnQsXG4gIHNlbmRPdHRlck1lc3NhZ2UsXG59IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQge1xuICBMb2dnZXJTZXJ2aWNlLFxufSBmcm9tICdAbzNyL2xvZ2dlcic7XG5pbXBvcnQge1xuICBmcm9tRXZlbnQsXG4gIFN1YnNjcmlwdGlvbixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBBdmFpbGFibGVTdHlsaW5nTWVzc2FnZUNvbnRlbnRzLFxuICBTdHlsaW5nRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyxcbiAgU3R5bGluZ01lc3NhZ2VEYXRhVHlwZXMsXG59IGZyb20gJy4vc3R5bGluZy1kZXZraXQuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIE90dGVyU3R5bGluZ0RldnRvb2xzLFxufSBmcm9tICcuL3N0eWxpbmctZGV2dG9vbHMuc2VydmljZSc7XG5pbXBvcnQge1xuICBPVFRFUl9TVFlMSU5HX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUyxcbiAgT1RURVJfU1RZTElOR19ERVZUT09MU19PUFRJT05TLFxufSBmcm9tICcuL3N0eWxpbmctZGV2dG9vbHMudG9rZW4nO1xuXG5jb25zdCBpc1N0eWxpbmdNZXNzYWdlID0gKG1lc3NhZ2U6IGFueSk6IG1lc3NhZ2UgaXMgQXZhaWxhYmxlU3R5bGluZ01lc3NhZ2VDb250ZW50cyA9PiB7XG4gIHJldHVybiBtZXNzYWdlICYmIChcbiAgICBtZXNzYWdlLmRhdGFUeXBlID09PSAndXBkYXRlU3R5bGluZ1ZhcmlhYmxlcydcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAncmVzZXRTdHlsaW5nVmFyaWFibGVzJ1xuICAgIHx8IG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdnZXRTdHlsaW5nVmFyaWFibGUnXG4gICAgfHwgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ3JlcXVlc3RNZXNzYWdlcydcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAnY29ubmVjdCdcbiAgKTtcbn07XG5cbmNvbnN0IGdldENTU1J1bGVzQXBwbGllZE9uUm9vdCA9ICgpID0+IEFycmF5LmZyb20oZG9jdW1lbnQuc3R5bGVTaGVldHMpXG4gIC5yZXZlcnNlKClcbiAgLnJlZHVjZSgoYWNjOiBDU1NTdHlsZVJ1bGVbXSwgc3R5bGVTaGVldCkgPT4ge1xuICAgIGxldCBydWxlcztcbiAgICB0cnkge1xuICAgICAgcnVsZXMgPSBzdHlsZVNoZWV0LmNzc1J1bGVzIHx8IHN0eWxlU2hlZXQucnVsZXM7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBDb3VsZCBub3QgYWNjZXNzIHRvIHN0eWxlc2hlZXQgJHtzdHlsZVNoZWV0LmhyZWZ9LiBUaGlzIG1pZ2h0IGJlIGR1ZSB0byBuZXR3b3JrIGlzc3VlcywgcGxlYXNlIGNoZWNrOlxuLSBuZXR3b3JrIGNvbm5lY3Rpdml0eVxuLSBDT1JTIHNldHVwXG4tIGdyYW50ZWQgYWNjZXNzIHRvIHRoZSBzdHlsZXNoZWV0YCwgZXJyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjLmNvbmNhdChcbiAgICAgIEFycmF5LmZyb20ocnVsZXMgfHwgW10pXG4gICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgLmZpbHRlcigocnVsZSk6IHJ1bGUgaXMgQ1NTU3R5bGVSdWxlID0+IHJ1bGUgaW5zdGFuY2VvZiBDU1NTdHlsZVJ1bGUgJiYgL1xcYjpyb290XFxiLy50ZXN0KHJ1bGUuc2VsZWN0b3JUZXh0KSlcbiAgICApO1xuICB9LCBbXSk7XG5cbmNvbnN0IGdldENTU1ZhcmlhYmxlVmFsdWVJbkNTU1N0eWxlRGVjbGFyYXRpb24gPSAodmFyaWFibGVOYW1lOiBzdHJpbmcsIHN0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uKSA9PlxuICBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHZhcmlhYmxlTmFtZSkudHJpbSgpO1xuXG5jb25zdCBnZXRDU1NWYXJpYWJsZVZhbHVlID0gKHZhcmlhYmxlTmFtZTogc3RyaW5nLCBjc3NSdWxlczogQ1NTU3R5bGVSdWxlW10pID0+IHtcbiAgY29uc3QgaW5saW5lVmFsdWUgPSBnZXRDU1NWYXJpYWJsZVZhbHVlSW5DU1NTdHlsZURlY2xhcmF0aW9uKHZhcmlhYmxlTmFtZSwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaHRtbCcpIS5zdHlsZSk7XG4gIGlmIChpbmxpbmVWYWx1ZSkge1xuICAgIHJldHVybiBpbmxpbmVWYWx1ZTtcbiAgfVxuXG4gIGZvciAoY29uc3QgcnVsZSBvZiBjc3NSdWxlcykge1xuICAgIGNvbnN0IHJ1bGVWYWx1ZSA9IGdldENTU1ZhcmlhYmxlVmFsdWVJbkNTU1N0eWxlRGVjbGFyYXRpb24odmFyaWFibGVOYW1lLCBydWxlLnN0eWxlKTtcbiAgICBpZiAocnVsZVZhbHVlKSB7XG4gICAgICByZXR1cm4gcnVsZVZhbHVlO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGhhbmRsZSBjb21tdW5pY2F0aW9uIGJldHdlZW4gYXBwbGljYXRpb24gYW5kIGNocm9tZSBleHRlbnNpb24gZm9yIHN0eWxpbmdcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFN0eWxpbmdEZXZ0b29sc01lc3NhZ2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VuZE1lc3NhZ2UgPSBzZW5kT3R0ZXJNZXNzYWdlPEF2YWlsYWJsZVN0eWxpbmdNZXNzYWdlQ29udGVudHM+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3R5bGluZ0RldlRvb2xzOiBPdHRlclN0eWxpbmdEZXZ0b29scyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9UVEVSX1NUWUxJTkdfREVWVE9PTFNfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBTdHlsaW5nRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyA9IE9UVEVSX1NUWUxJTkdfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TKSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uT1RURVJfU1RZTElOR19ERVZUT09MU19ERUZBVUxUX09QVElPTlMsXG4gICAgICAuLi50aGlzLm9wdGlvbnNcbiAgICB9O1xuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNBY3RpdmF0ZWRPbkJvb3RzdHJhcCkge1xuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VuZE1ldGFkYXRhKCkge1xuICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgdGhpcy5zdHlsaW5nRGV2VG9vbHMuZ2V0U3R5bGluZ01ldGFkYXRhKHRoaXMub3B0aW9ucy5zdHlsaW5nTWV0YWRhdGFQYXRoKTtcbiAgICBjb25zdCBjc3NSdWxlcyA9IGdldENTU1J1bGVzQXBwbGllZE9uUm9vdCgpO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IE9iamVjdC52YWx1ZXMobWV0YWRhdGEudmFyaWFibGVzKS5tYXAoKHZhcmlhYmxlKSA9PiAoe1xuICAgICAgLi4udmFyaWFibGUsXG4gICAgICBydW50aW1lVmFsdWU6IGdldENTU1ZhcmlhYmxlVmFsdWUoYC0tJHt2YXJpYWJsZS5uYW1lfWAsIGNzc1J1bGVzKVxuICAgIH0pKTtcbiAgICB0aGlzLnNlbmRNZXNzYWdlKCdnZXRTdHlsaW5nVmFyaWFibGUnLCB7IHZhcmlhYmxlcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byB0cmlnZ2VyIGEgcmUtc2VuZCBhIHJlcXVlc3RlZCBtZXNzYWdlcyB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gb25seSByZXN0cmljdGVkIGxpc3Qgb2YgbWVzc2FnZXMgdG8gcmUtc2VuZFxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVSZUVtaXRSZXF1ZXN0KG9ubHk/OiBTdHlsaW5nTWVzc2FnZURhdGFUeXBlc1tdKSB7XG4gICAgaWYgKCFvbmx5IHx8IG9ubHkuaW5jbHVkZXMoJ2dldFN0eWxpbmdWYXJpYWJsZScpKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZW5kTWV0YWRhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBpbmNvbWluZyBtZXNzYWdlcyBmcm9tIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG1lc3NhZ2UgTWVzc2FnZSBjb21pbmcgZnJvbSB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVFdmVudHMobWVzc2FnZTogQXZhaWxhYmxlU3R5bGluZ01lc3NhZ2VDb250ZW50cykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdNZXNzYWdlIGhhbmRsaW5nIGJ5IHRoZSBzdHlsaW5nIHNlcnZpY2UnLCBtZXNzYWdlKTtcblxuICAgIHN3aXRjaCAobWVzc2FnZS5kYXRhVHlwZSkge1xuICAgICAgY2FzZSAnY29ubmVjdCc6IHtcbiAgICAgICAgdGhpcy5jb25uZWN0UGx1Z2luKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAncmVxdWVzdE1lc3NhZ2VzJzoge1xuICAgICAgICB2b2lkIHRoaXMuaGFuZGxlUmVFbWl0UmVxdWVzdChtZXNzYWdlLm9ubHkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3VwZGF0ZVN0eWxpbmdWYXJpYWJsZXMnOiB7XG4gICAgICAgIHRoaXMuc3R5bGluZ0RldlRvb2xzLnVwZGF0ZVZhcmlhYmxlcyhtZXNzYWdlLnZhcmlhYmxlcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAncmVzZXRTdHlsaW5nVmFyaWFibGVzJzoge1xuICAgICAgICB0aGlzLnN0eWxpbmdEZXZUb29scy5yZXNldFN0eWxpbmdWYXJpYWJsZXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ01lc3NhZ2UgaWdub3JlZCBieSB0aGUgc3R5bGluZyBzZXJ2aWNlJywgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNvbm5lY3QgdGhlIHBsdWdpbiB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKi9cbiAgcHJpdmF0ZSBjb25uZWN0UGx1Z2luKCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdPdHRlciBEZXZUb29scyBpcyBwbHVnZ2VkIHRvIHN0eWxpbmcgc2VydmljZSBvZiB0aGUgYXBwbGljYXRpb24nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgYWN0aXZhdGUoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdtZXNzYWdlJykucGlwZShmaWx0ZXJNZXNzYWdlQ29udGVudChpc1N0eWxpbmdNZXNzYWdlKSkuc3Vic2NyaWJlKChlKSA9PiB0aGlzLmhhbmRsZUV2ZW50cyhlKSlcbiAgICApO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGluZy1kZXZ0b29scy5tZXNzYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L3N0eWxpbmctZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNFQUFzRTtBQUN0RSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsa0JBQWtCLEdBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixnQkFBZ0IsR0FDakIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUNMLGFBQWEsR0FDZCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBTWQsT0FBTyxFQUNMLG9CQUFvQixHQUNyQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsOEJBQThCLEdBQy9CLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFFbEMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQVksRUFBOEMsRUFBRTtJQUNwRixPQUFPLE9BQU8sSUFBSSxDQUNoQixPQUFPLENBQUMsUUFBUSxLQUFLLHdCQUF3QjtXQUMxQyxPQUFPLENBQUMsUUFBUSxLQUFLLHVCQUF1QjtXQUM1QyxPQUFPLENBQUMsUUFBUSxLQUFLLG9CQUFvQjtXQUN6QyxPQUFPLENBQUMsUUFBUSxLQUFLLGlCQUFpQjtXQUN0QyxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FDbEMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO0tBQ3BFLE9BQU8sRUFBRTtL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QUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxrQkFBa0I7SUFDWCxRQUFRO1FBQ2IsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQy9CLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDbkMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FDdkMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO2tJQWhGVSw2QkFBNkIsbUZBT2xCLDhCQUE4QjtzSUFQekMsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVOzswQkFRTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgLS0gdGhpcyBpcyB0aGUgcHVycG9zZSBvZiB0aGlzIHNlcnZpY2UgKi9cbmltcG9ydCB7XG4gIERlc3Ryb3lSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICB0YWtlVW50aWxEZXN0cm95ZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIGZpbHRlck1lc3NhZ2VDb250ZW50LFxuICBzZW5kT3R0ZXJNZXNzYWdlLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTG9nZ2VyU2VydmljZSxcbn0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHtcbiAgZnJvbUV2ZW50LFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEF2YWlsYWJsZVN0eWxpbmdNZXNzYWdlQ29udGVudHMsXG4gIFN0eWxpbmdEZXZ0b29sc1NlcnZpY2VPcHRpb25zLFxuICBTdHlsaW5nTWVzc2FnZURhdGFUeXBlcyxcbn0gZnJvbSAnLi9zdHlsaW5nLWRldmtpdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgT3R0ZXJTdHlsaW5nRGV2dG9vbHMsXG59IGZyb20gJy4vc3R5bGluZy1kZXZ0b29scy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE9UVEVSX1NUWUxJTkdfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICBPVFRFUl9TVFlMSU5HX0RFVlRPT0xTX09QVElPTlMsXG59IGZyb20gJy4vc3R5bGluZy1kZXZ0b29scy50b2tlbic7XG5cbmNvbnN0IGlzU3R5bGluZ01lc3NhZ2UgPSAobWVzc2FnZTogYW55KTogbWVzc2FnZSBpcyBBdmFpbGFibGVTdHlsaW5nTWVzc2FnZUNvbnRlbnRzID0+IHtcbiAgcmV0dXJuIG1lc3NhZ2UgJiYgKFxuICAgIG1lc3NhZ2UuZGF0YVR5cGUgPT09ICd1cGRhdGVTdHlsaW5nVmFyaWFibGVzJ1xuICAgIHx8IG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdyZXNldFN0eWxpbmdWYXJpYWJsZXMnXG4gICAgfHwgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ2dldFN0eWxpbmdWYXJpYWJsZSdcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAncmVxdWVzdE1lc3NhZ2VzJ1xuICAgIHx8IG1lc3NhZ2UuZGF0YVR5cGUgPT09ICdjb25uZWN0J1xuICApO1xufTtcblxuY29uc3QgZ2V0Q1NTUnVsZXNBcHBsaWVkT25Sb290ID0gKCkgPT4gQXJyYXkuZnJvbShkb2N1bWVudC5zdHlsZVNoZWV0cylcbiAgLnJldmVyc2UoKVxuICAucmVkdWNlKChhY2M6IENTU1N0eWxlUnVsZVtdLCBzdHlsZVNoZWV0KSA9PiB7XG4gICAgbGV0IHJ1bGVzO1xuICAgIHRyeSB7XG4gICAgICBydWxlcyA9IHN0eWxlU2hlZXQuY3NzUnVsZXMgfHwgc3R5bGVTaGVldC5ydWxlcztcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYENvdWxkIG5vdCBhY2Nlc3MgdG8gc3R5bGVzaGVldCAke3N0eWxlU2hlZXQuaHJlZn0uIFRoaXMgbWlnaHQgYmUgZHVlIHRvIG5ldHdvcmsgaXNzdWVzLCBwbGVhc2UgY2hlY2s6XG4tIG5ldHdvcmsgY29ubmVjdGl2aXR5XG4tIENPUlMgc2V0dXBcbi0gZ3JhbnRlZCBhY2Nlc3MgdG8gdGhlIHN0eWxlc2hlZXRgLCBlcnIpO1xuICAgIH1cblxuICAgIHJldHVybiBhY2MuY29uY2F0KFxuICAgICAgQXJyYXkuZnJvbShydWxlcyB8fCBbXSlcbiAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAuZmlsdGVyKChydWxlKTogcnVsZSBpcyBDU1NTdHlsZVJ1bGUgPT4gcnVsZSBpbnN0YW5jZW9mIENTU1N0eWxlUnVsZSAmJiAvXFxiOnJvb3RcXGIvLnRlc3QocnVsZS5zZWxlY3RvclRleHQpKVxuICAgICk7XG4gIH0sIFtdKTtcblxuY29uc3QgZ2V0Q1NTVmFyaWFibGVWYWx1ZUluQ1NTU3R5bGVEZWNsYXJhdGlvbiA9ICh2YXJpYWJsZU5hbWU6IHN0cmluZywgc3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24pID0+XG4gIHN0eWxlLmdldFByb3BlcnR5VmFsdWUodmFyaWFibGVOYW1lKS50cmltKCk7XG5cbmNvbnN0IGdldENTU1ZhcmlhYmxlVmFsdWUgPSAodmFyaWFibGVOYW1lOiBzdHJpbmcsIGNzc1J1bGVzOiBDU1NTdHlsZVJ1bGVbXSkgPT4ge1xuICBjb25zdCBpbmxpbmVWYWx1ZSA9IGdldENTU1ZhcmlhYmxlVmFsdWVJbkNTU1N0eWxlRGVjbGFyYXRpb24odmFyaWFibGVOYW1lLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdodG1sJykhLnN0eWxlKTtcbiAgaWYgKGlubGluZVZhbHVlKSB7XG4gICAgcmV0dXJuIGlubGluZVZhbHVlO1xuICB9XG5cbiAgZm9yIChjb25zdCBydWxlIG9mIGNzc1J1bGVzKSB7XG4gICAgY29uc3QgcnVsZVZhbHVlID0gZ2V0Q1NTVmFyaWFibGVWYWx1ZUluQ1NTU3R5bGVEZWNsYXJhdGlvbih2YXJpYWJsZU5hbWUsIHJ1bGUuc3R5bGUpO1xuICAgIGlmIChydWxlVmFsdWUpIHtcbiAgICAgIHJldHVybiBydWxlVmFsdWU7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIGNvbW11bmljYXRpb24gYmV0d2VlbiBhcHBsaWNhdGlvbiBhbmQgY2hyb21lIGV4dGVuc2lvbiBmb3Igc3R5bGluZ1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3R5bGluZ0RldnRvb2xzTWVzc2FnZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlbmRNZXNzYWdlID0gc2VuZE90dGVyTWVzc2FnZTxBdmFpbGFibGVTdHlsaW5nTWVzc2FnZUNvbnRlbnRzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3R5bGluZ0RldlRvb2xzOiBPdHRlclN0eWxpbmdEZXZ0b29scyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9UVEVSX1NUWUxJTkdfREVWVE9PTFNfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBTdHlsaW5nRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyA9IE9UVEVSX1NUWUxJTkdfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TKSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4uT1RURVJfU1RZTElOR19ERVZUT09MU19ERUZBVUxUX09QVElPTlMsXG4gICAgICAuLi50aGlzLm9wdGlvbnNcbiAgICB9O1xuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNBY3RpdmF0ZWRPbkJvb3RzdHJhcCkge1xuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VuZE1ldGFkYXRhKCkge1xuICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgdGhpcy5zdHlsaW5nRGV2VG9vbHMuZ2V0U3R5bGluZ01ldGFkYXRhKHRoaXMub3B0aW9ucy5zdHlsaW5nTWV0YWRhdGFQYXRoKTtcbiAgICBjb25zdCBjc3NSdWxlcyA9IGdldENTU1J1bGVzQXBwbGllZE9uUm9vdCgpO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IE9iamVjdC52YWx1ZXMobWV0YWRhdGEudmFyaWFibGVzKS5tYXAoKHZhcmlhYmxlKSA9PiAoe1xuICAgICAgLi4udmFyaWFibGUsXG4gICAgICBydW50aW1lVmFsdWU6IGdldENTU1ZhcmlhYmxlVmFsdWUoYC0tJHt2YXJpYWJsZS5uYW1lfWAsIGNzc1J1bGVzKVxuICAgIH0pKTtcbiAgICB0aGlzLnNlbmRNZXNzYWdlKCdnZXRTdHlsaW5nVmFyaWFibGUnLCB7IHZhcmlhYmxlcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byB0cmlnZ2VyIGEgcmUtc2VuZCBhIHJlcXVlc3RlZCBtZXNzYWdlcyB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKiBAcGFyYW0gb25seSByZXN0cmljdGVkIGxpc3Qgb2YgbWVzc2FnZXMgdG8gcmUtc2VuZFxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVSZUVtaXRSZXF1ZXN0KG9ubHk/OiBTdHlsaW5nTWVzc2FnZURhdGFUeXBlc1tdKSB7XG4gICAgaWYgKCFvbmx5IHx8IG9ubHkuaW5jbHVkZXMoJ2dldFN0eWxpbmdWYXJpYWJsZScpKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZW5kTWV0YWRhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBpbmNvbWluZyBtZXNzYWdlcyBmcm9tIE90dGVyIENocm9tZSBEZXZUb29scyBleHRlbnNpb25cbiAgICogQHBhcmFtIG1lc3NhZ2UgTWVzc2FnZSBjb21pbmcgZnJvbSB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVFdmVudHMobWVzc2FnZTogQXZhaWxhYmxlU3R5bGluZ01lc3NhZ2VDb250ZW50cykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdNZXNzYWdlIGhhbmRsaW5nIGJ5IHRoZSBzdHlsaW5nIHNlcnZpY2UnLCBtZXNzYWdlKTtcblxuICAgIHN3aXRjaCAobWVzc2FnZS5kYXRhVHlwZSkge1xuICAgICAgY2FzZSAnY29ubmVjdCc6IHtcbiAgICAgICAgdGhpcy5jb25uZWN0UGx1Z2luKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAncmVxdWVzdE1lc3NhZ2VzJzoge1xuICAgICAgICB2b2lkIHRoaXMuaGFuZGxlUmVFbWl0UmVxdWVzdChtZXNzYWdlLm9ubHkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3VwZGF0ZVN0eWxpbmdWYXJpYWJsZXMnOiB7XG4gICAgICAgIHRoaXMuc3R5bGluZ0RldlRvb2xzLnVwZGF0ZVZhcmlhYmxlcyhtZXNzYWdlLnZhcmlhYmxlcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAncmVzZXRTdHlsaW5nVmFyaWFibGVzJzoge1xuICAgICAgICB0aGlzLnN0eWxpbmdEZXZUb29scy5yZXNldFN0eWxpbmdWYXJpYWJsZXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ01lc3NhZ2UgaWdub3JlZCBieSB0aGUgc3R5bGluZyBzZXJ2aWNlJywgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNvbm5lY3QgdGhlIHBsdWdpbiB0byB0aGUgT3R0ZXIgQ2hyb21lIERldlRvb2xzIGV4dGVuc2lvblxuICAgKi9cbiAgcHJpdmF0ZSBjb25uZWN0UGx1Z2luKCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdPdHRlciBEZXZUb29scyBpcyBwbHVnZ2VkIHRvIHN0eWxpbmcgc2VydmljZSBvZiB0aGUgYXBwbGljYXRpb24nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgYWN0aXZhdGUoKSB7XG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ21lc3NhZ2UnKS5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICBmaWx0ZXJNZXNzYWdlQ29udGVudChpc1N0eWxpbmdNZXNzYWdlKVxuICAgICkuc3Vic2NyaWJlKChlKSA9PiB0aGlzLmhhbmRsZUV2ZW50cyhlKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,9 +1,10 @@
1
1
  import { Breakpoints } from '@angular/cdk/layout';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, Injectable, InjectionToken, Optional, Inject, NgModule } from '@angular/core';
3
+ import { inject, Injectable, InjectionToken, DestroyRef, Optional, Inject, NgModule } from '@angular/core';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
5
  import { sendOtterMessage, filterMessageContent } from '@o3r/core';
5
6
  import * as i1 from '@o3r/logger';
6
- import { Subscription, fromEvent, firstValueFrom } from 'rxjs';
7
+ import { fromEvent, firstValueFrom } from 'rxjs';
7
8
  import { DOCUMENT } from '@angular/common';
8
9
  import * as i1$1 from '@o3r/dynamic-content';
9
10
  import { DynamicContentModule } from '@o3r/dynamic-content';
@@ -121,8 +122,8 @@ class StylingDevtoolsMessageService {
121
122
  this.logger = logger;
122
123
  this.stylingDevTools = stylingDevTools;
123
124
  this.options = options;
124
- this.subscriptions = new Subscription();
125
125
  this.sendMessage = (sendOtterMessage);
126
+ this.destroyRef = inject(DestroyRef);
126
127
  this.options = {
127
128
  ...OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS,
128
129
  ...this.options
@@ -185,11 +186,7 @@ class StylingDevtoolsMessageService {
185
186
  }
186
187
  /** @inheritDoc */
187
188
  activate() {
188
- this.subscriptions.add(fromEvent(window, 'message').pipe(filterMessageContent(isStylingMessage)).subscribe((e) => this.handleEvents(e)));
189
- }
190
- /** @inheritDoc */
191
- ngOnDestroy() {
192
- this.subscriptions.unsubscribe();
189
+ fromEvent(window, 'message').pipe(takeUntilDestroyed(this.destroyRef), filterMessageContent(isStylingMessage)).subscribe((e) => this.handleEvents(e));
193
190
  }
194
191
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StylingDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: OtterStylingDevtools }, { token: OTTER_STYLING_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
195
192
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StylingDevtoolsMessageService }); }
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-styling.mjs","sources":["../../src/breakpoints.ts","../../src/devkit/styling-devkit.interface.ts","../../src/devkit/styling-devtools.service.ts","../../src/devkit/styling-devtools.token.ts","../../src/devkit/styling-devtools.message.service.ts","../../src/devkit/styling-devtools.module.ts","../../src/services/styling/style-lazy-loader.module.ts","../../src/services/styling/style-lazy-loader.service.ts","../../src/o3r-styling.ts"],"sourcesContent":["import {\n Breakpoints,\n} from '@angular/cdk/layout';\n\n/**\n * Angular CDK Breakpoints to detect devices\n * @deprecated use Breakpoints exported by @angular/cdk instead, will be removed in v12\n */\nexport const deviceBreakpoints = {\n mobile: [Breakpoints.HandsetLandscape, Breakpoints.HandsetPortrait],\n tablet: [Breakpoints.TabletLandscape, Breakpoints.TabletPortrait]\n};\n","import type {\n ConnectContentMessage,\n DevtoolsCommonOptions,\n MessageDataTypes,\n OtterMessageContent,\n RequestMessagesContentMessage,\n} from '@o3r/core';\nimport {\n CssVariable,\n} from '../core/index';\n\n/**\n * Styling devtools service options\n */\nexport interface StylingDevtoolsServiceOptions extends DevtoolsCommonOptions {\n /**\n * Path to retrieve the styling metadata file\n */\n stylingMetadataPath: string;\n}\n\n/** Update styling variables */\nexport interface UpdateStylingVariablesContentMessage extends OtterMessageContent<'updateStylingVariables'> {\n /**\n * Dictionary of variable value to update\n * indexed by the variable name\n */\n variables: Record<string, string>;\n}\n\n/** Reset styling variables override */\nexport interface ResetStylingVariablesContentMessage extends OtterMessageContent<'resetStylingVariables'> {}\n\n/** Styling variable */\nexport type StylingVariable = CssVariable & { runtimeValue?: string };\n\n/** Get styling variables */\nexport interface GetStylingVariableContentMessage extends OtterMessageContent<'getStylingVariable'> {\n /** List of styling variables */\n variables: StylingVariable[];\n}\n\n/**\n * List of styling message contents\n */\ntype StylingMessageContents =\n | UpdateStylingVariablesContentMessage\n | ResetStylingVariablesContentMessage\n | GetStylingVariableContentMessage;\n\n/** List of possible DataTypes for Styling messages */\nexport type StylingMessageDataTypes = MessageDataTypes<StylingMessageContents>;\n\n/** List of all messages for Styling purposes */\nexport type AvailableStylingMessageContents =\n | StylingMessageContents\n | ConnectContentMessage\n | RequestMessagesContentMessage<StylingMessageDataTypes>;\n\n/** Tag to identify theme variable */\nexport const THEME_TAG_NAME = 'theme';\n\n/** Tag to identify palette variable */\nexport const PALETTE_TAG_NAME = 'palette';\n","import {\n DOCUMENT,\n} from '@angular/common';\nimport {\n inject,\n Injectable,\n} from '@angular/core';\nimport type {\n CssMetadata,\n} from '../core/index';\n\n/**\n * Styling devtools service\n */\n@Injectable()\nexport class OtterStylingDevtools {\n private readonly document = inject(DOCUMENT);\n\n /**\n * Retrieve styling metadata\n * @param stylingMetadataPath\n */\n public async getStylingMetadata(stylingMetadataPath: string): Promise<CssMetadata> {\n return (await fetch(stylingMetadataPath)).json();\n }\n\n /**\n * Update styling variables\n * @param variables\n */\n public updateVariables(variables: Record<string, string>) {\n Object.entries(variables).forEach(([varName, value]) => this.document.querySelector('html')!.style.setProperty(`--${varName}`, value));\n }\n\n /**\n * Reset styling variables override\n */\n public resetStylingVariables() {\n const style = this.document.querySelector('html')!.style;\n style.cssText\n .split(/;(\\s+)?/)\n .reduce((acc: string[], str) => {\n const match = str?.match(/^(--.*):/);\n return match ? acc.concat(match[1]) : acc;\n }, [])\n .forEach((varName) => style.removeProperty(varName));\n }\n}\n","import {\n InjectionToken,\n} from '@angular/core';\nimport type {\n StylingDevtoolsServiceOptions,\n} from './styling-devkit.interface';\n\n/**\n * Default value for styling devtools\n */\nexport const OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS: Readonly<StylingDevtoolsServiceOptions> = {\n isActivatedOnBootstrap: false,\n stylingMetadataPath: './metadata/styling.metadata.json'\n} as const;\n\n/**\n * Token for styling devtools\n */\nexport const OTTER_STYLING_DEVTOOLS_OPTIONS = new InjectionToken<StylingDevtoolsServiceOptions>('Otter Styling Devtools options');\n","/* eslint-disable no-console -- this is the purpose of this service */\nimport {\n Inject,\n Injectable,\n OnDestroy,\n Optional,\n} from '@angular/core';\nimport {\n filterMessageContent,\n sendOtterMessage,\n} from '@o3r/core';\nimport {\n LoggerService,\n} from '@o3r/logger';\nimport {\n fromEvent,\n Subscription,\n} from 'rxjs';\nimport {\n AvailableStylingMessageContents,\n StylingDevtoolsServiceOptions,\n StylingMessageDataTypes,\n} from './styling-devkit.interface';\nimport {\n OtterStylingDevtools,\n} from './styling-devtools.service';\nimport {\n OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_STYLING_DEVTOOLS_OPTIONS,\n} from './styling-devtools.token';\n\nconst isStylingMessage = (message: any): message is AvailableStylingMessageContents => {\n return message && (\n message.dataType === 'updateStylingVariables'\n || message.dataType === 'resetStylingVariables'\n || message.dataType === 'getStylingVariable'\n || message.dataType === 'requestMessages'\n || message.dataType === 'connect'\n );\n};\n\nconst getCSSRulesAppliedOnRoot = () => Array.from(document.styleSheets)\n .reverse()\n .reduce((acc: CSSStyleRule[], styleSheet) => {\n let rules;\n try {\n rules = styleSheet.cssRules || styleSheet.rules;\n } catch (err) {\n console.debug(`Could not access to stylesheet ${styleSheet.href}. This might be due to network issues, please check:\n- network connectivity\n- CORS setup\n- granted access to the stylesheet`, err);\n }\n\n return acc.concat(\n Array.from(rules || [])\n .reverse()\n .filter((rule): rule is CSSStyleRule => rule instanceof CSSStyleRule && /\\b:root\\b/.test(rule.selectorText))\n );\n }, []);\n\nconst getCSSVariableValueInCSSStyleDeclaration = (variableName: string, style: CSSStyleDeclaration) =>\n style.getPropertyValue(variableName).trim();\n\nconst getCSSVariableValue = (variableName: string, cssRules: CSSStyleRule[]) => {\n const inlineValue = getCSSVariableValueInCSSStyleDeclaration(variableName, document.querySelector('html')!.style);\n if (inlineValue) {\n return inlineValue;\n }\n\n for (const rule of cssRules) {\n const ruleValue = getCSSVariableValueInCSSStyleDeclaration(variableName, rule.style);\n if (ruleValue) {\n return ruleValue;\n }\n }\n};\n\n/**\n * Service to handle communication between application and chrome extension for styling\n */\n@Injectable()\nexport class StylingDevtoolsMessageService implements OnDestroy {\n private readonly subscriptions = new Subscription();\n\n private readonly sendMessage = sendOtterMessage<AvailableStylingMessageContents>;\n\n constructor(\n private readonly logger: LoggerService,\n private readonly stylingDevTools: OtterStylingDevtools,\n @Optional() @Inject(OTTER_STYLING_DEVTOOLS_OPTIONS) private readonly options: StylingDevtoolsServiceOptions = OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS) {\n this.options = {\n ...OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS,\n ...this.options\n };\n if (this.options.isActivatedOnBootstrap) {\n this.activate();\n }\n }\n\n private async sendMetadata() {\n const metadata = await this.stylingDevTools.getStylingMetadata(this.options.stylingMetadataPath);\n const cssRules = getCSSRulesAppliedOnRoot();\n const variables = Object.values(metadata.variables).map((variable) => ({\n ...variable,\n runtimeValue: getCSSVariableValue(`--${variable.name}`, cssRules)\n }));\n this.sendMessage('getStylingVariable', { variables });\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?: StylingMessageDataTypes[]) {\n if (!only || only.includes('getStylingVariable')) {\n return this.sendMetadata();\n }\n }\n\n /**\n * Function to handle the incoming messages from Otter Chrome DevTools extension\n * @param message Message coming from the Otter Chrome DevTools extension\n */\n private handleEvents(message: AvailableStylingMessageContents) {\n this.logger.debug('Message handling by the styling service', message);\n\n switch (message.dataType) {\n case 'connect': {\n this.connectPlugin();\n break;\n }\n case 'requestMessages': {\n void this.handleReEmitRequest(message.only);\n break;\n }\n case 'updateStylingVariables': {\n this.stylingDevTools.updateVariables(message.variables);\n break;\n }\n case 'resetStylingVariables': {\n this.stylingDevTools.resetStylingVariables();\n break;\n }\n default: {\n this.logger.warn('Message ignored by the styling service', message);\n }\n }\n }\n\n /**\n * Function to connect the plugin to the Otter Chrome DevTools extension\n */\n private connectPlugin() {\n this.logger.debug('Otter DevTools is plugged to styling service of the application');\n }\n\n /** @inheritDoc */\n public activate() {\n this.subscriptions.add(\n fromEvent(window, 'message').pipe(filterMessageContent(isStylingMessage)).subscribe((e) => this.handleEvents(e))\n );\n }\n\n /** @inheritDoc */\n public ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport type {\n StylingDevtoolsServiceOptions,\n} from './styling-devkit.interface';\nimport {\n StylingDevtoolsMessageService,\n} from './styling-devtools.message.service';\nimport {\n OtterStylingDevtools,\n} from './styling-devtools.service';\nimport {\n OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_STYLING_DEVTOOLS_OPTIONS,\n} from './styling-devtools.token';\n\n@NgModule({\n providers: [\n { provide: OTTER_STYLING_DEVTOOLS_OPTIONS, useValue: OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS },\n StylingDevtoolsMessageService,\n OtterStylingDevtools\n ]\n})\nexport class StylingDevtoolsModule {\n /**\n * Initialize Otter Devtools\n * @param options\n */\n public static instrument(options: Partial<StylingDevtoolsServiceOptions>): ModuleWithProviders<StylingDevtoolsModule> {\n return {\n ngModule: StylingDevtoolsModule,\n providers: [\n { provide: OTTER_STYLING_DEVTOOLS_OPTIONS, useValue: { ...OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS, ...options }, multi: false },\n StylingDevtoolsMessageService,\n OtterStylingDevtools\n ]\n };\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n DynamicContentModule,\n} from '@o3r/dynamic-content';\n\n/**\n * @deprecated use StyleLazyLoaderModule exported by @o3r/dynamic-content instead, will be removed in v12\n */\n@NgModule({\n imports: [DynamicContentModule]\n})\nexport class StyleLazyLoaderModule {}\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n DynamicContentService,\n} from '@o3r/dynamic-content';\nimport {\n firstValueFrom,\n} from 'rxjs';\nimport {\n StyleLazyLoaderModule,\n} from './style-lazy-loader.module';\n\n/**\n * Interface to describe a style to lazy load from a url.\n * @deprecated use StyleURL exported by @o3r/dynamic-content instead, will be removed in v12\n */\nexport interface StyleURL {\n /** url to file */\n href: string;\n /** id of the HTML element */\n id?: string;\n /** html integrity attribute to verify fetched resources */\n integrity?: string;\n /** html crossOrigin attribute for CORS support. */\n crossOrigin?: 'anonymous' | 'use-credentials' | '';\n}\n\n/**\n * Service to lazy load a CSS file\n * @deprecated use StyleLazyLoader exported by @o3r/dynamic-content instead, will be removed in v12\n */\n@Injectable({\n providedIn: StyleLazyLoaderModule\n})\nexport class StyleLazyLoader {\n private readonly DEFAULT_STYLE_ELEMENT_ID = 'external-theme';\n\n constructor(private readonly dcService: DynamicContentService) {}\n\n /**\n * Load a new CSS from an absolute URL, if we already HTML element exists with the url, otherwise\n * @param styleUrlConfig object containing CSS File absolute URL to load, integrity and crossOrigin attributes\n * and the styleId id of the dynamic style in the body tag.\n */\n public loadStyleFromURL(styleUrlConfig: StyleURL) {\n const elementId = styleUrlConfig.id || this.DEFAULT_STYLE_ELEMENT_ID;\n let style = document.querySelector<HTMLLinkElement>(`#${elementId}`);\n\n if (style === null) {\n style = document.createElement('link');\n style.rel = 'stylesheet';\n style.type = 'text/css';\n const head = document.querySelectorAll('head')[0];\n head.append(style);\n }\n if (styleUrlConfig.integrity) {\n style.integrity = styleUrlConfig.integrity;\n }\n if (styleUrlConfig.crossOrigin !== undefined) {\n style.crossOrigin = styleUrlConfig.crossOrigin;\n }\n style.href = styleUrlConfig.href;\n }\n\n /**\n * Load a new CSS File\n * @param styleUrlConfig CSS File config containing URL to load, integrity and crossOrigin attributes\n * and the styleId id of the dynamic style in the body tag\n */\n public async asyncLoadStyleFromDynamicContent(styleUrlConfig: StyleURL) {\n const dynamicContentPath = await firstValueFrom(\n this.dcService.getContentPathStream(styleUrlConfig.href)\n );\n styleUrlConfig.href = dynamicContentPath;\n this.loadStyleFromURL(styleUrlConfig);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"o3r-styling.mjs","sources":["../../src/breakpoints.ts","../../src/devkit/styling-devkit.interface.ts","../../src/devkit/styling-devtools.service.ts","../../src/devkit/styling-devtools.token.ts","../../src/devkit/styling-devtools.message.service.ts","../../src/devkit/styling-devtools.module.ts","../../src/services/styling/style-lazy-loader.module.ts","../../src/services/styling/style-lazy-loader.service.ts","../../src/o3r-styling.ts"],"sourcesContent":["import {\n Breakpoints,\n} from '@angular/cdk/layout';\n\n/**\n * Angular CDK Breakpoints to detect devices\n * @deprecated use Breakpoints exported by @angular/cdk instead, will be removed in v12\n */\nexport const deviceBreakpoints = {\n mobile: [Breakpoints.HandsetLandscape, Breakpoints.HandsetPortrait],\n tablet: [Breakpoints.TabletLandscape, Breakpoints.TabletPortrait]\n};\n","import type {\n ConnectContentMessage,\n DevtoolsCommonOptions,\n MessageDataTypes,\n OtterMessageContent,\n RequestMessagesContentMessage,\n} from '@o3r/core';\nimport {\n CssVariable,\n} from '../core/index';\n\n/**\n * Styling devtools service options\n */\nexport interface StylingDevtoolsServiceOptions extends DevtoolsCommonOptions {\n /**\n * Path to retrieve the styling metadata file\n */\n stylingMetadataPath: string;\n}\n\n/** Update styling variables */\nexport interface UpdateStylingVariablesContentMessage extends OtterMessageContent<'updateStylingVariables'> {\n /**\n * Dictionary of variable value to update\n * indexed by the variable name\n */\n variables: Record<string, string>;\n}\n\n/** Reset styling variables override */\nexport interface ResetStylingVariablesContentMessage extends OtterMessageContent<'resetStylingVariables'> {}\n\n/** Styling variable */\nexport type StylingVariable = CssVariable & { runtimeValue?: string };\n\n/** Get styling variables */\nexport interface GetStylingVariableContentMessage extends OtterMessageContent<'getStylingVariable'> {\n /** List of styling variables */\n variables: StylingVariable[];\n}\n\n/**\n * List of styling message contents\n */\ntype StylingMessageContents =\n | UpdateStylingVariablesContentMessage\n | ResetStylingVariablesContentMessage\n | GetStylingVariableContentMessage;\n\n/** List of possible DataTypes for Styling messages */\nexport type StylingMessageDataTypes = MessageDataTypes<StylingMessageContents>;\n\n/** List of all messages for Styling purposes */\nexport type AvailableStylingMessageContents =\n | StylingMessageContents\n | ConnectContentMessage\n | RequestMessagesContentMessage<StylingMessageDataTypes>;\n\n/** Tag to identify theme variable */\nexport const THEME_TAG_NAME = 'theme';\n\n/** Tag to identify palette variable */\nexport const PALETTE_TAG_NAME = 'palette';\n","import {\n DOCUMENT,\n} from '@angular/common';\nimport {\n inject,\n Injectable,\n} from '@angular/core';\nimport type {\n CssMetadata,\n} from '../core/index';\n\n/**\n * Styling devtools service\n */\n@Injectable()\nexport class OtterStylingDevtools {\n private readonly document = inject(DOCUMENT);\n\n /**\n * Retrieve styling metadata\n * @param stylingMetadataPath\n */\n public async getStylingMetadata(stylingMetadataPath: string): Promise<CssMetadata> {\n return (await fetch(stylingMetadataPath)).json();\n }\n\n /**\n * Update styling variables\n * @param variables\n */\n public updateVariables(variables: Record<string, string>) {\n Object.entries(variables).forEach(([varName, value]) => this.document.querySelector('html')!.style.setProperty(`--${varName}`, value));\n }\n\n /**\n * Reset styling variables override\n */\n public resetStylingVariables() {\n const style = this.document.querySelector('html')!.style;\n style.cssText\n .split(/;(\\s+)?/)\n .reduce((acc: string[], str) => {\n const match = str?.match(/^(--.*):/);\n return match ? acc.concat(match[1]) : acc;\n }, [])\n .forEach((varName) => style.removeProperty(varName));\n }\n}\n","import {\n InjectionToken,\n} from '@angular/core';\nimport type {\n StylingDevtoolsServiceOptions,\n} from './styling-devkit.interface';\n\n/**\n * Default value for styling devtools\n */\nexport const OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS: Readonly<StylingDevtoolsServiceOptions> = {\n isActivatedOnBootstrap: false,\n stylingMetadataPath: './metadata/styling.metadata.json'\n} as const;\n\n/**\n * Token for styling devtools\n */\nexport const OTTER_STYLING_DEVTOOLS_OPTIONS = new InjectionToken<StylingDevtoolsServiceOptions>('Otter Styling Devtools options');\n","/* eslint-disable no-console -- this is the purpose of this service */\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 filterMessageContent,\n sendOtterMessage,\n} from '@o3r/core';\nimport {\n LoggerService,\n} from '@o3r/logger';\nimport {\n fromEvent,\n} from 'rxjs';\nimport {\n AvailableStylingMessageContents,\n StylingDevtoolsServiceOptions,\n StylingMessageDataTypes,\n} from './styling-devkit.interface';\nimport {\n OtterStylingDevtools,\n} from './styling-devtools.service';\nimport {\n OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_STYLING_DEVTOOLS_OPTIONS,\n} from './styling-devtools.token';\n\nconst isStylingMessage = (message: any): message is AvailableStylingMessageContents => {\n return message && (\n message.dataType === 'updateStylingVariables'\n || message.dataType === 'resetStylingVariables'\n || message.dataType === 'getStylingVariable'\n || message.dataType === 'requestMessages'\n || message.dataType === 'connect'\n );\n};\n\nconst getCSSRulesAppliedOnRoot = () => Array.from(document.styleSheets)\n .reverse()\n .reduce((acc: CSSStyleRule[], styleSheet) => {\n let rules;\n try {\n rules = styleSheet.cssRules || styleSheet.rules;\n } catch (err) {\n console.debug(`Could not access to stylesheet ${styleSheet.href}. This might be due to network issues, please check:\n- network connectivity\n- CORS setup\n- granted access to the stylesheet`, err);\n }\n\n return acc.concat(\n Array.from(rules || [])\n .reverse()\n .filter((rule): rule is CSSStyleRule => rule instanceof CSSStyleRule && /\\b:root\\b/.test(rule.selectorText))\n );\n }, []);\n\nconst getCSSVariableValueInCSSStyleDeclaration = (variableName: string, style: CSSStyleDeclaration) =>\n style.getPropertyValue(variableName).trim();\n\nconst getCSSVariableValue = (variableName: string, cssRules: CSSStyleRule[]) => {\n const inlineValue = getCSSVariableValueInCSSStyleDeclaration(variableName, document.querySelector('html')!.style);\n if (inlineValue) {\n return inlineValue;\n }\n\n for (const rule of cssRules) {\n const ruleValue = getCSSVariableValueInCSSStyleDeclaration(variableName, rule.style);\n if (ruleValue) {\n return ruleValue;\n }\n }\n};\n\n/**\n * Service to handle communication between application and chrome extension for styling\n */\n@Injectable()\nexport class StylingDevtoolsMessageService {\n private readonly sendMessage = sendOtterMessage<AvailableStylingMessageContents>;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private readonly logger: LoggerService,\n private readonly stylingDevTools: OtterStylingDevtools,\n @Optional() @Inject(OTTER_STYLING_DEVTOOLS_OPTIONS) private readonly options: StylingDevtoolsServiceOptions = OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS) {\n this.options = {\n ...OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS,\n ...this.options\n };\n if (this.options.isActivatedOnBootstrap) {\n this.activate();\n }\n }\n\n private async sendMetadata() {\n const metadata = await this.stylingDevTools.getStylingMetadata(this.options.stylingMetadataPath);\n const cssRules = getCSSRulesAppliedOnRoot();\n const variables = Object.values(metadata.variables).map((variable) => ({\n ...variable,\n runtimeValue: getCSSVariableValue(`--${variable.name}`, cssRules)\n }));\n this.sendMessage('getStylingVariable', { variables });\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?: StylingMessageDataTypes[]) {\n if (!only || only.includes('getStylingVariable')) {\n return this.sendMetadata();\n }\n }\n\n /**\n * Function to handle the incoming messages from Otter Chrome DevTools extension\n * @param message Message coming from the Otter Chrome DevTools extension\n */\n private handleEvents(message: AvailableStylingMessageContents) {\n this.logger.debug('Message handling by the styling service', message);\n\n switch (message.dataType) {\n case 'connect': {\n this.connectPlugin();\n break;\n }\n case 'requestMessages': {\n void this.handleReEmitRequest(message.only);\n break;\n }\n case 'updateStylingVariables': {\n this.stylingDevTools.updateVariables(message.variables);\n break;\n }\n case 'resetStylingVariables': {\n this.stylingDevTools.resetStylingVariables();\n break;\n }\n default: {\n this.logger.warn('Message ignored by the styling service', message);\n }\n }\n }\n\n /**\n * Function to connect the plugin to the Otter Chrome DevTools extension\n */\n private connectPlugin() {\n this.logger.debug('Otter DevTools is plugged to styling service of the application');\n }\n\n /** @inheritDoc */\n public activate() {\n fromEvent(window, 'message').pipe(\n takeUntilDestroyed(this.destroyRef),\n filterMessageContent(isStylingMessage)\n ).subscribe((e) => this.handleEvents(e));\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport type {\n StylingDevtoolsServiceOptions,\n} from './styling-devkit.interface';\nimport {\n StylingDevtoolsMessageService,\n} from './styling-devtools.message.service';\nimport {\n OtterStylingDevtools,\n} from './styling-devtools.service';\nimport {\n OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS,\n OTTER_STYLING_DEVTOOLS_OPTIONS,\n} from './styling-devtools.token';\n\n@NgModule({\n providers: [\n { provide: OTTER_STYLING_DEVTOOLS_OPTIONS, useValue: OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS },\n StylingDevtoolsMessageService,\n OtterStylingDevtools\n ]\n})\nexport class StylingDevtoolsModule {\n /**\n * Initialize Otter Devtools\n * @param options\n */\n public static instrument(options: Partial<StylingDevtoolsServiceOptions>): ModuleWithProviders<StylingDevtoolsModule> {\n return {\n ngModule: StylingDevtoolsModule,\n providers: [\n { provide: OTTER_STYLING_DEVTOOLS_OPTIONS, useValue: { ...OTTER_STYLING_DEVTOOLS_DEFAULT_OPTIONS, ...options }, multi: false },\n StylingDevtoolsMessageService,\n OtterStylingDevtools\n ]\n };\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n DynamicContentModule,\n} from '@o3r/dynamic-content';\n\n/**\n * @deprecated use StyleLazyLoaderModule exported by @o3r/dynamic-content instead, will be removed in v12\n */\n@NgModule({\n imports: [DynamicContentModule]\n})\nexport class StyleLazyLoaderModule {}\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n DynamicContentService,\n} from '@o3r/dynamic-content';\nimport {\n firstValueFrom,\n} from 'rxjs';\nimport {\n StyleLazyLoaderModule,\n} from './style-lazy-loader.module';\n\n/**\n * Interface to describe a style to lazy load from a url.\n * @deprecated use StyleURL exported by @o3r/dynamic-content instead, will be removed in v12\n */\nexport interface StyleURL {\n /** url to file */\n href: string;\n /** id of the HTML element */\n id?: string;\n /** html integrity attribute to verify fetched resources */\n integrity?: string;\n /** html crossOrigin attribute for CORS support. */\n crossOrigin?: 'anonymous' | 'use-credentials' | '';\n}\n\n/**\n * Service to lazy load a CSS file\n * @deprecated use StyleLazyLoader exported by @o3r/dynamic-content instead, will be removed in v12\n */\n@Injectable({\n providedIn: StyleLazyLoaderModule\n})\nexport class StyleLazyLoader {\n private readonly DEFAULT_STYLE_ELEMENT_ID = 'external-theme';\n\n constructor(private readonly dcService: DynamicContentService) {}\n\n /**\n * Load a new CSS from an absolute URL, if we already HTML element exists with the url, otherwise\n * @param styleUrlConfig object containing CSS File absolute URL to load, integrity and crossOrigin attributes\n * and the styleId id of the dynamic style in the body tag.\n */\n public loadStyleFromURL(styleUrlConfig: StyleURL) {\n const elementId = styleUrlConfig.id || this.DEFAULT_STYLE_ELEMENT_ID;\n let style = document.querySelector<HTMLLinkElement>(`#${elementId}`);\n\n if (style === null) {\n style = document.createElement('link');\n style.rel = 'stylesheet';\n style.type = 'text/css';\n const head = document.querySelectorAll('head')[0];\n head.append(style);\n }\n if (styleUrlConfig.integrity) {\n style.integrity = styleUrlConfig.integrity;\n }\n if (styleUrlConfig.crossOrigin !== undefined) {\n style.crossOrigin = styleUrlConfig.crossOrigin;\n }\n style.href = styleUrlConfig.href;\n }\n\n /**\n * Load a new CSS File\n * @param styleUrlConfig CSS File config containing URL to load, integrity and crossOrigin attributes\n * and the styleId id of the dynamic style in the body tag\n */\n public async asyncLoadStyleFromDynamicContent(styleUrlConfig: StyleURL) {\n const dynamicContentPath = await firstValueFrom(\n this.dcService.getContentPathStream(styleUrlConfig.href)\n );\n styleUrlConfig.href = dynamicContentPath;\n this.loadStyleFromURL(styleUrlConfig);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/styling",
3
- "version": "11.6.0-prerelease.21",
3
+ "version": "11.6.0-prerelease.22",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -40,11 +40,11 @@
40
40
  "@angular/common": "~18.2.0",
41
41
  "@angular/core": "~18.2.0",
42
42
  "@angular/material": "~18.2.0",
43
- "@o3r/core": "^11.6.0-prerelease.21",
44
- "@o3r/dynamic-content": "^11.6.0-prerelease.21",
45
- "@o3r/extractors": "^11.6.0-prerelease.21",
46
- "@o3r/logger": "^11.6.0-prerelease.21",
47
- "@o3r/schematics": "^11.6.0-prerelease.21",
43
+ "@o3r/core": "^11.6.0-prerelease.22",
44
+ "@o3r/dynamic-content": "^11.6.0-prerelease.22",
45
+ "@o3r/extractors": "^11.6.0-prerelease.22",
46
+ "@o3r/logger": "^11.6.0-prerelease.22",
47
+ "@o3r/schematics": "^11.6.0-prerelease.22",
48
48
  "@schematics/angular": "~18.2.0",
49
49
  "@yarnpkg/cli": "^4.3.1",
50
50
  "@yarnpkg/core": "^4.1.1",