@skyux/core 6.15.0 → 6.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/documentation.json +1042 -892
  2. package/esm2020/lib/modules/adapter-service/adapter.service.mjs +21 -22
  3. package/esm2020/lib/modules/affix/affix-offset.mjs +1 -1
  4. package/esm2020/lib/modules/affix/affix.directive.mjs +38 -23
  5. package/esm2020/lib/modules/affix/affixer.mjs +266 -260
  6. package/esm2020/lib/modules/affix/dom-utils.mjs +7 -7
  7. package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +48 -44
  8. package/esm2020/lib/modules/dock/dock-item.mjs +10 -5
  9. package/esm2020/lib/modules/dock/dock.component.mjs +55 -31
  10. package/esm2020/lib/modules/dock/dock.service.mjs +40 -36
  11. package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +37 -22
  12. package/esm2020/lib/modules/log/log.service.mjs +37 -37
  13. package/esm2020/lib/modules/media-query/media-query.service.mjs +50 -47
  14. package/esm2020/lib/modules/mutation/mutation-observer-service.mjs +3 -1
  15. package/esm2020/lib/modules/numeric/numeric.pipe.mjs +26 -19
  16. package/esm2020/lib/modules/numeric/numeric.service.mjs +84 -99
  17. package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +23 -17
  18. package/esm2020/lib/modules/overlay/overlay-instance.mjs +18 -9
  19. package/esm2020/lib/modules/overlay/overlay.component.mjs +79 -55
  20. package/esm2020/lib/modules/overlay/overlay.service.mjs +55 -49
  21. package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +32 -21
  22. package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +38 -46
  23. package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +66 -67
  24. package/esm2020/lib/modules/title/title.service.mjs +8 -4
  25. package/esm2020/lib/modules/trim/trim.directive.mjs +10 -11
  26. package/esm2020/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +1 -1
  27. package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +75 -60
  28. package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +166 -156
  29. package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +7 -3
  30. package/esm2020/testing/core-testing.module.mjs +4 -1
  31. package/esm2020/testing/mock-media-query.service.mjs +4 -1
  32. package/esm2020/testing/mock-ui-config.service.mjs +4 -1
  33. package/esm2020/testing/overlay/overlay-harness-filters.mjs +1 -1
  34. package/esm2020/testing/overlay/overlay-harness.mjs +2 -1
  35. package/esm2020/testing/shared/component-harness.mjs +4 -1
  36. package/esm2020/testing/shared/harness-filters.mjs +1 -1
  37. package/fesm2015/skyux-core-testing.mjs +13 -0
  38. package/fesm2015/skyux-core-testing.mjs.map +1 -1
  39. package/fesm2015/skyux-core.mjs +1276 -1151
  40. package/fesm2015/skyux-core.mjs.map +1 -1
  41. package/fesm2020/skyux-core-testing.mjs +13 -0
  42. package/fesm2020/skyux-core-testing.mjs.map +1 -1
  43. package/fesm2020/skyux-core.mjs +1278 -1150
  44. package/fesm2020/skyux-core.mjs.map +1 -1
  45. package/lib/modules/adapter-service/adapter.service.d.ts +3 -5
  46. package/lib/modules/affix/affix-offset.d.ts +1 -1
  47. package/lib/modules/affix/affix.directive.d.ts +12 -13
  48. package/lib/modules/affix/affixer.d.ts +2 -34
  49. package/lib/modules/affix/dom-utils.d.ts +3 -3
  50. package/lib/modules/dock/dock-dom-adapter.service.d.ts +2 -9
  51. package/lib/modules/dock/dock-item.d.ts +1 -1
  52. package/lib/modules/dock/dock.component.d.ts +2 -10
  53. package/lib/modules/dock/dock.service.d.ts +2 -5
  54. package/lib/modules/dynamic-component/dynamic-component.service.d.ts +2 -7
  55. package/lib/modules/log/log.service.d.ts +2 -6
  56. package/lib/modules/media-query/media-query.service.d.ts +1 -8
  57. package/lib/modules/numeric/numeric.pipe.d.ts +2 -8
  58. package/lib/modules/numeric/numeric.service.d.ts +3 -36
  59. package/lib/modules/overlay/overlay-adapter.service.d.ts +1 -3
  60. package/lib/modules/overlay/overlay-instance.d.ts +1 -2
  61. package/lib/modules/overlay/overlay.component.d.ts +1 -14
  62. package/lib/modules/overlay/overlay.service.d.ts +1 -7
  63. package/lib/modules/percent-pipe/percent.pipe.d.ts +2 -9
  64. package/lib/modules/resize-observer/resize-observer-media-query.service.d.ts +2 -7
  65. package/lib/modules/scrollable-host/scrollable-host.service.d.ts +2 -11
  66. package/lib/modules/title/title.service.d.ts +2 -2
  67. package/lib/modules/trim/trim.directive.d.ts +0 -2
  68. package/lib/modules/viewkeeper/viewkeeper-boundary-info.d.ts +1 -1
  69. package/lib/modules/viewkeeper/viewkeeper.d.ts +2 -24
  70. package/lib/modules/viewkeeper/viewkeeper.directive.d.ts +4 -16
  71. package/lib/modules/viewkeeper/viewkeeper.service.d.ts +1 -1
  72. package/package.json +2 -2
  73. package/testing/core-testing.module.d.ts +3 -0
  74. package/testing/mock-media-query.service.d.ts +3 -0
  75. package/testing/mock-ui-config.service.d.ts +3 -0
  76. package/testing/overlay/overlay-harness-filters.d.ts +1 -0
  77. package/testing/overlay/overlay-harness.d.ts +1 -0
  78. package/testing/shared/component-harness.d.ts +3 -0
  79. package/testing/shared/harness-filters.d.ts +1 -0
@@ -1,3 +1,5 @@
1
+ var _SkyNumericPipe_cacheKey, _SkyNumericPipe_changeDetector, _SkyNumericPipe_formattedValue, _SkyNumericPipe_ngUnsubscribe, _SkyNumericPipe_numericSvc, _SkyNumericPipe_providerLocale;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { ChangeDetectorRef, Pipe, } from '@angular/core';
2
4
  import { SkyAppLocaleProvider } from '@skyux/i18n';
3
5
  import { Subject } from 'rxjs';
@@ -14,34 +16,38 @@ import * as i2 from "./numeric.service";
14
16
  * a space before the two curly brackets closing the pipe or it will not work.
15
17
  */
16
18
  export class SkyNumericPipe {
17
- constructor(localeProvider, numericService, changeDetector) {
18
- this.localeProvider = localeProvider;
19
- this.numericService = numericService;
20
- this.changeDetector = changeDetector;
21
- this.ngUnsubscribe = new Subject();
22
- this.localeProvider
19
+ constructor(localeProvider, numericSvc, changeDetector) {
20
+ _SkyNumericPipe_cacheKey.set(this, void 0);
21
+ _SkyNumericPipe_changeDetector.set(this, void 0);
22
+ _SkyNumericPipe_formattedValue.set(this, void 0);
23
+ _SkyNumericPipe_ngUnsubscribe.set(this, new Subject());
24
+ _SkyNumericPipe_numericSvc.set(this, void 0);
25
+ _SkyNumericPipe_providerLocale.set(this, void 0);
26
+ __classPrivateFieldSet(this, _SkyNumericPipe_numericSvc, numericSvc, "f");
27
+ __classPrivateFieldSet(this, _SkyNumericPipe_changeDetector, changeDetector, "f");
28
+ localeProvider
23
29
  .getLocaleInfo()
24
- .pipe(takeUntil(this.ngUnsubscribe))
30
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyNumericPipe_ngUnsubscribe, "f")))
25
31
  .subscribe((localeInfo) => {
26
- this.providerLocale = localeInfo.locale;
27
- numericService.currentLocale = this.providerLocale;
28
- this.changeDetector.markForCheck();
32
+ __classPrivateFieldSet(this, _SkyNumericPipe_providerLocale, localeInfo.locale, "f");
33
+ numericSvc.currentLocale = __classPrivateFieldGet(this, _SkyNumericPipe_providerLocale, "f");
34
+ __classPrivateFieldGet(this, _SkyNumericPipe_changeDetector, "f").markForCheck();
29
35
  });
30
36
  }
31
37
  ngOnDestroy() {
32
- this.ngUnsubscribe.next();
33
- this.ngUnsubscribe.complete();
38
+ __classPrivateFieldGet(this, _SkyNumericPipe_ngUnsubscribe, "f").next();
39
+ __classPrivateFieldGet(this, _SkyNumericPipe_ngUnsubscribe, "f").complete();
34
40
  }
35
41
  /**
36
42
  * Formats a number based on the provided options.
37
43
  */
38
44
  transform(value, config) {
39
45
  const newCacheKey = (config ? JSON.stringify(config, Object.keys(config).sort()) : '') +
40
- `${value}_${config?.locale || this.providerLocale}`;
46
+ `${value}_${config?.locale || __classPrivateFieldGet(this, _SkyNumericPipe_providerLocale, "f")}`;
41
47
  /* If the value and locale are the same as the last transform then return the previous value
42
48
  instead of reformatting. */
43
- if (this.formattedValue && this.cacheKey === newCacheKey) {
44
- return this.formattedValue;
49
+ if (__classPrivateFieldGet(this, _SkyNumericPipe_formattedValue, "f") && __classPrivateFieldGet(this, _SkyNumericPipe_cacheKey, "f") === newCacheKey) {
50
+ return __classPrivateFieldGet(this, _SkyNumericPipe_formattedValue, "f");
45
51
  }
46
52
  const options = new NumericOptions();
47
53
  // The default number of digits is `1`. When truncate is disabled, set digits
@@ -62,11 +68,12 @@ export class SkyNumericPipe {
62
68
  }
63
69
  Object.assign(options, config);
64
70
  // Assign properties for proper result caching.
65
- this.cacheKey = newCacheKey;
66
- this.formattedValue = this.numericService.formatNumber(value, options);
67
- return this.formattedValue;
71
+ __classPrivateFieldSet(this, _SkyNumericPipe_cacheKey, newCacheKey, "f");
72
+ __classPrivateFieldSet(this, _SkyNumericPipe_formattedValue, __classPrivateFieldGet(this, _SkyNumericPipe_numericSvc, "f").formatNumber(value, options), "f");
73
+ return __classPrivateFieldGet(this, _SkyNumericPipe_formattedValue, "f");
68
74
  }
69
75
  }
76
+ _SkyNumericPipe_cacheKey = new WeakMap(), _SkyNumericPipe_changeDetector = new WeakMap(), _SkyNumericPipe_formattedValue = new WeakMap(), _SkyNumericPipe_ngUnsubscribe = new WeakMap(), _SkyNumericPipe_numericSvc = new WeakMap(), _SkyNumericPipe_providerLocale = new WeakMap();
70
77
  SkyNumericPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericPipe, deps: [{ token: i1.SkyAppLocaleProvider }, { token: i2.SkyNumericService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
71
78
  SkyNumericPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericPipe, name: "skyNumeric", pure: false });
72
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericPipe, decorators: [{
@@ -76,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
76
83
  pure: false,
77
84
  }]
