@skyux/core 8.7.0 → 9.0.0-alpha.0
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/{esm2020 → esm2022}/lib/modules/adapter-service/adapter.module.mjs +5 -5
- package/esm2022/lib/modules/adapter-service/adapter.service.mjs +225 -0
- package/esm2022/lib/modules/affix/affix.directive.mjs +116 -0
- package/{esm2020 → esm2022}/lib/modules/affix/affix.module.mjs +5 -5
- package/esm2022/lib/modules/affix/affix.service.mjs +25 -0
- package/esm2022/lib/modules/affix/affixer.mjs +398 -0
- package/esm2022/lib/modules/default-input-provider/default-input-provider.mjs +26 -0
- package/esm2022/lib/modules/dock/dock-dom-adapter.service.mjs +81 -0
- package/esm2022/lib/modules/dock/dock-item.mjs +31 -0
- package/esm2022/lib/modules/dock/dock.component.mjs +108 -0
- package/{esm2020 → esm2022}/lib/modules/dock/dock.module.mjs +5 -5
- package/esm2022/lib/modules/dock/dock.service.mjs +96 -0
- package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component.module.mjs +5 -5
- package/esm2022/lib/modules/dynamic-component/dynamic-component.service.mjs +106 -0
- package/{esm2020 → esm2022}/lib/modules/format/app-format.mjs +4 -4
- package/esm2022/lib/modules/id/id.directive.mjs +31 -0
- package/{esm2020 → esm2022}/lib/modules/id/id.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/id/id.service.mjs +4 -4
- package/esm2022/lib/modules/layout-host/layout-host.service.mjs +22 -0
- package/esm2022/lib/modules/live-announcer/live-announcer.service.mjs +79 -0
- package/{esm2020 → esm2022}/lib/modules/log/log.module.mjs +5 -5
- package/esm2022/lib/modules/log/log.service.mjs +148 -0
- package/{esm2020 → esm2022}/lib/modules/media-query/media-query.module.mjs +5 -5
- package/esm2022/lib/modules/media-query/media-query.service.mjs +123 -0
- package/{esm2020 → esm2022}/lib/modules/mutation/mutation-observer-service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/numeric/numeric.module.mjs +5 -5
- package/esm2022/lib/modules/numeric/numeric.pipe.mjs +81 -0
- package/esm2022/lib/modules/numeric/numeric.service.mjs +205 -0
- package/esm2022/lib/modules/overlay/overlay-adapter.service.mjs +44 -0
- package/esm2022/lib/modules/overlay/overlay-instance.mjs +62 -0
- package/esm2022/lib/modules/overlay/overlay.component.mjs +193 -0
- package/{esm2020 → esm2022}/lib/modules/overlay/overlay.module.mjs +5 -5
- package/esm2022/lib/modules/overlay/overlay.service.mjs +124 -0
- package/{esm2020 → esm2022}/lib/modules/percent-pipe/percent-pipe.module.mjs +5 -5
- package/esm2022/lib/modules/percent-pipe/percent.pipe.mjs +56 -0
- package/esm2022/lib/modules/resize-observer/resize-observer-media-query.service.mjs +120 -0
- package/esm2022/lib/modules/resize-observer/resize-observer.service.mjs +77 -0
- package/esm2022/lib/modules/scrollable-host/scrollable-host.service.mjs +223 -0
- package/esm2022/lib/modules/shared/number-format/number-format-utility.mjs +72 -0
- package/esm2022/lib/modules/shared/sky-core-resources.module.mjs +50 -0
- package/esm2022/lib/modules/title/title.service.mjs +31 -0
- package/esm2022/lib/modules/trim/trim.directive.mjs +64 -0
- package/{esm2020 → esm2022}/lib/modules/trim/trim.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/ui-config/ui-config.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-host-options.mjs +4 -4
- package/esm2022/lib/modules/viewkeeper/viewkeeper.directive.mjs +131 -0
- package/esm2022/lib/modules/viewkeeper/viewkeeper.mjs +283 -0
- package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper.module.mjs +5 -5
- package/esm2022/lib/modules/viewkeeper/viewkeeper.service.mjs +39 -0
- package/{esm2020 → esm2022}/lib/modules/window/window-ref.mjs +4 -4
- package/esm2022/testing/core-testing.module.mjs +32 -0
- package/esm2022/testing/mock-media-query.service.mjs +46 -0
- package/{esm2020 → esm2022}/testing/mock-ui-config.service.mjs +4 -4
- package/esm2022/testing/overlay/overlay-harness.mjs +43 -0
- package/esm2022/testing/shared/component-harness.mjs +13 -0
- package/{fesm2020 → fesm2022}/skyux-core-testing.mjs +28 -34
- package/{fesm2020 → fesm2022}/skyux-core-testing.mjs.map +1 -1
- package/fesm2022/skyux-core.mjs +3858 -0
- package/fesm2022/skyux-core.mjs.map +1 -0
- package/lib/modules/affix/affix.directive.d.ts +1 -1
- package/lib/modules/viewkeeper/viewkeeper.directive.d.ts +1 -1
- package/package.json +14 -22
- package/esm2020/lib/modules/adapter-service/adapter.service.mjs +0 -227
- package/esm2020/lib/modules/affix/affix.directive.mjs +0 -118
- package/esm2020/lib/modules/affix/affix.service.mjs +0 -28
- package/esm2020/lib/modules/affix/affixer.mjs +0 -377
- package/esm2020/lib/modules/default-input-provider/default-input-provider.mjs +0 -31
- package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +0 -83
- package/esm2020/lib/modules/dock/dock-item.mjs +0 -34
- package/esm2020/lib/modules/dock/dock.component.mjs +0 -110
- package/esm2020/lib/modules/dock/dock.service.mjs +0 -98
- package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +0 -109
- package/esm2020/lib/modules/id/id.directive.mjs +0 -34
- package/esm2020/lib/modules/layout-host/layout-host.service.mjs +0 -27
- package/esm2020/lib/modules/live-announcer/live-announcer.service.mjs +0 -80
- package/esm2020/lib/modules/log/log.service.mjs +0 -147
- package/esm2020/lib/modules/media-query/media-query.service.mjs +0 -124
- package/esm2020/lib/modules/numeric/numeric.pipe.mjs +0 -84
- package/esm2020/lib/modules/numeric/numeric.service.mjs +0 -179
- package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +0 -47
- package/esm2020/lib/modules/overlay/overlay-instance.mjs +0 -65
- package/esm2020/lib/modules/overlay/overlay.component.mjs +0 -192
- package/esm2020/lib/modules/overlay/overlay.service.mjs +0 -125
- package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +0 -59
- package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +0 -121
- package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +0 -79
- package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +0 -218
- package/esm2020/lib/modules/shared/number-format/number-format-utility.mjs +0 -72
- package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +0 -50
- package/esm2020/lib/modules/title/title.service.mjs +0 -34
- package/esm2020/lib/modules/trim/trim.directive.mjs +0 -65
- package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +0 -131
- package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +0 -276
- package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +0 -42
- package/esm2020/testing/core-testing.module.mjs +0 -32
- package/esm2020/testing/mock-media-query.service.mjs +0 -46
- package/esm2020/testing/overlay/overlay-harness.mjs +0 -43
- package/esm2020/testing/shared/component-harness.mjs +0 -19
- package/fesm2015/skyux-core-testing.mjs +0 -209
- package/fesm2015/skyux-core-testing.mjs.map +0 -1
- package/fesm2015/skyux-core.mjs +0 -3835
- package/fesm2015/skyux-core.mjs.map +0 -1
- package/fesm2020/skyux-core.mjs +0 -3825
- package/fesm2020/skyux-core.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/adapter-service/focusable-children-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-auto-fit-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-horizontal-alignment.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-rect.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-vertical-alignment.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/dom-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-insert-component-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-reference.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/sort-by-stack-order.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/layout-host/layout-host-for-child-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-politeness.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/log/types/log-deprecation-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/log/types/log-level-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/log/types/log-level.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/media-query/media-breakpoints.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/media-query/media-query-listener.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/numeric/numeric-symbol.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/numeric/numeric.options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/title/set-title-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-fixed-styles.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-offset.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-options.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-core.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/overlay/overlay-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/shared/harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/skyux-core-testing.mjs +0 -0
@@ -0,0 +1,205 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { SkyIntlNumberFormatStyle } 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
|
+
#resourcesSvc;
|
8
|
+
#symbolIndex;
|
9
|
+
constructor(resourcesSvc) {
|
10
|
+
/**
|
11
|
+
* The browser's current locale.
|
12
|
+
* @internal
|
13
|
+
*/
|
14
|
+
this.currentLocale = 'en-US';
|
15
|
+
/**
|
16
|
+
* @internal
|
17
|
+
*/
|
18
|
+
this.shortSymbol = '';
|
19
|
+
this.#resourcesSvc = resourcesSvc;
|
20
|
+
this.#symbolIndex = [
|
21
|
+
{ value: 1e12, label: this.#getSymbol('skyux_numeric_trillions_symbol') },
|
22
|
+
{ value: 1e9, label: this.#getSymbol('skyux_numeric_billions_symbol') },
|
23
|
+
{ value: 1e6, label: this.#getSymbol('skyux_numeric_millions_symbol') },
|
24
|
+
{ value: 1e3, label: this.#getSymbol('skyux_numeric_thousands_symbol') },
|
25
|
+
];
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* Formats a number based on the provided options.
|
29
|
+
* @param value The number to format.
|
30
|
+
* @param options Format options.
|
31
|
+
*/
|
32
|
+
formatNumber(value, options) {
|
33
|
+
if (isNaN(value) || value === null) {
|
34
|
+
return '';
|
35
|
+
}
|
36
|
+
const numericOptions = {
|
37
|
+
digits: 0,
|
38
|
+
format: 'number',
|
39
|
+
currencySign: 'standard',
|
40
|
+
iso: 'USD',
|
41
|
+
truncateAfter: 1000,
|
42
|
+
...options,
|
43
|
+
};
|
44
|
+
const decimalPlaceRegExp = /\.0+$|(\.[0-9]*[1-9])0+$/;
|
45
|
+
const locale = numericOptions.locale || this.currentLocale;
|
46
|
+
const digits = numericOptions.digits || 0;
|
47
|
+
// Get the symbol for the number after rounding, since rounding could push the number
|
48
|
+
// into a different symbol range.
|
49
|
+
let roundedNumber = this.#roundNumber(value, digits);
|
50
|
+
const roundedNumberAbs = Math.abs(roundedNumber);
|
51
|
+
let suffix = '';
|
52
|
+
for (let i = 0; i < this.#symbolIndex.length; i++) {
|
53
|
+
let symbol = this.#symbolIndex[i];
|
54
|
+
if (numericOptions.truncate &&
|
55
|
+
numericOptions.truncateAfter !== undefined &&
|
56
|
+
roundedNumberAbs >= numericOptions.truncateAfter &&
|
57
|
+
roundedNumberAbs >= symbol.value) {
|
58
|
+
roundedNumber = this.#roundNumber(value / symbol.value, digits);
|
59
|
+
if (Math.abs(roundedNumber) === 1000 && i > 0) {
|
60
|
+
// Rounding caused the number to cross into the range of the next symbol.
|
61
|
+
symbol = this.#symbolIndex[i - 1];
|
62
|
+
roundedNumber /= 1000;
|
63
|
+
}
|
64
|
+
suffix = symbol.label;
|
65
|
+
break;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
let output = roundedNumber.toString().replace(decimalPlaceRegExp, '$1') + suffix;
|
69
|
+
this.#storeShortenSymbol(output);
|
70
|
+
let digitsFormatted;
|
71
|
+
let isDecimal = false;
|
72
|
+
// Checks the string entered for format. Using toLowerCase to ignore case.
|
73
|
+
switch (numericOptions.format?.toLowerCase()) {
|
74
|
+
// In a case where a decimal value was not shortened and
|
75
|
+
// the digit input is 2 or higher, it forces 2 digits.
|
76
|
+
// For example, this prevents a value like $15.50 from displaying as $15.5.
|
77
|
+
// Note: This will need to be reviewed if we support currencies with
|
78
|
+
// three decimal digits.
|
79
|
+
case 'currency':
|
80
|
+
isDecimal = value % 1 !== 0;
|
81
|
+
if (numericOptions.minDigits) {
|
82
|
+
digitsFormatted = `1.${numericOptions.minDigits}-${digits}`;
|
83
|
+
}
|
84
|
+
else if (isDecimal && digits >= 2) {
|
85
|
+
digitsFormatted = `1.2-${digits}`;
|
86
|
+
}
|
87
|
+
else {
|
88
|
+
digitsFormatted = `1.0-${digits}`;
|
89
|
+
}
|
90
|
+
output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Currency, digitsFormatted, numericOptions.iso,
|
91
|
+
// Angular 5+ needs a string for this parameter, but Angular 4 needs a boolean.
|
92
|
+
// To support both versions we can supply 'symbol' which will evaluate truthy for Angular 4
|
93
|
+
// and the appropriate string value for Angular 5+.
|
94
|
+
// See: https://angular.io/api/common/CurrencyPipe#parameters
|
95
|
+
'symbol', numericOptions.currencySign);
|
96
|
+
// ^^^^^^ Result can't be null since the sanitized input is always a number.
|
97
|
+
break;
|
98
|
+
// The following is a catch-all to ensure that if
|
99
|
+
// anything but currency (or a future option) are entered,
|
100
|
+
// it will be treated like a number.
|
101
|
+
default:
|
102
|
+
// Ensures localization of the number to ensure comma and
|
103
|
+
// decimal separator
|
104
|
+
if (numericOptions.minDigits) {
|
105
|
+
digitsFormatted = `1.${numericOptions.minDigits}-${digits}`;
|
106
|
+
}
|
107
|
+
else if (numericOptions.truncate) {
|
108
|
+
digitsFormatted = `1.0-${digits}`;
|
109
|
+
}
|
110
|
+
else {
|
111
|
+
digitsFormatted = `1.${digits}-${digits}`;
|
112
|
+
}
|
113
|
+
output = SkyNumberFormatUtility.formatNumber(locale, parseFloat(output), SkyIntlNumberFormatStyle.Decimal, digitsFormatted);
|
114
|
+
// ^^^^^^ Result can't be null since the sanitized input is always a number.
|
115
|
+
break;
|
116
|
+
}
|
117
|
+
if (numericOptions.truncate) {
|
118
|
+
output = this.#replaceShortenSymbol(output);
|
119
|
+
}
|
120
|
+
return output;
|
121
|
+
}
|
122
|
+
/**
|
123
|
+
* Rounds a given number
|
124
|
+
*
|
125
|
+
* JS's limitation - numbers bigger than Number.MIN_SAFE_INTEGER or Number.MAX_SAFE_INTEGER
|
126
|
+
* are not guaranteed to be represented or rounded correctly
|
127
|
+
* @param value - value to round
|
128
|
+
* @param precision - what precision to round with, defaults to 0 decimal places
|
129
|
+
*/
|
130
|
+
#roundNumber(value, precision) {
|
131
|
+
if (precision < 0) {
|
132
|
+
throw new Error('SkyInvalidArgument: precision must be >= 0');
|
133
|
+
}
|
134
|
+
/* Sanity check - ignoring coverage but should not ignore if we make this method public */
|
135
|
+
/* istanbul ignore next */
|
136
|
+
if (isNaN(value) || value === null) {
|
137
|
+
return 0;
|
138
|
+
}
|
139
|
+
const scaledValue = this.#scaleNumberByPowerOfTen(value, precision, true);
|
140
|
+
const scaledRoundedValue = Math.round(scaledValue);
|
141
|
+
const unscaledRoundedValue = this.#scaleNumberByPowerOfTen(scaledRoundedValue, precision, false);
|
142
|
+
return unscaledRoundedValue;
|
143
|
+
}
|
144
|
+
/**
|
145
|
+
* Scales a given number by a power of 10
|
146
|
+
* @param value - value to scale
|
147
|
+
* @param scalar - 10^scalar
|
148
|
+
* @param scaleUp - whether to increase or decrease the value
|
149
|
+
*/
|
150
|
+
#scaleNumberByPowerOfTen(value, scalar, scaleUp) {
|
151
|
+
const valueStr = value.toString().toLowerCase();
|
152
|
+
const isExponentFormat = valueStr.includes('e');
|
153
|
+
if (isExponentFormat) {
|
154
|
+
const [base, exp] = valueStr.split('e');
|
155
|
+
const newExp = scaleUp ? Number(exp) + scalar : Number(exp) - scalar;
|
156
|
+
return Number(`${base}e${newExp}`);
|
157
|
+
}
|
158
|
+
else {
|
159
|
+
const e = scaleUp ? 'e' : 'e-';
|
160
|
+
return Number(`${value}${e}${scalar}`);
|
161
|
+
}
|
162
|
+
}
|
163
|
+
/**
|
164
|
+
* Stores the symbol added from shortening to reapply later.
|
165
|
+
* @param value The string to derive the shorten symbol from.
|
166
|
+
*/
|
167
|
+
#storeShortenSymbol(value) {
|
168
|
+
const symbols = this.#symbolIndex.map((s) => s.label);
|
169
|
+
const regexp = new RegExp(symbols.join('|'), 'ig');
|
170
|
+
const match = value.match(regexp);
|
171
|
+
this.shortSymbol = match ? match.toString() : '';
|
172
|
+
}
|
173
|
+
/**
|
174
|
+
* Must have previously called storeShortenSymbol to have something to replace.
|
175
|
+
* Finds the last number in the formatted number, gets the index of the position
|
176
|
+
* after that character and re-inserts the symbol.
|
177
|
+
* Works regardless of currency symbol position.
|
178
|
+
* @param value The string to modify.
|
179
|
+
*/
|
180
|
+
#replaceShortenSymbol(value) {
|
181
|
+
const result = /(\d)(?!.*\d)/g.exec(value);
|
182
|
+
/*istanbul ignore else*/
|
183
|
+
if (result) {
|
184
|
+
const pos = result.index + result.length;
|
185
|
+
const output = value.substring(0, pos) + this.shortSymbol + value.substring(pos);
|
186
|
+
return output;
|
187
|
+
}
|
188
|
+
else {
|
189
|
+
return value;
|
190
|
+
}
|
191
|
+
}
|
192
|
+
#getSymbol(key) {
|
193
|
+
// TODO: Need to implement the async `getString` method in a breaking change.
|
194
|
+
return this.#resourcesSvc.getStringForLocale({ locale: 'en_US' }, key);
|
195
|
+
}
|
196
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyNumericService, deps: [{ token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
197
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyNumericService, providedIn: 'any' }); }
|
198
|
+
}
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyNumericService, decorators: [{
|
200
|
+
type: Injectable,
|
201
|
+
args: [{
|
202
|
+
providedIn: 'any',
|
203
|
+
}]
|
204
|
+
}], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }]; } });
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUEwQixNQUFNLGFBQWEsQ0FBQztBQUUvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7O0FBUXZGLE1BQU0sT0FBTyxpQkFBaUI7SUFZNUIsYUFBYSxDQUF5QjtJQUV0QyxZQUFZLENBQXFCO0lBRWpDLFlBQVksWUFBb0M7UUFmaEQ7OztXQUdHO1FBQ0ksa0JBQWEsR0FBRyxPQUFPLENBQUM7UUFFL0I7O1dBRUc7UUFDSSxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQU90QixJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUVsQyxJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFO1lBQ3pFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFO1lBQ3ZFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFO1lBQ3ZFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFO1NBQ3pFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFlBQVksQ0FBQyxLQUFhLEVBQUUsT0FB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LGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OEdBdFBVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLEtBQUs7OzJGQUVOLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUsIFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IFNreU51bWJlckZvcm1hdFV0aWxpdHkgfSBmcm9tICcuLi9zaGFyZWQvbnVtYmVyLWZvcm1hdC9udW1iZXItZm9ybWF0LXV0aWxpdHknO1xuXG5pbXBvcnQgeyBTa3lOdW1lcmljU3ltYm9sIH0gZnJvbSAnLi9udW1lcmljLXN5bWJvbCc7XG5pbXBvcnQgeyBTa3lOdW1lcmljT3B0aW9ucyB9IGZyb20gJy4vbnVtZXJpYy5vcHRpb25zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TnVtZXJpY1NlcnZpY2Uge1xuICAvKipcbiAgICogVGhlIGJyb3dzZXIncyBjdXJyZW50IGxvY2FsZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgY3VycmVudExvY2FsZSA9ICdlbi1VUyc7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNob3J0U3ltYm9sID0gJyc7XG5cbiAgI3Jlc291cmNlc1N2YzogU2t5TGliUmVzb3VyY2VzU2VydmljZTtcblxuICAjc3ltYm9sSW5kZXg6IFNreU51bWVyaWNTeW1ib2xbXTtcblxuICBjb25zdHJ1Y3RvcihyZXNvdXJjZXNTdmM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UpIHtcbiAgICB0aGlzLiNyZXNvdXJjZXNTdmMgPSByZXNvdXJjZXNTdmM7XG5cbiAgICB0aGlzLiNzeW1ib2xJbmRleCA9IFtcbiAgICAgIHsgdmFsdWU6IDFlMTIsIGxhYmVsOiB0aGlzLiNnZXRTeW1ib2woJ3NreXV4X251bWVyaWNfdHJpbGxpb25zX3N5bWJvbCcpIH0sXG4gICAgICB7IHZhbHVlOiAxZTksIGxhYmVsOiB0aGlzLiNnZXRTeW1ib2woJ3NreXV4X251bWVyaWNfYmlsbGlvbnNfc3ltYm9sJykgfSxcbiAgICAgIHsgdmFsdWU6IDFlNiwgbGFiZWw6IHRoaXMuI2dldFN5bWJvbCgnc2t5dXhfbnVtZXJpY19taWxsaW9uc19zeW1ib2wnKSB9LFxuICAgICAgeyB2YWx1ZTogMWUzLCBsYWJlbDogdGhpcy4jZ2V0U3ltYm9sKCdza3l1eF9udW1lcmljX3Rob3VzYW5kc19zeW1ib2wnKSB9LFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0cyBhIG51bWJlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgb3B0aW9ucy5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBudW1iZXIgdG8gZm9ybWF0LlxuICAgKiBAcGFyYW0gb3B0aW9ucyBGb3JtYXQgb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciwgb3B0aW9uczogU2t5TnVtZXJpY09wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmIChpc05hTih2YWx1ZSkgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBudW1lcmljT3B0aW9uczogU2t5TnVtZXJpY09wdGlvbnMgPSB7XG4gICAgICBkaWdpdHM6IDAsXG4gICAgICBmb3JtYXQ6ICdudW1iZXInLFxuICAgICAgY3VycmVuY3lTaWduOiAnc3RhbmRhcmQnLFxuICAgICAgaXNvOiAnVVNEJyxcbiAgICAgIHRydW5jYXRlQWZ0ZXI6IDEwMDAsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICBjb25zdCBkZWNpbWFsUGxhY2VSZWdFeHAgPSAvXFwuMCskfChcXC5bMC05XSpbMS05XSkwKyQvO1xuICAgIGNvbnN0IGxvY2FsZSA9IG51bWVyaWNPcHRpb25zLmxvY2FsZSB8fCB0aGlzLmN1cnJlbnRMb2NhbGU7XG4gICAgY29uc3QgZGlnaXRzID0gbnVtZXJpY09wdGlvbnMuZGlnaXRzIHx8IDA7XG5cbiAgICAvLyBHZXQgdGhlIHN5bWJvbCBmb3IgdGhlIG51bWJlciBhZnRlciByb3VuZGluZywgc2luY2Ugcm91bmRpbmcgY291bGQgcHVzaCB0aGUgbnVtYmVyXG4gICAgLy8gaW50byBhIGRpZmZlcmVudCBzeW1ib2wgcmFuZ2UuXG4gICAgbGV0IHJvdW5kZWROdW1iZXIgPSB0aGlzLiNyb3VuZE51bWJlcih2YWx1ZSwgZGlnaXRzKTtcbiAgICBjb25zdCByb3VuZGVkTnVtYmVyQWJzID0gTWF0aC5hYnMocm91bmRlZE51bWJlcik7XG5cbiAgICBsZXQgc3VmZml4ID0gJyc7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuI3N5bWJvbEluZGV4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgc3ltYm9sID0gdGhpcy4jc3ltYm9sSW5kZXhbaV07XG5cbiAgICAgIGlmIChcbiAgICAgICAgbnVtZXJpY09wdGlvbnMudHJ1bmNhdGUgJiZcbiAgICAgICAgbnVtZXJpY09wdGlvbnMudHJ1bmNhdGVBZnRlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHJvdW5kZWROdW1iZXJBYnMgPj0gbnVtZXJpY09wdGlvbnMudHJ1bmNhdGVBZnRlciAmJlxuICAgICAgICByb3VuZGVkTnVtYmVyQWJzID49IHN5bWJvbC52YWx1ZVxuICAgICAgKSB7XG4gICAgICAgIHJvdW5kZWROdW1iZXIgPSB0aGlzLiNyb3VuZE51bWJlcih2YWx1ZSAvIHN5bWJvbC52YWx1ZSwgZGlnaXRzKTtcblxuICAgICAgICBpZiAoTWF0aC5hYnMocm91bmRlZE51bWJlcikgPT09IDEwMDAgJiYgaSA+IDApIHtcbiAgICAgICAgICAvLyBSb3VuZGluZyBjYXVzZWQgdGhlIG51bWJlciB0byBjcm9zcyBpbnRvIHRoZSByYW5nZSBvZiB0aGUgbmV4dCBzeW1ib2wuXG4gICAgICAgICAgc3ltYm9sID0gdGhpcy4jc3ltYm9sSW5kZXhbaSAtIDFdO1xuICAgICAgICAgIHJvdW5kZWROdW1iZXIgLz0gMTAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1ZmZpeCA9IHN5bWJvbC5sYWJlbDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgb3V0cHV0OiBzdHJpbmcgPVxuICAgICAgcm91bmRlZE51bWJlci50b1N0cmluZygpLnJlcGxhY2UoZGVjaW1hbFBsYWNlUmVnRXhwLCAnJDEnKSArIHN1ZmZpeDtcblxuICAgIHRoaXMuI3N0b3JlU2hvcnRlblN5bWJvbChvdXRwdXQpO1xuXG4gICAgbGV0IGRpZ2l0c0Zvcm1hdHRlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBpc0RlY2ltYWwgPSBmYWxzZTtcblxuICAgIC8vIENoZWNrcyB0aGUgc3RyaW5nIGVudGVyZWQgZm9yIGZvcm1hdC4gVXNpbmcgdG9Mb3dlckNhc2UgdG8gaWdub3JlIGNhc2UuXG4gICAgc3dpdGNoIChudW1lcmljT3B0aW9ucy5mb3JtYXQ/LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIC8vIEluIGEgY2FzZSB3aGVyZSBhIGRlY2ltYWwgdmFsdWUgd2FzIG5vdCBzaG9ydGVuZWQgYW5kXG4gICAgICAvLyB0aGUgZGlnaXQgaW5wdXQgaXMgMiBvciBoaWdoZXIsIGl0IGZvcmNlcyAyIGRpZ2l0cy5cbiAgICAgIC8vIEZvciBleGFtcGxlLCB0aGlzIHByZXZlbnRzIGEgdmFsdWUgbGlrZSAkMTUuNTAgZnJvbSBkaXNwbGF5aW5nIGFzICQxNS41LlxuICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIG5lZWQgdG8gYmUgcmV2aWV3ZWQgaWYgd2Ugc3VwcG9ydCBjdXJyZW5jaWVzIHdpdGhcbiAgICAgIC8vIHRocmVlIGRlY2ltYWwgZGlnaXRzLlxuICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICBpc0RlY2ltYWwgPSB2YWx1ZSAlIDEgIT09IDA7XG5cbiAgICAgICAgaWYgKG51bWVyaWNPcHRpb25zLm1pbkRpZ2l0cykge1xuICAgICAgICAgIGRpZ2l0c0Zvcm1hdHRlZCA9IGAxLiR7bnVtZXJpY09wdGlvbnMubWluRGlnaXRzfS0ke2RpZ2l0c31gO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVjaW1hbCAmJiBkaWdpdHMgPj0gMikge1xuICAgICAgICAgIGRpZ2l0c0Zvcm1hdHRlZCA9IGAxLjItJHtkaWdpdHN9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaWdpdHNGb3JtYXR0ZWQgPSBgMS4wLSR7ZGlnaXRzfWA7XG4gICAgICAgIH1cblxuICAgICAgICBvdXRwdXQgPSBTa3lOdW1iZXJGb3JtYXRVdGlsaXR5LmZvcm1hdE51bWJlcihcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgcGFyc2VGbG9hdChvdXRwdXQpLFxuICAgICAgICAgIFNreUludGxOdW1iZXJGb3JtYXRTdHlsZS5DdXJyZW5jeSxcbiAgICAgICAgICBkaWdpdHNGb3JtYXR0ZWQsXG4gICAgICAgICAgbnVtZXJpY09wdGlvbnMuaXNvLFxuICAgICAgICAgIC8vIEFuZ3VsYXIgNSsgbmVlZHMgYSBzdHJpbmcgZm9yIHRoaXMgcGFyYW1ldGVyLCBidXQgQW5ndWxhciA0IG5lZWRzIGEgYm9vbGVhbi5cbiAgICAgICAgICAvLyBUbyBzdXBwb3J0IGJvdGggdmVyc2lvbnMgd2UgY2FuIHN1cHBseSAnc3ltYm9sJyB3aGljaCB3aWxsIGV2YWx1YXRlIHRydXRoeSBmb3IgQW5ndWxhciA0XG4gICAgICAgICAgLy8gYW5kIHRoZSBhcHByb3ByaWF0ZSBzdHJpbmcgdmFsdWUgZm9yIEFuZ3VsYXIgNSsuXG4gICAgICAgICAgLy8gU2VlOiBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvbW1vbi9DdXJyZW5jeVBpcGUjcGFyYW1ldGVyc1xuICAgICAgICAgICdzeW1ib2wnIGFzIGFueSxcbiAgICAgICAgICBudW1lcmljT3B0aW9ucy5jdXJyZW5jeVNpZ25cbiAgICAgICAgKSBhcyBzdHJpbmc7XG4gICAgICAgIC8vICAgXl5eXl5eIFJlc3VsdCBjYW4ndCBiZSBudWxsIHNpbmNlIHRoZSBzYW5pdGl6ZWQgaW5wdXQgaXMgYWx3YXlzIGEgbnVtYmVyLlxuICAgICAgICBicmVhaztcblxuICAgICAgLy8gVGhlIGZvbGxvd2luZyBpcyBhIGNhdGNoLWFsbCB0byBlbnN1cmUgdGhhdCBpZlxuICAgICAgLy8gYW55dGhpbmcgYnV0IGN1cnJlbmN5IChvciBhIGZ1dHVyZSBvcHRpb24pIGFyZSBlbnRlcmVkLFxuICAgICAgLy8gaXQgd2lsbCBiZSB0cmVhdGVkIGxpa2UgYSBudW1iZXIuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBFbnN1cmVzIGxvY2FsaXphdGlvbiBvZiB0aGUgbnVtYmVyIHRvIGVuc3VyZSBjb21tYSBhbmRcbiAgICAgICAgLy8gZGVjaW1hbCBzZXBhcmF0b3JcbiAgICAgICAgaWYgKG51bWVyaWNPcHRpb25zLm1pbkRpZ2l0cykge1xuICAgICAgICAgIGRpZ2l0c0Zvcm1hdHRlZCA9IGAxLiR7bnVtZXJpY09wdGlvbnMubWluRGlnaXRzfS0ke2RpZ2l0c31gO1xuICAgICAgICB9IGVsc2UgaWYgKG51bWVyaWNPcHRpb25zLnRydW5jYXRlKSB7XG4gICAgICAgICAgZGlnaXRzRm9ybWF0dGVkID0gYDEuMC0ke2RpZ2l0c31gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRpZ2l0c0Zvcm1hdHRlZCA9IGAxLiR7ZGlnaXRzfS0ke2RpZ2l0c31gO1xuICAgICAgICB9XG5cbiAgICAgICAgb3V0cHV0ID0gU2t5TnVtYmVyRm9ybWF0VXRpbGl0eS5mb3JtYXROdW1iZXIoXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIHBhcnNlRmxvYXQob3V0cHV0KSxcbiAgICAgICAgICBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUuRGVjaW1hbCxcbiAgICAgICAgICBkaWdpdHNGb3JtYXR0ZWRcbiAgICAgICAgKSBhcyBzdHJpbmc7XG4gICAgICAgIC8vICAgXl5eXl5eIFJlc3VsdCBjYW4ndCBiZSBudWxsIHNpbmNlIHRoZSBzYW5pdGl6ZWQgaW5wdXQgaXMgYWx3YXlzIGEgbnVtYmVyLlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAobnVtZXJpY09wdGlvbnMudHJ1bmNhdGUpIHtcbiAgICAgIG91dHB1dCA9IHRoaXMuI3JlcGxhY2VTaG9ydGVuU3ltYm9sKG91dHB1dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3VuZHMgYSBnaXZlbiBudW1iZXJcbiAgICpcbiAgICogSlMncyBsaW1pdGF0aW9uIC0gbnVtYmVycyBiaWdnZXIgdGhhbiBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiBvciBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuICAgKiBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgcmVwcmVzZW50ZWQgb3Igcm91bmRlZCBjb3JyZWN0bHlcbiAgICogQHBhcmFtIHZhbHVlIC0gdmFsdWUgdG8gcm91bmRcbiAgICogQHBhcmFtIHByZWNpc2lvbiAtIHdoYXQgcHJlY2lzaW9uIHRvIHJvdW5kIHdpdGgsIGRlZmF1bHRzIHRvIDAgZGVjaW1hbCBwbGFjZXNcbiAgICovXG4gICNyb3VuZE51bWJlcih2YWx1ZTogbnVtYmVyLCBwcmVjaXNpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKHByZWNpc2lvbiA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2t5SW52YWxpZEFyZ3VtZW50OiBwcmVjaXNpb24gbXVzdCBiZSA+PSAwJyk7XG4gICAgfVxuXG4gICAgLyogU2FuaXR5IGNoZWNrIC0gaWdub3JpbmcgY292ZXJhZ2UgYnV0IHNob3VsZCBub3QgaWdub3JlIGlmIHdlIG1ha2UgdGhpcyBtZXRob2QgcHVibGljICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBzY2FsZWRWYWx1ZTogbnVtYmVyID0gdGhpcy4jc2NhbGVOdW1iZXJCeVBvd2VyT2ZUZW4oXG4gICAgICB2YWx1ZSxcbiAgICAgIHByZWNpc2lvbixcbiAgICAgIHRydWVcbiAgICApO1xuICAgIGNvbnN0IHNjYWxlZFJvdW5kZWRWYWx1ZTogbnVtYmVyID0gTWF0aC5yb3VuZChzY2FsZWRWYWx1ZSk7XG4gICAgY29uc3QgdW5zY2FsZWRSb3VuZGVkVmFsdWU6IG51bWJlciA9IHRoaXMuI3NjYWxlTnVtYmVyQnlQb3dlck9mVGVuKFxuICAgICAgc2NhbGVkUm91bmRlZFZhbHVlLFxuICAgICAgcHJlY2lzaW9uLFxuICAgICAgZmFsc2VcbiAgICApO1xuXG4gICAgcmV0dXJuIHVuc2NhbGVkUm91bmRlZFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjYWxlcyBhIGdpdmVuIG51bWJlciBieSBhIHBvd2VyIG9mIDEwXG4gICAqIEBwYXJhbSB2YWx1ZSAtIHZhbHVlIHRvIHNjYWxlXG4gICAqIEBwYXJhbSBzY2FsYXIgLSAxMF5zY2FsYXJcbiAgICogQHBhcmFtIHNjYWxlVXAgLSB3aGV0aGVyIHRvIGluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSB2YWx1ZVxuICAgKi9cbiAgI3NjYWxlTnVtYmVyQnlQb3dlck9mVGVuKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgc2NhbGFyOiBudW1iZXIsXG4gICAgc2NhbGVVcDogYm9vbGVhblxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlU3RyOiBzdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgaXNFeHBvbmVudEZvcm1hdDogYm9vbGVhbiA9IHZhbHVlU3RyLmluY2x1ZGVzKCdlJyk7XG5cbiAgICBpZiAoaXNFeHBvbmVudEZvcm1hdCkge1xuICAgICAgY29uc3QgW2Jhc2UsIGV4cF0gPSB2YWx1ZVN0ci5zcGxpdCgnZScpO1xuICAgICAgY29uc3QgbmV3RXhwID0gc2NhbGVVcCA/IE51bWJlcihleHApICsgc2NhbGFyIDogTnVtYmVyKGV4cCkgLSBzY2FsYXI7XG4gICAgICByZXR1cm4gTnVtYmVyKGAke2Jhc2V9ZSR7bmV3RXhwfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlID0gc2NhbGVVcCA/ICdlJyA6ICdlLSc7XG4gICAgICByZXR1cm4gTnVtYmVyKGAke3ZhbHVlfSR7ZX0ke3NjYWxhcn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBzeW1ib2wgYWRkZWQgZnJvbSBzaG9ydGVuaW5nIHRvIHJlYXBwbHkgbGF0ZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHRvIGRlcml2ZSB0aGUgc2hvcnRlbiBzeW1ib2wgZnJvbS5cbiAgICovXG4gICNzdG9yZVNob3J0ZW5TeW1ib2wodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHN5bWJvbHM6IHN0cmluZ1tdID0gdGhpcy4jc3ltYm9sSW5kZXgubWFwKChzKSA9PiBzLmxhYmVsKTtcbiAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKHN5bWJvbHMuam9pbignfCcpLCAnaWcnKTtcbiAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKHJlZ2V4cCk7XG4gICAgdGhpcy5zaG9ydFN5bWJvbCA9IG1hdGNoID8gbWF0Y2gudG9TdHJpbmcoKSA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIE11c3QgaGF2ZSBwcmV2aW91c2x5IGNhbGxlZCBzdG9yZVNob3J0ZW5TeW1ib2wgdG8gaGF2ZSBzb21ldGhpbmcgdG8gcmVwbGFjZS5cbiAgICogRmluZHMgdGhlIGxhc3QgbnVtYmVyIGluIHRoZSBmb3JtYXR0ZWQgbnVtYmVyLCBnZXRzIHRoZSBpbmRleCBvZiB0aGUgcG9zaXRpb25cbiAgICogYWZ0ZXIgdGhhdCBjaGFyYWN0ZXIgYW5kIHJlLWluc2VydHMgdGhlIHN5bWJvbC5cbiAgICogV29ya3MgcmVnYXJkbGVzcyBvZiBjdXJyZW5jeSBzeW1ib2wgcG9zaXRpb24uXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RyaW5nIHRvIG1vZGlmeS5cbiAgICovXG4gICNyZXBsYWNlU2hvcnRlblN5bWJvbCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXN1bHQgPSAvKFxcZCkoPyEuKlxcZCkvZy5leGVjKHZhbHVlKTtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBjb25zdCBwb3MgPSByZXN1bHQuaW5kZXggKyByZXN1bHQubGVuZ3RoO1xuICAgICAgY29uc3Qgb3V0cHV0ID1cbiAgICAgICAgdmFsdWUuc3Vic3RyaW5nKDAsIHBvcykgKyB0aGlzLnNob3J0U3ltYm9sICsgdmFsdWUuc3Vic3RyaW5nKHBvcyk7XG5cbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAjZ2V0U3ltYm9sKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBOZWVkIHRvIGltcGxlbWVudCB0aGUgYXN5bmMgYGdldFN0cmluZ2AgbWV0aG9kIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgIHJldHVybiB0aGlzLiNyZXNvdXJjZXNTdmMuZ2V0U3RyaW5nRm9yTG9jYWxlKHsgbG9jYWxlOiAnZW5fVVMnIH0sIGtleSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
/**
|
4
|
+
* @internal
|
5
|
+
*/
|
6
|
+
export class SkyOverlayAdapterService {
|
7
|
+
#renderer;
|
8
|
+
#styleElement;
|
9
|
+
constructor(rendererFactory) {
|
10
|
+
this.#renderer = rendererFactory.createRenderer(undefined, null);
|
11
|
+
}
|
12
|
+
restrictBodyScroll() {
|
13
|
+
// Create a style element to avoid overwriting any existing inline body styles.
|
14
|
+
const styleElement = this.#renderer.createElement('style');
|
15
|
+
const textNode = this.#renderer.createText('body { overflow: hidden }');
|
16
|
+
// Apply a `data-` attribute to make unit testing easier.
|
17
|
+
this.#renderer.setAttribute(styleElement, 'data-test-selector', 'sky-overlay-restrict-scroll-styles');
|
18
|
+
this.#renderer.appendChild(styleElement, textNode);
|
19
|
+
this.#renderer.appendChild(document.head, styleElement);
|
20
|
+
if (this.#styleElement) {
|
21
|
+
this.#destroyStyleElement();
|
22
|
+
}
|
23
|
+
this.#styleElement = styleElement;
|
24
|
+
}
|
25
|
+
releaseBodyScroll() {
|
26
|
+
this.#destroyStyleElement();
|
27
|
+
}
|
28
|
+
#destroyStyleElement() {
|
29
|
+
/* istanbul ignore else */
|
30
|
+
if (this.#styleElement &&
|
31
|
+
this.#styleElement.parentElement === document.head) {
|
32
|
+
this.#renderer.removeChild(document.head, this.#styleElement);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyOverlayAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyOverlayAdapterService, providedIn: 'root' }); }
|
37
|
+
}
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyOverlayAdapterService, decorators: [{
|
39
|
+
type: Injectable,
|
40
|
+
args: [{
|
41
|
+
providedIn: 'root',
|
42
|
+
}]
|
43
|
+
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQzs7QUFFeEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFNBQVMsQ0FBWTtJQUVyQixhQUFhLENBQStCO0lBRTVDLFlBQVksZUFBaUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLCtFQUErRTtRQUMvRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRXhFLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FDekIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixvQ0FBb0MsQ0FDckMsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXhELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQiwwQkFBMEI7UUFDMUIsSUFDRSxJQUFJLENBQUMsYUFBYTtZQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUMsSUFBSSxFQUNsRDtZQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQzs4R0EzQ1Usd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5T3ZlcmxheUFkYXB0ZXJTZXJ2aWNlIHtcbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgI3N0eWxlRWxlbWVudDogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihyZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIpIHtcbiAgICB0aGlzLiNyZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuICB9XG5cbiAgcHVibGljIHJlc3RyaWN0Qm9keVNjcm9sbCgpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgYSBzdHlsZSBlbGVtZW50IHRvIGF2b2lkIG92ZXJ3cml0aW5nIGFueSBleGlzdGluZyBpbmxpbmUgYm9keSBzdHlsZXMuXG4gICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gdGhpcy4jcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBjb25zdCB0ZXh0Tm9kZSA9IHRoaXMuI3JlbmRlcmVyLmNyZWF0ZVRleHQoJ2JvZHkgeyBvdmVyZmxvdzogaGlkZGVuIH0nKTtcblxuICAgIC8vIEFwcGx5IGEgYGRhdGEtYCBhdHRyaWJ1dGUgdG8gbWFrZSB1bml0IHRlc3RpbmcgZWFzaWVyLlxuICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgIHN0eWxlRWxlbWVudCxcbiAgICAgICdkYXRhLXRlc3Qtc2VsZWN0b3InLFxuICAgICAgJ3NreS1vdmVybGF5LXJlc3RyaWN0LXNjcm9sbC1zdHlsZXMnXG4gICAgKTtcblxuICAgIHRoaXMuI3JlbmRlcmVyLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgdGV4dE5vZGUpO1xuICAgIHRoaXMuI3JlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIHN0eWxlRWxlbWVudCk7XG5cbiAgICBpZiAodGhpcy4jc3R5bGVFbGVtZW50KSB7XG4gICAgICB0aGlzLiNkZXN0cm95U3R5bGVFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgdGhpcy4jc3R5bGVFbGVtZW50ID0gc3R5bGVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIHJlbGVhc2VCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuI2Rlc3Ryb3lTdHlsZUVsZW1lbnQoKTtcbiAgfVxuXG4gICNkZXN0cm95U3R5bGVFbGVtZW50KCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKFxuICAgICAgdGhpcy4jc3R5bGVFbGVtZW50ICYmXG4gICAgICB0aGlzLiNzdHlsZUVsZW1lbnQucGFyZW50RWxlbWVudCA9PT0gZG9jdW1lbnQuaGVhZFxuICAgICkge1xuICAgICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuaGVhZCwgdGhpcy4jc3R5bGVFbGVtZW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,62 @@
|
|
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
|
+
/**
|
8
|
+
* Emits when the overlay is clicked (but not its content).
|
9
|
+
*/
|
10
|
+
get backdropClick() {
|
11
|
+
return this.#backdropClickObs;
|
12
|
+
}
|
13
|
+
/**
|
14
|
+
* Emits after the overlay is closed.
|
15
|
+
*/
|
16
|
+
get closed() {
|
17
|
+
return this.#closedObs;
|
18
|
+
}
|
19
|
+
#backdropClick;
|
20
|
+
#backdropClickObs;
|
21
|
+
#closed;
|
22
|
+
#closedObs;
|
23
|
+
constructor(
|
24
|
+
/**
|
25
|
+
* The configuration for the overlay.
|
26
|
+
*/
|
27
|
+
config, componentRef) {
|
28
|
+
this.config = config;
|
29
|
+
this.componentRef = componentRef;
|
30
|
+
this.id = this.componentRef.instance.id;
|
31
|
+
this.componentRef.instance.closed.subscribe(() => {
|
32
|
+
this.#closed.next();
|
33
|
+
this.#closed.complete();
|
34
|
+
this.#backdropClick.complete();
|
35
|
+
});
|
36
|
+
this.componentRef.instance.backdropClick.subscribe(() => {
|
37
|
+
this.#backdropClick.next();
|
38
|
+
});
|
39
|
+
this.#backdropClick = new Subject();
|
40
|
+
this.#closed = new Subject();
|
41
|
+
this.#backdropClickObs = this.#backdropClick.asObservable();
|
42
|
+
this.#closedObs = this.#closed.asObservable();
|
43
|
+
}
|
44
|
+
/**
|
45
|
+
* Creates and attaches a component to the overlay.
|
46
|
+
* @param component The component to attach.
|
47
|
+
* @param providers Custom providers to apply to the component.
|
48
|
+
*/
|
49
|
+
attachComponent(component, providers) {
|
50
|
+
const componentRef = this.componentRef.instance.attachComponent(component, providers);
|
51
|
+
return componentRef.instance;
|
52
|
+
}
|
53
|
+
/**
|
54
|
+
* Attaches a `TemplateRef` to the overlay.
|
55
|
+
* @param templateRef The `TemplateRef` to attach.
|
56
|
+
* @param context The context to provide to the template.
|
57
|
+
*/
|
58
|
+
attachTemplate(templateRef, context) {
|
59
|
+
this.componentRef.instance.attachTemplate(templateRef, context);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9vdmVybGF5L292ZXJsYXktaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUszQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCOztPQUVHO0lBQ0gsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBSUQsY0FBYyxDQUFnQjtJQUU5QixpQkFBaUIsQ0FBbUI7SUFFcEMsT0FBTyxDQUFnQjtJQUV2QixVQUFVLENBQW1CO0lBRTdCO0lBQ0U7O09BRUc7SUFDYSxNQUF3QixFQUN4QixZQUErQztRQUQvQyxXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBbUM7UUFFL0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxlQUFlLENBQ3BCLFNBQWtCLEVBQ2xCLFNBQTRCO1FBRTVCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDN0QsU0FBUyxFQUNULFNBQVMsQ0FDVixDQUFDO1FBQ0YsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFJLFdBQTJCLEVBQUUsT0FBVztRQUMvRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgU3RhdGljUHJvdmlkZXIsIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbmZpZyB9IGZyb20gJy4vb3ZlcmxheS1jb25maWcnO1xuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBuZXcgb3ZlcmxheSBpbnN0YW5jZS4gSXQgaXMgdXNlZCB0byBtYW5hZ2UgdGhlIFwiY2xvc2VkXCIgc3RhdGUgb2YgdGhlIG92ZXJsYXksXG4gKiBhbmQgYWNjZXNzIGFueSBwdWJsaWMgbWVtYmVycyBvbiB0aGUgYXBwZW5kZWQgY29udGVudCBjb21wb25lbnQgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5SW5zdGFuY2Uge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgb3ZlcmxheSBpcyBjbGlja2VkIChidXQgbm90IGl0cyBjb250ZW50KS5cbiAgICovXG4gIHB1YmxpYyBnZXQgYmFja2Ryb3BDbGljaygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jYmFja2Ryb3BDbGlja09icztcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhZnRlciB0aGUgb3ZlcmxheSBpcyBjbG9zZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNsb3NlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jY2xvc2VkT2JzO1xuICB9XG5cbiAgcHVibGljIGlkOiBzdHJpbmc7XG5cbiAgI2JhY2tkcm9wQ2xpY2s6IFN1YmplY3Q8dm9pZD47XG5cbiAgI2JhY2tkcm9wQ2xpY2tPYnM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgI2Nsb3NlZDogU3ViamVjdDx2b2lkPjtcblxuICAjY2xvc2VkT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgb3ZlcmxheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiBTa3lPdmVybGF5Q29uZmlnLFxuICAgIHB1YmxpYyByZWFkb25seSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxTa3lPdmVybGF5Q29tcG9uZW50PlxuICApIHtcbiAgICB0aGlzLmlkID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuaWQ7XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuI2Nsb3NlZC5uZXh0KCk7XG4gICAgICB0aGlzLiNjbG9zZWQuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuI2JhY2tkcm9wQ2xpY2suY29tcGxldGUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmJhY2tkcm9wQ2xpY2suc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuI2JhY2tkcm9wQ2xpY2submV4dCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy4jYmFja2Ryb3BDbGljayA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy4jY2xvc2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHRoaXMuI2JhY2tkcm9wQ2xpY2tPYnMgPSB0aGlzLiNiYWNrZHJvcENsaWNrLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI2Nsb3NlZE9icyA9IHRoaXMuI2Nsb3NlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuZCBhdHRhY2hlcyBhIGNvbXBvbmVudCB0byB0aGUgb3ZlcmxheS5cbiAgICogQHBhcmFtIGNvbXBvbmVudCBUaGUgY29tcG9uZW50IHRvIGF0dGFjaC5cbiAgICogQHBhcmFtIHByb3ZpZGVycyBDdXN0b20gcHJvdmlkZXJzIHRvIGFwcGx5IHRvIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoQ29tcG9uZW50PEM+KFxuICAgIGNvbXBvbmVudDogVHlwZTxDPixcbiAgICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdXG4gICk6IEMge1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmF0dGFjaENvbXBvbmVudChcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIHByb3ZpZGVyc1xuICAgICk7XG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGBUZW1wbGF0ZVJlZmAgdG8gdGhlIG92ZXJsYXkuXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZVJlZiBUaGUgYFRlbXBsYXRlUmVmYCB0byBhdHRhY2guXG4gICAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIHByb3ZpZGUgdG8gdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgcHVibGljIGF0dGFjaFRlbXBsYXRlPFQ+KHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxUPiwgY29udGV4dD86IFQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5hdHRhY2hUZW1wbGF0ZSh0ZW1wbGF0ZVJlZiwgY29udGV4dCk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,193 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Injector, Optional, ViewChild, ViewContainerRef, } from '@angular/core';
|
2
|
+
import { NavigationStart } from '@angular/router';
|
3
|
+
import { BehaviorSubject, ReplaySubject, Subject, fromEvent, } from 'rxjs';
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
5
|
+
import { SKY_STACKING_CONTEXT } from '../stacking-context/stacking-context-token';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "../adapter-service/adapter.service";
|
8
|
+
import * as i2 from "./overlay-context";
|
9
|
+
import * as i3 from "../id/id.service";
|
10
|
+
import * as i4 from "@angular/router";
|
11
|
+
import * as i5 from "@angular/common";
|
12
|
+
const POSITION_DEFAULT = 'fixed';
|
13
|
+
/**
|
14
|
+
* Omnibar is 1000.
|
15
|
+
* See: https://github.com/blackbaud/auth-client/blob/master/src/omnibar/omnibar.ts#L139
|
16
|
+
* ---
|
17
|
+
* Modals start their z-indexes at 1040. However, each modal's z-index is a multiple of 10, so it
|
18
|
+
* will be difficult to reliably predict a z-index that will always appear above all other
|
19
|
+
* layers. Starting the z-index for overlays at a number much greater than modals will accommodate
|
20
|
+
* the most reasonable of scenarios.
|
21
|
+
* See: https://github.com/blackbaud/skyux-modals/blob/master/src/app/public/modules/modal/modal-host.service.ts#L22
|
22
|
+
* (NOTE: It should be noted that modals do not use the overlay service, which is something we
|
23
|
+
* should do in the near future to make sure z-indexes are predictable across all component
|
24
|
+
* libraries.)
|
25
|
+
*/
|
26
|
+
let uniqueZIndex = 5000;
|
27
|
+
/**
|
28
|
+
* @internal
|
29
|
+
*/
|
30
|
+
export class SkyOverlayComponent {
|
31
|
+
get backdropClick() {
|
32
|
+
return this.#backdropClickObs;
|
33
|
+
}
|
34
|
+
get closed() {
|
35
|
+
return this.#closedObs;
|
36
|
+
}
|
37
|
+
#backdropClick;
|
38
|
+
#backdropClickObs;
|
39
|
+
#changeDetector;
|
40
|
+
#closed;
|
41
|
+
#closedObs;
|
42
|
+
#context;
|
43
|
+
#coreAdapter;
|
44
|
+
#injector;
|
45
|
+
#ngUnsubscribe;
|
46
|
+
#router;
|
47
|
+
#routerSubscription;
|
48
|
+
constructor(changeDetector, injector, coreAdapter, context, idSvc, router) {
|
49
|
+
this.wrapperClass = '';
|
50
|
+
this.enablePointerEvents = false;
|
51
|
+
this.showBackdrop = false;
|
52
|
+
this.zIndex = `${++uniqueZIndex}`;
|
53
|
+
this.clipPath$ = new ReplaySubject(1);
|
54
|
+
this.position = POSITION_DEFAULT;
|
55
|
+
this.#ngUnsubscribe = new Subject();
|
56
|
+
this.#changeDetector = changeDetector;
|
57
|
+
this.#injector = injector;
|
58
|
+
this.#coreAdapter = coreAdapter;
|
59
|
+
this.#context = context;
|
60
|
+
this.#router = router;
|
61
|
+
this.id = idSvc.generateId();
|
62
|
+
this.#backdropClick = new Subject();
|
63
|
+
this.#closed = new Subject();
|
64
|
+
this.#backdropClickObs = this.#backdropClick.asObservable();
|
65
|
+
this.#closedObs = this.#closed.asObservable();
|
66
|
+
}
|
67
|
+
ngOnInit() {
|
68
|
+
this.#applyConfig(this.#context.config);
|
69
|
+
setTimeout(() => {
|
70
|
+
this.#addBackdropClickListener();
|
71
|
+
});
|
72
|
+
if (this.#context.config.closeOnNavigation) {
|
73
|
+
this.#addRouteListener();
|
74
|
+
}
|
75
|
+
}
|
76
|
+
ngOnDestroy() {
|
77
|
+
this.#removeRouteListener();
|
78
|
+
this.#ngUnsubscribe.next();
|
79
|
+
this.#ngUnsubscribe.complete();
|
80
|
+
this.#backdropClick.complete();
|
81
|
+
this.#closed.next();
|
82
|
+
this.#closed.complete();
|
83
|
+
}
|
84
|
+
attachComponent(component, providers = []) {
|
85
|
+
/*istanbul ignore if: untestable*/
|
86
|
+
if (!this.targetRef) {
|
87
|
+
throw new Error('[SkyOverlayComponent] Could not attach the component because the target element could not be found.');
|
88
|
+
}
|
89
|
+
this.targetRef.clear();
|
90
|
+
const injector = Injector.create({
|
91
|
+
providers: [
|
92
|
+
{
|
93
|
+
provide: SKY_STACKING_CONTEXT,
|
94
|
+
useValue: {
|
95
|
+
zIndex: new BehaviorSubject(parseInt(this.zIndex, 10))
|
96
|
+
.asObservable()
|
97
|
+
.pipe(takeUntil(this.#ngUnsubscribe)),
|
98
|
+
},
|
99
|
+
},
|
100
|
+
...providers,
|
101
|
+
],
|
102
|
+
parent: this.#injector,
|
103
|
+
});
|
104
|
+
const componentRef = this.targetRef.createComponent(component, {
|
105
|
+
injector,
|
106
|
+
});
|
107
|
+
// Run an initial change detection cycle after the component has been created.
|
108
|
+
componentRef.changeDetectorRef.detectChanges();
|
109
|
+
return componentRef;
|
110
|
+
}
|
111
|
+
attachTemplate(templateRef, context) {
|
112
|
+
/*istanbul ignore if: untestable*/
|
113
|
+
if (!this.targetRef) {
|
114
|
+
throw new Error('[SkyOverlayComponent] Could not attach the template because the target element could not be found.');
|
115
|
+
}
|
116
|
+
this.targetRef.clear();
|
117
|
+
return this.targetRef.createEmbeddedView(templateRef, context);
|
118
|
+
}
|
119
|
+
updateClipPath(clipPath) {
|
120
|
+
this.clipPath$.next(clipPath);
|
121
|
+
}
|
122
|
+
#applyConfig(config) {
|
123
|
+
this.wrapperClass = config.wrapperClass || '';
|
124
|
+
this.showBackdrop = !!config.showBackdrop;
|
125
|
+
this.enablePointerEvents = !!config.enablePointerEvents;
|
126
|
+
this.position = config.position || POSITION_DEFAULT;
|
127
|
+
this.#changeDetector.markForCheck();
|
128
|
+
}
|
129
|
+
#addBackdropClickListener() {
|
130
|
+
fromEvent(window.document, 'click')
|
131
|
+
.pipe(takeUntil(this.#ngUnsubscribe))
|
132
|
+
.subscribe((event) => {
|
133
|
+
if (event.target && this.overlayContentRef && this.overlayRef) {
|
134
|
+
const isChild = this.overlayContentRef.nativeElement.contains(event.target);
|
135
|
+
const isAbove = this.#coreAdapter.isTargetAboveElement(event.target, this.overlayRef.nativeElement);
|
136
|
+
/* istanbul ignore else */
|
137
|
+
if (!isChild && !isAbove) {
|
138
|
+
this.#backdropClick.next();
|
139
|
+
if (this.#context.config.enableClose) {
|
140
|
+
this.#closed.next();
|
141
|
+
}
|
142
|
+
}
|
143
|
+
}
|
144
|
+
});
|
145
|
+
}
|
146
|
+
#addRouteListener() {
|
147
|
+
/*istanbul ignore else*/
|
148
|
+
if (this.#router) {
|
149
|
+
this.#routerSubscription = this.#router.events.subscribe((event) => {
|
150
|
+
/* istanbul ignore else */
|
151
|
+
if (event instanceof NavigationStart) {
|
152
|
+
this.#closed.next();
|
153
|
+
}
|
154
|
+
});
|
155
|
+
}
|
156
|
+
}
|
157
|
+
#removeRouteListener() {
|
158
|
+
if (this.#routerSubscription) {
|
159
|
+
this.#routerSubscription.unsubscribe();
|
160
|
+
this.#routerSubscription = undefined;
|
161
|
+
}
|
162
|
+
}
|
163
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyOverlayComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i1.SkyCoreAdapterService }, { token: i2.SkyOverlayContext }, { token: i3.SkyIdService }, { token: i4.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
164
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyOverlayComponent, selector: "sky-overlay", host: { properties: { "id": "this.id" } }, 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]=\"'sky-overlay-position-' + position + ' ' + wrapperClass\"\n [style.z-index]=\"zIndex\"\n [style.clip-path]=\"clipPath$ | async\"\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{inset:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-position-absolute{position:absolute}.sky-overlay-position-fixed{position:fixed}.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);inset: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"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
165
|
+
}
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyOverlayComponent, decorators: [{
|
167
|
+
type: Component,
|
168
|
+
args: [{ selector: 'sky-overlay', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"'sky-overlay-position-' + position + ' ' + wrapperClass\"\n [style.z-index]=\"zIndex\"\n [style.clip-path]=\"clipPath$ | async\"\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{inset:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-position-absolute{position:absolute}.sky-overlay-position-fixed{position:fixed}.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);inset: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"] }]
|
169
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i1.SkyCoreAdapterService }, { type: i2.SkyOverlayContext }, { type: i3.SkyIdService }, { type: i4.Router, decorators: [{
|
170
|
+
type: Optional
|
171
|
+
}] }]; }, propDecorators: { id: [{
|
172
|
+
type: HostBinding,
|
173
|
+
args: ['id']
|
174
|
+
}], overlayContentRef: [{
|
175
|
+
type: ViewChild,
|
176
|
+
args: ['overlayContentRef', {
|
177
|
+
read: ElementRef,
|
178
|
+
static: true,
|
179
|
+
}]
|
180
|
+
}], overlayRef: [{
|
181
|
+
type: ViewChild,
|
182
|
+
args: ['overlayRef', {
|
183
|
+
read: ElementRef,
|
184
|
+
static: true,
|
185
|
+
}]
|
186
|
+
}], targetRef: [{
|
187
|
+
type: ViewChild,
|
188
|
+
args: ['target', {
|
189
|
+
read: ViewContainerRef,
|
190
|
+
static: true,
|
191
|
+
}]
|
192
|
+
}] } });
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9vdmVybGF5L292ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsVUFBVSxFQUVWLFdBQVcsRUFDWCxRQUFRLEVBR1IsUUFBUSxFQUlSLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFDTCxlQUFlLEVBRWYsYUFBYSxFQUNiLE9BQU8sRUFFUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFNbEYsTUFBTSxnQkFBZ0IsR0FBdUIsT0FBTyxDQUFDO0FBRXJEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztBQUV4Qjs7R0FFRztBQU9ILE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQWlDRCxjQUFjLENBQWdCO0lBRTlCLGlCQUFpQixDQUFtQjtJQUVwQyxlQUFlLENBQW9CO0lBRW5DLE9B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QUUsQ0FBQztpQkFDckI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztTQUN0QztJQUNILENBQUM7OEdBMU5VLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGlNQXlCdEIsVUFBVSxpSEFNVixVQUFVLDRHQU1WLGdCQUFnQiwyQ0NyRzFCLHNkQWVBOzsyRkRpRGEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs7MEJBd0U1QyxRQUFROzRDQXhESixFQUFFO3NCQURSLFdBQVc7dUJBQUMsSUFBSTtnQkFlVixpQkFBaUI7c0JBSnZCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUU7d0JBQzlCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSxVQUFVO3NCQUpoQixTQUFTO3VCQUFDLFlBQVksRUFBRTt3QkFDdkIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9NLFNBQVM7c0JBSmYsU0FBUzt1QkFBQyxRQUFRLEVBQUU7d0JBQ25CLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU3RhdGljUHJvdmlkZXIsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIFJlcGxheVN1YmplY3QsXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgZnJvbUV2ZW50LFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYWRhcHRlci1zZXJ2aWNlL2FkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lJZFNlcnZpY2UgfSBmcm9tICcuLi9pZC9pZC5zZXJ2aWNlJztcbmltcG9ydCB7IFNLWV9TVEFDS0lOR19DT05URVhUIH0gZnJvbSAnLi4vc3RhY2tpbmctY29udGV4dC9zdGFja2luZy1jb250ZXh0LXRva2VuJztcblxuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbmZpZyB9IGZyb20gJy4vb3ZlcmxheS1jb25maWcnO1xuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbnRleHQgfSBmcm9tICcuL292ZXJsYXktY29udGV4dCc7XG5pbXBvcnQgeyBTa3lPdmVybGF5UG9zaXRpb24gfSBmcm9tICcuL292ZXJsYXktcG9zaXRpb24nO1xuXG5jb25zdCBQT1NJVElPTl9ERUZBVUxUOiBTa3lPdmVybGF5UG9zaXRpb24gPSAnZml4ZWQnO1xuXG4vKipcbiAqIE9tbmliYXIgaXMgMTAwMC5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2JsYWNrYmF1ZC9hdXRoLWNsaWVudC9ibG9iL21hc3Rlci9zcmMvb21uaWJhci9vbW5pYmFyLnRzI0wxMzlcbiAqIC0tLVxuICogTW9kYWxzIHN0YXJ0IHRoZWlyIHotaW5kZXhlcyBhdCAxMDQwLiBIb3dldmVyLCBlYWNoIG1vZGFsJ3Mgei1pbmRleCBpcyBhIG11bHRpcGxlIG9mIDEwLCBzbyBpdFxuICogd2lsbCBiZSBkaWZmaWN1bHQgdG8gcmVsaWFibHkgcHJlZGljdCBhIHotaW5kZXggdGhhdCB3aWxsIGFsd2F5cyBhcHBlYXIgYWJvdmUgYWxsIG90aGVyXG4gKiBsYXllcnMuIFN0YXJ0aW5nIHRoZSB6LWluZGV4IGZvciBvdmVybGF5cyBhdCBhIG51bWJlciBtdWNoIGdyZWF0ZXIgdGhhbiBtb2RhbHMgd2lsbCBhY2NvbW1vZGF0ZVxuICogdGhlIG1vc3QgcmVhc29uYWJsZSBvZiBzY2VuYXJpb3MuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGFja2JhdWQvc2t5dXgtbW9kYWxzL2Jsb2IvbWFzdGVyL3NyYy9hcHAvcHVibGljL21vZHVsZXMvbW9kYWwvbW9kYWwtaG9zdC5zZXJ2aWNlLnRzI0wyMlxuICogKE5PVEU6IEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IG1vZGFscyBkbyBub3QgdXNlIHRoZSBvdmVybGF5IHNlcnZpY2UsIHdoaWNoIGlzIHNvbWV0aGluZyB3ZVxuICogc2hvdWxkIGRvIGluIHRoZSBuZWFyIGZ1dHVyZSB0byBtYWtlIHN1cmUgei1pbmRleGVzIGFyZSBwcmVkaWN0YWJsZSBhY3Jvc3MgYWxsIGNvbXBvbmVudFxuICogbGlicmFyaWVzLilcbiAqL1xubGV0IHVuaXF1ZVpJbmRleCA9IDUwMDA7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1vdmVybGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL292ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vdmVybGF5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgd3JhcHBlckNsYXNzID0gJyc7XG5cbiAgcHVibGljIGdldCBiYWNrZHJvcENsaWNrKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLiNiYWNrZHJvcENsaWNrT2JzO1xuICB9XG5cbiAgcHVibGljIGdldCBjbG9zZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI2Nsb3NlZE9icztcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVQb2ludGVyRXZlbnRzID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdpZCcpXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBzaG93QmFja2Ryb3AgPSBmYWxzZTtcblxuICBwdWJsaWMgekluZGV4ID0gYCR7Kyt1bmlxdWVaSW5kZXh9YDtcblxuICBwcm90ZWN0ZWQgY2xpcFBhdGgkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPigxKTtcblxuICBwcm90ZWN0ZWQgcG9zaXRpb24gPSBQT1NJVElPTl9ERUZBVUxUO1xuXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250ZW50UmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgb3ZlcmxheUNvbnRlbnRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnb3ZlcmxheVJlZicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIG92ZXJsYXlSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndGFyZ2V0Jywge1xuICAgIHJlYWQ6IFZpZXdDb250YWluZXJSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgdGFyZ2V0UmVmOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xuXG4gICNiYWNrZHJvcENsaWNrOiBTdWJqZWN0PHZvaWQ+O1xuXG4gICNiYWNrZHJvcENsaWNrT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG5cbiAgI2Nsb3NlZDogU3ViamVjdDx2b2lkPjtcblxuICAjY2xvc2VkT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNjb250ZXh0OiBTa3lPdmVybGF5Q29udGV4dDtcblxuICAjY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcblxuICAjaW5qZWN0b3I6IEluamVjdG9yO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjcm91dGVyOiBSb3V0ZXIgfCB1bmRlZmluZWQ7XG5cbiAgI3JvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBjb250ZXh0OiBTa3lPdmVybGF5Q29udGV4dCxcbiAgICBpZFN2YzogU2t5SWRTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHJvdXRlcj86IFJvdXRlclxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2luamVjdG9yID0gaW5qZWN0b3I7XG4gICAgdGhpcy4jY29yZUFkYXB0ZXIgPSBjb3JlQWRhcHRlcjtcbiAgICB0aGlzLiNjb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLiNyb3V0ZXIgPSByb3V0ZXI7XG5cbiAgICB0aGlzLmlkID0gaWRTdmMuZ2VuZXJhdGVJZCgpO1xuXG4gICAgdGhpcy4jYmFja2Ryb3BDbGljayA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy4jY2xvc2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHRoaXMuI2JhY2tkcm9wQ2xpY2tPYnMgPSB0aGlzLiNiYWNrZHJvcENsaWNrLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI2Nsb3NlZE9icyA9IHRoaXMuI2Nsb3NlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNhcHBseUNvbmZpZyh0aGlzLiNjb250ZXh0LmNvbmZpZyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI2FkZEJhY2tkcm9wQ2xpY2tMaXN0ZW5lcigpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuI2NvbnRleHQuY29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uKSB7XG4gICAgICB0aGlzLiNhZGRSb3V0ZUxpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3JlbW92ZVJvdXRlTGlzdGVuZXIoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNiYWNrZHJvcENsaWNrLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNjbG9zZWQubmV4dCgpO1xuICAgIHRoaXMuI2Nsb3NlZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGF0dGFjaENvbXBvbmVudDxDPihcbiAgICBjb21wb25lbnQ6IFR5cGU8Qz4sXG4gICAgcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW11cbiAgKTogQ29tcG9uZW50UmVmPEM+IHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBpZjogdW50ZXN0YWJsZSovXG4gICAgaWYgKCF0aGlzLnRhcmdldFJlZikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnW1NreU92ZXJsYXlDb21wb25lbnRdIENvdWxkIG5vdCBhdHRhY2ggdGhlIGNvbXBvbmVudCBiZWNhdXNlIHRoZSB0YXJnZXQgZWxlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnRhcmdldFJlZi5jbGVhcigpO1xuXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgekluZGV4OiBuZXcgQmVoYXZpb3JTdWJqZWN0KHBhcnNlSW50KHRoaXMuekluZGV4LCAxMCkpXG4gICAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3ZpZGVycyxcbiAgICAgIF0sXG4gICAgICBwYXJlbnQ6IHRoaXMuI2luamVjdG9yLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy50YXJnZXRSZWYuY3JlYXRlQ29tcG9uZW50PEM+KGNvbXBvbmVudCwge1xuICAgICAgaW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICAvLyBSdW4gYW4gaW5pdGlhbCBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIGFmdGVyIHRoZSBjb21wb25lbnQgaGFzIGJlZW4gY3JlYXRlZC5cbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHB1YmxpYyBhdHRhY2hUZW1wbGF0ZTxUPihcbiAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8VD4sXG4gICAgY29udGV4dDogVFxuICApOiBFbWJlZGRlZFZpZXdSZWY8VD4ge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGlmOiB1bnRlc3RhYmxlKi9cbiAgICBpZiAoIXRoaXMudGFyZ2V0UmVmKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdbU2t5T3ZlcmxheUNvbXBvbmVudF0gQ291bGQgbm90IGF0dGFjaCB0aGUgdGVtcGxhdGUgYmVjYXVzZSB0aGUgdGFyZ2V0IGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy50YXJnZXRSZWYuY2xlYXIoKTtcblxuICAgIHJldHVybiB0aGlzLnRhcmdldFJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVSZWYsIGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNsaXBQYXRoKGNsaXBQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLmNsaXBQYXRoJC5uZXh0KGNsaXBQYXRoKTtcbiAgfVxuXG4gICNhcHBseUNvbmZpZyhjb25maWc6IFNreU92ZXJsYXlDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBwZXJDbGFzcyA9IGNvbmZpZy53cmFwcGVyQ2xhc3MgfHwgJyc7XG4gICAgdGhpcy5zaG93QmFja2Ryb3AgPSAhIWNvbmZpZy5zaG93QmFja2Ryb3A7XG4gICAgdGhpcy5lbmFibGVQb2ludGVyRXZlbnRzID0gISFjb25maWcuZW5hYmxlUG9pbnRlckV2ZW50cztcbiAgICB0aGlzLnBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uIHx8IFBPU0lUSU9OX0RFRkFVTFQ7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAjYWRkQmFja2Ryb3BDbGlja0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3cuZG9jdW1lbnQsICdjbGljaycpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmIHRoaXMub3ZlcmxheUNvbnRlbnRSZWYgJiYgdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgY29uc3QgaXNDaGlsZCA9IHRoaXMub3ZlcmxheUNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBpc0Fib3ZlID0gdGhpcy4jY29yZUFkYXB0ZXIuaXNUYXJnZXRBYm92ZUVsZW1lbnQoXG4gICAgICAgICAgICBldmVudC50YXJnZXQsXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICghaXNDaGlsZCAmJiAhaXNBYm92ZSkge1xuICAgICAgICAgICAgdGhpcy4jYmFja2Ryb3BDbGljay5uZXh0KCk7XG4gICAgICAgICAgICBpZiAodGhpcy4jY29udGV4dC5jb25maWcuZW5hYmxlQ2xvc2UpIHtcbiAgICAgICAgICAgICAgdGhpcy4jY2xvc2VkLm5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI2FkZFJvdXRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3JvdXRlcikge1xuICAgICAgdGhpcy4jcm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy4jcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgIHRoaXMuI2Nsb3NlZC5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNyZW1vdmVSb3V0ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNyb3V0ZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuI3JvdXRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy4jcm91dGVyU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbY2xhc3NdPVwiJ3NreS1vdmVybGF5LXBvc2l0aW9uLScgKyBwb3NpdGlvbiArICcgJyArIHdyYXBwZXJDbGFzc1wiXG4gIFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiXG4gIFtzdHlsZS5jbGlwLXBhdGhdPVwiY2xpcFBhdGgkIHwgYXN5bmNcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ2VuYWJsZS1wb2ludGVyLWV2ZW50cy1wYXNzLXRocm91Z2gnOiBlbmFibGVQb2ludGVyRXZlbnRzLFxuICAgICdza3ktb3ZlcmxheSc6IHRydWVcbiAgfVwiXG4gICNvdmVybGF5UmVmXG4+XG4gIDxkaXYgY2xhc3M9XCJza3ktb3ZlcmxheS1jb250ZW50XCIgI292ZXJsYXlDb250ZW50UmVmPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGFyZ2V0PiA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dCYWNrZHJvcFwiIGNsYXNzPVwic2t5LW92ZXJsYXktYmFja2Ryb3BcIj48L2Rpdj5cbjwvZGl2PlxuIl19
|
@@ -3,15 +3,15 @@ import { NgModule } from '@angular/core';
|
|
3
3
|
import { SkyOverlayComponent } from './overlay.component';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export class SkyOverlayModule {
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyOverlayModule, declarations: [SkyOverlayComponent], imports: [CommonModule] }); }
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyOverlayModule, imports: [CommonModule] }); }
|
6
9
|
}
|
7
|
-
|
8
|
-
SkyOverlayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyOverlayModule, declarations: [SkyOverlayComponent], imports: [CommonModule] });
|
9
|
-
SkyOverlayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyOverlayModule, imports: [CommonModule] });
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyOverlayModule, decorators: [{
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyOverlayModule, decorators: [{
|
11
11
|
type: NgModule,
|
12
12
|
args: [{
|
13
13
|
imports: [CommonModule],
|
14
14
|
declarations: [SkyOverlayComponent],
|
15
15
|
}]
|
16
16
|
}] });
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFNMUQsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBRlosbUJBQW1CLGFBRHhCLFlBQVk7K0dBR1gsZ0JBQWdCLFlBSGpCLFlBQVk7OzJGQUdYLGdCQUFnQjtrQkFKNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtTa3lPdmVybGF5Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5T3ZlcmxheU1vZHVsZSB7fVxuIl19
|