@skyux/core 5.9.4 → 6.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +727 -503
- package/esm2020/index.mjs +64 -0
- package/esm2020/lib/modules/adapter-service/adapter.module.mjs +16 -0
- package/esm2020/lib/modules/adapter-service/adapter.service.mjs +225 -0
- package/esm2020/lib/modules/adapter-service/focusable-children-options.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-auto-fit-context.mjs +12 -0
- package/esm2020/lib/modules/affix/affix-config.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-horizontal-alignment.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-offset-change.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-offset.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-placement-change.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-placement.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-utils.mjs +18 -0
- package/esm2020/lib/modules/affix/affix-vertical-alignment.mjs +2 -0
- package/esm2020/lib/modules/affix/affix.directive.mjs +100 -0
- package/esm2020/lib/modules/affix/affix.module.mjs +18 -0
- package/esm2020/lib/modules/affix/affix.service.mjs +24 -0
- package/esm2020/lib/modules/affix/affixer.mjs +346 -0
- package/esm2020/lib/modules/affix/dom-utils.mjs +77 -0
- package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +80 -0
- package/esm2020/lib/modules/dock/dock-insert-component-config.mjs +2 -0
- package/esm2020/lib/modules/dock/dock-item-config.mjs +2 -0
- package/esm2020/lib/modules/dock/dock-item-reference.mjs +2 -0
- package/esm2020/lib/modules/dock/dock-item.mjs +29 -0
- package/esm2020/lib/modules/dock/dock-location.mjs +19 -0
- package/esm2020/lib/modules/dock/dock-options.mjs +2 -0
- package/esm2020/lib/modules/dock/dock.component.mjs +88 -0
- package/esm2020/lib/modules/dock/dock.module.mjs +19 -0
- package/esm2020/lib/modules/dock/dock.service.mjs +95 -0
- package/esm2020/lib/modules/dock/sort-by-stack-order.mjs +13 -0
- package/esm2020/lib/modules/dynamic-component/dynamic-component-location.mjs +27 -0
- package/esm2020/lib/modules/dynamic-component/dynamic-component-options.mjs +2 -0
- package/esm2020/lib/modules/dynamic-component/dynamic-component.module.mjs +17 -0
- package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +83 -0
- package/esm2020/lib/modules/format/app-format.mjs +18 -0
- package/esm2020/lib/modules/id/id.directive.mjs +34 -0
- package/esm2020/lib/modules/id/id.module.mjs +16 -0
- package/esm2020/lib/modules/log/log.module.mjs +16 -0
- package/esm2020/lib/modules/log/log.service.mjs +132 -0
- package/esm2020/lib/modules/log/types/log-deprecation-args.mjs +2 -0
- package/esm2020/lib/modules/log/types/log-level-token.mjs +6 -0
- package/esm2020/lib/modules/log/types/log-level.mjs +2 -0
- package/esm2020/lib/modules/media-query/media-breakpoints.mjs +20 -0
- package/esm2020/lib/modules/media-query/media-query-listener.mjs +2 -0
- package/esm2020/lib/modules/media-query/media-query.module.mjs +16 -0
- package/esm2020/lib/modules/media-query/media-query.service.mjs +121 -0
- package/esm2020/lib/modules/mutation/mutation-observer-service.mjs +16 -0
- package/esm2020/lib/modules/numeric/numeric-symbol.mjs +2 -0
- package/esm2020/lib/modules/numeric/numeric.module.mjs +20 -0
- package/esm2020/lib/modules/numeric/numeric.options.mjs +46 -0
- package/esm2020/lib/modules/numeric/numeric.pipe.mjs +80 -0
- package/esm2020/lib/modules/numeric/numeric.service.mjs +186 -0
- package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +41 -0
- package/esm2020/lib/modules/overlay/overlay-config.mjs +2 -0
- package/esm2020/lib/modules/overlay/overlay-context.mjs +10 -0
- package/esm2020/lib/modules/overlay/overlay-instance.mjs +55 -0
- package/esm2020/lib/modules/overlay/overlay.component.mjs +149 -0
- package/esm2020/lib/modules/overlay/overlay.module.mjs +17 -0
- package/esm2020/lib/modules/overlay/overlay.service.mjs +120 -0
- package/esm2020/lib/modules/percent-pipe/percent-pipe.module.mjs +20 -0
- package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +48 -0
- package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +117 -0
- package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +73 -0
- package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +184 -0
- package/esm2020/lib/modules/shared/number-format/number-format-utility.mjs +71 -0
- package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +50 -0
- package/esm2020/lib/modules/title/set-title-args.mjs +2 -0
- package/esm2020/lib/modules/title/title.service.mjs +31 -0
- package/esm2020/lib/modules/ui-config/ui-config.service.mjs +21 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +2 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-fixed-styles.mjs +2 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-host-options.mjs +10 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-offset.mjs +2 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-options.mjs +2 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +116 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +251 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper.module.mjs +16 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +39 -0
- package/esm2020/lib/modules/window/window-ref.mjs +30 -0
- package/esm2020/skyux-core.mjs +5 -0
- package/esm2020/testing/mock-media-query.service.mjs +41 -0
- package/esm2020/testing/mock-ui-config.service.mjs +59 -0
- package/esm2020/testing/public-api.mjs +3 -0
- package/esm2020/testing/skyux-core-testing.mjs +5 -0
- package/fesm2015/{skyux-core-testing.js → skyux-core-testing.mjs} +7 -7
- package/fesm2015/skyux-core-testing.mjs.map +1 -0
- package/fesm2015/skyux-core.mjs +3343 -0
- package/fesm2015/skyux-core.mjs.map +1 -0
- package/fesm2020/skyux-core-testing.mjs +103 -0
- package/fesm2020/skyux-core-testing.mjs.map +1 -0
- package/{fesm2015/skyux-core.js → fesm2020/skyux-core.mjs} +270 -178
- package/fesm2020/skyux-core.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/lib/modules/log/log.service.d.ts +37 -3
- package/lib/modules/log/types/log-deprecation-args.d.ts +27 -0
- package/lib/modules/log/types/log-level-token.d.ts +6 -0
- package/lib/modules/log/types/log-level.d.ts +8 -0
- package/lib/modules/numeric/numeric.options.d.ts +6 -1
- package/lib/modules/numeric/numeric.pipe.d.ts +2 -4
- package/lib/modules/numeric/numeric.service.d.ts +2 -2
- package/lib/modules/resize-observer/resize-observer-media-query.service.d.ts +0 -1
- package/package.json +35 -11
- package/testing/package.json +5 -5
- package/bundles/skyux-core-testing.umd.js +0 -459
- package/bundles/skyux-core.umd.js +0 -3848
- package/esm2015/index.js +0 -62
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/adapter-service/adapter.module.js +0 -16
- package/esm2015/lib/modules/adapter-service/adapter.module.js.map +0 -1
- package/esm2015/lib/modules/adapter-service/adapter.service.js +0 -226
- package/esm2015/lib/modules/adapter-service/adapter.service.js.map +0 -1
- package/esm2015/lib/modules/adapter-service/focusable-children-options.js +0 -2
- package/esm2015/lib/modules/adapter-service/focusable-children-options.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-auto-fit-context.js +0 -12
- package/esm2015/lib/modules/affix/affix-auto-fit-context.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-config.js +0 -2
- package/esm2015/lib/modules/affix/affix-config.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-horizontal-alignment.js +0 -2
- package/esm2015/lib/modules/affix/affix-horizontal-alignment.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-offset-change.js +0 -2
- package/esm2015/lib/modules/affix/affix-offset-change.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-offset.js +0 -2
- package/esm2015/lib/modules/affix/affix-offset.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-placement-change.js +0 -2
- package/esm2015/lib/modules/affix/affix-placement-change.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-placement.js +0 -2
- package/esm2015/lib/modules/affix/affix-placement.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-utils.js +0 -18
- package/esm2015/lib/modules/affix/affix-utils.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-vertical-alignment.js +0 -2
- package/esm2015/lib/modules/affix/affix-vertical-alignment.js.map +0 -1
- package/esm2015/lib/modules/affix/affix.directive.js +0 -100
- package/esm2015/lib/modules/affix/affix.directive.js.map +0 -1
- package/esm2015/lib/modules/affix/affix.module.js +0 -18
- package/esm2015/lib/modules/affix/affix.module.js.map +0 -1
- package/esm2015/lib/modules/affix/affix.service.js +0 -24
- package/esm2015/lib/modules/affix/affix.service.js.map +0 -1
- package/esm2015/lib/modules/affix/affixer.js +0 -349
- package/esm2015/lib/modules/affix/affixer.js.map +0 -1
- package/esm2015/lib/modules/affix/dom-utils.js +0 -77
- package/esm2015/lib/modules/affix/dom-utils.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-dom-adapter.service.js +0 -80
- package/esm2015/lib/modules/dock/dock-dom-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-insert-component-config.js +0 -2
- package/esm2015/lib/modules/dock/dock-insert-component-config.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-item-config.js +0 -2
- package/esm2015/lib/modules/dock/dock-item-config.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-item-reference.js +0 -2
- package/esm2015/lib/modules/dock/dock-item-reference.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-item.js +0 -29
- package/esm2015/lib/modules/dock/dock-item.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-location.js +0 -19
- package/esm2015/lib/modules/dock/dock-location.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-options.js +0 -2
- package/esm2015/lib/modules/dock/dock-options.js.map +0 -1
- package/esm2015/lib/modules/dock/dock.component.js +0 -95
- package/esm2015/lib/modules/dock/dock.component.js.map +0 -1
- package/esm2015/lib/modules/dock/dock.module.js +0 -20
- package/esm2015/lib/modules/dock/dock.module.js.map +0 -1
- package/esm2015/lib/modules/dock/dock.service.js +0 -95
- package/esm2015/lib/modules/dock/dock.service.js.map +0 -1
- package/esm2015/lib/modules/dock/sort-by-stack-order.js +0 -13
- package/esm2015/lib/modules/dock/sort-by-stack-order.js.map +0 -1
- package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js +0 -27
- package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js.map +0 -1
- package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js +0 -2
- package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js.map +0 -1
- package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js +0 -17
- package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js.map +0 -1
- package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js +0 -83
- package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js.map +0 -1
- package/esm2015/lib/modules/format/app-format.js +0 -18
- package/esm2015/lib/modules/format/app-format.js.map +0 -1
- package/esm2015/lib/modules/id/id.directive.js +0 -34
- package/esm2015/lib/modules/id/id.directive.js.map +0 -1
- package/esm2015/lib/modules/id/id.module.js +0 -16
- package/esm2015/lib/modules/id/id.module.js.map +0 -1
- package/esm2015/lib/modules/log/log.module.js +0 -16
- package/esm2015/lib/modules/log/log.module.js.map +0 -1
- package/esm2015/lib/modules/log/log.service.js +0 -23
- package/esm2015/lib/modules/log/log.service.js.map +0 -1
- package/esm2015/lib/modules/media-query/media-breakpoints.js +0 -20
- package/esm2015/lib/modules/media-query/media-breakpoints.js.map +0 -1
- package/esm2015/lib/modules/media-query/media-query-listener.js +0 -2
- package/esm2015/lib/modules/media-query/media-query-listener.js.map +0 -1
- package/esm2015/lib/modules/media-query/media-query.module.js +0 -16
- package/esm2015/lib/modules/media-query/media-query.module.js.map +0 -1
- package/esm2015/lib/modules/media-query/media-query.service.js +0 -121
- package/esm2015/lib/modules/media-query/media-query.service.js.map +0 -1
- package/esm2015/lib/modules/mutation/mutation-observer-service.js +0 -16
- package/esm2015/lib/modules/mutation/mutation-observer-service.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric-symbol.js +0 -2
- package/esm2015/lib/modules/numeric/numeric-symbol.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric.module.js +0 -20
- package/esm2015/lib/modules/numeric/numeric.module.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric.options.js +0 -41
- package/esm2015/lib/modules/numeric/numeric.options.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric.pipe.js +0 -83
- package/esm2015/lib/modules/numeric/numeric.pipe.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric.service.js +0 -189
- package/esm2015/lib/modules/numeric/numeric.service.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay-adapter.service.js +0 -41
- package/esm2015/lib/modules/overlay/overlay-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay-config.js +0 -2
- package/esm2015/lib/modules/overlay/overlay-config.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay-context.js +0 -10
- package/esm2015/lib/modules/overlay/overlay-context.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay-instance.js +0 -55
- package/esm2015/lib/modules/overlay/overlay-instance.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay.component.js +0 -154
- package/esm2015/lib/modules/overlay/overlay.component.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay.module.js +0 -18
- package/esm2015/lib/modules/overlay/overlay.module.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay.service.js +0 -120
- package/esm2015/lib/modules/overlay/overlay.service.js.map +0 -1
- package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js +0 -20
- package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js.map +0 -1
- package/esm2015/lib/modules/percent-pipe/percent.pipe.js +0 -48
- package/esm2015/lib/modules/percent-pipe/percent.pipe.js.map +0 -1
- package/esm2015/lib/modules/resize-observer/resize-observer-media-query.service.js +0 -117
- package/esm2015/lib/modules/resize-observer/resize-observer-media-query.service.js.map +0 -1
- package/esm2015/lib/modules/resize-observer/resize-observer.service.js +0 -73
- package/esm2015/lib/modules/resize-observer/resize-observer.service.js.map +0 -1
- package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js +0 -184
- package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js.map +0 -1
- package/esm2015/lib/modules/shared/number-format/number-format-utility.js +0 -72
- package/esm2015/lib/modules/shared/number-format/number-format-utility.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-core-resources.module.js +0 -50
- package/esm2015/lib/modules/shared/sky-core-resources.module.js.map +0 -1
- package/esm2015/lib/modules/title/set-title-args.js +0 -2
- package/esm2015/lib/modules/title/set-title-args.js.map +0 -1
- package/esm2015/lib/modules/title/title.service.js +0 -31
- package/esm2015/lib/modules/title/title.service.js.map +0 -1
- package/esm2015/lib/modules/ui-config/ui-config.service.js +0 -21
- package/esm2015/lib/modules/ui-config/ui-config.service.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js +0 -2
- package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js +0 -2
- package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js +0 -10
- package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js +0 -2
- package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js +0 -2
- package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js +0 -116
- package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper.js +0 -251
- package/esm2015/lib/modules/viewkeeper/viewkeeper.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js +0 -16
- package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js +0 -39
- package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js.map +0 -1
- package/esm2015/lib/modules/window/window-ref.js +0 -30
- package/esm2015/lib/modules/window/window-ref.js.map +0 -1
- package/esm2015/skyux-core.js +0 -5
- package/esm2015/skyux-core.js.map +0 -1
- package/esm2015/testing/mock-media-query.service.js +0 -41
- package/esm2015/testing/mock-media-query.service.js.map +0 -1
- package/esm2015/testing/mock-ui-config.service.js +0 -59
- package/esm2015/testing/mock-ui-config.service.js.map +0 -1
- package/esm2015/testing/public-api.js +0 -3
- package/esm2015/testing/public-api.js.map +0 -1
- package/esm2015/testing/skyux-core-testing.js +0 -5
- package/esm2015/testing/skyux-core-testing.js.map +0 -1
- package/fesm2015/skyux-core-testing.js.map +0 -1
- package/fesm2015/skyux-core.js.map +0 -1
@@ -0,0 +1,186 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { SkyIntlNumberFormatStyle, SkyLibResourcesService } from '@skyux/i18n';
|
3
|
+
import { SkyNumberFormatUtility } from '../shared/number-format/number-format-utility';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@skyux/i18n";
|
6
|
+
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';
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* Shortens with or without symbol (K/M/B/T) depending on value of number.
|
28
|
+
* @param value The number to format.
|
29
|
+
* @param options Format options.
|
30
|
+
*/
|
31
|
+
formatNumber(value, options) {
|
32
|
+
if (isNaN(value) || value === null) {
|
33
|
+
return '';
|
34
|
+
}
|
35
|
+
const decimalPlaceRegExp = /\.0+$|(\.[0-9]*[1-9])0+$/;
|
36
|
+
// Get the symbol for the number after rounding, since rounding could push the number
|
37
|
+
// into a different symbol range.
|
38
|
+
let roundedNumber = this.roundNumber(value, options.digits);
|
39
|
+
const roundedNumberAbs = Math.abs(roundedNumber);
|
40
|
+
let suffix = '';
|
41
|
+
for (let i = 0; i < this.symbolIndex.length; i++) {
|
42
|
+
let symbol = this.symbolIndex[i];
|
43
|
+
if (options.truncate &&
|
44
|
+
roundedNumberAbs >= options.truncateAfter &&
|
45
|
+
roundedNumberAbs >= symbol.value) {
|
46
|
+
roundedNumber = this.roundNumber(value / symbol.value, options.digits);
|
47
|
+
if (Math.abs(roundedNumber) === 1000 && i > 0) {
|
48
|
+
// Rounding caused the number to cross into the range of the next symbol.
|
49
|
+
symbol = this.symbolIndex[i - 1];
|
50
|
+
roundedNumber /= 1000;
|
51
|
+
}
|
52
|
+
suffix = symbol.label;
|
53
|
+
break;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
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;
|
61
|
+
// Checks the string entered for format. Using toLowerCase to ignore case.
|
62
|
+
switch (options.format?.toLowerCase()) {
|
63
|
+
// In a case where a decimal value was not shortened and
|
64
|
+
// the digit input is 2 or higher, it forces 2 digits.
|
65
|
+
// For example, this prevents a value like $15.50 from displaying as $15.5.
|
66
|
+
// Note: This will need to be reviewed if we support currencies with
|
67
|
+
// three decimal digits.
|
68
|
+
case 'currency':
|
69
|
+
isDecimal = value % 1 !== 0;
|
70
|
+
if (options.minDigits) {
|
71
|
+
digits = `1.${options.minDigits}-${options.digits}`;
|
72
|
+
}
|
73
|
+
else if (isDecimal && options.digits >= 2) {
|
74
|
+
digits = `1.2-${options.digits}`;
|
75
|
+
}
|
76
|
+
else {
|
77
|
+
digits = `1.0-${options.digits}`;
|
78
|
+
}
|
79
|
+
output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Currency, digits, options.iso,
|
80
|
+
// Angular 5+ needs a string for this parameter, but Angular 4 needs a boolean.
|
81
|
+
// To support both versions we can supply 'symbol' which will evaluate truthy for Angular 4
|
82
|
+
// and the appropriate string value for Angular 5+.
|
83
|
+
// See: https://angular.io/api/common/CurrencyPipe#parameters
|
84
|
+
'symbol', options.currencySign);
|
85
|
+
break;
|
86
|
+
// The following is a catch-all to ensure that if
|
87
|
+
// anything but currency (or a future option) are entered,
|
88
|
+
// it will be treated like a number.
|
89
|
+
default:
|
90
|
+
// Ensures localization of the number to ensure comma and
|
91
|
+
// decimal separator
|
92
|
+
if (options.minDigits) {
|
93
|
+
digits = `1.${options.minDigits}-${options.digits}`;
|
94
|
+
}
|
95
|
+
else if (options.truncate) {
|
96
|
+
digits = `1.0-${options.digits}`;
|
97
|
+
}
|
98
|
+
else {
|
99
|
+
digits = `1.${options.digits}-${options.digits}`;
|
100
|
+
}
|
101
|
+
output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Decimal, digits);
|
102
|
+
break;
|
103
|
+
}
|
104
|
+
if (options.truncate) {
|
105
|
+
output = this.replaceShortenSymbol(output);
|
106
|
+
}
|
107
|
+
return output;
|
108
|
+
}
|
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;
|
130
|
+
}
|
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
|
+
}
|
149
|
+
}
|
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() : '';
|
159
|
+
}
|
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);
|
169
|
+
const pos = result.index + result.length;
|
170
|
+
const output = value.substring(0, pos) + this.shortSymbol + value.substring(pos);
|
171
|
+
return output;
|
172
|
+
}
|
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);
|
176
|
+
}
|
177
|
+
}
|
178
|
+
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
|
+
SkyNumericService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericService, providedIn: 'any' });
|
180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericService, decorators: [{
|
181
|
+
type: Injectable,
|
182
|
+
args: [{
|
183
|
+
providedIn: 'any',
|
184
|
+
}]
|
185
|
+
}], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }]; } });
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7QUFRdkYsTUFBTSxPQUFPLGlCQUFpQjtJQTJCNUIsWUFBb0IsZ0JBQXdDO1FBQXhDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUFUcEQsZ0JBQVcsR0FBdUI7WUFDeEMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLEVBQUU7WUFDeEUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDLEVBQUU7WUFDdEUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDLEVBQUU7WUFDdEUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLEVBQUU7U0FDeEUsQ0FBQztJQUk2RCxDQUFDO0lBMUJoRTs7O09BR0c7SUFDSCxJQUFXLGFBQWEsQ0FBQyxLQUFhO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQztJQUNqQyxD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WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUsIFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IFNreU51bWJlckZvcm1hdFV0aWxpdHkgfSBmcm9tICcuLi9zaGFyZWQvbnVtYmVyLWZvcm1hdC9udW1iZXItZm9ybWF0LXV0aWxpdHknO1xuXG5pbXBvcnQgeyBTa3lOdW1lcmljU3ltYm9sIH0gZnJvbSAnLi9udW1lcmljLXN5bWJvbCc7XG5pbXBvcnQgeyBTa3lOdW1lcmljT3B0aW9ucyB9IGZyb20gJy4vbnVtZXJpYy5vcHRpb25zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TnVtZXJpY1NlcnZpY2Uge1xuICAvKipcbiAgICogVGhlIGJyb3dzZXIncyBjdXJyZW50IGxvY2FsZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0IGN1cnJlbnRMb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2xvY2FsZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZSB8fCAnZW4tVVMnO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNob3J0U3ltYm9sOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzeW1ib2xJbmRleDogU2t5TnVtZXJpY1N5bWJvbFtdID0gW1xuICAgIHsgdmFsdWU6IDFlMTIsIGxhYmVsOiB0aGlzLmdldFN5bWJvbCgnc2t5dXhfbnVtZXJpY190cmlsbGlvbnNfc3ltYm9sJykgfSxcbiAgICB7IHZhbHVlOiAxZTksIGxhYmVsOiB0aGlzLmdldFN5bWJvbCgnc2t5dXhfbnVtZXJpY19iaWxsaW9uc19zeW1ib2wnKSB9LFxuICAgIHsgdmFsdWU6IDFlNiwgbGFiZWw6IHRoaXMuZ2V0U3ltYm9sKCdza3l1eF9udW1lcmljX21pbGxpb25zX3N5bWJvbCcpIH0sXG4gICAgeyB2YWx1ZTogMWUzLCBsYWJlbDogdGhpcy5nZXRTeW1ib2woJ3NreXV4X251bWVyaWNfdGhvdXNhbmRzX3N5bWJvbCcpIH0sXG4gIF07XG5cbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBTaG9ydGVucyB3aXRoIG9yIHdpdGhvdXQgc3ltYm9sIChLL00vQi9UKSBkZXBlbmRpbmcgb24gdmFsdWUgb2YgbnVtYmVyLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG51bWJlciB0byBmb3JtYXQuXG4gICAqIEBwYXJhbSBvcHRpb25zIEZvcm1hdCBvcHRpb25zLlxuICAgKi9cbiAgcHVibGljIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyLCBvcHRpb25zOiBTa3lOdW1lcmljT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY2ltYWxQbGFjZVJlZ0V4cCA9IC9cXC4wKyR8KFxcLlswLTldKlsxLTldKTArJC87XG5cbiAgICAvLyBHZXQgdGhlIHN5bWJvbCBmb3IgdGhlIG51bWJlciBhZnRlciByb3VuZGluZywgc2luY2Ugcm91bmRpbmcgY291bGQgcHVzaCB0aGUgbnVtYmVyXG4gICAgLy8gaW50byBhIGRpZmZlcmVudCBzeW1ib2wgcmFuZ2UuXG4gICAgbGV0IHJvdW5kZWROdW1iZXIgPSB0aGlzLnJvdW5kTnVtYmVyKHZhbHVlLCBvcHRpb25zLmRpZ2l0cyk7XG4gICAgY29uc3Qgcm91bmRlZE51bWJlckFicyA9IE1hdGguYWJzKHJvdW5kZWROdW1iZXIpO1xuXG4gICAgbGV0IHN1ZmZpeCA9ICcnO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN5bWJvbEluZGV4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgc3ltYm9sID0gdGhpcy5zeW1ib2xJbmRleFtpXTtcblxuICAgICAgaWYgKFxuICAgICAgICBvcHRpb25zLnRydW5jYXRlICYmXG4gICAgICAgIHJvdW5kZWROdW1iZXJBYnMgPj0gb3B0aW9ucy50cnVuY2F0ZUFmdGVyICYmXG4gICAgICAgIHJvdW5kZWROdW1iZXJBYnMgPj0gc3ltYm9sLnZhbHVlXG4gICAgICApIHtcbiAgICAgICAgcm91bmRlZE51bWJlciA9IHRoaXMucm91bmROdW1iZXIodmFsdWUgLyBzeW1ib2wudmFsdWUsIG9wdGlvbnMuZGlnaXRzKTtcblxuICAgICAgICBpZiAoTWF0aC5hYnMocm91bmRlZE51bWJlcikgPT09IDEwMDAgJiYgaSA+IDApIHtcbiAgICAgICAgICAvLyBSb3VuZGluZyBjYXVzZWQgdGhlIG51bWJlciB0byBjcm9zcyBpbnRvIHRoZSByYW5nZSBvZiB0aGUgbmV4dCBzeW1ib2wuXG4gICAgICAgICAgc3ltYm9sID0gdGhpcy5zeW1ib2xJbmRleFtpIC0gMV07XG4gICAgICAgICAgcm91bmRlZE51bWJlciAvPSAxMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VmZml4ID0gc3ltYm9sLmxhYmVsO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBvdXRwdXQgPVxuICAgICAgcm91bmRlZE51bWJlci50b1N0cmluZygpLnJlcGxhY2UoZGVjaW1hbFBsYWNlUmVnRXhwLCAnJDEnKSArIHN1ZmZpeDtcblxuICAgIHRoaXMuc3RvcmVTaG9ydGVuU3ltYm9sKG91dHB1dCk7XG5cbiAgICBjb25zdCBsb2NhbGUgPSBvcHRpb25zLmxvY2FsZSB8fCB0aGlzLmN1cnJlbnRMb2NhbGU7XG5cbiAgICBsZXQgZGlnaXRzOiBzdHJpbmc7XG4gICAgbGV0IGlzRGVjaW1hbDogYm9vbGVhbjtcblxuICAgIC8vIENoZWNrcyB0aGUgc3RyaW5nIGVudGVyZWQgZm9yIGZvcm1hdC4gVXNpbmcgdG9Mb3dlckNhc2UgdG8gaWdub3JlIGNhc2UuXG4gICAgc3dpdGNoIChvcHRpb25zLmZvcm1hdD8udG9Mb3dlckNhc2UoKSkge1xuICAgICAgLy8gSW4gYSBjYXNlIHdoZXJlIGEgZGVjaW1hbCB2YWx1ZSB3YXMgbm90IHNob3J0ZW5lZCBhbmRcbiAgICAgIC8vIHRoZSBkaWdpdCBpbnB1dCBpcyAyIG9yIGhpZ2hlciwgaXQgZm9yY2VzIDIgZGlnaXRzLlxuICAgICAgLy8gRm9yIGV4YW1wbGUsIHRoaXMgcHJldmVudHMgYSB2YWx1ZSBsaWtlICQxNS41MCBmcm9tIGRpc3BsYXlpbmcgYXMgJDE1LjUuXG4gICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgbmVlZCB0byBiZSByZXZpZXdlZCBpZiB3ZSBzdXBwb3J0IGN1cnJlbmNpZXMgd2l0aFxuICAgICAgLy8gdGhyZWUgZGVjaW1hbCBkaWdpdHMuXG4gICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICAgIGlzRGVjaW1hbCA9IHZhbHVlICUgMSAhPT0gMDtcblxuICAgICAgICBpZiAob3B0aW9ucy5taW5EaWdpdHMpIHtcbiAgICAgICAgICBkaWdpdHMgPSBgMS4ke29wdGlvbnMubWluRGlnaXRzfS0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEZWNpbWFsICYmIG9wdGlvbnMuZGlnaXRzID49IDIpIHtcbiAgICAgICAgICBkaWdpdHMgPSBgMS4yLSR7b3B0aW9ucy5kaWdpdHN9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaWdpdHMgPSBgMS4wLSR7b3B0aW9ucy5kaWdpdHN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIG91dHB1dCA9IFNreU51bWJlckZvcm1hdFV0aWxpdHkuZm9ybWF0TnVtYmVyKFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBwYXJzZUZsb2F0KG91dHB1dCksXG4gICAgICAgICAgU2t5SW50bE51bWJlckZvcm1hdFN0eWxlLkN1cnJlbmN5LFxuICAgICAgICAgIGRpZ2l0cyxcbiAgICAgICAgICBvcHRpb25zLmlzbyxcbiAgICAgICAgICAvLyBBbmd1bGFyIDUrIG5lZWRzIGEgc3RyaW5nIGZvciB0aGlzIHBhcmFtZXRlciwgYnV0IEFuZ3VsYXIgNCBuZWVkcyBhIGJvb2xlYW4uXG4gICAgICAgICAgLy8gVG8gc3VwcG9ydCBib3RoIHZlcnNpb25zIHdlIGNhbiBzdXBwbHkgJ3N5bWJvbCcgd2hpY2ggd2lsbCBldmFsdWF0ZSB0cnV0aHkgZm9yIEFuZ3VsYXIgNFxuICAgICAgICAgIC8vIGFuZCB0aGUgYXBwcm9wcmlhdGUgc3RyaW5nIHZhbHVlIGZvciBBbmd1bGFyIDUrLlxuICAgICAgICAgIC8vIFNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb21tb24vQ3VycmVuY3lQaXBlI3BhcmFtZXRlcnNcbiAgICAgICAgICAnc3ltYm9sJyBhcyBhbnksXG4gICAgICAgICAgb3B0aW9ucy5jdXJyZW5jeVNpZ25cbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgYSBjYXRjaC1hbGwgdG8gZW5zdXJlIHRoYXQgaWZcbiAgICAgIC8vIGFueXRoaW5nIGJ1dCBjdXJyZW5jeSAob3IgYSBmdXR1cmUgb3B0aW9uKSBhcmUgZW50ZXJlZCxcbiAgICAgIC8vIGl0IHdpbGwgYmUgdHJlYXRlZCBsaWtlIGEgbnVtYmVyLlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRW5zdXJlcyBsb2NhbGl6YXRpb24gb2YgdGhlIG51bWJlciB0byBlbnN1cmUgY29tbWEgYW5kXG4gICAgICAgIC8vIGRlY2ltYWwgc2VwYXJhdG9yXG4gICAgICAgIGlmIChvcHRpb25zLm1pbkRpZ2l0cykge1xuICAgICAgICAgIGRpZ2l0cyA9IGAxLiR7b3B0aW9ucy5taW5EaWdpdHN9LSR7b3B0aW9ucy5kaWdpdHN9YDtcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnRydW5jYXRlKSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuMC0ke29wdGlvbnMuZGlnaXRzfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlnaXRzID0gYDEuJHtvcHRpb25zLmRpZ2l0c30tJHtvcHRpb25zLmRpZ2l0c31gO1xuICAgICAgICB9XG5cbiAgICAgICAgb3V0cHV0ID0gU2t5TnVtYmVyRm9ybWF0VXRpbGl0eS5mb3JtYXROdW1iZXIoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhcnNlRmxvYXQob3V0cHV0KSxcbiAgICAgICAgICBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUuRGVjaW1hbCxcbiAgICAgICAgICBkaWdpdHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHJ1bmNhdGUpIHtcbiAgICAgIG91dHB1dCA9IHRoaXMucmVwbGFjZVNob3J0ZW5TeW1ib2wob3V0cHV0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJvdW5kcyBhIGdpdmVuIG51bWJlclxuICAgKlxuICAgKiBKUydzIGxpbWl0YXRpb24gLSBudW1iZXJzIGJpZ2dlciB0aGFuIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSIG9yIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gICAqIGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSByZXByZXNlbnRlZCBvciByb3VuZGVkIGNvcnJlY3RseVxuICAgKiBAcGFyYW0gdmFsdWUgLSB2YWx1ZSB0byByb3VuZFxuICAgKiBAcGFyYW0gcHJlY2lzaW9uIC0gd2hhdCBwcmVjaXNpb24gdG8gcm91bmQgd2l0aCwgZGVmYXVsdHMgdG8gMCBkZWNpbWFsIHBsYWNlc1xuICAgKi9cbiAgcHJpdmF0ZSByb3VuZE51bWJlcih2YWx1ZTogbnVtYmVyLCBwcmVjaXNpb246IG51bWJlciA9IDApOiBudW1iZXIge1xuICAgIGlmIChwcmVjaXNpb24gPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NreUludmFsaWRBcmd1bWVudDogcHJlY2lzaW9uIG11c3QgYmUgPj0gMCcpO1xuICAgIH1cblxuICAgIC8qIFNhbml0eSBjaGVjayAtIGlnbm9yaW5nIGNvdmVyYWdlIGJ1dCBzaG91bGQgbm90IGlnbm9yZSBpZiB3ZSBtYWtlIHRoaXMgbWV0aG9kIHB1YmxpYyAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NhbGVkVmFsdWU6IG51bWJlciA9IHRoaXMuc2NhbGVOdW1iZXJCeVBvd2VyT2ZUZW4oXG4gICAgICB2YWx1ZSxcbiAgICAgIHByZWNpc2lvbixcbiAgICAgIHRydWVcbiAgICApO1xuICAgIGNvbnN0IHNjYWxlZFJvdW5kZWRWYWx1ZTogbnVtYmVyID0gTWF0aC5yb3VuZChzY2FsZWRWYWx1ZSk7XG4gICAgY29uc3QgdW5zY2FsZWRSb3VuZGVkVmFsdWU6IG51bWJlciA9IHRoaXMuc2NhbGVOdW1iZXJCeVBvd2VyT2ZUZW4oXG4gICAgICBzY2FsZWRSb3VuZGVkVmFsdWUsXG4gICAgICBwcmVjaXNpb24sXG4gICAgICBmYWxzZVxuICAgICk7XG5cbiAgICByZXR1cm4gdW5zY2FsZWRSb3VuZGVkVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGVzIGEgZ2l2ZW4gbnVtYmVyIGJ5IGEgcG93ZXIgb2YgMTBcbiAgICogQHBhcmFtIHZhbHVlIC0gdmFsdWUgdG8gc2NhbGVcbiAgICogQHBhcmFtIHNjYWxhciAtIDEwXnNjYWxhclxuICAgKiBAcGFyYW0gc2NhbGVVcCAtIHdoZXRoZXIgdG8gaW5jcmVhc2Ugb3IgZGVjcmVhc2UgdGhlIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIHNjYWxlTnVtYmVyQnlQb3dlck9mVGVuKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgc2NhbGFyOiBudW1iZXIsXG4gICAgc2NhbGVVcDogYm9vbGVhblxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlU3RyOiBzdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgaXNFeHBvbmVudEZvcm1hdDogYm9vbGVhbiA9IHZhbHVlU3RyLmluY2x1ZGVzKCdlJyk7XG5cbiAgICBpZiAoaXNFeHBvbmVudEZvcm1hdCkge1xuICAgICAgY29uc3QgW2Jhc2UsIGV4cF0gPSB2YWx1ZVN0ci5zcGxpdCgnZScpO1xuICAgICAgY29uc3QgbmV3RXhwID0gc2NhbGVVcCA/IE51bWJlcihleHApICsgc2NhbGFyIDogTnVtYmVyKGV4cCkgLSBzY2FsYXI7XG4gICAgICByZXR1cm4gTnVtYmVyKGAke2Jhc2V9ZSR7bmV3RXhwfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlID0gc2NhbGVVcCA/ICdlJyA6ICdlLSc7XG4gICAgICByZXR1cm4gTnVtYmVyKGAke3ZhbHVlfSR7ZX0ke3NjYWxhcn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBzeW1ib2wgYWRkZWQgZnJvbSBzaG9ydGVuaW5nIHRvIHJlYXBwbHkgbGF0ZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHRvIGRlcml2ZSB0aGUgc2hvcnRlbiBzeW1ib2wgZnJvbS5cbiAgICovXG4gIHByaXZhdGUgc3RvcmVTaG9ydGVuU3ltYm9sKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzeW1ib2xzOiBzdHJpbmdbXSA9IHRoaXMuc3ltYm9sSW5kZXgubWFwKChzKSA9PiBzLmxhYmVsKTtcbiAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKHN5bWJvbHMuam9pbignfCcpLCAnaWcnKTtcbiAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKHJlZ2V4cCk7XG4gICAgdGhpcy5zaG9ydFN5bWJvbCA9IG1hdGNoID8gbWF0Y2gudG9TdHJpbmcoKSA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIE11c3QgaGF2ZSBwcmV2aW91c2x5IGNhbGxlZCBzdG9yZVNob3J0ZW5TeW1ib2wgdG8gaGF2ZSBzb21ldGhpbmcgdG8gcmVwbGFjZS5cbiAgICogRmluZHMgdGhlIGxhc3QgbnVtYmVyIGluIHRoZSBmb3JtYXR0ZWQgbnVtYmVyLCBnZXRzIHRoZSBpbmRleCBvZiB0aGUgcG9zaXRpb25cbiAgICogYWZ0ZXIgdGhhdCBjaGFyYWN0ZXIgYW5kIHJlLWluc2VydHMgdGhlIHN5bWJvbC5cbiAgICogV29ya3MgcmVnYXJkbGVzcyBvZiBjdXJyZW5jeSBzeW1ib2wgcG9zaXRpb24uXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHRvIG1vZGlmeS5cbiAgICovXG4gIHByaXZhdGUgcmVwbGFjZVNob3J0ZW5TeW1ib2wodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzdWx0ID0gLyhcXGQpKD8hLipcXGQpL2cuZXhlYyh2YWx1ZSk7XG4gICAgY29uc3QgcG9zID0gcmVzdWx0LmluZGV4ICsgcmVzdWx0Lmxlbmd0aDtcbiAgICBjb25zdCBvdXRwdXQgPVxuICAgICAgdmFsdWUuc3Vic3RyaW5nKDAsIHBvcykgKyB0aGlzLnNob3J0U3ltYm9sICsgdmFsdWUuc3Vic3RyaW5nKHBvcyk7XG5cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTeW1ib2woa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRPRE86IE5lZWQgdG8gaW1wbGVtZW50IHRoZSBhc3luYyBgZ2V0U3RyaW5nYCBtZXRob2QgaW4gYSBicmVha2luZyBjaGFuZ2UuXG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzU2VydmljZS5nZXRTdHJpbmdGb3JMb2NhbGUoeyBsb2NhbGU6ICdlbl9VUycgfSwga2V5KTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { Injectable, RendererFactory2 } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
/**
|
4
|
+
* @internal
|
5
|
+
*/
|
6
|
+
export class SkyOverlayAdapterService {
|
7
|
+
constructor(rendererFactory) {
|
8
|
+
this.renderer = rendererFactory.createRenderer(undefined, undefined);
|
9
|
+
}
|
10
|
+
restrictBodyScroll() {
|
11
|
+
// 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 }');
|
14
|
+
// 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
|
+
}
|
21
|
+
this.styleElement = styleElement;
|
22
|
+
}
|
23
|
+
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
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
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
|
+
SkyOverlayAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayAdapterService, providedIn: 'root' });
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayAdapterService, decorators: [{
|
36
|
+
type: Injectable,
|
37
|
+
args: [{
|
38
|
+
providedIn: 'root',
|
39
|
+
}]
|
40
|
+
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV4RTs7R0FFRztBQUlILE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBWSxlQUFpQztRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsK0VBQStFO1FBQy9FLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFdkUseURBQXlEO1FBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUN4QixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLG9DQUFvQyxDQUNyQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFdkQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLDBCQUEwQjtRQUMxQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDN0Q7SUFDSCxDQUFDOztxSEF4Q1Usd0JBQXdCO3lIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5QWRhcHRlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgcHJpdmF0ZSBzdHlsZUVsZW1lbnQ6IEhUTUxTdHlsZUVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgcmVzdHJpY3RCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBhIHN0eWxlIGVsZW1lbnQgdG8gYXZvaWQgb3ZlcndyaXRpbmcgYW55IGV4aXN0aW5nIGlubGluZSBib2R5IHN0eWxlcy5cbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgY29uc3QgdGV4dE5vZGUgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQoJ2JvZHkgeyBvdmVyZmxvdzogaGlkZGVuIH0nKTtcblxuICAgIC8vIEFwcGx5IGEgYGRhdGEtYCBhdHRyaWJ1dGUgdG8gbWFrZSB1bml0IHRlc3RpbmcgZWFzaWVyLlxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgc3R5bGVFbGVtZW50LFxuICAgICAgJ2RhdGEtdGVzdC1zZWxlY3RvcicsXG4gICAgICAnc2t5LW92ZXJsYXktcmVzdHJpY3Qtc2Nyb2xsLXN0eWxlcydcbiAgICApO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIHRleHROb2RlKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIHN0eWxlRWxlbWVudCk7XG5cbiAgICBpZiAodGhpcy5zdHlsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZGVzdHJveVN0eWxlRWxlbWVudCgpO1xuICAgIH1cblxuICAgIHRoaXMuc3R5bGVFbGVtZW50ID0gc3R5bGVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIHJlbGVhc2VCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveVN0eWxlRWxlbWVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95U3R5bGVFbGVtZW50KCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuc3R5bGVFbGVtZW50LnBhcmVudEVsZW1lbnQgPT09IGRvY3VtZW50LmhlYWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuaGVhZCwgdGhpcy5zdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxufVxuIl19
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTa3lPdmVybGF5Q29uZmlnIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiB0aGUgb3ZlcmxheSBzaG91bGQgYmUgY2xvc2VkIGFmdGVyIGEgbmF2aWdhdGlvbiBjaGFuZ2UuXG4gICAqL1xuICBjbG9zZU9uTmF2aWdhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiB0aGUgb3ZlcmxheSBzaG91bGQgYmUgY2xvc2VkIHdoZW4gYSB1c2VyIGNsaWNrcyBvdXRzaWRlIHRoZSBvdmVybGF5J3MgY29udGVudC5cbiAgICovXG4gIGVuYWJsZUNsb3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGlmIG1vdXNlIGludGVyYWN0aW9ucyBzaG91bGQgYmUgYWxsb3dlZCBiZWxvdyB0aGUgYmFja2Ryb3AuXG4gICAqL1xuICBlbmFibGVQb2ludGVyRXZlbnRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGlmIHdpbmRvdyBzY3JvbGxpbmcgc2hvdWxkIGJlIGVuYWJsZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBvcGVuZWQuXG4gICAqL1xuICBlbmFibGVTY3JvbGw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIG92ZXJsYXkncyBiYWNrZHJvcCBzaG91bGQgYmUgdmlzaWJsZS5cbiAgICovXG4gIHNob3dCYWNrZHJvcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBleHRyYSBDU1MgY2xhc3NlcyB0byBiZSBhZGRlZCB0byB0aGUgb3ZlcmxheSdzIHdyYXBwZXIgZWxlbWVudC5cbiAgICovXG4gIHdyYXBwZXJDbGFzcz86IHN0cmluZztcbn1cbiJdfQ==
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/**
|
2
|
+
* Provides contextual information to each overlay created.
|
3
|
+
* @internal
|
4
|
+
*/
|
5
|
+
export class SkyOverlayContext {
|
6
|
+
constructor(config) {
|
7
|
+
this.config = config;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBNEIsTUFBd0I7UUFBeEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7SUFBRyxDQUFDO0NBQ3pEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5T3ZlcmxheUNvbmZpZyB9IGZyb20gJy4vb3ZlcmxheS1jb25maWcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdG8gZWFjaCBvdmVybGF5IGNyZWF0ZWQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreU92ZXJsYXlDb250ZXh0IHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNvbmZpZzogU2t5T3ZlcmxheUNvbmZpZykge31cbn1cbiJdfQ==
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { Subject } from 'rxjs';
|
2
|
+
/**
|
3
|
+
* Represents a new overlay instance. It is used to manage the "closed" state of the overlay,
|
4
|
+
* and access any public members on the appended content component instance.
|
5
|
+
*/
|
6
|
+
export class SkyOverlayInstance {
|
7
|
+
constructor(
|
8
|
+
/**
|
9
|
+
* The configuration for the overlay.
|
10
|
+
*/
|
11
|
+
config, componentRef) {
|
12
|
+
this.config = config;
|
13
|
+
this.componentRef = componentRef;
|
14
|
+
this._backdropClick = new Subject();
|
15
|
+
this._closed = new Subject();
|
16
|
+
this.componentRef.instance.closed.subscribe(() => {
|
17
|
+
this._closed.next();
|
18
|
+
this._closed.complete();
|
19
|
+
this._backdropClick.complete();
|
20
|
+
});
|
21
|
+
this.componentRef.instance.backdropClick.subscribe(() => {
|
22
|
+
this._backdropClick.next();
|
23
|
+
});
|
24
|
+
}
|
25
|
+
/**
|
26
|
+
* Emits when the overlay is clicked (but not its content).
|
27
|
+
*/
|
28
|
+
get backdropClick() {
|
29
|
+
return this._backdropClick.asObservable();
|
30
|
+
}
|
31
|
+
/**
|
32
|
+
* Emits after the overlay is closed.
|
33
|
+
*/
|
34
|
+
get closed() {
|
35
|
+
return this._closed.asObservable();
|
36
|
+
}
|
37
|
+
/**
|
38
|
+
* Creates and attaches a component to the overlay.
|
39
|
+
* @param component The component to attach.
|
40
|
+
* @param providers Custom providers to apply to the component.
|
41
|
+
*/
|
42
|
+
attachComponent(component, providers) {
|
43
|
+
const componentRef = this.componentRef.instance.attachComponent(component, providers);
|
44
|
+
return componentRef.instance;
|
45
|
+
}
|
46
|
+
/**
|
47
|
+
* Attaches a `TemplateRef` to the overlay.
|
48
|
+
* @param templateRef The `TemplateRef` to attach.
|
49
|
+
* @param context The context to provide to the template.
|
50
|
+
*/
|
51
|
+
attachTemplate(templateRef, context) {
|
52
|
+
this.componentRef.instance.attachTemplate(templateRef, context);
|
53
|
+
}
|
54
|
+
}
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9vdmVybGF5L292ZXJsYXktaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUszQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBbUI3QjtJQUNFOztPQUVHO0lBQ2EsTUFBd0IsRUFDeEIsWUFBK0M7UUFEL0MsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQW1DO1FBVHpELG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVyQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBbENEOztPQUVHO0lBQ0gsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQXdCRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUNwQixTQUFrQixFQUNsQixTQUE0QjtRQUU1QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQzdELFNBQVMsRUFDVCxTQUFTLENBQ1YsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGNBQWMsQ0FBSSxXQUEyQixFQUFFLE9BQVc7UUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIFN0YXRpY1Byb3ZpZGVyLCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreU92ZXJsYXlDb25maWcgfSBmcm9tICcuL292ZXJsYXktY29uZmlnJztcbmltcG9ydCB7IFNreU92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkuY29tcG9uZW50JztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbmV3IG92ZXJsYXkgaW5zdGFuY2UuIEl0IGlzIHVzZWQgdG8gbWFuYWdlIHRoZSBcImNsb3NlZFwiIHN0YXRlIG9mIHRoZSBvdmVybGF5LFxuICogYW5kIGFjY2VzcyBhbnkgcHVibGljIG1lbWJlcnMgb24gdGhlIGFwcGVuZGVkIGNvbnRlbnQgY29tcG9uZW50IGluc3RhbmNlLlxuICovXG5leHBvcnQgY2xhc3MgU2t5T3ZlcmxheUluc3RhbmNlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIG92ZXJsYXkgaXMgY2xpY2tlZCAoYnV0IG5vdCBpdHMgY29udGVudCkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGJhY2tkcm9wQ2xpY2soKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2JhY2tkcm9wQ2xpY2suYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYWZ0ZXIgdGhlIG92ZXJsYXkgaXMgY2xvc2VkLlxuICAgKi9cbiAgcHVibGljIGdldCBjbG9zZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2JhY2tkcm9wQ2xpY2sgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2Nsb3NlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBvdmVybGF5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjb25maWc6IFNreU92ZXJsYXlDb25maWcsXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFNreU92ZXJsYXlDb21wb25lbnQ+XG4gICkge1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fY2xvc2VkLm5leHQoKTtcbiAgICAgIHRoaXMuX2Nsb3NlZC5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fYmFja2Ryb3BDbGljay5jb21wbGV0ZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuYmFja2Ryb3BDbGljay5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fYmFja2Ryb3BDbGljay5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbmQgYXR0YWNoZXMgYSBjb21wb25lbnQgdG8gdGhlIG92ZXJsYXkuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgVGhlIGNvbXBvbmVudCB0byBhdHRhY2guXG4gICAqIEBwYXJhbSBwcm92aWRlcnMgQ3VzdG9tIHByb3ZpZGVycyB0byBhcHBseSB0byB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGF0dGFjaENvbXBvbmVudDxDPihcbiAgICBjb21wb25lbnQ6IFR5cGU8Qz4sXG4gICAgcHJvdmlkZXJzPzogU3RhdGljUHJvdmlkZXJbXVxuICApOiBDIHtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5hdHRhY2hDb21wb25lbnQoXG4gICAgICBjb21wb25lbnQsXG4gICAgICBwcm92aWRlcnNcbiAgICApO1xuICAgIHJldHVybiBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBgVGVtcGxhdGVSZWZgIHRvIHRoZSBvdmVybGF5LlxuICAgKiBAcGFyYW0gdGVtcGxhdGVSZWYgVGhlIGBUZW1wbGF0ZVJlZmAgdG8gYXR0YWNoLlxuICAgKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCB0byBwcm92aWRlIHRvIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2hUZW1wbGF0ZTxUPih0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8VD4sIGNvbnRleHQ/OiBUKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuYXR0YWNoVGVtcGxhdGUodGVtcGxhdGVSZWYsIGNvbnRleHQpO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,149 @@
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, Injector, Optional, ViewChild, ViewContainerRef, } from '@angular/core';
|
2
|
+
import { NavigationStart, Router } from '@angular/router';
|
3
|
+
import { Subject, fromEvent } from 'rxjs';
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
5
|
+
import { SkyCoreAdapterService } from '../adapter-service/adapter.service';
|
6
|
+
import { SkyOverlayContext } from './overlay-context';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
import * as i1 from "../adapter-service/adapter.service";
|
9
|
+
import * as i2 from "./overlay-context";
|
10
|
+
import * as i3 from "@angular/router";
|
11
|
+
import * as i4 from "@angular/common";
|
12
|
+
/**
|
13
|
+
* Omnibar is 1000.
|
14
|
+
* See: https://github.com/blackbaud/auth-client/blob/master/src/omnibar/omnibar.ts#L139
|
15
|
+
* ---
|
16
|
+
* Modals start their z-indexes at 1040. However, each modal's z-index is a multiple of 10, so it
|
17
|
+
* will be difficult to reliably predict a z-index that will always appear above all other
|
18
|
+
* layers. Starting the z-index for overlays at a number much greater than modals will accommodate
|
19
|
+
* the most reasonable of scenarios.
|
20
|
+
* See: https://github.com/blackbaud/skyux-modals/blob/master/src/app/public/modules/modal/modal-host.service.ts#L22
|
21
|
+
* (NOTE: It should be noted that modals do not use the overlay service, which is something we
|
22
|
+
* should do in the near future to make sure z-indexes are predictable across all component
|
23
|
+
* libraries.)
|
24
|
+
*/
|
25
|
+
let uniqueZIndex = 5000;
|
26
|
+
/**
|
27
|
+
* @internal
|
28
|
+
*/
|
29
|
+
export class SkyOverlayComponent {
|
30
|
+
constructor(changeDetector, resolver, injector, coreAdapter, context, router) {
|
31
|
+
this.changeDetector = changeDetector;
|
32
|
+
this.resolver = resolver;
|
33
|
+
this.injector = injector;
|
34
|
+
this.coreAdapter = coreAdapter;
|
35
|
+
this.context = context;
|
36
|
+
this.router = router;
|
37
|
+
this.wrapperClass = '';
|
38
|
+
this.enablePointerEvents = false;
|
39
|
+
this.showBackdrop = false;
|
40
|
+
this.zIndex = `${++uniqueZIndex}`;
|
41
|
+
this.ngUnsubscribe = new Subject();
|
42
|
+
this._backdropClick = new Subject();
|
43
|
+
this._closed = new Subject();
|
44
|
+
}
|
45
|
+
get backdropClick() {
|
46
|
+
return this._backdropClick.asObservable();
|
47
|
+
}
|
48
|
+
get closed() {
|
49
|
+
return this._closed.asObservable();
|
50
|
+
}
|
51
|
+
ngOnInit() {
|
52
|
+
this.applyConfig(this.context.config);
|
53
|
+
setTimeout(() => {
|
54
|
+
this.addBackdropClickListener();
|
55
|
+
});
|
56
|
+
if (this.context.config.closeOnNavigation) {
|
57
|
+
this.addRouteListener();
|
58
|
+
}
|
59
|
+
}
|
60
|
+
ngOnDestroy() {
|
61
|
+
this.removeRouteListener();
|
62
|
+
this.ngUnsubscribe.next();
|
63
|
+
this.ngUnsubscribe.complete();
|
64
|
+
this._backdropClick.complete();
|
65
|
+
this._closed.next();
|
66
|
+
this._closed.complete();
|
67
|
+
}
|
68
|
+
attachComponent(component, providers = []) {
|
69
|
+
this.targetRef.clear();
|
70
|
+
const factory = this.resolver.resolveComponentFactory(component);
|
71
|
+
const injector = Injector.create({
|
72
|
+
providers,
|
73
|
+
parent: this.injector,
|
74
|
+
});
|
75
|
+
const componentRef = this.targetRef.createComponent(factory, undefined, injector);
|
76
|
+
// Run an initial change detection cycle after the component has been created.
|
77
|
+
componentRef.changeDetectorRef.detectChanges();
|
78
|
+
return componentRef;
|
79
|
+
}
|
80
|
+
attachTemplate(templateRef, context) {
|
81
|
+
this.targetRef.clear();
|
82
|
+
return this.targetRef.createEmbeddedView(templateRef, context);
|
83
|
+
}
|
84
|
+
applyConfig(config) {
|
85
|
+
this.wrapperClass = config.wrapperClass || '';
|
86
|
+
this.showBackdrop = config.showBackdrop;
|
87
|
+
this.enablePointerEvents = config.enablePointerEvents;
|
88
|
+
this.changeDetector.markForCheck();
|
89
|
+
}
|
90
|
+
addBackdropClickListener() {
|
91
|
+
fromEvent(window.document, 'click')
|
92
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
93
|
+
.subscribe((event) => {
|
94
|
+
const isChild = this.overlayContentRef.nativeElement.contains(event.target);
|
95
|
+
const isAbove = this.coreAdapter.isTargetAboveElement(event.target, this.overlayRef.nativeElement);
|
96
|
+
/* istanbul ignore else */
|
97
|
+
if (!isChild && !isAbove) {
|
98
|
+
this._backdropClick.next();
|
99
|
+
if (this.context.config.enableClose) {
|
100
|
+
this._closed.next();
|
101
|
+
}
|
102
|
+
}
|
103
|
+
});
|
104
|
+
}
|
105
|
+
addRouteListener() {
|
106
|
+
/*istanbul ignore else*/
|
107
|
+
if (this.router) {
|
108
|
+
this.routerSubscription = this.router.events.subscribe((event) => {
|
109
|
+
/* istanbul ignore else */
|
110
|
+
if (event instanceof NavigationStart) {
|
111
|
+
this._closed.next();
|
112
|
+
}
|
113
|
+
});
|
114
|
+
}
|
115
|
+
}
|
116
|
+
removeRouteListener() {
|
117
|
+
if (this.routerSubscription) {
|
118
|
+
this.routerSubscription.unsubscribe();
|
119
|
+
this.routerSubscription = undefined;
|
120
|
+
}
|
121
|
+
}
|
122
|
+
}
|
123
|
+
SkyOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i1.SkyCoreAdapterService }, { token: i2.SkyOverlayContext }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
124
|
+
SkyOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyOverlayComponent, selector: "sky-overlay", viewQueries: [{ propertyName: "overlayContentRef", first: true, predicate: ["overlayContentRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "overlayRef", first: true, predicate: ["overlayRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "targetRef", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div\n [class]=\"wrapperClass\"\n [style.zIndex]=\"zIndex\"\n [ngClass]=\"{\n 'enable-pointer-events-pass-through': enablePointerEvents,\n 'sky-overlay': true\n }\"\n #overlayRef\n>\n <div class=\"sky-overlay-content\" #overlayContentRef>\n <ng-template #target> </ng-template>\n </div>\n <div *ngIf=\"showBackdrop\" class=\"sky-overlay-backdrop\"></div>\n</div>\n", styles: [".sky-overlay{position:fixed;top:0;right:0;left:0;bottom:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-content{position:relative;z-index:1;display:inline-flex;align-self:start;pointer-events:auto}.sky-overlay-backdrop{background:rgba(0,0,0,.5);top:0;right:0;left:0;bottom:0;width:100%;height:100%;position:absolute}.enable-pointer-events-pass-through,.enable-pointer-events-pass-through .sky-overlay-backdrop{pointer-events:none}.enable-pointer-events-pass-through .sky-overlay-content{pointer-events:auto}\n"], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayComponent, decorators: [{
|
126
|
+
type: Component,
|
127
|
+
args: [{ selector: 'sky-overlay', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"wrapperClass\"\n [style.zIndex]=\"zIndex\"\n [ngClass]=\"{\n 'enable-pointer-events-pass-through': enablePointerEvents,\n 'sky-overlay': true\n }\"\n #overlayRef\n>\n <div class=\"sky-overlay-content\" #overlayContentRef>\n <ng-template #target> </ng-template>\n </div>\n <div *ngIf=\"showBackdrop\" class=\"sky-overlay-backdrop\"></div>\n</div>\n", styles: [".sky-overlay{position:fixed;top:0;right:0;left:0;bottom:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-content{position:relative;z-index:1;display:inline-flex;align-self:start;pointer-events:auto}.sky-overlay-backdrop{background:rgba(0,0,0,.5);top:0;right:0;left:0;bottom:0;width:100%;height:100%;position:absolute}.enable-pointer-events-pass-through,.enable-pointer-events-pass-through .sky-overlay-backdrop{pointer-events:none}.enable-pointer-events-pass-through .sky-overlay-content{pointer-events:auto}\n"] }]
|
128
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i1.SkyCoreAdapterService }, { type: i2.SkyOverlayContext }, { type: i3.Router, decorators: [{
|
129
|
+
type: Optional
|
130
|
+
}] }]; }, propDecorators: { overlayContentRef: [{
|
131
|
+
type: ViewChild,
|
132
|
+
args: ['overlayContentRef', {
|
133
|
+
read: ElementRef,
|
134
|
+
static: true,
|
135
|
+
}]
|
136
|
+
}], overlayRef: [{
|
137
|
+
type: ViewChild,
|
138
|
+
args: ['overlayRef', {
|
139
|
+
read: ElementRef,
|
140
|
+
static: true,
|
141
|
+
}]
|
142
|
+
}], targetRef: [{
|
143
|
+
type: ViewChild,
|
144
|
+
args: ['target', {
|
145
|
+
read: ViewContainerRef,
|
146
|
+
static: true,
|
147
|
+
}]
|
148
|
+
}] } });
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9vdmVybGF5L292ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUV4QixVQUFVLEVBRVYsUUFBUSxFQUdSLFFBQVEsRUFJUixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUQsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7O0FBRXREOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztBQUV4Qjs7R0FFRztBQU9ILE1BQU0sT0FBTyxtQkFBbUI7SUEyQzlCLFlBQ1UsY0FBaUMsRUFDakMsUUFBa0MsRUFDbEMsUUFBa0IsRUFDbEIsV0FBa0MsRUFDbEMsT0FBMEIsRUFDZCxNQUFlO1FBTDNCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FB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RUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7U0FDckM7SUFDSCxDQUFDOztnSEExSlUsbUJBQW1CO29HQUFuQixtQkFBbUIsc0pBa0J0QixVQUFVLGlIQU1WLFVBQVUsNEdBTVYsZ0JBQWdCLDJDQ2xGMUIsK1hBY0E7MkZEc0NhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07OzBCQW1ENUMsUUFBUTs0Q0E1QkgsaUJBQWlCO3NCQUp4QixTQUFTO3VCQUFDLG1CQUFtQixFQUFFO3dCQUM5QixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBT08sVUFBVTtzQkFKakIsU0FBUzt1QkFBQyxZQUFZLEVBQUU7d0JBQ3ZCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTyxTQUFTO3NCQUpoQixTQUFTO3VCQUFDLFFBQVEsRUFBRTt3QkFDbkIsSUFBSSxFQUFFLGdCQUFnQjt3QkFDdEIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU3RhdGljUHJvdmlkZXIsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lDb3JlQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi9hZGFwdGVyLXNlcnZpY2UvYWRhcHRlci5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbmZpZyB9IGZyb20gJy4vb3ZlcmxheS1jb25maWcnO1xuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbnRleHQgfSBmcm9tICcuL292ZXJsYXktY29udGV4dCc7XG5cbi8qKlxuICogT21uaWJhciBpcyAxMDAwLlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYmxhY2tiYXVkL2F1dGgtY2xpZW50L2Jsb2IvbWFzdGVyL3NyYy9vbW5pYmFyL29tbmliYXIudHMjTDEzOVxuICogLS0tXG4gKiBNb2RhbHMgc3RhcnQgdGhlaXIgei1pbmRleGVzIGF0IDEwNDAuIEhvd2V2ZXIsIGVhY2ggbW9kYWwncyB6LWluZGV4IGlzIGEgbXVsdGlwbGUgb2YgMTAsIHNvIGl0XG4gKiB3aWxsIGJlIGRpZmZpY3VsdCB0byByZWxpYWJseSBwcmVkaWN0IGEgei1pbmRleCB0aGF0IHdpbGwgYWx3YXlzIGFwcGVhciBhYm92ZSBhbGwgb3RoZXJcbiAqIGxheWVycy4gU3RhcnRpbmcgdGhlIHotaW5kZXggZm9yIG92ZXJsYXlzIGF0IGEgbnVtYmVyIG11Y2ggZ3JlYXRlciB0aGFuIG1vZGFscyB3aWxsIGFjY29tbW9kYXRlXG4gKiB0aGUgbW9zdCByZWFzb25hYmxlIG9mIHNjZW5hcmlvcy5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2JsYWNrYmF1ZC9za3l1eC1tb2RhbHMvYmxvYi9tYXN0ZXIvc3JjL2FwcC9wdWJsaWMvbW9kdWxlcy9tb2RhbC9tb2RhbC1ob3N0LnNlcnZpY2UudHMjTDIyXG4gKiAoTk9URTogSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgbW9kYWxzIGRvIG5vdCB1c2UgdGhlIG92ZXJsYXkgc2VydmljZSwgd2hpY2ggaXMgc29tZXRoaW5nIHdlXG4gKiBzaG91bGQgZG8gaW4gdGhlIG5lYXIgZnV0dXJlIHRvIG1ha2Ugc3VyZSB6LWluZGV4ZXMgYXJlIHByZWRpY3RhYmxlIGFjcm9zcyBhbGwgY29tcG9uZW50XG4gKiBsaWJyYXJpZXMuKVxuICovXG5sZXQgdW5pcXVlWkluZGV4ID0gNTAwMDtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LW92ZXJsYXknLFxuICB0ZW1wbGF0ZVVybDogJy4vb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL292ZXJsYXkuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreU92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyB3cmFwcGVyQ2xhc3MgPSAnJztcblxuICBwdWJsaWMgZ2V0IGJhY2tkcm9wQ2xpY2soKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2JhY2tkcm9wQ2xpY2suYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3NlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZVBvaW50ZXJFdmVudHMgPSBmYWxzZTtcblxuICBwdWJsaWMgc2hvd0JhY2tkcm9wID0gZmFsc2U7XG5cbiAgcHVibGljIHpJbmRleCA9IGAkeysrdW5pcXVlWkluZGV4fWA7XG5cbiAgQFZpZXdDaGlsZCgnb3ZlcmxheUNvbnRlbnRSZWYnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgb3ZlcmxheUNvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnb3ZlcmxheVJlZicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldCcsIHtcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSB0YXJnZXRSZWY6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgX2JhY2tkcm9wQ2xpY2sgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2Nsb3NlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHQ6IFNreU92ZXJsYXlDb250ZXh0LFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGVyPzogUm91dGVyXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBseUNvbmZpZyh0aGlzLmNvbnRleHQuY29uZmlnKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hZGRCYWNrZHJvcENsaWNrTGlzdGVuZXIoKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbnRleHQuY29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uKSB7XG4gICAgICB0aGlzLmFkZFJvdXRlTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVSb3V0ZUxpc3RlbmVyKCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcblxuICAgIHRoaXMuX2JhY2tkcm9wQ2xpY2suY29tcGxldGUoKTtcblxuICAgIHRoaXMuX2Nsb3NlZC5uZXh0KCk7XG4gICAgdGhpcy5fY2xvc2VkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYXR0YWNoQ29tcG9uZW50PEM+KFxuICAgIGNvbXBvbmVudDogVHlwZTxDPixcbiAgICBwcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXVxuICApOiBDb21wb25lbnRSZWY8Qz4ge1xuICAgIHRoaXMudGFyZ2V0UmVmLmNsZWFyKCk7XG5cbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVycyxcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudGFyZ2V0UmVmLmNyZWF0ZUNvbXBvbmVudDxDPihcbiAgICAgIGZhY3RvcnksXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBpbmplY3RvclxuICAgICk7XG5cbiAgICAvLyBSdW4gYW4gaW5pdGlhbCBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIGFmdGVyIHRoZSBjb21wb25lbnQgaGFzIGJlZW4gY3JlYXRlZC5cbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHB1YmxpYyBhdHRhY2hUZW1wbGF0ZTxUPihcbiAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8VD4sXG4gICAgY29udGV4dDogVFxuICApOiBFbWJlZGRlZFZpZXdSZWY8VD4ge1xuICAgIHRoaXMudGFyZ2V0UmVmLmNsZWFyKCk7XG5cbiAgICByZXR1cm4gdGhpcy50YXJnZXRSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlUmVmLCBjb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlDb25maWcoY29uZmlnOiBTa3lPdmVybGF5Q29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy53cmFwcGVyQ2xhc3MgPSBjb25maWcud3JhcHBlckNsYXNzIHx8ICcnO1xuICAgIHRoaXMuc2hvd0JhY2tkcm9wID0gY29uZmlnLnNob3dCYWNrZHJvcDtcbiAgICB0aGlzLmVuYWJsZVBvaW50ZXJFdmVudHMgPSBjb25maWcuZW5hYmxlUG9pbnRlckV2ZW50cztcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRCYWNrZHJvcENsaWNrTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHdpbmRvdy5kb2N1bWVudCwgJ2NsaWNrJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgaXNDaGlsZCA9IHRoaXMub3ZlcmxheUNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhcbiAgICAgICAgICBldmVudC50YXJnZXRcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaXNBYm92ZSA9IHRoaXMuY29yZUFkYXB0ZXIuaXNUYXJnZXRBYm92ZUVsZW1lbnQoXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LFxuICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICk7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKCFpc0NoaWxkICYmICFpc0Fib3ZlKSB7XG4gICAgICAgICAgdGhpcy5fYmFja2Ryb3BDbGljay5uZXh0KCk7XG4gICAgICAgICAgaWYgKHRoaXMuY29udGV4dC5jb25maWcuZW5hYmxlQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlZC5uZXh0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUm91dGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy5yb3V0ZXIpIHtcbiAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgdGhpcy5fY2xvc2VkLm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVSb3V0ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvdXRlclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbY2xhc3NdPVwid3JhcHBlckNsYXNzXCJcbiAgW3N0eWxlLnpJbmRleF09XCJ6SW5kZXhcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ2VuYWJsZS1wb2ludGVyLWV2ZW50cy1wYXNzLXRocm91Z2gnOiBlbmFibGVQb2ludGVyRXZlbnRzLFxuICAgICdza3ktb3ZlcmxheSc6IHRydWVcbiAgfVwiXG4gICNvdmVybGF5UmVmXG4+XG4gIDxkaXYgY2xhc3M9XCJza3ktb3ZlcmxheS1jb250ZW50XCIgI292ZXJsYXlDb250ZW50UmVmPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGFyZ2V0PiA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dCYWNrZHJvcFwiIGNsYXNzPVwic2t5LW92ZXJsYXktYmFja2Ryb3BcIj48L2Rpdj5cbjwvZGl2PlxuIl19
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { NgModule } from '@angular/core';
|
3
|
+
import { SkyOverlayComponent } from './overlay.component';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class SkyOverlayModule {
|
6
|
+
}
|
7
|
+
SkyOverlayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
8
|
+
SkyOverlayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayModule, declarations: [SkyOverlayComponent], imports: [CommonModule] });
|
9
|
+
SkyOverlayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayModule, imports: [[CommonModule]] });
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayModule, decorators: [{
|
11
|
+
type: NgModule,
|
12
|
+
args: [{
|
13
|
+
imports: [CommonModule],
|
14
|
+
declarations: [SkyOverlayComponent],
|
15
|
+
}]
|
16
|
+
}] });
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFNMUQsTUFBTSxPQUFPLGdCQUFnQjs7NkdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGlCQUZaLG1CQUFtQixhQUR4QixZQUFZOzhHQUdYLGdCQUFnQixZQUhsQixDQUFDLFlBQVksQ0FBQzsyRkFHWixnQkFBZ0I7a0JBSjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbU2t5T3ZlcmxheUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreU92ZXJsYXlNb2R1bGUge31cbiJdfQ==
|