78
85
  }], ctorParameters: function () { return [{ type: i1.SkyAppLocaleProvider }, { type: i2.SkyNumericService }, { type: i0.ChangeDetectorRef }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsY0FBYyxFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBRXREOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLGNBQWM7SUFPekIsWUFDVSxjQUFvQyxFQUMzQixjQUFpQyxFQUMxQyxjQUFpQztRQUZqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUxuQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFPMUMsSUFBSSxDQUFDLGNBQWM7YUFDaEIsYUFBYSxFQUFFO2FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ3hDLGNBQWMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxLQUFhLEVBQUUsTUFBMEI7UUFDeEQsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xFLEdBQUcsS0FBSyxJQUFJLE1BQU0sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXREO21DQUMyQjtRQUMzQixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDeEQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzVCO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUVyQyw2RUFBNkU7UUFDN0UsdUZBQXVGO1FBQ3ZGLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3RFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsZ0ZBQWdGO1FBQ2hGLElBQ0UsTUFBTTtZQUNOLE1BQU0sQ0FBQyxTQUFTO1lBQ2hCLE1BQU0sQ0FBQyxNQUFNO1lBQ2IsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUNoQztZQUNBLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUZBQWlGLENBQ2xGLENBQUM7WUFFRiwrRkFBK0Y7U0FDaEc7YUFBTSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUN2RCxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDbkM7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvQiwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFFNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7OzJHQXhFVSxjQUFjO3lHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFKMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLEtBQUs7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25EZXN0cm95LFxuICBQaXBlLFxuICBQaXBlVHJhbnNmb3JtLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUFwcExvY2FsZVByb3ZpZGVyIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE51bWVyaWNPcHRpb25zLCBTa3lOdW1lcmljT3B0aW9ucyB9IGZyb20gJy4vbnVtZXJpYy5vcHRpb25zJztcbmltcG9ydCB7IFNreU51bWVyaWNTZXJ2aWNlIH0gZnJvbSAnLi9udW1lcmljLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNob3J0ZW5zIG51bWJlcnMgdG8gcm91bmRlZCBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb24gY2hhcmFjdGVycyBzdWNoIGFzIEsgZm9yIHRob3VzYW5kcyxcbiAqIE0gZm9yIG1pbGxpb25zLCBCIGZvciBiaWxsaW9ucywgYW5kIFQgZm9yIHRyaWxsaW9ucy4gVGhlIHBpcGUgYWxzbyBmb3JtYXRzIGZvciBjdXJyZW5jeS5cbiAqIEJlIHN1cmUgeW91IGhhdmUgYSBzcGFjZSBhZnRlciB0aGUgdHdvIGN1cmx5IGJyYWNrZXRzIG9wZW5pbmcgdGhlIHBpcGUgYW5kXG4gKiBhIHNwYWNlIGJlZm9yZSB0aGUgdHdvIGN1cmx5IGJyYWNrZXRzIGNsb3NpbmcgdGhlIHBpcGUgb3IgaXQgd2lsbCBub3Qgd29yay5cbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnc2t5TnVtZXJpYycsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lOdW1lcmljUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2FjaGVLZXk6IHN0cmluZztcbiAgcHJpdmF0ZSBmb3JtYXR0ZWRWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHByb3ZpZGVyTG9jYWxlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxvY2FsZVByb3ZpZGVyOiBTa3lBcHBMb2NhbGVQcm92aWRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG51bWVyaWNTZXJ2aWNlOiBTa3lOdW1lcmljU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLmxvY2FsZVByb3ZpZGVyXG4gICAgICAuZ2V0TG9jYWxlSW5mbygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZUluZm8pID0+IHtcbiAgICAgICAgdGhpcy5wcm92aWRlckxvY2FsZSA9IGxvY2FsZUluZm8ubG9jYWxlO1xuICAgICAgICBudW1lcmljU2VydmljZS5jdXJyZW50TG9jYWxlID0gdGhpcy5wcm92aWRlckxvY2FsZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0cyBhIG51bWJlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IG51bWJlciwgY29uZmlnPzogU2t5TnVtZXJpY09wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5ld0NhY2hlS2V5ID1cbiAgICAgIChjb25maWcgPyBKU09OLnN0cmluZ2lmeShjb25maWcsIE9iamVjdC5rZXlzKGNvbmZpZykuc29ydCgpKSA6ICcnKSArXG4gICAgICBgJHt2YWx1ZX1fJHtjb25maWc/LmxvY2FsZSB8fCB0aGlzLnByb3ZpZGVyTG9jYWxlfWA7XG5cbiAgICAvKiBJZiB0aGUgdmFsdWUgYW5kIGxvY2FsZSBhcmUgdGhlIHNhbWUgYXMgdGhlIGxhc3QgdHJhbnNmb3JtIHRoZW4gcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZVxuICAgIGluc3RlYWQgb2YgcmVmb3JtYXR0aW5nLiAqL1xuICAgIGlmICh0aGlzLmZvcm1hdHRlZFZhbHVlICYmIHRoaXMuY2FjaGVLZXkgPT09IG5ld0NhY2hlS2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0gbmV3IE51bWVyaWNPcHRpb25zKCk7XG5cbiAgICAvLyBUaGUgZGVmYXVsdCBudW1iZXIgb2YgZGlnaXRzIGlzIGAxYC4gV2hlbiB0cnVuY2F0ZSBpcyBkaXNhYmxlZCwgc2V0IGRpZ2l0c1xuICAgIC8vIHRvIGAwYCB0byBhdm9pZCB0aGUgdW5uZWNlc3NhcnkgYWRkaXRpb24gb2YgYC4wYCBhdCB0aGUgZW5kIG9mIHRoZSBmb3JtYXR0ZWQgbnVtYmVyLlxuICAgIGlmIChjb25maWcgJiYgY29uZmlnLnRydW5jYXRlID09PSBmYWxzZSAmJiBjb25maWcuZGlnaXRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG9wdGlvbnMuZGlnaXRzID0gMDtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgbWluaW11bSBkaWdpdHMgaXMgbGVzcyB0aGFuIHRoZSBzZXQgbWF4aW11bSBkaWdpdHMgdGhlbiB0aHJvdyBhbiBlcnJvclxuICAgIGlmIChcbiAgICAgIGNvbmZpZyAmJlxuICAgICAgY29uZmlnLm1pbkRpZ2l0cyAmJlxuICAgICAgY29uZmlnLmRpZ2l0cyAmJlxuICAgICAgY29uZmlnLm1pbkRpZ2l0cyA+IGNvbmZpZy5kaWdpdHNcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZSBgZGlnaXRzYCBwcm9wZXJ0eSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgYG1pbkRpZ2l0c2AgcHJvcGVydHknXG4gICAgICApO1xuXG4gICAgICAvLyBJZiB0aGVyZSBpcyBhIG1pbmltdW0gZGlnaXRzIGdpdmVuIGJ1dCBub3QgYSBtYXhpbXVtIHRoZW4gZGVmYXVsdCB0aGUgbWF4aW11bSB0byB0aGUgbWluaW11bVxuICAgIH0gZWxzZSBpZiAoY29uZmlnICYmIGNvbmZpZy5taW5EaWdpdHMgJiYgIWNvbmZpZy5kaWdpdHMpIHtcbiAgICAgIG9wdGlvbnMuZGlnaXRzID0gY29uZmlnLm1pbkRpZ2l0cztcbiAgICB9XG5cbiAgICBPYmplY3QuYXNzaWduKG9wdGlvbnMsIGNvbmZpZyk7XG5cbiAgICAvLyBBc3NpZ24gcHJvcGVydGllcyBmb3IgcHJvcGVyIHJlc3VsdCBjYWNoaW5nLlxuICAgIHRoaXMuY2FjaGVLZXkgPSBuZXdDYWNoZUtleTtcblxuICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB0aGlzLm51bWVyaWNTZXJ2aWNlLmZvcm1hdE51bWJlcih2YWx1ZSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gIH1cbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFFdEQ7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8sY0FBYztJQWF6QixZQUNFLGNBQW9DLEVBQ3BDLFVBQTZCLEVBQzdCLGNBQWlDO1FBZm5DLDJDQUE4QjtRQUU5QixpREFBbUM7UUFFbkMsaURBQW9DO1FBRXBDLHdDQUFpQixJQUFJLE9BQU8sRUFBUSxFQUFDO1FBRXJDLDZDQUErQjtRQUUvQixpREFBb0M7UUFPbEMsdUJBQUEsSUFBSSw4QkFBZSxVQUFVLE1BQUEsQ0FBQztRQUM5Qix1QkFBQSxJQUFJLGtDQUFtQixjQUFjLE1BQUEsQ0FBQztRQUV0QyxjQUFjO2FBQ1gsYUFBYSxFQUFFO2FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBQSxJQUFJLHFDQUFlLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN4Qix1QkFBQSxJQUFJLGtDQUFtQixVQUFVLENBQUMsTUFBTSxNQUFBLENBQUM7WUFDekMsVUFBVSxDQUFDLGFBQWEsR0FBRyx1QkFBQSxJQUFJLHNDQUFnQixDQUFDO1lBQ2hELHVCQUFBLElBQUksc0NBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQix1QkFBQSxJQUFJLHFDQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsdUJBQUEsSUFBSSxxQ0FBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxLQUFhLEVBQUUsTUFBMEI7UUFDeEQsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xFLEdBQUcsS0FBSyxJQUFJLE1BQU0sRUFBRSxNQUFNLElBQUksdUJBQUEsSUFBSSxzQ0FBZ0IsRUFBRSxDQUFDO1FBRXZEO21DQUMyQjtRQUMzQixJQUFJLHVCQUFBLElBQUksc0NBQWdCLElBQUksdUJBQUEsSUFBSSxnQ0FBVSxLQUFLLFdBQVcsRUFBRTtZQUMxRCxPQUFPLHVCQUFBLElBQUksc0NBQWdCLENBQUM7U0FDN0I7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBRXJDLDZFQUE2RTtRQUM3RSx1RkFBdUY7UUFDdkYsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDdEUsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDcEI7UUFFRCxnRkFBZ0Y7UUFDaEYsSUFDRSxNQUFNO1lBQ04sTUFBTSxDQUFDLFNBQVM7WUFDaEIsTUFBTSxDQUFDLE1BQU07WUFDYixNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQ2hDO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FDYixpRkFBaUYsQ0FDbEYsQ0FBQztZQUVGLCtGQUErRjtTQUNoRzthQUFNLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUNuQztRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLCtDQUErQztRQUMvQyx1QkFBQSxJQUFJLDRCQUFhLFdBQVcsTUFBQSxDQUFDO1FBRTdCLHVCQUFBLElBQUksa0NBQW1CLHVCQUFBLElBQUksa0NBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFBLENBQUM7UUFDckUsT0FBTyx1QkFBQSxJQUFJLHNDQUFnQixDQUFDO0lBQzlCLENBQUM7OzsyR0FqRlUsY0FBYzt5R0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBSjFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE9uRGVzdHJveSxcbiAgUGlwZSxcbiAgUGlwZVRyYW5zZm9ybSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lBcHBMb2NhbGVQcm92aWRlciB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOdW1lcmljT3B0aW9ucywgU2t5TnVtZXJpY09wdGlvbnMgfSBmcm9tICcuL251bWVyaWMub3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lOdW1lcmljU2VydmljZSB9IGZyb20gJy4vbnVtZXJpYy5zZXJ2aWNlJztcblxuLyoqXG4gKiBTaG9ydGVucyBudW1iZXJzIHRvIHJvdW5kZWQgbnVtYmVycyBhbmQgYWJicmV2aWF0aW9uIGNoYXJhY3RlcnMgc3VjaCBhcyBLIGZvciB0aG91c2FuZHMsXG4gKiBNIGZvciBtaWxsaW9ucywgQiBmb3IgYmlsbGlvbnMsIGFuZCBUIGZvciB0cmlsbGlvbnMuIFRoZSBwaXBlIGFsc28gZm9ybWF0cyBmb3IgY3VycmVuY3kuXG4gKiBCZSBzdXJlIHlvdSBoYXZlIGEgc3BhY2UgYWZ0ZXIgdGhlIHR3byBjdXJseSBicmFja2V0cyBvcGVuaW5nIHRoZSBwaXBlIGFuZFxuICogYSBzcGFjZSBiZWZvcmUgdGhlIHR3byBjdXJseSBicmFja2V0cyBjbG9zaW5nIHRoZSBwaXBlIG9yIGl0IHdpbGwgbm90IHdvcmsuXG4gKi9cbkBQaXBlKHtcbiAgbmFtZTogJ3NreU51bWVyaWMnLFxuICBwdXJlOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TnVtZXJpY1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICAjY2FjaGVLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gICNmb3JtYXR0ZWRWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjbnVtZXJpY1N2YzogU2t5TnVtZXJpY1NlcnZpY2U7XG5cbiAgI3Byb3ZpZGVyTG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbG9jYWxlUHJvdmlkZXI6IFNreUFwcExvY2FsZVByb3ZpZGVyLFxuICAgIG51bWVyaWNTdmM6IFNreU51bWVyaWNTZXJ2aWNlLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLiNudW1lcmljU3ZjID0gbnVtZXJpY1N2YztcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuXG4gICAgbG9jYWxlUHJvdmlkZXJcbiAgICAgIC5nZXRMb2NhbGVJbmZvKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZUluZm8pID0+IHtcbiAgICAgICAgdGhpcy4jcHJvdmlkZXJMb2NhbGUgPSBsb2NhbGVJbmZvLmxvY2FsZTtcbiAgICAgICAgbnVtZXJpY1N2Yy5jdXJyZW50TG9jYWxlID0gdGhpcy4jcHJvdmlkZXJMb2NhbGU7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSBudW1iZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIG9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIsIGNvbmZpZz86IFNreU51bWVyaWNPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBuZXdDYWNoZUtleSA9XG4gICAgICAoY29uZmlnID8gSlNPTi5zdHJpbmdpZnkoY29uZmlnLCBPYmplY3Qua2V5cyhjb25maWcpLnNvcnQoKSkgOiAnJykgK1xuICAgICAgYCR7dmFsdWV9XyR7Y29uZmlnPy5sb2NhbGUgfHwgdGhpcy4jcHJvdmlkZXJMb2NhbGV9YDtcblxuICAgIC8qIElmIHRoZSB2YWx1ZSBhbmQgbG9jYWxlIGFyZSB0aGUgc2FtZSBhcyB0aGUgbGFzdCB0cmFuc2Zvcm0gdGhlbiByZXR1cm4gdGhlIHByZXZpb3VzIHZhbHVlXG4gICAgaW5zdGVhZCBvZiByZWZvcm1hdHRpbmcuICovXG4gICAgaWYgKHRoaXMuI2Zvcm1hdHRlZFZhbHVlICYmIHRoaXMuI2NhY2hlS2V5ID09PSBuZXdDYWNoZUtleSkge1xuICAgICAgcmV0dXJuIHRoaXMuI2Zvcm1hdHRlZFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSBuZXcgTnVtZXJpY09wdGlvbnMoKTtcblxuICAgIC8vIFRoZSBkZWZhdWx0IG51bWJlciBvZiBkaWdpdHMgaXMgYDFgLiBXaGVuIHRydW5jYXRlIGlzIGRpc2FibGVkLCBzZXQgZGlnaXRzXG4gICAgLy8gdG8gYDBgIHRvIGF2b2lkIHRoZSB1bm5lY2Vzc2FyeSBhZGRpdGlvbiBvZiBgLjBgIGF0IHRoZSBlbmQgb2YgdGhlIGZvcm1hdHRlZCBudW1iZXIuXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcudHJ1bmNhdGUgPT09IGZhbHNlICYmIGNvbmZpZy5kaWdpdHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgb3B0aW9ucy5kaWdpdHMgPSAwO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBtaW5pbXVtIGRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlIHNldCBtYXhpbXVtIGRpZ2l0cyB0aGVuIHRocm93IGFuIGVycm9yXG4gICAgaWYgKFxuICAgICAgY29uZmlnICYmXG4gICAgICBjb25maWcubWluRGlnaXRzICYmXG4gICAgICBjb25maWcuZGlnaXRzICYmXG4gICAgICBjb25maWcubWluRGlnaXRzID4gY29uZmlnLmRpZ2l0c1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlIGBkaWdpdHNgIHByb3BlcnR5IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBgbWluRGlnaXRzYCBwcm9wZXJ0eSdcbiAgICAgICk7XG5cbiAgICAgIC8vIElmIHRoZXJlIGlzIGEgbWluaW11bSBkaWdpdHMgZ2l2ZW4gYnV0IG5vdCBhIG1heGltdW0gdGhlbiBkZWZhdWx0IHRoZSBtYXhpbXVtIHRvIHRoZSBtaW5pbXVtXG4gICAgfSBlbHNlIGlmIChjb25maWcgJiYgY29uZmlnLm1pbkRpZ2l0cyAmJiAhY29uZmlnLmRpZ2l0cykge1xuICAgICAgb3B0aW9ucy5kaWdpdHMgPSBjb25maWcubWluRGlnaXRzO1xuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24ob3B0aW9ucywgY29uZmlnKTtcblxuICAgIC8vIEFzc2lnbiBwcm9wZXJ0aWVzIGZvciBwcm9wZXIgcmVzdWx0IGNhY2hpbmcuXG4gICAgdGhpcy4jY2FjaGVLZXkgPSBuZXdDYWNoZUtleTtcblxuICAgIHRoaXMuI2Zvcm1hdHRlZFZhbHVlID0gdGhpcy4jbnVtZXJpY1N2Yy5mb3JtYXROdW1iZXIodmFsdWUsIG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLiNmb3JtYXR0ZWRWYWx1ZTtcbiAgfVxufVxuIl19
@@ -1,27 +1,31 @@
1
+ var _SkyNumericService_instances, _SkyNumericService_resourcesSvc, _SkyNumericService_symbolIndex, _SkyNumericService_roundNumber, _SkyNumericService_scaleNumberByPowerOfTen, _SkyNumericService_storeShortenSymbol, _SkyNumericService_replaceShortenSymbol, _SkyNumericService_getSymbol;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Injectable } from '@angular/core';
2
4
  import { SkyIntlNumberFormatStyle, SkyLibResourcesService } from '@skyux/i18n';
3
5
  import { SkyNumberFormatUtility } from '../shared/number-format/number-format-utility';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "@skyux/i18n";
6
8
  export class SkyNumericService {
7
- constructor(resourcesService) {
8
- this.resourcesService = resourcesService;
9
- this.symbolIndex = [
10
- { value: 1e12, label: this.getSymbol('skyux_numeric_trillions_symbol') },
11
- { value: 1e9, label: this.getSymbol('skyux_numeric_billions_symbol') },
12
- { value: 1e6, label: this.getSymbol('skyux_numeric_millions_symbol') },
13
- { value: 1e3, label: this.getSymbol('skyux_numeric_thousands_symbol') },
14
- ];
15
- }
16
- /**
17
- * The browser's current locale.
18
- * @internal
19
- */
20
- set currentLocale(value) {
21
- this._locale = value;
22
- }
23
- get currentLocale() {
24
- return this._locale || 'en-US';
9
+ constructor(resourcesSvc) {
10
+ _SkyNumericService_instances.add(this);
11
+ /**
12
+ * The browser's current locale.
13
+ * @internal
14
+ */
15
+ this.currentLocale = 'en-US';
16
+ /**
17
+ * @internal
18
+ */
19
+ this.shortSymbol = '';
20
+ _SkyNumericService_resourcesSvc.set(this, void 0);
21
+ _SkyNumericService_symbolIndex.set(this, void 0);
22
+ __classPrivateFieldSet(this, _SkyNumericService_resourcesSvc, resourcesSvc, "f");
23
+ __classPrivateFieldSet(this, _SkyNumericService_symbolIndex, [
24
+ { value: 1e12, label: __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_getSymbol).call(this, 'skyux_numeric_trillions_symbol') },
25
+ { value: 1e9, label: __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_getSymbol).call(this, 'skyux_numeric_billions_symbol') },
26
+ { value: 1e6, label: __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_getSymbol).call(this, 'skyux_numeric_millions_symbol') },
27
+ { value: 1e3, label: __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_getSymbol).call(this, 'skyux_numeric_thousands_symbol') },
28
+ ], "f");
25
29
  }
26
30
  /**
27
31
  * Formats a number based on the provided options.
@@ -33,20 +37,23 @@ export class SkyNumericService {
33
37
  return '';
34
38
  }
35
39
  const decimalPlaceRegExp = /\.0+$|(\.[0-9]*[1-9])0+$/;
40
+ const locale = options.locale || this.currentLocale;
41
+ const digits = options.digits || 0;
36
42
  // Get the symbol for the number after rounding, since rounding could push the number
37
43
  // into a different symbol range.
38
- let roundedNumber = this.roundNumber(value, options.digits);
44
+ let roundedNumber = __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_roundNumber).call(this, value, digits);
39
45
  const roundedNumberAbs = Math.abs(roundedNumber);
40
46
  let suffix = '';
41
- for (let i = 0; i < this.symbolIndex.length; i++) {
42
- let symbol = this.symbolIndex[i];
47
+ for (let i = 0; i < __classPrivateFieldGet(this, _SkyNumericService_symbolIndex, "f").length; i++) {
48
+ let symbol = __classPrivateFieldGet(this, _SkyNumericService_symbolIndex, "f")[i];
43
49
  if (options.truncate &&
50
+ options.truncateAfter &&
44
51
  roundedNumberAbs >= options.truncateAfter &&
45
52
  roundedNumberAbs >= symbol.value) {
46
- roundedNumber = this.roundNumber(value / symbol.value, options.digits);
53
+ roundedNumber = __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_roundNumber).call(this, value / symbol.value, digits);
47
54
  if (Math.abs(roundedNumber) === 1000 && i > 0) {
48
55
  // Rounding caused the number to cross into the range of the next symbol.
49
- symbol = this.symbolIndex[i - 1];
56
+ symbol = __classPrivateFieldGet(this, _SkyNumericService_symbolIndex, "f")[i - 1];
50
57
  roundedNumber /= 1000;
51
58
  }
52
59
  suffix = symbol.label;
@@ -54,10 +61,9 @@ export class SkyNumericService {
54
61
  }
55
62
  }
56
63
  let output = roundedNumber.toString().replace(decimalPlaceRegExp, '$1') + suffix;
57
- this.storeShortenSymbol(output);
58
- const locale = options.locale || this.currentLocale;
59
- let digits;
60
- let isDecimal;
64
+ __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_storeShortenSymbol).call(this, output);
65
+ let digitsFormatted;
66
+ let isDecimal = false;
61
67
  // Checks the string entered for format. Using toLowerCase to ignore case.
62
68
  switch (options.format?.toLowerCase()) {
63
69
  // In a case where a decimal value was not shortened and
@@ -68,20 +74,21 @@ export class SkyNumericService {
68
74
  case 'currency':
69
75
  isDecimal = value % 1 !== 0;
70
76
  if (options.minDigits) {
71
- digits = `1.${options.minDigits}-${options.digits}`;
77
+ digitsFormatted = `1.${options.minDigits}-${digits}`;
72
78
  }
73
- else if (isDecimal && options.digits >= 2) {
74
- digits = `1.2-${options.digits}`;
79
+ else if (isDecimal && digits >= 2) {
80
+ digitsFormatted = `1.2-${digits}`;
75
81
  }
76
82
  else {
77
- digits = `1.0-${options.digits}`;
83
+ digitsFormatted = `1.0-${digits}`;
78
84
  }
79
- output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Currency, digits, options.iso,
85
+ output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Currency, digitsFormatted, options.iso,
80
86
  // Angular 5+ needs a string for this parameter, but Angular 4 needs a boolean.
81
87
  // To support both versions we can supply 'symbol' which will evaluate truthy for Angular 4
82
88
  // and the appropriate string value for Angular 5+.
83
89
  // See: https://angular.io/api/common/CurrencyPipe#parameters
84
90
  'symbol', options.currencySign);
91
+ // ^^^^^^ Result can't be null since the sanitized input is always a number.
85
92
  break;
86
93
  // The following is a catch-all to ensure that if
87
94
  // anything but currency (or a future option) are entered,
@@ -90,91 +97,69 @@ export class SkyNumericService {
90
97
  // Ensures localization of the number to ensure comma and
91
98
  // decimal separator
92
99
  if (options.minDigits) {
93
- digits = `1.${options.minDigits}-${options.digits}`;
100
+ digitsFormatted = `1.${options.minDigits}-${digits}`;
94
101
  }
95
102
  else if (options.truncate) {
96
- digits = `1.0-${options.digits}`;
103
+ digitsFormatted = `1.0-${digits}`;
97
104
  }
98
105
  else {
99
- digits = `1.${options.digits}-${options.digits}`;
106
+ digitsFormatted = `1.${digits}-${digits}`;
100
107
  }
101
- output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Decimal, digits);
108
+ output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Decimal, digitsFormatted);
109
+ // ^^^^^^ Result can't be null since the sanitized input is always a number.
102
110
  break;
103
111
  }
104
112
  if (options.truncate) {
105
- output = this.replaceShortenSymbol(output);
113
+ output = __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_replaceShortenSymbol).call(this, output);
106
114
  }
107
115
  return output;
108
116
  }
109
- /**
110
- * Rounds a given number
111
- *
112
- * JS's limitation - numbers bigger than Number.MIN_SAFE_INTEGER or Number.MAX_SAFE_INTEGER
113
- * are not guaranteed to be represented or rounded correctly
114
- * @param value - value to round
115
- * @param precision - what precision to round with, defaults to 0 decimal places
116
- */
117
- roundNumber(value, precision = 0) {
118
- if (precision < 0) {
119
- throw new Error('SkyInvalidArgument: precision must be >= 0');
120
- }
121
- /* Sanity check - ignoring coverage but should not ignore if we make this method public */
122
- /* istanbul ignore next */
123
- if (isNaN(value) || value === null) {
124
- return 0;
125
- }
126
- const scaledValue = this.scaleNumberByPowerOfTen(value, precision, true);
127
- const scaledRoundedValue = Math.round(scaledValue);
128
- const unscaledRoundedValue = this.scaleNumberByPowerOfTen(scaledRoundedValue, precision, false);
129
- return unscaledRoundedValue;
117
+ }
118
+ _SkyNumericService_resourcesSvc = new WeakMap(), _SkyNumericService_symbolIndex = new WeakMap(), _SkyNumericService_instances = new WeakSet(), _SkyNumericService_roundNumber = function _SkyNumericService_roundNumber(value, precision) {
119
+ if (precision < 0) {
120
+ throw new Error('SkyInvalidArgument: precision must be >= 0');
130
121
  }
131
- /**
132
- * Scales a given number by a power of 10
133
- * @param value - value to scale
134
- * @param scalar - 10^scalar
135
- * @param scaleUp - whether to increase or decrease the value
136
- */
137
- scaleNumberByPowerOfTen(value, scalar, scaleUp) {
138
- const valueStr = value.toString().toLowerCase();
139
- const isExponentFormat = valueStr.includes('e');
140
- if (isExponentFormat) {
141
- const [base, exp] = valueStr.split('e');
142
- const newExp = scaleUp ? Number(exp) + scalar : Number(exp) - scalar;
143
- return Number(`${base}e${newExp}`);
144
- }
145
- else {
146
- const e = scaleUp ? 'e' : 'e-';
147
- return Number(`${value}${e}${scalar}`);
148
- }
122
+ /* Sanity check - ignoring coverage but should not ignore if we make this method public */
123
+ /* istanbul ignore next */
124
+ if (isNaN(value) || value === null) {
125
+ return 0;
149
126
  }
150
- /**
151
- * Stores the symbol added from shortening to reapply later.
152
- * @param value The string to derive the shorten symbol from.
153
- */
154
- storeShortenSymbol(value) {
155
- const symbols = this.symbolIndex.map((s) => s.label);
156
- const regexp = new RegExp(symbols.join('|'), 'ig');
157
- const match = value.match(regexp);
158
- this.shortSymbol = match ? match.toString() : '';
127
+ const scaledValue = __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_scaleNumberByPowerOfTen).call(this, value, precision, true);
128
+ const scaledRoundedValue = Math.round(scaledValue);
129
+ const unscaledRoundedValue = __classPrivateFieldGet(this, _SkyNumericService_instances, "m", _SkyNumericService_scaleNumberByPowerOfTen).call(this, scaledRoundedValue, precision, false);
130
+ return unscaledRoundedValue;
131
+ }, _SkyNumericService_scaleNumberByPowerOfTen = function _SkyNumericService_scaleNumberByPowerOfTen(value, scalar, scaleUp) {
132
+ const valueStr = value.toString().toLowerCase();
133
+ const isExponentFormat = valueStr.includes('e');
134
+ if (isExponentFormat) {
135
+ const [base, exp] = valueStr.split('e');
136
+ const newExp = scaleUp ? Number(exp) + scalar : Number(exp) - scalar;
137
+ return Number(`${base}e${newExp}`);
159
138
  }
160
- /**
161
- * Must have previously called storeShortenSymbol to have something to replace.
162
- * Finds the last number in the formatted number, gets the index of the position
163
- * after that character and re-inserts the symbol.
164
- * Works regardless of currency symbol position.
165
- * @param value The string to modify.
166
- */
167
- replaceShortenSymbol(value) {
168
- const result = /(\d)(?!.*\d)/g.exec(value);
139
+ else {
140
+ const e = scaleUp ? 'e' : 'e-';
141
+ return Number(`${value}${e}${scalar}`);
142
+ }
143
+ }, _SkyNumericService_storeShortenSymbol = function _SkyNumericService_storeShortenSymbol(value) {
144
+ const symbols = __classPrivateFieldGet(this, _SkyNumericService_symbolIndex, "f").map((s) => s.label);
145
+ const regexp = new RegExp(symbols.join('|'), 'ig');
146
+ const match = value.match(regexp);
147
+ this.shortSymbol = match ? match.toString() : '';
148
+ }, _SkyNumericService_replaceShortenSymbol = function _SkyNumericService_replaceShortenSymbol(value) {
149
+ const result = /(\d)(?!.*\d)/g.exec(value);
150
+ /*istanbul ignore else*/
151
+ if (result) {
169
152
  const pos = result.index + result.length;
170
153
  const output = value.substring(0, pos) + this.shortSymbol + value.substring(pos);
171
154
  return output;
172
155
  }
173
- getSymbol(key) {
174
- // TODO: Need to implement the async `getString` method in a breaking change.
175
- return this.resourcesService.getStringForLocale({ locale: 'en_US' }, key);
156
+ else {
157
+ return value;
176
158
  }
177
- }
159
+ }, _SkyNumericService_getSymbol = function _SkyNumericService_getSymbol(key) {
160
+ // TODO: Need to implement the async `getString` method in a breaking change.
161
+ return __classPrivateFieldGet(this, _SkyNumericService_resourcesSvc, "f").getStringForLocale({ locale: 'en_US' }, key);
162
+ };
178
163
  SkyNumericService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericService, deps: [{ token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable });
179
164
  SkyNumericService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericService, providedIn: 'any' });
180
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericService, decorators: [{
@@ -183,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
183
168
  providedIn: 'any',
184
169
  }]
185
170
  }], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }]; } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7QUFRdkYsTUFBTSxPQUFPLGlCQUFpQjtJQTJCNUIsWUFBb0IsZ0JBQXdDO1FBQXhDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUFUcEQsZ0JBQVcsR0FBdUI7WUFDeEMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLEVBQUU7WUFDeEUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDLEVBQUU7WUFDdEUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDLEVBQUU7WUFDdEUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLEVBQUU7U0FDeEUsQ0FBQztJQUk2RCxDQUFDO0lBMUJoRTs7O09BR0c7SUFDSCxJQUFXLGFBQWEsQ0FBQyxLQUFhO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQztJQUNqQyxD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WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUsIFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IFNreU51bWJlckZvcm1hdFV0aWxpdHkgfSBmcm9tICcuLi9zaGFyZWQvbnVtYmVyLWZvcm1hdC9udW1iZXItZm9ybWF0LXV0aWxpdHknO1xuXG5pbXBvcnQgeyBTa3lOdW1lcmljU3ltYm9sIH0gZnJvbSAnLi9udW1lcmljLXN5bWJvbCc7XG5pbXBvcnQgeyBTa3lOdW1lcmljT3B0aW9ucyB9IGZyb20gJy4vbnVtZXJpYy5vcHRpb25zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TnVtZXJpY1NlcnZpY2Uge1xuICAvKipcbiAgICogVGhlIGJyb3dzZXIncyBjdXJyZW50IGxvY2FsZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0IGN1cnJlbnRMb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2xvY2FsZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZSB8fCAnZW4tVVMnO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNob3J0U3ltYm9sOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzeW1ib2xJbmRleDogU2t5TnVtZXJpY1N5bWJvbFtdID0gW1xuICAgIHsgdmFsdWU6IDFlMTIsIGxhYmVsOiB0aGlzLmdldFN5bWJvbCgnc2t5dXhfbnVtZXJpY190cmlsbGlvbnNfc3ltYm9sJykgfSxcbiAgICB7IHZhbHVlOiAxZTksIGxhYmVsOiB0aGlzLmdldFN5bWJvbCgnc2t5dXhfbnVtZXJpY19iaWxsaW9uc19zeW1ib2wnKSB9LFxuICAgIHsgdmFsdWU6IDFlNiwgbGFiZWw6IHRoaXMuZ2V0U3ltYm9sKCdza3l1eF9udW1lcmljX21pbGxpb25zX3N5bWJvbCcpIH0sXG4gICAgeyB2YWx1ZTogMWUzLCBsYWJlbDogdGhpcy5nZXRTeW1ib2woJ3NreXV4X251bWVyaWNfdGhvdXNhbmRzX3N5bWJvbCcpIH0sXG4gIF07XG5cbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBGb3JtYXRzIGEgbnVtYmVyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG51bWJlciB0byBmb3JtYXQuXG4gICAqIEBwYXJhbSBvcHRpb25zIEZvcm1hdCBvcHRpb25zLlxuICAgKi9cbiAgcHVibGljIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyLCBvcHRpb25zOiBTa3lOdW1lcmljT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY2ltYWxQbGFjZVJlZ0V4cCA9IC9cXC4wKyR8KFxcLlswLTldKlsxLTldKTArJC87XG5cbiAgICAvLyBHZXQgdGhlIHN5bWJvbCBmb3IgdGhlIG51bWJlciBhZnRlciByb3VuZGluZywgc2luY2Ugcm91bmRpbmcgY291bGQgcHVzaCB0aGUgbnVtYmVyXG4gICAgLy8gaW50byBhIGRpZmZlcmVudCBzeW1ib2wgcmFuZ2UuXG4gICAgbGV0IHJvdW5kZWROdW1iZXIgPSB0aGlzLnJvdW5kTnVtYmVyKHZhbHVlLCBvcHRpb25zLmRpZ2l0cyk7XG4gICAgY29uc3Qgcm91bmRlZE51bWJlckFicyA9IE1hdGguYWJzKHJvdW5kZWROdW1iZXIpO1xuXG4gICAgbGV0IHN1ZmZpeCA9ICcnO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN5bWJvbEluZGV4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgc3ltYm9sID0gdGhpcy5zeW1ib2xJbmRleFtpXTtcblxuICAgICAgaWYgKFxuICAgICAgICBvcHRpb25zLnRydW5jYXRlICYmXG4gICAgICAgIHJvdW5kZWROdW1iZXJBYnMgPj0gb3B0aW9ucy50cnVuY2F0ZUFmdGVyICYmXG4gICAgICAgIHJvdW5kZWROdW1iZXJBYnMgPj0gc3ltYm9sLnZhbHVlXG4gICAgICApIHtcbiAgICAgICAgcm91bmRlZE51bWJlciA9IHRoaXMucm91bmROdW1iZXIodmFsdWUgLyBzeW1ib2wudmFsdWUsIG9wdGlvbnMuZGlnaXRzKTtcblxuICAgICAgICBpZiAoTWF0aC5hYnMocm91bmRlZE51bWJlcikgPT09IDEwMDAgJiYgaSA+IDApIHtcbiAgICAgICAgICAvLyBSb3VuZGluZyBjYXVzZWQgdGhlIG51bWJlciB0byBjcm9zcyBpbnRvIHRoZSByYW5nZSBvZiB0aGUgbmV4dCBzeW1ib2wuXG4gICAgICAgICAgc3ltYm9sID0gdGhpcy5zeW1ib2xJbmRleFtpIC0gMV07XG4gICAgICAgICAgcm91bmRlZE51bWJlciAvPSAxMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VmZml4ID0gc3ltYm9sLmxhYmVsO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBvdXRwdXQgPVxuICAgICAgcm91bmRlZE51bWJlci50b1N0cmluZygpLnJlcGxhY2UoZGVjaW1hbFBsYWNlUmVnRXhwLCAnJDEnKSArIHN1ZmZpeDtcblxuICAgIHRoaXMuc3RvcmVTaG9ydGVuU3ltYm9sKG91dHB1dCk7XG5cbiAgICBjb25zdCBsb2NhbGUgPSBvcHRpb25zLmxvY2FsZSB8fCB0aGlzLmN1cnJlbnRMb2NhbGU7XG5cbiAgICBsZXQgZGlnaXRzOiBzdHJpbmc7XG4gICAgbGV0IGlzRGVjaW1hbDogYm9vbGVhbjtcblxuICAgIC8vIENoZWNrcyB0aGUgc3RyaW5nIGVudGVyZWQgZm9yIGZvcm1hdC4gVXNpbmcgdG9Mb3dlckNhc2UgdG8gaWdub3JlIGNhc2UuXG4gICAgc3dpdGNoIChvcHRpb25zLmZvcm1hdD8udG9Mb3dlckNhc2UoKSkge1xuICAgICAgLy8gSW4gYSBjYXNlIHdoZXJlIGEgZGVjaW1hbCB2YWx1ZSB3YXMgbm90IHNob3J0ZW5lZCBhbmRcbiAgICAgIC8vIHRoZSBkaWdpdCBpbnB1dCBpcyAyIG9yIGhpZ2hlciwgaXQgZm9yY2VzIDIgZGlnaXRzLlxuICAgICAgLy8gRm9yIGV4YW1wbGUsIHRoaXMgcHJldmVudHMgYSB2YWx1ZSBsaWtlICQxNS41MCBmcm9tIGRpc3BsYXlpbmcgYXMgJDE1LjUuXG4gICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgbmVlZCB0byBiZSByZXZpZXdlZCBpZiB3ZSBzdXBwb3J0IGN1cnJlbmNpZXMgd2l0aFxuICAgICAgLy8gdGhyZWUgZGVjaW1hbCBkaWdpdHMuXG4gICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICAgIGlzRGVjaW1hbCA9IHZhbHVlICUgMSAhPT0gMDtcblxuICAgICAgICBpZiAob3B0aW9ucy5taW5EaWdpdHMpIHtcbiAgICAgICAgICBkaWdpdHMgPSBgMS4ke29wdGlvbnMubWluRGlnaXRzfS0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEZWNpbWFsICYmIG9wdGlvbnMuZGlnaXRzID49IDIpIHtcbiAgICAgICAgICBkaWdpdHMgPSBgMS4yLSR7b3B0aW9ucy5kaWdpdHN9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaWdpdHMgPSBgMS4wLSR7b3B0aW9ucy5kaWdpdHN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIG91dHB1dCA9IFNreU51bWJlckZvcm1hdFV0aWxpdHkuZm9ybWF0TnVtYmVyKFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBwYXJzZUZsb2F0KG91dHB1dCksXG4gICAgICAgICAgU2t5SW50bE51bWJlckZvcm1hdFN0eWxlLkN1cnJlbmN5LFxuICAgICAgICAgIGRpZ2l0cyxcbiAgICAgICAgICBvcHRpb25zLmlzbyxcbiAgICAgICAgICAvLyBBbmd1bGFyIDUrIG5lZWRzIGEgc3RyaW5nIGZvciB0aGlzIHBhcmFtZXRlciwgYnV0IEFuZ3VsYXIgNCBuZWVkcyBhIGJvb2xlYW4uXG4gICAgICAgICAgLy8gVG8gc3VwcG9ydCBib3RoIHZlcnNpb25zIHdlIGNhbiBzdXBwbHkgJ3N5bWJvbCcgd2hpY2ggd2lsbCBldmFsdWF0ZSB0cnV0aHkgZm9yIEFuZ3VsYXIgNFxuICAgICAgICAgIC8vIGFuZCB0aGUgYXBwcm9wcmlhdGUgc3RyaW5nIHZhbHVlIGZvciBBbmd1bGFyIDUrLlxuICAgICAgICAgIC8vIFNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vQ3VycmVuY3lQaXBlI3BhcmFtZXRlcnNcbiAgICAgICAgICAnc3ltYm9sJyBhcyBhbnksXG4gICAgICAgICAgb3B0aW9ucy5jdXJyZW5jeVNpZ25cbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgYSBjYXRjaC1hbGwgdG8gZW5zdXJlIHRoYXQgaWZcbiAgICAgIC8vIGFueXRoaW5nIGJ1dCBjdXJyZW5jeSAob3IgYSBmdXR1cmUgb3B0aW9uKSBhcmUgZW50ZXJlZCxcbiAgICAgIC8vIGl0IHdpbGwgYmUgdHJlYXRlZCBsaWtlIGEgbnVtYmVyLlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRW5zdXJlcyBsb2NhbGl6YXRpb24gb2YgdGhlIG51bWJlciB0byBlbnN1cmUgY29tbWEgYW5kXG4gICAgICAgIC8vIGRlY2ltYWwgc2VwYXJhdG9yXG4gICAgICAgIGlmIChvcHRpb25zLm1pbkRpZ2l0cykge1xuICAgICAgICAgIGRpZ2l0cyA9IGAxLiR7b3B0aW9ucy5taW5EaWdpdHN9LSR7b3B0aW9ucy5kaWdpdHN9YDtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnRydW5jYXRlKSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuMC0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuJHtvcHRpb25zLmRpZ2l0c30tJHtvcHRpb25zLmRpZ2l0c31gO1xuICAgICAgICB9XG5cbiAgICAgICAgb3V0cHV0ID0gU2t5TnVtYmVyRm9ybWF0VXRpbGl0eS5mb3JtYXROdW1iZXIoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhcnNlRmxvYXQob3V0cHV0KSxcbiAgICAgICAgICBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUuRGVjaW1hbCxcbiAgICAgICAgICBkaWdpdHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHJ1bmNhdGUpIHtcbiAgICAgIG91dHB1dCA9IHRoaXMucmVwbGFjZVNob3J0ZW5TeW1ib2wob3V0cHV0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJvdW5kcyBhIGdpdmVuIG51bWJlclxuICAgKlxuICAgKiBKUydzIGxpbWl0YXRpb24gLSBudW1iZXJzIGJpZ2dlciB0aGFuIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSIG9yIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gICAqIGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSByZXByZXNlbnRlZCBvciByb3VuZGVkIGNvcnJlY3RseVxuICAgKiBAcGFyYW0gdmFsdWUgLSB2YWx1ZSB0byByb3VuZFxuICAgKiBAcGFyYW0gcHJlY2lzaW9uIC0gd2hhdCBwcmVjaXNpb24gdG8gcm91bmQgd2l0aCwgZGVmYXVsdHMgdG8gMCBkZWNpbWFsIHBsYWNlc1xuICAgKi9cbiAgcHJpdmF0ZSByb3VuZE51bWJlcih2YWx1ZTogbnVtYmVyLCBwcmVjaXNpb246IG51bWJlciA9IDApOiBudW1iZXIge1xuICAgIGlmIChwcmVjaXNpb24gPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NreUludmFsaWRBcmd1bWVudDogcHJlY2lzaW9uIG11c3QgYmUgPj0gMCcpO1xuICAgIH1cblxuICAgIC8qIFNhbml0eSBjaGVjayAtIGlnbm9yaW5nIGNvdmVyYWdlIGJ1dCBzaG91bGQgbm90IGlnbm9yZSBpZiB3ZSBtYWtlIHRoaXMgbWV0aG9kIHB1YmxpYyAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NhbGVkVmFsdWU6IG51bWJlciA9IHRoaXMuc2NhbGVOdW1iZXJCeVBvd2VyT2ZUZW4oXG4gICAgICB2YWx1ZSxcbiAgICAgIHByZWNpc2lvbixcbiAgICAgIHRydWVcbiAgICApO1xuICAgIGNvbnN0IHNjYWxlZFJvdW5kZWRWYWx1ZTogbnVtYmVyID0gTWF0aC5yb3VuZChzY2FsZWRWYWx1ZSk7XG4gICAgY29uc3QgdW5zY2FsZWRSb3VuZGVkVmFsdWU6IG51bWJlciA9IHRoaXMuc2NhbGVOdW1iZXJCeVBvd2VyT2ZUZW4oXG4gICAgICBzY2FsZWRSb3VuZGVkVmFsdWUsXG4gICAgICBwcmVjaXNpb24sXG4gICAgICBmYWxzZVxuICAgICk7XG5cbiAgICByZXR1cm4gdW5zY2FsZWRSb3VuZGVkVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGVzIGEgZ2l2ZW4gbnVtYmVyIGJ5IGEgcG93ZXIgb2YgMTBcbiAgICogQHBhcmFtIHZhbHVlIC0gdmFsdWUgdG8gc2NhbGVcbiAgICogQHBhcmFtIHNjYWxhciAtIDEwXnNjYWxhclxuICAgKiBAcGFyYW0gc2NhbGVVcCAtIHdoZXRoZXIgdG8gaW5jcmVhc2Ugb3IgZGVjcmVhc2UgdGhlIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIHNjYWxlTnVtYmVyQnlQb3dlck9mVGVuKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgc2NhbGFyOiBudW1iZXIsXG4gICAgc2NhbGVVcDogYm9vbGVhblxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlU3RyOiBzdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgaXNFeHBvbmVudEZvcm1hdDogYm9vbGVhbiA9IHZhbHVlU3RyLmluY2x1ZGVzKCdlJyk7XG5cbiAgICBpZiAoaXNFeHBvbmVudEZvcm1hdCkge1xuICAgICAgY29uc3QgW2Jhc2UsIGV4cF0gPSB2YWx1ZVN0ci5zcGxpdCgnZScpO1xuICAgICAgY29uc3QgbmV3RXhwID0gc2NhbGVVcCA/IE51bWJlcihleHApICsgc2NhbGFyIDogTnVtYmVyKGV4cCkgLSBzY2FsYXI7XG4gICAgICByZXR1cm4gTnVtYmVyKGAke2Jhc2V9ZSR7bmV3RXhwfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlID0gc2NhbGVVcCA/ICdlJyA6ICdlLSc7XG4gICAgICByZXR1cm4gTnVtYmVyKGAke3ZhbHVlfSR7ZX0ke3NjYWxhcn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBzeW1ib2wgYWRkZWQgZnJvbSBzaG9ydGVuaW5nIHRvIHJlYXBwbHkgbGF0ZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHRvIGRlcml2ZSB0aGUgc2hvcnRlbiBzeW1ib2wgZnJvbS5cbiAgICovXG4gIHByaXZhdGUgc3RvcmVTaG9ydGVuU3ltYm9sKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzeW1ib2xzOiBzdHJpbmdbXSA9IHRoaXMuc3ltYm9sSW5kZXgubWFwKChzKSA9PiBzLmxhYmVsKTtcbiAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKHN5bWJvbHMuam9pbignfCcpLCAnaWcnKTtcbiAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKHJlZ2V4cCk7XG4gICAgdGhpcy5zaG9ydFN5bWJvbCA9IG1hdGNoID8gbWF0Y2gudG9TdHJpbmcoKSA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIE11c3QgaGF2ZSBwcmV2aW91c2x5IGNhbGxlZCBzdG9yZVNob3J0ZW5TeW1ib2wgdG8gaGF2ZSBzb21ldGhpbmcgdG8gcmVwbGFjZS5cbiAgICogRmluZHMgdGhlIGxhc3QgbnVtYmVyIGluIHRoZSBmb3JtYXR0ZWQgbnVtYmVyLCBnZXRzIHRoZSBpbmRleCBvZiB0aGUgcG9zaXRpb25cbiAgICogYWZ0ZXIgdGhhdCBjaGFyYWN0ZXIgYW5kIHJlLWluc2VydHMgdGhlIHN5bWJvbC5cbiAgICogV29ya3MgcmVnYXJkbGVzcyBvZiBjdXJyZW5jeSBzeW1ib2wgcG9zaXRpb24uXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHRvIG1vZGlmeS5cbiAgICovXG4gIHByaXZhdGUgcmVwbGFjZVNob3J0ZW5TeW1ib2wodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzdWx0ID0gLyhcXGQpKD8hLipcXGQpL2cuZXhlYyh2YWx1ZSk7XG4gICAgY29uc3QgcG9zID0gcmVzdWx0LmluZGV4ICsgcmVzdWx0Lmxlbmd0aDtcbiAgICBjb25zdCBvdXRwdXQgPVxuICAgICAgdmFsdWUuc3Vic3RyaW5nKDAsIHBvcykgKyB0aGlzLnNob3J0U3ltYm9sICsgdmFsdWUuc3Vic3RyaW5nKHBvcyk7XG5cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTeW1ib2woa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRPRE86IE5lZWQgdG8gaW1wbGVtZW50IHRoZSBhc3luYyBgZ2V0U3RyaW5nYCBtZXRob2QgaW4gYSBicmVha2luZyBjaGFuZ2UuXG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmdGb3JMb2NhbGUoeyBsb2NhbGU6ICdlbl9VUycgfSwga2V5KTtcbiAgfVxufVxuIl19
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0NBQStDLENBQUM7OztBQVF2RixNQUFNLE9BQU8saUJBQWlCO0lBZ0I1QixZQUFZLFlBQW9DOztRQWZoRDs7O1dBR0c7UUFDSSxrQkFBYSxHQUFHLE9BQU8sQ0FBQztRQUUvQjs7V0FFRztRQUNJLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRXhCLGtEQUFzQztRQUV0QyxpREFBaUM7UUFHL0IsdUJBQUEsSUFBSSxtQ0FBaUIsWUFBWSxNQUFBLENBQUM7UUFFbEMsdUJBQUEsSUFBSSxrQ0FBZ0I7WUFDbEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSx1QkFBQSxJQUFJLGtFQUFXLE1BQWYsSUFBSSxFQUFZLGdDQUFnQyxDQUFDLEVBQUU7WUFDekUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSx1QkFBQSxJQUFJLGtFQUFXLE1BQWYsSUFBSSxFQUFZLCtCQUErQixDQUFDLEVBQUU7WUFDdkUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSx1QkFBQSxJQUFJLGtFQUFXLE1BQWYsSUFBSSxFQUFZLCtCQUErQixDQUFDLEVBQUU7WUFDdkUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSx1QkFBQSxJQUFJLGtFQUFXLE1BQWYsSUFBSSxFQUFZLGdDQUFnQyxDQUFDLEVBQUU7U0FDekUs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a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5SW50bE51bWJlckZvcm1hdFN0eWxlLCBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTa3lOdW1iZXJGb3JtYXRVdGlsaXR5IH0gZnJvbSAnLi4vc2hhcmVkL251bWJlci1mb3JtYXQvbnVtYmVyLWZvcm1hdC11dGlsaXR5JztcblxuaW1wb3J0IHsgU2t5TnVtZXJpY1N5bWJvbCB9IGZyb20gJy4vbnVtZXJpYy1zeW1ib2wnO1xuaW1wb3J0IHsgU2t5TnVtZXJpY09wdGlvbnMgfSBmcm9tICcuL251bWVyaWMub3B0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreU51bWVyaWNTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFRoZSBicm93c2VyJ3MgY3VycmVudCBsb2NhbGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGN1cnJlbnRMb2NhbGUgPSAnZW4tVVMnO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzaG9ydFN5bWJvbCA9ICcnO1xuXG4gICNyZXNvdXJjZXNTdmM6IFNreUxpYlJlc291cmNlc1NlcnZpY2U7XG5cbiAgI3N5bWJvbEluZGV4OiBTa3lOdW1lcmljU3ltYm9sW107XG5cbiAgY29uc3RydWN0b3IocmVzb3VyY2VzU3ZjOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKSB7XG4gICAgdGhpcy4jcmVzb3VyY2VzU3ZjID0gcmVzb3VyY2VzU3ZjO1xuXG4gICAgdGhpcy4jc3ltYm9sSW5kZXggPSBbXG4gICAgICB7IHZhbHVlOiAxZTEyLCBsYWJlbDogdGhpcy4jZ2V0U3ltYm9sKCdza3l1eF9udW1lcmljX3RyaWxsaW9uc19zeW1ib2wnKSB9LFxuICAgICAgeyB2YWx1ZTogMWU5LCBsYWJlbDogdGhpcy4jZ2V0U3ltYm9sKCdza3l1eF9udW1lcmljX2JpbGxpb25zX3N5bWJvbCcpIH0sXG4gICAgICB7IHZhbHVlOiAxZTYsIGxhYmVsOiB0aGlzLiNnZXRTeW1ib2woJ3NreXV4X251bWVyaWNfbWlsbGlvbnNfc3ltYm9sJykgfSxcbiAgICAgIHsgdmFsdWU6IDFlMywgbGFiZWw6IHRoaXMuI2dldFN5bWJvbCgnc2t5dXhfbnVtZXJpY190aG91c2FuZHNfc3ltYm9sJykgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSBudW1iZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbnVtYmVyIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgRm9ybWF0IG9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0TnVtYmVyKHZhbHVlOiBudW1iZXIsIG9wdGlvbnM6IFNreU51bWVyaWNPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjaW1hbFBsYWNlUmVnRXhwID0gL1xcLjArJHwoXFwuWzAtOV0qWzEtOV0pMCskLztcbiAgICBjb25zdCBsb2NhbGUgPSBvcHRpb25zLmxvY2FsZSB8fCB0aGlzLmN1cnJlbnRMb2NhbGU7XG4gICAgY29uc3QgZGlnaXRzID0gb3B0aW9ucy5kaWdpdHMgfHwgMDtcblxuICAgIC8vIEdldCB0aGUgc3ltYm9sIGZvciB0aGUgbnVtYmVyIGFmdGVyIHJvdW5kaW5nLCBzaW5jZSByb3VuZGluZyBjb3VsZCBwdXNoIHRoZSBudW1iZXJcbiAgICAvLyBpbnRvIGEgZGlmZmVyZW50IHN5bWJvbCByYW5nZS5cbiAgICBsZXQgcm91bmRlZE51bWJlciA9IHRoaXMuI3JvdW5kTnVtYmVyKHZhbHVlLCBkaWdpdHMpO1xuICAgIGNvbnN0IHJvdW5kZWROdW1iZXJBYnMgPSBNYXRoLmFicyhyb3VuZGVkTnVtYmVyKTtcblxuICAgIGxldCBzdWZmaXggPSAnJztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy4jc3ltYm9sSW5kZXgubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBzeW1ib2wgPSB0aGlzLiNzeW1ib2xJbmRleFtpXTtcblxuICAgICAgaWYgKFxuICAgICAgICBvcHRpb25zLnRydW5jYXRlICYmXG4gICAgICAgIG9wdGlvbnMudHJ1bmNhdGVBZnRlciAmJlxuICAgICAgICByb3VuZGVkTnVtYmVyQWJzID49IG9wdGlvbnMudHJ1bmNhdGVBZnRlciAmJlxuICAgICAgICByb3VuZGVkTnVtYmVyQWJzID49IHN5bWJvbC52YWx1ZVxuICAgICAgKSB7XG4gICAgICAgIHJvdW5kZWROdW1iZXIgPSB0aGlzLiNyb3VuZE51bWJlcih2YWx1ZSAvIHN5bWJvbC52YWx1ZSwgZGlnaXRzKTtcblxuICAgICAgICBpZiAoTWF0aC5hYnMocm91bmRlZE51bWJlcikgPT09IDEwMDAgJiYgaSA+IDApIHtcbiAgICAgICAgICAvLyBSb3VuZGluZyBjYXVzZWQgdGhlIG51bWJlciB0byBjcm9zcyBpbnRvIHRoZSByYW5nZSBvZiB0aGUgbmV4dCBzeW1ib2wuXG4gICAgICAgICAgc3ltYm9sID0gdGhpcy4jc3ltYm9sSW5kZXhbaSAtIDFdO1xuICAgICAgICAgIHJvdW5kZWROdW1iZXIgLz0gMTAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1ZmZpeCA9IHN5bWJvbC5sYWJlbDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgb3V0cHV0OiBzdHJpbmcgPVxuICAgICAgcm91bmRlZE51bWJlci50b1N0cmluZygpLnJlcGxhY2UoZGVjaW1hbFBsYWNlUmVnRXhwLCAnJDEnKSArIHN1ZmZpeDtcblxuICAgIHRoaXMuI3N0b3JlU2hvcnRlblN5bWJvbChvdXRwdXQpO1xuXG4gICAgbGV0IGRpZ2l0c0Zvcm1hdHRlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBpc0RlY2ltYWwgPSBmYWxzZTtcblxuICAgIC8vIENoZWNrcyB0aGUgc3RyaW5nIGVudGVyZWQgZm9yIGZvcm1hdC4gVXNpbmcgdG9Mb3dlckNhc2UgdG8gaWdub3JlIGNhc2UuXG4gICAgc3dpdGNoIChvcHRpb25zLmZvcm1hdD8udG9Mb3dlckNhc2UoKSkge1xuICAgICAgLy8gSW4gYSBjYXNlIHdoZXJlIGEgZGVjaW1hbCB2YWx1ZSB3YXMgbm90IHNob3J0ZW5lZCBhbmRcbiAgICAgIC8vIHRoZSBkaWdpdCBpbnB1dCBpcyAyIG9yIGhpZ2hlciwgaXQgZm9yY2VzIDIgZGlnaXRzLlxuICAgICAgLy8gRm9yIGV4YW1wbGUsIHRoaXMgcHJldmVudHMgYSB2YWx1ZSBsaWtlICQxNS41MCBmcm9tIGRpc3BsYXlpbmcgYXMgJDE1LjUuXG4gICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgbmVlZCB0byBiZSByZXZpZXdlZCBpZiB3ZSBzdXBwb3J0IGN1cnJlbmNpZXMgd2l0aFxuICAgICAgLy8gdGhyZWUgZGVjaW1hbCBkaWdpdHMuXG4gICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICAgIGlzRGVjaW1hbCA9IHZhbHVlICUgMSAhPT0gMDtcblxuICAgICAgICBpZiAob3B0aW9ucy5taW5EaWdpdHMpIHtcbiAgICAgICAgICBkaWdpdHNGb3JtYXR0ZWQgPSBgMS4ke29wdGlvbnMubWluRGlnaXRzfS0ke2RpZ2l0c31gO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVjaW1hbCAmJiBkaWdpdHMgPj0gMikge1xuICAgICAgICAgIGRpZ2l0c0Zvcm1hdHRlZCA9IGAxLjItJHtkaWdpdHN9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaWdpdHNGb3JtYXR0ZWQgPSBgMS4wLSR7ZGlnaXRzfWA7XG4gICAgICAgIH1cblxuICAgICAgICBvdXRwdXQgPSBTa3lOdW1iZXJGb3JtYXRVdGlsaXR5LmZvcm1hdE51bWJlcihcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgcGFyc2VGbG9hdChvdXRwdXQpLFxuICAgICAgICAgIFNreUludGxOdW1iZXJGb3JtYXRTdHlsZS5DdXJyZW5jeSxcbiAgICAgICAgICBkaWdpdHNGb3JtYXR0ZWQsXG4gICAgICAgICAgb3B0aW9ucy5pc28sXG4gICAgICAgICAgLy8gQW5ndWxhciA1KyBuZWVkcyBhIHN0cmluZyBmb3IgdGhpcyBwYXJhbWV0ZXIsIGJ1dCBBbmd1bGFyIDQgbmVlZHMgYSBib29sZWFuLlxuICAgICAgICAgIC8vIFRvIHN1cHBvcnQgYm90aCB2ZXJzaW9ucyB3ZSBjYW4gc3VwcGx5ICdzeW1ib2wnIHdoaWNoIHdpbGwgZXZhbHVhdGUgdHJ1dGh5IGZvciBBbmd1bGFyIDRcbiAgICAgICAgICAvLyBhbmQgdGhlIGFwcHJvcHJpYXRlIHN0cmluZyB2YWx1ZSBmb3IgQW5ndWxhciA1Ky5cbiAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vYW5ndWxhci5pby9hcGkvY29tbW9uL0N1cnJlbmN5UGlwZSNwYXJhbWV0ZXJzXG4gICAgICAgICAgJ3N5bWJvbCcgYXMgYW55LFxuICAgICAgICAgIG9wdGlvbnMuY3VycmVuY3lTaWduXG4gICAgICAgICkgYXMgc3RyaW5nO1xuICAgICAgICAvLyAgIF5eXl5eXiBSZXN1bHQgY2FuJ3QgYmUgbnVsbCBzaW5jZSB0aGUgc2FuaXRpemVkIGlucHV0IGlzIGFsd2F5cyBhIG51bWJlci5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgYSBjYXRjaC1hbGwgdG8gZW5zdXJlIHRoYXQgaWZcbiAgICAgIC8vIGFueXRoaW5nIGJ1dCBjdXJyZW5jeSAob3IgYSBmdXR1cmUgb3B0aW9uKSBhcmUgZW50ZXJlZCxcbiAgICAgIC8vIGl0IHdpbGwgYmUgdHJlYXRlZCBsaWtlIGEgbnVtYmVyLlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRW5zdXJlcyBsb2NhbGl6YXRpb24gb2YgdGhlIG51bWJlciB0byBlbnN1cmUgY29tbWEgYW5kXG4gICAgICAgIC8vIGRlY2ltYWwgc2VwYXJhdG9yXG4gICAgICAgIGlmIChvcHRpb25zLm1pbkRpZ2l0cykge1xuICAgICAgICAgIGRpZ2l0c0Zvcm1hdHRlZCA9IGAxLiR7b3B0aW9ucy5taW5EaWdpdHN9LSR7ZGlnaXRzfWA7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50cnVuY2F0ZSkge1xuICAgICAgICAgIGRpZ2l0c0Zvcm1hdHRlZCA9IGAxLjAtJHtkaWdpdHN9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaWdpdHNGb3JtYXR0ZWQgPSBgMS4ke2RpZ2l0c30tJHtkaWdpdHN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIG91dHB1dCA9IFNreU51bWJlckZvcm1hdFV0aWxpdHkuZm9ybWF0TnVtYmVyKFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBwYXJzZUZsb2F0KG91dHB1dCksXG4gICAgICAgICAgU2t5SW50bE51bWJlckZvcm1hdFN0eWxlLkRlY2ltYWwsXG4gICAgICAgICAgZGlnaXRzRm9ybWF0dGVkXG4gICAgICAgICkgYXMgc3RyaW5nO1xuICAgICAgICAvLyAgIF5eXl5eXiBSZXN1bHQgY2FuJ3QgYmUgbnVsbCBzaW5jZSB0aGUgc2FuaXRpemVkIGlucHV0IGlzIGFsd2F5cyBhIG51bWJlci5cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHJ1bmNhdGUpIHtcbiAgICAgIG91dHB1dCA9IHRoaXMuI3JlcGxhY2VTaG9ydGVuU3ltYm9sKG91dHB1dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3VuZHMgYSBnaXZlbiBudW1iZXJcbiAgICpcbiAgICogSlMncyBsaW1pdGF0aW9uIC0gbnVtYmVycyBiaWdnZXIgdGhhbiBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiBvciBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuICAgKiBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgcmVwcmVzZW50ZWQgb3Igcm91bmRlZCBjb3JyZWN0bHlcbiAgICogQHBhcmFtIHZhbHVlIC0gdmFsdWUgdG8gcm91bmRcbiAgICogQHBhcmFtIHByZWNpc2lvbiAtIHdoYXQgcHJlY2lzaW9uIHRvIHJvdW5kIHdpdGgsIGRlZmF1bHRzIHRvIDAgZGVjaW1hbCBwbGFjZXNcbiAgICovXG4gICNyb3VuZE51bWJlcih2YWx1ZTogbnVtYmVyLCBwcmVjaXNpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKHByZWNpc2lvbiA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2t5SW52YWxpZEFyZ3VtZW50OiBwcmVjaXNpb24gbXVzdCBiZSA+PSAwJyk7XG4gICAgfVxuXG4gICAgLyogU2FuaXR5IGNoZWNrIC0gaWdub3JpbmcgY292ZXJhZ2UgYnV0IHNob3VsZCBub3QgaWdub3JlIGlmIHdlIG1ha2UgdGhpcyBtZXRob2QgcHVibGljICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBzY2FsZWRWYWx1ZTogbnVtYmVyID0gdGhpcy4jc2NhbGVOdW1iZXJCeVBvd2VyT2ZUZW4oXG4gICAgICB2YWx1ZSxcbiAgICAgIHByZWNpc2lvbixcbiAgICAgIHRydWVcbiAgICApO1xuICAgIGNvbnN0IHNjYWxlZFJvdW5kZWRWYWx1ZTogbnVtYmVyID0gTWF0aC5yb3VuZChzY2FsZWRWYWx1ZSk7XG4gICAgY29uc3QgdW5zY2FsZWRSb3VuZGVkVmFsdWU6IG51bWJlciA9IHRoaXMuI3NjYWxlTnVtYmVyQnlQb3dlck9mVGVuKFxuICAgICAgc2NhbGVkUm91bmRlZFZhbHVlLFxuICAgICAgcHJlY2lzaW9uLFxuICAgICAgZmFsc2VcbiAgICApO1xuXG4gICAgcmV0dXJuIHVuc2NhbGVkUm91bmRlZFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjYWxlcyBhIGdpdmVuIG51bWJlciBieSBhIHBvd2VyIG9mIDEwXG4gICAqIEBwYXJhbSB2YWx1ZSAtIHZhbHVlIHRvIHNjYWxlXG4gICAqIEBwYXJhbSBzY2FsYXIgLSAxMF5zY2FsYXJcbiAgICogQHBhcmFtIHNjYWxlVXAgLSB3aGV0aGVyIHRvIGluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSB2YWx1ZVxuICAgKi9cbiAgI3NjYWxlTnVtYmVyQnlQb3dlck9mVGVuKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgc2NhbGFyOiBudW1iZXIsXG4gICAgc2NhbGVVcDogYm9vbGVhblxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlU3RyOiBzdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgaXNFeHBvbmVudEZvcm1hdDogYm9vbGVhbiA9IHZhbHVlU3RyLmluY2x1ZGVzKCdlJyk7XG5cbiAgICBpZiAoaXNFeHBvbmVudEZvcm1hdCkge1xuICAgICAgY29uc3QgW2Jhc2UsIGV4cF0gPSB2YWx1ZVN0ci5zcGxpdCgnZScpO1xuICAgICAgY29uc3QgbmV3RXhwID0gc2NhbGVVcCA/IE51bWJlcihleHApICsgc2NhbGFyIDogTnVtYmVyKGV4cCkgLSBzY2FsYXI7XG4gICAgICByZXR1cm4gTnVtYmVyKGAke2Jhc2V9ZSR7bmV3RXhwfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlID0gc2NhbGVVcCA/ICdlJyA6ICdlLSc7XG4gICAgICByZXR1cm4gTnVtYmVyKGAke3ZhbHVlfSR7ZX0ke3NjYWxhcn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBzeW1ib2wgYWRkZWQgZnJvbSBzaG9ydGVuaW5nIHRvIHJlYXBwbHkgbGF0ZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHRvIGRlcml2ZSB0aGUgc2hvcnRlbiBzeW1ib2wgZnJvbS5cbiAgICovXG4gICNzdG9yZVNob3J0ZW5TeW1ib2wodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHN5bWJvbHM6IHN0cmluZ1tdID0gdGhpcy4jc3ltYm9sSW5kZXgubWFwKChzKSA9PiBzLmxhYmVsKTtcbiAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKHN5bWJvbHMuam9pbignfCcpLCAnaWcnKTtcbiAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKHJlZ2V4cCk7XG4gICAgdGhpcy5zaG9ydFN5bWJvbCA9IG1hdGNoID8gbWF0Y2gudG9TdHJpbmcoKSA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIE11c3QgaGF2ZSBwcmV2aW91c2x5IGNhbGxlZCBzdG9yZVNob3J0ZW5TeW1ib2wgdG8gaGF2ZSBzb21ldGhpbmcgdG8gcmVwbGFjZS5cbiAgICogRmluZHMgdGhlIGxhc3QgbnVtYmVyIGluIHRoZSBmb3JtYXR0ZWQgbnVtYmVyLCBnZXRzIHRoZSBpbmRleCBvZiB0aGUgcG9zaXRpb25cbiAgICogYWZ0ZXIgdGhhdCBjaGFyYWN0ZXIgYW5kIHJlLWluc2VydHMgdGhlIHN5bWJvbC5cbiAgICogV29ya3MgcmVnYXJkbGVzcyBvZiBjdXJyZW5jeSBzeW1ib2wgcG9zaXRpb24uXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHRvIG1vZGlmeS5cbiAgICovXG4gICNyZXBsYWNlU2hvcnRlblN5bWJvbCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXN1bHQgPSAvKFxcZCkoPyEuKlxcZCkvZy5leGVjKHZhbHVlKTtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBjb25zdCBwb3MgPSByZXN1bHQuaW5kZXggKyByZXN1bHQubGVuZ3RoO1xuICAgICAgY29uc3Qgb3V0cHV0ID1cbiAgICAgICAgdmFsdWUuc3Vic3RyaW5nKDAsIHBvcykgKyB0aGlzLnNob3J0U3ltYm9sICsgdmFsdWUuc3Vic3RyaW5nKHBvcyk7XG5cbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAjZ2V0U3ltYm9sKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBOZWVkIHRvIGltcGxlbWVudCB0aGUgYXN5bmMgYGdldFN0cmluZ2AgbWV0aG9kIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgIHJldHVybiB0aGlzLiNyZXNvdXJjZXNTdmMuZ2V0U3RyaW5nRm9yTG9jYWxlKHsgbG9jYWxlOiAnZW5fVVMnIH0sIGtleSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,5 @@
1
+ var _SkyOverlayAdapterService_instances, _SkyOverlayAdapterService_renderer, _SkyOverlayAdapterService_styleElement, _SkyOverlayAdapterService_destroyStyleElement;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Injectable, RendererFactory2 } from '@angular/core';
2
4
  import * as i0 from "@angular/core";
3
5
  /**
@@ -5,31 +7,35 @@ import * as i0 from "@angular/core";
5
7
  */
6
8
  export class SkyOverlayAdapterService {
7
9
  constructor(rendererFactory) {
8
- this.renderer = rendererFactory.createRenderer(undefined, undefined);
10
+ _SkyOverlayAdapterService_instances.add(this);
11
+ _SkyOverlayAdapterService_renderer.set(this, void 0);
12
+ _SkyOverlayAdapterService_styleElement.set(this, void 0);
13
+ __classPrivateFieldSet(this, _SkyOverlayAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
9
14
  }
10
15
  restrictBodyScroll() {
11
16
  // Create a style element to avoid overwriting any existing inline body styles.
12
- const styleElement = this.renderer.createElement('style');
13
- const textNode = this.renderer.createText('body { overflow: hidden }');
17
+ const styleElement = __classPrivateFieldGet(this, _SkyOverlayAdapterService_renderer, "f").createElement('style');
18
+ const textNode = __classPrivateFieldGet(this, _SkyOverlayAdapterService_renderer, "f").createText('body { overflow: hidden }');
14
19
  // Apply a `data-` attribute to make unit testing easier.
15
- this.renderer.setAttribute(styleElement, 'data-test-selector', 'sky-overlay-restrict-scroll-styles');
16
- this.renderer.appendChild(styleElement, textNode);
17
- this.renderer.appendChild(document.head, styleElement);
18
- if (this.styleElement) {
19
- this.destroyStyleElement();
20
+ __classPrivateFieldGet(this, _SkyOverlayAdapterService_renderer, "f").setAttribute(styleElement, 'data-test-selector', 'sky-overlay-restrict-scroll-styles');
21
+ __classPrivateFieldGet(this, _SkyOverlayAdapterService_renderer, "f").appendChild(styleElement, textNode);
22
+ __classPrivateFieldGet(this, _SkyOverlayAdapterService_renderer, "f").appendChild(document.head, styleElement);
23
+ if (__classPrivateFieldGet(this, _SkyOverlayAdapterService_styleElement, "f")) {
24
+ __classPrivateFieldGet(this, _SkyOverlayAdapterService_instances, "m", _SkyOverlayAdapterService_destroyStyleElement).call(this);
20
25
  }
21
- this.styleElement = styleElement;
26
+ __classPrivateFieldSet(this, _SkyOverlayAdapterService_styleElement, styleElement, "f");
22
27
  }
23
28
  releaseBodyScroll() {
24
- this.destroyStyleElement();
25
- }
26
- destroyStyleElement() {
27
- /* istanbul ignore else */
28
- if (this.styleElement.parentElement === document.head) {
29
- this.renderer.removeChild(document.head, this.styleElement);
30
- }
29
+ __classPrivateFieldGet(this, _SkyOverlayAdapterService_instances, "m", _SkyOverlayAdapterService_destroyStyleElement).call(this);
31
30
  }
32
31
  }
32
+ _SkyOverlayAdapterService_renderer = new WeakMap(), _SkyOverlayAdapterService_styleElement = new WeakMap(), _SkyOverlayAdapterService_instances = new WeakSet(), _SkyOverlayAdapterService_destroyStyleElement = function _SkyOverlayAdapterService_destroyStyleElement() {
33
+ /* istanbul ignore else */
34
+ if (__classPrivateFieldGet(this, _SkyOverlayAdapterService_styleElement, "f") &&
35
+ __classPrivateFieldGet(this, _SkyOverlayAdapterService_styleElement, "f").parentElement === document.head) {
36
+ __classPrivateFieldGet(this, _SkyOverlayAdapterService_renderer, "f").removeChild(document.head, __classPrivateFieldGet(this, _SkyOverlayAdapterService_styleElement, "f"));
37
+ }
38
+ };
33
39
  SkyOverlayAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
34
40
  SkyOverlayAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayAdapterService, providedIn: 'root' });
35
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayAdapterService, decorators: [{
@@ -38,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
38
44
  providedIn: 'root',
39
45
  }]
40
46
  }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV4RTs7R0FFRztBQUlILE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBWSxlQUFpQztRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsK0VBQStFO1FBQy9FLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFdkUseURBQXlEO1FBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUN4QixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLG9DQUFvQyxDQUNyQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFdkQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLDBCQUEwQjtRQUMxQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDN0Q7SUFDSCxDQUFDOztxSEF4Q1Usd0JBQXdCO3lIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5QWRhcHRlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgcHJpdmF0ZSBzdHlsZUVsZW1lbnQ6IEhUTUxTdHlsZUVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgcmVzdHJpY3RCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBhIHN0eWxlIGVsZW1lbnQgdG8gYXZvaWQgb3ZlcndyaXRpbmcgYW55IGV4aXN0aW5nIGlubGluZSBib2R5IHN0eWxlcy5cbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgY29uc3QgdGV4dE5vZGUgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQoJ2JvZHkgeyBvdmVyZmxvdzogaGlkZGVuIH0nKTtcblxuICAgIC8vIEFwcGx5IGEgYGRhdGEtYCBhdHRyaWJ1dGUgdG8gbWFrZSB1bml0IHRlc3RpbmcgZWFzaWVyLlxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgc3R5bGVFbGVtZW50LFxuICAgICAgJ2RhdGEtdGVzdC1zZWxlY3RvcicsXG4gICAgICAnc2t5LW92ZXJsYXktcmVzdHJpY3Qtc2Nyb2xsLXN0eWxlcydcbiAgICApO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIHRleHROb2RlKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIHN0eWxlRWxlbWVudCk7XG5cbiAgICBpZiAodGhpcy5zdHlsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZGVzdHJveVN0eWxlRWxlbWVudCgpO1xuICAgIH1cblxuICAgIHRoaXMuc3R5bGVFbGVtZW50ID0gc3R5bGVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIHJlbGVhc2VCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveVN0eWxlRWxlbWVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95U3R5bGVFbGVtZW50KCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuc3R5bGVFbGVtZW50LnBhcmVudEVsZW1lbnQgPT09IGRvY3VtZW50LmhlYWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuaGVhZCwgdGhpcy5zdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXhFOztHQUVHO0FBSUgsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQyxZQUFZLGVBQWlDOztRQUo3QyxxREFBcUI7UUFFckIseURBQTRDO1FBRzFDLHVCQUFBLElBQUksc0NBQWEsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQUEsQ0FBQztJQUNuRSxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLCtFQUErRTtRQUMvRSxNQUFNLFlBQVksR0FBRyx1QkFBQSxJQUFJLDBDQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELE1BQU0sUUFBUSxHQUFHLHVCQUFBLElBQUksMENBQVUsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV4RSx5REFBeUQ7UUFDekQsdUJBQUEsSUFBSSwwQ0FBVSxDQUFDLFlBQVksQ0FDekIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixvQ0FBb0MsQ0FDckMsQ0FBQztRQUVGLHVCQUFBLElBQUksMENBQVUsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELHVCQUFBLElBQUksMENBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV4RCxJQUFJLHVCQUFBLElBQUksOENBQWMsRUFBRTtZQUN0Qix1QkFBQSxJQUFJLDBGQUFxQixNQUF6QixJQUFJLENBQXVCLENBQUM7U0FDN0I7UUFFRCx1QkFBQSxJQUFJLDBDQUFpQixZQUFZLE1BQUEsQ0FBQztJQUNwQyxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLHVCQUFBLElBQUksMEZBQXFCLE1BQXpCLElBQUksQ0FBdUIsQ0FBQztJQUM5QixDQUFDOzs7SUFHQywwQkFBMEI7SUFDMUIsSUFDRSx1QkFBQSxJQUFJLDhDQUFjO1FBQ2xCLHVCQUFBLElBQUksOENBQWMsQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUFDLElBQUksRUFDbEQ7UUFDQSx1QkFBQSxJQUFJLDBDQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsdUJBQUEsSUFBSSw4Q0FBYyxDQUFDLENBQUM7S0FDL0Q7QUFDSCxDQUFDO3FIQTNDVSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreU92ZXJsYXlBZGFwdGVyU2VydmljZSB7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gICNzdHlsZUVsZW1lbnQ6IEhUTUxTdHlsZUVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyKSB7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyByZXN0cmljdEJvZHlTY3JvbGwoKTogdm9pZCB7XG4gICAgLy8gQ3JlYXRlIGEgc3R5bGUgZWxlbWVudCB0byBhdm9pZCBvdmVyd3JpdGluZyBhbnkgZXhpc3RpbmcgaW5saW5lIGJvZHkgc3R5bGVzLlxuICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9IHRoaXMuI3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgY29uc3QgdGV4dE5vZGUgPSB0aGlzLiNyZW5kZXJlci5jcmVhdGVUZXh0KCdib2R5IHsgb3ZlcmZsb3c6IGhpZGRlbiB9Jyk7XG5cbiAgICAvLyBBcHBseSBhIGBkYXRhLWAgYXR0cmlidXRlIHRvIG1ha2UgdW5pdCB0ZXN0aW5nIGVhc2llci5cbiAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICBzdHlsZUVsZW1lbnQsXG4gICAgICAnZGF0YS10ZXN0LXNlbGVjdG9yJyxcbiAgICAgICdza3ktb3ZlcmxheS1yZXN0cmljdC1zY3JvbGwtc3R5bGVzJ1xuICAgICk7XG5cbiAgICB0aGlzLiNyZW5kZXJlci5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIHRleHROb2RlKTtcbiAgICB0aGlzLiNyZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5oZWFkLCBzdHlsZUVsZW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuI3N0eWxlRWxlbWVudCkge1xuICAgICAgdGhpcy4jZGVzdHJveVN0eWxlRWxlbWVudCgpO1xuICAgIH1cblxuICAgIHRoaXMuI3N0eWxlRWxlbWVudCA9IHN0eWxlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyByZWxlYXNlQm9keVNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLiNkZXN0cm95U3R5bGVFbGVtZW50KCk7XG4gIH1cblxuICAjZGVzdHJveVN0eWxlRWxlbWVudCgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChcbiAgICAgIHRoaXMuI3N0eWxlRWxlbWVudCAmJlxuICAgICAgdGhpcy4jc3R5bGVFbGVtZW50LnBhcmVudEVsZW1lbnQgPT09IGRvY3VtZW50LmhlYWRcbiAgICApIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmhlYWQsIHRoaXMuI3N0eWxlRWxlbWVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=