@annalib/anna-core 20.2.60 → 20.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -28
- package/esm2022/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +6 -8
- package/esm2022/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.mjs +5 -7
- package/esm2022/lib/anna-core-shared-lib/components/anna-est-icon-template/anna-est-icon-template.component.mjs +4 -4
- package/esm2022/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +22 -19
- package/esm2022/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +6 -8
- package/esm2022/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +7 -7
- package/esm2022/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +5 -7
- package/esm2022/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +6 -8
- package/esm2022/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +6 -8
- package/esm2022/lib/anna-core-shared-lib/constants/shared.constant.mjs +21 -21
- package/esm2022/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.mjs +70 -77
- package/esm2022/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.mjs +8 -8
- package/esm2022/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +20 -18
- package/esm2022/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +1 -1
- package/esm2022/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +1 -1
- package/esm2022/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +1 -1
- package/esm2022/lib/anna-core-shared-lib/models/anna-sort.model.mjs +1 -1
- package/esm2022/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +4 -4
- package/esm2022/lib/anna-core-shared-lib/pipes/annaConvertArrayToCommaSeperatedValue.pipe.mjs +9 -9
- package/esm2022/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.mjs +5 -5
- package/esm2022/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.mjs +7 -8
- package/esm2022/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +18 -20
- package/esm2022/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +6 -5
- package/esm2022/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.mjs +3 -3
- package/esm2022/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +120 -99
- package/esm2022/lib/anna-core-shared-lib/services/anna-filter.service.mjs +364 -381
- package/esm2022/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +38 -40
- package/esm2022/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +32 -32
- package/esm2022/lib/anna-core-shared-lib/services/anna-number-format.service.mjs +28 -22
- package/esm2022/lib/anna-core-shared-lib/services/anna-persisting-filter.service.mjs +15 -16
- package/esm2022/lib/anna-core-shared-lib/services/anna-sort.service.mjs +56 -58
- package/esm2022/lib/anna-core.module.mjs +47 -66
- package/esm2022/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +27 -27
- package/esm2022/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +92 -104
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +48 -44
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.mjs +22 -21
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +32 -32
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +39 -42
- package/esm2022/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +108 -127
- package/esm2022/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +21 -17
- package/esm2022/public-api.mjs +52 -55
- package/fesm2022/annalib-anna-core.mjs +4205 -4975
- package/fesm2022/annalib-anna-core.mjs.map +1 -1
- package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +2 -5
- package/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.d.ts +2 -5
- package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +6 -8
- package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +2 -5
- package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +1 -1
- package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +2 -5
- package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +2 -5
- package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +2 -5
- package/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.d.ts +2 -2
- package/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.d.ts +3 -3
- package/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +4 -4
- package/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts +3 -3
- package/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +8 -9
- package/lib/anna-core-shared-lib/models/anna-sort.model.d.ts +1 -1
- package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +2 -2
- package/lib/anna-core-shared-lib/pipes/annaConvertArrayToCommaSeperatedValue.pipe.d.ts +1 -1
- package/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.d.ts +1 -1
- package/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.d.ts +1 -2
- package/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.d.ts +1 -1
- package/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.d.ts +1 -1
- package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +4 -2
- package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +4 -4
- package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +5 -5
- package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +2 -2
- package/lib/anna-core-shared-lib/services/anna-persisting-filter.service.d.ts +0 -1
- package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +3 -3
- package/lib/anna-core.module.d.ts +12 -15
- package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +5 -5
- package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +9 -9
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.d.ts +8 -8
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.d.ts +8 -8
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.d.ts +9 -9
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.d.ts +9 -9
- package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +10 -12
- package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +4 -4
- package/package.json +1 -1
- package/public-api.d.ts +39 -42
- package/src/lib/anna-common-scss/_animate.scss +27 -27
- package/src/lib/anna-common-scss/_application-spacing.scss +7 -7
- package/src/lib/anna-common-scss/_bootstrap-tooltip.scss +27 -27
- package/src/lib/anna-common-scss/_button.scss +18 -18
- package/src/lib/anna-common-scss/_colors.scss +107 -107
- package/src/lib/anna-common-scss/_common-order-listing-table.scss +176 -176
- package/src/lib/anna-common-scss/_custom-anna-datepicker.scss +14 -14
- package/src/lib/anna-common-scss/_customDropdown.scss +123 -123
- package/src/lib/anna-common-scss/_dashboard-partials.scss +106 -106
- package/src/lib/anna-common-scss/_date-picker-form.scss +87 -87
- package/src/lib/anna-common-scss/_easy-filter.scss +138 -138
- package/src/lib/anna-common-scss/_edit-filter-popup.scss +70 -70
- package/src/lib/anna-common-scss/_filters.scss +724 -712
- package/src/lib/anna-common-scss/_font.scss +9 -9
- package/src/lib/anna-common-scss/_fonts.scss +86 -86
- package/src/lib/anna-common-scss/_generic-modal.scss +63 -63
- package/src/lib/anna-common-scss/_generic-table-common.scss +198 -198
- package/src/lib/anna-common-scss/_gt-table.scss +425 -425
- package/src/lib/anna-common-scss/_icons.scss +3 -3
- package/src/lib/anna-common-scss/_legend.scss +11 -11
- package/src/lib/anna-common-scss/_mat-button-toggle.scss +38 -38
- package/src/lib/anna-common-scss/_mat-menu.scss +17 -17
- package/src/lib/anna-common-scss/_mixins.scss +187 -187
- package/src/lib/anna-common-scss/_modal.scss +37 -37
- package/src/lib/anna-common-scss/_popup-filter-toggle-button.scss +36 -36
- package/src/lib/anna-common-scss/_scrollbar.scss +14 -14
- package/src/lib/anna-common-scss/_sort.scss +30 -30
- package/src/lib/anna-common-scss/_toggle.scss +86 -86
- package/src/lib/anna-common-scss/style.scss +1 -1
- package/src/lib/anna-common-scss/third-party-lib/_angular-material-mat-radio.scss +25 -25
- package/src/lib/anna-common-scss/third-party-lib/_anna-mat-button-toggle-group-size-lg.scss +34 -34
- package/src/lib/anna-common-scss/third-party-lib/_mat-autocomplete.scss +31 -31
- package/esm2022/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -352
- package/esm2022/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.mjs +0 -204
- package/esm2022/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
- package/esm2022/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -180
- package/esm2022/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
- package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
- package/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.d.ts +0 -89
- package/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts +0 -1
- package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
- package/lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts +0 -1
- package/src/lib/anna-common-scss/_show-hide-total-row.scss +0 -27
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener, Input } from
|
|
1
|
+
import { Directive, ElementRef, HostListener, Input } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class DigitOnlyDirective {
|
|
4
4
|
constructor(el) {
|
|
@@ -6,44 +6,44 @@ export class DigitOnlyDirective {
|
|
|
6
6
|
this.hasDecimalPoint = false;
|
|
7
7
|
this.hasNegativeSign = false;
|
|
8
8
|
this.navigationKeys = [
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
"Backspace",
|
|
10
|
+
"Delete",
|
|
11
|
+
"Tab",
|
|
12
|
+
"Escape",
|
|
13
|
+
"Enter",
|
|
14
|
+
"Home",
|
|
15
|
+
"End",
|
|
16
|
+
"ArrowLeft",
|
|
17
|
+
"ArrowRight",
|
|
18
|
+
"Clear",
|
|
19
|
+
"Copy",
|
|
20
|
+
"Paste",
|
|
21
21
|
];
|
|
22
22
|
this.decimal = false;
|
|
23
|
-
this.decimalSeparator =
|
|
23
|
+
this.decimalSeparator = ".";
|
|
24
24
|
this.allowNegatives = false;
|
|
25
25
|
this.allowPaste = true;
|
|
26
|
-
this.negativeSign =
|
|
26
|
+
this.negativeSign = "-";
|
|
27
27
|
this.min = -Infinity;
|
|
28
28
|
this.max = Infinity;
|
|
29
29
|
this.regex = null;
|
|
30
30
|
this.inputElement = el.nativeElement;
|
|
31
31
|
}
|
|
32
32
|
ngOnChanges(changes) {
|
|
33
|
-
if (changes
|
|
33
|
+
if (changes.pattern) {
|
|
34
34
|
this.regex = this.pattern ? RegExp(this.pattern) : null;
|
|
35
35
|
}
|
|
36
|
-
if (changes
|
|
36
|
+
if (changes.min) {
|
|
37
37
|
const maybeMin = Number(this.min);
|
|
38
|
-
this.min = isNaN(maybeMin) ? -Infinity : maybeMin;
|
|
38
|
+
this.min = Number.isNaN(maybeMin) ? -Infinity : maybeMin;
|
|
39
39
|
}
|
|
40
|
-
if (changes
|
|
40
|
+
if (changes.max) {
|
|
41
41
|
const maybeMax = Number(this.max);
|
|
42
|
-
this.max = isNaN(maybeMax) ? Infinity : maybeMax;
|
|
42
|
+
this.max = Number.isNaN(maybeMax) ? Infinity : maybeMax;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
onBeforeInput(e) {
|
|
46
|
-
if (isNaN(Number(e.data))) {
|
|
46
|
+
if (Number.isNaN(Number(e.data))) {
|
|
47
47
|
if (e.data === this.decimalSeparator || (e.data === this.negativeSign && this.allowNegatives)) {
|
|
48
48
|
return; // go on
|
|
49
49
|
}
|
|
@@ -53,19 +53,19 @@ export class DigitOnlyDirective {
|
|
|
53
53
|
}
|
|
54
54
|
onKeyDown(e) {
|
|
55
55
|
if (this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.
|
|
56
|
-
((e.key ===
|
|
57
|
-
((e.key ===
|
|
58
|
-
((e.key ===
|
|
59
|
-
((e.key ===
|
|
60
|
-
((e.key ===
|
|
61
|
-
((e.key ===
|
|
62
|
-
((e.key ===
|
|
63
|
-
((e.key ===
|
|
56
|
+
((e.key === "a" || e.code === "KeyA") && e.ctrlKey === true) || // Allow: Ctrl+A
|
|
57
|
+
((e.key === "c" || e.code === "KeyC") && e.ctrlKey === true) || // Allow: Ctrl+C
|
|
58
|
+
((e.key === "v" || e.code === "KeyV") && e.ctrlKey === true) || // Allow: Ctrl+V
|
|
59
|
+
((e.key === "x" || e.code === "KeyX") && e.ctrlKey === true) || // Allow: Ctrl+X
|
|
60
|
+
((e.key === "a" || e.code === "KeyA") && e.metaKey === true) || // Allow: Cmd+A (Mac)
|
|
61
|
+
((e.key === "c" || e.code === "KeyC") && e.metaKey === true) || // Allow: Cmd+C (Mac)
|
|
62
|
+
((e.key === "v" || e.code === "KeyV") && e.metaKey === true) || // Allow: Cmd+V (Mac)
|
|
63
|
+
((e.key === "x" || e.code === "KeyX") && e.metaKey === true) // Allow: Cmd+X (Mac)
|
|
64
64
|
) {
|
|
65
65
|
// let it happen, don't do anything
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
-
let newValue =
|
|
68
|
+
let newValue = "";
|
|
69
69
|
if (this.decimal && e.key === this.decimalSeparator) {
|
|
70
70
|
newValue = this.forecastValue(e.key);
|
|
71
71
|
if (newValue.split(this.decimalSeparator).length > 2) {
|
|
@@ -73,10 +73,8 @@ export class DigitOnlyDirective {
|
|
|
73
73
|
e.preventDefault();
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return; // Allow: only one decimal point
|
|
79
|
-
}
|
|
76
|
+
this.hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;
|
|
77
|
+
return; // Allow: only one decimal point
|
|
80
78
|
}
|
|
81
79
|
if (e.key === this.negativeSign && this.allowNegatives) {
|
|
82
80
|
newValue = this.forecastValue(e.key);
|
|
@@ -84,13 +82,11 @@ export class DigitOnlyDirective {
|
|
|
84
82
|
e.preventDefault();
|
|
85
83
|
return;
|
|
86
84
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
85
|
+
this.hasNegativeSign = newValue.split(this.negativeSign).length > -1;
|
|
86
|
+
return;
|
|
91
87
|
}
|
|
92
88
|
// Ensure that it is a number and stop the keypress
|
|
93
|
-
if (e.key ===
|
|
89
|
+
if (e.key === " " || Number.isNaN(Number(e.key))) {
|
|
94
90
|
e.preventDefault();
|
|
95
91
|
return;
|
|
96
92
|
}
|
|
@@ -109,14 +105,14 @@ export class DigitOnlyDirective {
|
|
|
109
105
|
}
|
|
110
106
|
onPaste(event) {
|
|
111
107
|
if (this.allowPaste === true) {
|
|
112
|
-
let pastedInput =
|
|
113
|
-
if (window
|
|
108
|
+
let pastedInput = "";
|
|
109
|
+
if (window.clipboardData) {
|
|
114
110
|
// Browser is IE
|
|
115
|
-
pastedInput = window
|
|
111
|
+
pastedInput = window.clipboardData.getData("text");
|
|
116
112
|
}
|
|
117
113
|
else if (event.clipboardData && event.clipboardData.getData) {
|
|
118
114
|
// Other browsers
|
|
119
|
-
pastedInput = event.clipboardData.getData(
|
|
115
|
+
pastedInput = event.clipboardData.getData("text/plain");
|
|
120
116
|
}
|
|
121
117
|
this.pasteData(pastedInput);
|
|
122
118
|
event.preventDefault();
|
|
@@ -128,7 +124,7 @@ export class DigitOnlyDirective {
|
|
|
128
124
|
}
|
|
129
125
|
}
|
|
130
126
|
onDrop(event) {
|
|
131
|
-
const textData = event.dataTransfer?.getData(
|
|
127
|
+
const textData = event.dataTransfer?.getData("text") ?? "";
|
|
132
128
|
this.inputElement.focus();
|
|
133
129
|
this.pasteData(textData);
|
|
134
130
|
event.preventDefault();
|
|
@@ -140,15 +136,16 @@ export class DigitOnlyDirective {
|
|
|
140
136
|
!this.getSelection().includes(this.negativeSign)) {
|
|
141
137
|
return;
|
|
142
138
|
}
|
|
143
|
-
const pasted = document.execCommand(
|
|
139
|
+
const pasted = document.execCommand("insertText", false, sanitizedContent);
|
|
144
140
|
if (!pasted) {
|
|
145
141
|
if (this.inputElement.setRangeText) {
|
|
146
142
|
const { selectionStart: start, selectionEnd: end } = this.inputElement;
|
|
147
|
-
this.inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0,
|
|
148
|
-
// Angular's Reactive Form relies on "input" event, but on Firefox,
|
|
143
|
+
this.inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, "end");
|
|
144
|
+
// Angular's Reactive Form relies on "input" event, but on Firefox,
|
|
145
|
+
// the setRangeText method doesn't trigger it
|
|
149
146
|
// so we have to trigger it ourself.
|
|
150
|
-
if (typeof window
|
|
151
|
-
this.inputElement.dispatchEvent(new Event(
|
|
147
|
+
if (typeof window.InstallTrigger !== "undefined") {
|
|
148
|
+
this.inputElement.dispatchEvent(new Event("input", { cancelable: true }));
|
|
152
149
|
}
|
|
153
150
|
}
|
|
154
151
|
else {
|
|
@@ -171,61 +168,57 @@ export class DigitOnlyDirective {
|
|
|
171
168
|
const pos = startPos + myValue.length;
|
|
172
169
|
myField.focus();
|
|
173
170
|
myField.setSelectionRange(pos, pos);
|
|
174
|
-
this.triggerEvent(myField,
|
|
171
|
+
this.triggerEvent(myField, "input");
|
|
175
172
|
}
|
|
176
173
|
triggerEvent(el, type) {
|
|
177
|
-
if (
|
|
174
|
+
if ("createEvent" in document) {
|
|
178
175
|
// modern browsers, IE9+
|
|
179
|
-
const e = document.createEvent(
|
|
176
|
+
const e = document.createEvent("HTMLEvents");
|
|
180
177
|
e.initEvent(type, false, true);
|
|
181
178
|
el.dispatchEvent(e);
|
|
182
179
|
}
|
|
183
180
|
}
|
|
184
181
|
// end stack overflow code
|
|
185
182
|
sanitizeInput(input) {
|
|
186
|
-
let result =
|
|
183
|
+
let result = "";
|
|
187
184
|
let regex;
|
|
188
185
|
if (this.decimal && this.isValidDecimal(input)) {
|
|
189
|
-
regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`,
|
|
186
|
+
regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`, "g");
|
|
190
187
|
}
|
|
191
188
|
else {
|
|
192
|
-
regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9]`,
|
|
189
|
+
regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9]`, "g");
|
|
193
190
|
}
|
|
194
|
-
result = input.replace(regex,
|
|
195
|
-
const maxLength = this.inputElement
|
|
191
|
+
result = input.replace(regex, "");
|
|
192
|
+
const { maxLength } = this.inputElement;
|
|
196
193
|
if (maxLength > 0) {
|
|
197
194
|
// the input element has maxLength limit
|
|
198
195
|
const allowedLength = maxLength - this.inputElement.value.length + (result.includes(`${this.negativeSign}`) ? 1 : 0);
|
|
199
|
-
result = allowedLength > 0 ? result.substring(0, allowedLength) :
|
|
196
|
+
result = allowedLength > 0 ? result.substring(0, allowedLength) : "";
|
|
200
197
|
}
|
|
201
198
|
return result;
|
|
202
199
|
}
|
|
203
200
|
getNegativeSignRegExp() {
|
|
204
201
|
return this.allowNegatives && (!this.hasNegativeSign || this.getSelection().includes(this.negativeSign))
|
|
205
202
|
? `(?!^${this.negativeSign})`
|
|
206
|
-
:
|
|
203
|
+
: "";
|
|
207
204
|
}
|
|
208
205
|
isValidDecimal(string) {
|
|
209
206
|
if (!this.hasDecimalPoint) {
|
|
210
207
|
return string.split(this.decimalSeparator).length <= 2;
|
|
211
208
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
return string.split(this.decimalSeparator).length <= 2;
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
return string.indexOf(this.decimalSeparator) < 0;
|
|
220
|
-
}
|
|
209
|
+
// the input element already has a decimal separator
|
|
210
|
+
const selectedText = this.getSelection();
|
|
211
|
+
if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {
|
|
212
|
+
return string.split(this.decimalSeparator).length <= 2;
|
|
221
213
|
}
|
|
214
|
+
return string.indexOf(this.decimalSeparator) < 0;
|
|
222
215
|
}
|
|
223
216
|
getSelection() {
|
|
224
217
|
return this.inputElement.value.substring(this.inputElement.selectionStart ?? 0, this.inputElement.selectionEnd ?? 0);
|
|
225
218
|
}
|
|
226
219
|
forecastValue(key) {
|
|
227
|
-
const selectionStart = this.inputElement
|
|
228
|
-
const selectionEnd = this.inputElement
|
|
220
|
+
const { selectionStart } = this.inputElement;
|
|
221
|
+
const { selectionEnd } = this.inputElement;
|
|
229
222
|
const oldValue = this.inputElement.value;
|
|
230
223
|
if (selectionStart == null && selectionEnd == null) {
|
|
231
224
|
return oldValue + key;
|
|
@@ -233,12 +226,12 @@ export class DigitOnlyDirective {
|
|
|
233
226
|
return oldValue.substring(0, selectionStart) + key + oldValue.substring(selectionEnd);
|
|
234
227
|
}
|
|
235
228
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
236
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DigitOnlyDirective, isStandalone: true, selector: "[
|
|
229
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DigitOnlyDirective, isStandalone: true, selector: "[annaCoreDigitOnly]", inputs: { decimal: "decimal", decimalSeparator: "decimalSeparator", allowNegatives: "allowNegatives", allowPaste: "allowPaste", negativeSign: "negativeSign", min: "min", max: "max", pattern: "pattern" }, host: { listeners: { "beforeinput": "onBeforeInput($event)", "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
237
230
|
}
|
|
238
231
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitOnlyDirective, decorators: [{
|
|
239
232
|
type: Directive,
|
|
240
233
|
args: [{
|
|
241
|
-
selector:
|
|
234
|
+
selector: "[annaCoreDigitOnly]",
|
|
242
235
|
standalone: true,
|
|
243
236
|
}]
|
|
244
237
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { decimal: [{
|
|
@@ -259,15 +252,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
259
252
|
type: Input
|
|
260
253
|
}], onBeforeInput: [{
|
|
261
254
|
type: HostListener,
|
|
262
|
-
args: [
|
|
255
|
+
args: ["beforeinput", ["$event"]]
|
|
263
256
|
}], onKeyDown: [{
|
|
264
257
|
type: HostListener,
|
|
265
|
-
args: [
|
|
258
|
+
args: ["keydown", ["$event"]]
|
|
266
259
|
}], onPaste: [{
|
|
267
260
|
type: HostListener,
|
|
268
|
-
args: [
|
|
261
|
+
args: ["paste", ["$event"]]
|
|
269
262
|
}], onDrop: [{
|
|
270
263
|
type: HostListener,
|
|
271
|
-
args: [
|
|
264
|
+
args: ["drop", ["$event"]]
|
|
272
265
|
}] } });
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvZGlyZWN0aXZlcy9kaWdpdHMtb25seS9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7O0FBTXJHLE1BQU0sT0FBTyxrQkFBa0I7SUE2QjNCLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBNUJ6QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFHO1lBQ3JCLFdBQVc7WUFDWCxRQUFRO1lBQ1IsS0FBSztZQUNMLFFBQVE7WUFDUixPQUFPO1lBQ1AsTUFBTTtZQUNOLEtBQUs7WUFDTCxXQUFXO1lBQ1gsWUFBWTtZQUNaLE9BQU87WUFDUCxNQUFNO1lBQ04sT0FBTztTQUNWLENBQUM7UUFFTyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUN2QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ25CLFFBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNoQixRQUFHLEdBQUcsUUFBUSxDQUFDO1FBRWhCLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBSWhDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQzNEO1FBRUQsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUNyRDtRQUVELElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztJQUdELGFBQWEsQ0FBQyxDQUFhO1FBQ3ZCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDM0YsT0FBTyxDQUFDLFFBQVE7YUFDbkI7WUFDRCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQztJQUdELFNBQVMsQ0FBQyxDQUFnQjtRQUN0QixJQUNJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSx5REFBeUQ7WUFDcEcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7WUFDckYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7WUFDckYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7WUFDckYsQ0FBQyxDQUFDLENBQUMsQ0FB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LGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtpR0FtQlksT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkF5Qk4sYUFBYTtzQkFEWixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZdkMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnRW5DLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBc0JqQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbZGlnaXRPbmx5XScsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlnaXRPbmx5RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIHByaXZhdGUgaGFzRGVjaW1hbFBvaW50ID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGhhc05lZ2F0aXZlU2lnbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBuYXZpZ2F0aW9uS2V5cyA9IFtcclxuICAgICAgICAnQmFja3NwYWNlJyxcclxuICAgICAgICAnRGVsZXRlJyxcclxuICAgICAgICAnVGFiJyxcclxuICAgICAgICAnRXNjYXBlJyxcclxuICAgICAgICAnRW50ZXInLFxyXG4gICAgICAgICdIb21lJyxcclxuICAgICAgICAnRW5kJyxcclxuICAgICAgICAnQXJyb3dMZWZ0JyxcclxuICAgICAgICAnQXJyb3dSaWdodCcsXHJcbiAgICAgICAgJ0NsZWFyJyxcclxuICAgICAgICAnQ29weScsXHJcbiAgICAgICAgJ1Bhc3RlJyxcclxuICAgIF07XHJcblxyXG4gICAgQElucHV0KCkgZGVjaW1hbCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGVjaW1hbFNlcGFyYXRvciA9ICcuJztcclxuICAgIEBJbnB1dCgpIGFsbG93TmVnYXRpdmVzID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBhbGxvd1Bhc3RlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIG5lZ2F0aXZlU2lnbiA9ICctJztcclxuICAgIEBJbnB1dCgpIG1pbiA9IC1JbmZpbml0eTtcclxuICAgIEBJbnB1dCgpIG1heCA9IEluZmluaXR5O1xyXG4gICAgQElucHV0KCkgcGF0dGVybj86IHN0cmluZyB8IFJlZ0V4cDtcclxuICAgIHByaXZhdGUgcmVnZXg6IFJlZ0V4cCB8IG51bGwgPSBudWxsO1xyXG4gICAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50ID0gZWwubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3BhdHRlcm4nXSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZ2V4ID0gdGhpcy5wYXR0ZXJuID8gUmVnRXhwKHRoaXMucGF0dGVybikgOiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ21pbiddKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1heWJlTWluID0gTnVtYmVyKHRoaXMubWluKTtcclxuICAgICAgICAgICAgdGhpcy5taW4gPSBpc05hTihtYXliZU1pbikgPyAtSW5maW5pdHkgOiBtYXliZU1pbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzWydtYXgnXSkge1xyXG4gICAgICAgICAgICBjb25zdCBtYXliZU1heCA9IE51bWJlcih0aGlzLm1heCk7XHJcbiAgICAgICAgICAgIHRoaXMubWF4ID0gaXNOYU4obWF5YmVNYXgpID8gSW5maW5pdHkgOiBtYXliZU1heDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignYmVmb3JlaW5wdXQnLCBbJyRldmVudCddKVxyXG4gICAgb25CZWZvcmVJbnB1dChlOiBJbnB1dEV2ZW50KTogYW55IHtcclxuICAgICAgICBpZiAoaXNOYU4oTnVtYmVyKGUuZGF0YSkpKSB7XHJcbiAgICAgICAgICAgIGlmIChlLmRhdGEgPT09IHRoaXMuZGVjaW1hbFNlcGFyYXRvciB8fCAoZS5kYXRhID09PSB0aGlzLm5lZ2F0aXZlU2lnbiAmJiB0aGlzLmFsbG93TmVnYXRpdmVzKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBnbyBvblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IGFueSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25LZXlzLmluZGV4T2YoZS5rZXkpID4gLTEgfHwgLy8gQWxsb3c6IG5hdmlnYXRpb24ga2V5czogYmFja3NwYWNlLCBkZWxldGUsIGFycm93cyBldGMuXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICdhJyB8fCBlLmNvZGUgPT09ICdLZXlBJykgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtBXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICdjJyB8fCBlLmNvZGUgPT09ICdLZXlDJykgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtDXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICd2JyB8fCBlLmNvZGUgPT09ICdLZXlWJykgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtWXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICd4JyB8fCBlLmNvZGUgPT09ICdLZXlYJykgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtYXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICdhJyB8fCBlLmNvZGUgPT09ICdLZXlBJykgJiYgZS5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK0EgKE1hYylcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gJ2MnIHx8IGUuY29kZSA9PT0gJ0tleUMnKSAmJiBlLm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrQyAoTWFjKVxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSAndicgfHwgZS5jb2RlID09PSAnS2V5VicpICYmIGUubWV0YUtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IENtZCtWIChNYWMpXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICd4JyB8fCBlLmNvZGUgPT09ICdLZXlYJykgJiYgZS5tZXRhS2V5ID09PSB0cnVlKSAvLyBBbGxvdzogQ21kK1ggKE1hYylcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgLy8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IG5ld1ZhbHVlID0gJyc7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwgJiYgZS5rZXkgPT09IHRoaXMuZGVjaW1hbFNlcGFyYXRvcikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHRoaXMuZm9yZWNhc3RWYWx1ZShlLmtleSk7XHJcbiAgICAgICAgICAgIGlmIChuZXdWYWx1ZS5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgICAgICAgIC8vIGhhcyB0d28gb3IgbW9yZSBkZWNpbWFsIHBvaW50c1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNEZWNpbWFsUG9pbnQgPSBuZXdWYWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgPiAtMTtcclxuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gQWxsb3c6IG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGUua2V5ID09PSB0aGlzLm5lZ2F0aXZlU2lnbiAmJiB0aGlzLmFsbG93TmVnYXRpdmVzKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5mb3JlY2FzdFZhbHVlKGUua2V5KTtcclxuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlLmNoYXJBdCgwKSAhPT0gdGhpcy5uZWdhdGl2ZVNpZ24gfHwgbmV3VmFsdWUuc3BsaXQodGhpcy5uZWdhdGl2ZVNpZ24pLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFzTmVnYXRpdmVTaWduID0gbmV3VmFsdWUuc3BsaXQodGhpcy5uZWdhdGl2ZVNpZ24pLmxlbmd0aCA+IC0xO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBhIG51bWJlciBhbmQgc3RvcCB0aGUga2V5cHJlc3NcclxuICAgICAgICBpZiAoZS5rZXkgPT09ICcgJyB8fCBpc05hTihOdW1iZXIoZS5rZXkpKSkge1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3VmFsdWUgfHwgdGhpcy5mb3JlY2FzdFZhbHVlKGUua2V5KTtcclxuICAgICAgICAvLyBjaGVjayB0aGUgaW5wdXQgcGF0dGVybiBSZWdFeHBcclxuICAgICAgICBpZiAodGhpcy5yZWdleCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVnZXgudGVzdChuZXdWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbmV3TnVtYmVyID0gTnVtYmVyKG5ld1ZhbHVlKTtcclxuICAgICAgICBpZiAobmV3TnVtYmVyID4gdGhpcy5tYXggfHwgbmV3TnVtYmVyIDwgdGhpcy5taW4pIHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXHJcbiAgICBvblBhc3RlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hbGxvd1Bhc3RlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGxldCBwYXN0ZWRJbnB1dDogc3RyaW5nID0gJyc7XHJcbiAgICAgICAgICAgIGlmICgod2luZG93IGFzIHsgW2tleTogc3RyaW5nXTogYW55IH0pWydjbGlwYm9hcmREYXRhJ10pIHtcclxuICAgICAgICAgICAgICAgIC8vIEJyb3dzZXIgaXMgSUVcclxuICAgICAgICAgICAgICAgIHBhc3RlZElucHV0ID0gKHdpbmRvdyBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KVsnY2xpcGJvYXJkRGF0YSddLmdldERhdGEoJ3RleHQnKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5jbGlwYm9hcmREYXRhICYmIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSkge1xyXG4gICAgICAgICAgICAgICAgLy8gT3RoZXIgYnJvd3NlcnNcclxuICAgICAgICAgICAgICAgIHBhc3RlZElucHV0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFzdGVEYXRhKHBhc3RlZElucHV0KTtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB0aGlzIHByZXZlbnRzIHRoZSBwYXN0ZVxyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXHJcbiAgICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0JykgPz8gJyc7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB0aGlzLnBhc3RlRGF0YSh0ZXh0RGF0YSk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHBhc3RlRGF0YShwYXN0ZWRDb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb250ZW50ID0gdGhpcy5zYW5pdGl6ZUlucHV0KHBhc3RlZENvbnRlbnQpO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgc2FuaXRpemVkQ29udGVudC5pbmNsdWRlcyh0aGlzLm5lZ2F0aXZlU2lnbikgJiZcclxuICAgICAgICAgICAgdGhpcy5oYXNOZWdhdGl2ZVNpZ24gJiZcclxuICAgICAgICAgICAgIXRoaXMuZ2V0U2VsZWN0aW9uKCkuaW5jbHVkZXModGhpcy5uZWdhdGl2ZVNpZ24pXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcGFzdGVkID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnLCBmYWxzZSwgc2FuaXRpemVkQ29udGVudCk7XHJcbiAgICAgICAgaWYgKCFwYXN0ZWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydDogc3RhcnQsIHNlbGVjdGlvbkVuZDogZW5kIH0gPSB0aGlzLmlucHV0RWxlbWVudDtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChzYW5pdGl6ZWRDb250ZW50LCBzdGFydCA/PyAwLCBlbmQgPz8gMCwgJ2VuZCcpO1xyXG4gICAgICAgICAgICAgICAgLy8gQW5ndWxhcidzIFJlYWN0aXZlIEZvcm0gcmVsaWVzIG9uIFwiaW5wdXRcIiBldmVudCwgYnV0IG9uIEZpcmVmb3gsIHRoZSBzZXRSYW5nZVRleHQgbWV0aG9kIGRvZXNuJ3QgdHJpZ2dlciBpdFxyXG4gICAgICAgICAgICAgICAgLy8gc28gd2UgaGF2ZSB0byB0cmlnZ2VyIGl0IG91cnNlbGYuXHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mICh3aW5kb3cgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSlbJ0luc3RhbGxUcmlnZ2VyJ10gIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIEJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBzZXRSYW5nZVRleHQsIGUuZy4gSUVcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0QXRDdXJzb3IodGhpcy5pbnB1dEVsZW1lbnQsIHNhbml0aXplZENvbnRlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwpIHtcclxuICAgICAgICAgICAgdGhpcy5oYXNEZWNpbWFsUG9pbnQgPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgPiAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oYXNOZWdhdGl2ZVNpZ24gPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKHRoaXMubmVnYXRpdmVTaWduKSA+IC0xO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoZSBmb2xsb3dpbmcgMiBtZXRob2RzIHdlcmUgYWRkZWQgZnJvbSB0aGUgYmVsb3cgYXJ0aWNsZSBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBzZXRSYW5nZVRleHRcclxuICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzExMDc2OTc1L2hvdy10by1pbnNlcnQtdGV4dC1pbnRvLXRoZS10ZXh0YXJlYS1hdC10aGUtY3VycmVudC1jdXJzb3ItcG9zaXRpb25cclxuICAgIHByaXZhdGUgaW5zZXJ0QXRDdXJzb3IobXlGaWVsZDogSFRNTElucHV0RWxlbWVudCwgbXlWYWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnRQb3MgPSBteUZpZWxkLnNlbGVjdGlvblN0YXJ0ID8/IDA7XHJcbiAgICAgICAgY29uc3QgZW5kUG9zID0gbXlGaWVsZC5zZWxlY3Rpb25FbmQgPz8gMDtcclxuXHJcbiAgICAgICAgbXlGaWVsZC52YWx1ZSA9XHJcbiAgICAgICAgICAgIG15RmllbGQudmFsdWUuc3Vic3RyaW5nKDAsIHN0YXJ0UG9zKSArIG15VmFsdWUgKyBteUZpZWxkLnZhbHVlLnN1YnN0cmluZyhlbmRQb3MsIG15RmllbGQudmFsdWUubGVuZ3RoKTtcclxuXHJcbiAgICAgICAgY29uc3QgcG9zID0gc3RhcnRQb3MgKyBteVZhbHVlLmxlbmd0aDtcclxuICAgICAgICBteUZpZWxkLmZvY3VzKCk7XHJcbiAgICAgICAgbXlGaWVsZC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XHJcblxyXG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KG15RmllbGQsICdpbnB1dCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdHJpZ2dlckV2ZW50KGVsOiBIVE1MSW5wdXRFbGVtZW50LCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoJ2NyZWF0ZUV2ZW50JyBpbiBkb2N1bWVudCkge1xyXG4gICAgICAgICAgICAvLyBtb2Rlcm4gYnJvd3NlcnMsIElFOStcclxuICAgICAgICAgICAgY29uc3QgZSA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJyk7XHJcbiAgICAgICAgICAgIGUuaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgZWwuZGlzcGF0Y2hFdmVudChlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBlbmQgc3RhY2sgb3ZlcmZsb3cgY29kZVxyXG5cclxuICAgIHByaXZhdGUgc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICAgICAgbGV0IHJlZ2V4O1xyXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwgJiYgdGhpcy5pc1ZhbGlkRGVjaW1hbChpbnB1dCkpIHtcclxuICAgICAgICAgICAgcmVnZXggPSBuZXcgUmVnRXhwKGAke3RoaXMuZ2V0TmVnYXRpdmVTaWduUmVnRXhwKCl9W14wLTkke3RoaXMuZGVjaW1hbFNlcGFyYXRvcn1dYCwgJ2cnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZWdleCA9IG5ldyBSZWdFeHAoYCR7dGhpcy5nZXROZWdhdGl2ZVNpZ25SZWdFeHAoKX1bXjAtOV1gLCAnZycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKHJlZ2V4LCAnJyk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMuaW5wdXRFbGVtZW50Lm1heExlbmd0aDtcclxuICAgICAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAvLyB0aGUgaW5wdXQgZWxlbWVudCBoYXMgbWF4TGVuZ3RoIGxpbWl0XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbG93ZWRMZW5ndGggPVxyXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoIC0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoICsgKHJlc3VsdC5pbmNsdWRlcyhgJHt0aGlzLm5lZ2F0aXZlU2lnbn1gKSA/IDEgOiAwKTtcclxuICAgICAgICAgICAgcmVzdWx0ID0gYWxsb3dlZExlbmd0aCA+IDAgPyByZXN1bHQuc3Vic3RyaW5nKDAsIGFsbG93ZWRMZW5ndGgpIDogJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXROZWdhdGl2ZVNpZ25SZWdFeHAoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbGxvd05lZ2F0aXZlcyAmJiAoIXRoaXMuaGFzTmVnYXRpdmVTaWduIHx8IHRoaXMuZ2V0U2VsZWN0aW9uKCkuaW5jbHVkZXModGhpcy5uZWdhdGl2ZVNpZ24pKVxyXG4gICAgICAgICAgICA/IGAoPyFeJHt0aGlzLm5lZ2F0aXZlU2lnbn0pYFxyXG4gICAgICAgICAgICA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZERlY2ltYWwoc3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzRGVjaW1hbFBvaW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKS5sZW5ndGggPD0gMjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB0aGUgaW5wdXQgZWxlbWVudCBhbHJlYWR5IGhhcyBhIGRlY2ltYWwgc2VwYXJhdG9yXHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFRleHQgJiYgc2VsZWN0ZWRUZXh0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoIDw9IDI7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nLmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKSA8IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3Rpb24oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKFxyXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydCA/PyAwLFxyXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25FbmQgPz8gMCxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZm9yZWNhc3RWYWx1ZShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSB0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgICBjb25zdCBzZWxlY3Rpb25FbmQgPSB0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25FbmQ7XHJcbiAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKHNlbGVjdGlvblN0YXJ0ID09IG51bGwgJiYgc2VsZWN0aW9uRW5kID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9sZFZhbHVlICsga2V5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9sZFZhbHVlLnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCkgKyBrZXkgKyBvbGRWYWx1ZS5zdWJzdHJpbmcoc2VsZWN0aW9uRW5kKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvZGlyZWN0aXZlcy9kaWdpdHMtb25seS9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7O0FBTXJHLE1BQU0sT0FBTyxrQkFBa0I7SUE2QjNCLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBNUJ6QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFHO1lBQ3JCLFdBQVc7WUFDWCxRQUFRO1lBQ1IsS0FBSztZQUNMLFFBQVE7WUFDUixPQUFPO1lBQ1AsTUFBTTtZQUNOLEtBQUs7WUFDTCxXQUFXO1lBQ1gsWUFBWTtZQUNaLE9BQU87WUFDUCxNQUFNO1lBQ04sT0FBTztTQUNWLENBQUM7UUFFTyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUN2QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ25CLFFBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNoQixRQUFHLEdBQUcsUUFBUSxDQUFDO1FBRWhCLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBSWhDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUMzRDtRQUVELElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNiLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQzVEO1FBRUQsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQzNEO0lBQ0wsQ0FBQztJQUdELGFBQWEsQ0FBQyxDQUFhO1FBQ3ZCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQzNGLE9BQU8sQ0FBQyxRQUFRO2FBQ25CO1lBQ0QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFHRCxTQUFTLENBQUMsQ0FBZ0I7UUFDdEIsSUFDSSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUkseURBQXlEO1lBQ3BHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUksZ0JBQWdCO1lBQ2hGLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUksZ0JBQWdCO1lBQ2hGLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUksZ0JBQWdCO1lBQ2hGLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUksZ0JBQWdCO1lBQ2hGLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUkscUJBQXFCO1lBQ3JGLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUkscUJBQXFCO1lBQ3JGLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUkscUJBQXFCO1lBQ3JGLENBQUMs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O2lCQUNuQjtpR0FtQlksT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkF5Qk4sYUFBYTtzQkFEWixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZdkMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE4RG5DLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBc0JqQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbYW5uYUNvcmVEaWdpdE9ubHldXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlnaXRPbmx5RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIHByaXZhdGUgaGFzRGVjaW1hbFBvaW50ID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGhhc05lZ2F0aXZlU2lnbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBuYXZpZ2F0aW9uS2V5cyA9IFtcclxuICAgICAgICBcIkJhY2tzcGFjZVwiLFxyXG4gICAgICAgIFwiRGVsZXRlXCIsXHJcbiAgICAgICAgXCJUYWJcIixcclxuICAgICAgICBcIkVzY2FwZVwiLFxyXG4gICAgICAgIFwiRW50ZXJcIixcclxuICAgICAgICBcIkhvbWVcIixcclxuICAgICAgICBcIkVuZFwiLFxyXG4gICAgICAgIFwiQXJyb3dMZWZ0XCIsXHJcbiAgICAgICAgXCJBcnJvd1JpZ2h0XCIsXHJcbiAgICAgICAgXCJDbGVhclwiLFxyXG4gICAgICAgIFwiQ29weVwiLFxyXG4gICAgICAgIFwiUGFzdGVcIixcclxuICAgIF07XHJcblxyXG4gICAgQElucHV0KCkgZGVjaW1hbCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGVjaW1hbFNlcGFyYXRvciA9IFwiLlwiO1xyXG4gICAgQElucHV0KCkgYWxsb3dOZWdhdGl2ZXMgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGFsbG93UGFzdGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgbmVnYXRpdmVTaWduID0gXCItXCI7XHJcbiAgICBASW5wdXQoKSBtaW4gPSAtSW5maW5pdHk7XHJcbiAgICBASW5wdXQoKSBtYXggPSBJbmZpbml0eTtcclxuICAgIEBJbnB1dCgpIHBhdHRlcm4/OiBzdHJpbmcgfCBSZWdFeHA7XHJcbiAgICBwcml2YXRlIHJlZ2V4OiBSZWdFeHAgfCBudWxsID0gbnVsbDtcclxuICAgIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLnBhdHRlcm4pIHtcclxuICAgICAgICAgICAgdGhpcy5yZWdleCA9IHRoaXMucGF0dGVybiA/IFJlZ0V4cCh0aGlzLnBhdHRlcm4pIDogbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLm1pbikge1xyXG4gICAgICAgICAgICBjb25zdCBtYXliZU1pbiA9IE51bWJlcih0aGlzLm1pbik7XHJcbiAgICAgICAgICAgIHRoaXMubWluID0gTnVtYmVyLmlzTmFOKG1heWJlTWluKSA/IC1JbmZpbml0eSA6IG1heWJlTWluO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXMubWF4KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1heWJlTWF4ID0gTnVtYmVyKHRoaXMubWF4KTtcclxuICAgICAgICAgICAgdGhpcy5tYXggPSBOdW1iZXIuaXNOYU4obWF5YmVNYXgpID8gSW5maW5pdHkgOiBtYXliZU1heDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImJlZm9yZWlucHV0XCIsIFtcIiRldmVudFwiXSlcclxuICAgIG9uQmVmb3JlSW5wdXQoZTogSW5wdXRFdmVudCk6IGFueSB7XHJcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihOdW1iZXIoZS5kYXRhKSkpIHtcclxuICAgICAgICAgICAgaWYgKGUuZGF0YSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yIHx8IChlLmRhdGEgPT09IHRoaXMubmVnYXRpdmVTaWduICYmIHRoaXMuYWxsb3dOZWdhdGl2ZXMpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIGdvIG9uXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IGFueSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25LZXlzLmluZGV4T2YoZS5rZXkpID4gLTEgfHwgLy8gQWxsb3c6IG5hdmlnYXRpb24ga2V5czogYmFja3NwYWNlLCBkZWxldGUsIGFycm93cyBldGMuXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09IFwiYVwiIHx8IGUuY29kZSA9PT0gXCJLZXlBXCIpICYmIGUuY3RybEtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSBcImNcIiB8fCBlLmNvZGUgPT09IFwiS2V5Q1wiKSAmJiBlLmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK0NcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gXCJ2XCIgfHwgZS5jb2RlID09PSBcIktleVZcIikgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtWXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09IFwieFwiIHx8IGUuY29kZSA9PT0gXCJLZXlYXCIpICYmIGUuY3RybEtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IEN0cmwrWFxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSBcImFcIiB8fCBlLmNvZGUgPT09IFwiS2V5QVwiKSAmJiBlLm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrQSAoTWFjKVxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSBcImNcIiB8fCBlLmNvZGUgPT09IFwiS2V5Q1wiKSAmJiBlLm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrQyAoTWFjKVxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSBcInZcIiB8fCBlLmNvZGUgPT09IFwiS2V5VlwiKSAmJiBlLm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrViAoTWFjKVxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSBcInhcIiB8fCBlLmNvZGUgPT09IFwiS2V5WFwiKSAmJiBlLm1ldGFLZXkgPT09IHRydWUpIC8vIEFsbG93OiBDbWQrWCAoTWFjKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICAvLyBsZXQgaXQgaGFwcGVuLCBkb24ndCBkbyBhbnl0aGluZ1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgbmV3VmFsdWUgPSBcIlwiO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5kZWNpbWFsICYmIGUua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLmZvcmVjYXN0VmFsdWUoZS5rZXkpO1xyXG4gICAgICAgICAgICBpZiAobmV3VmFsdWUuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKS5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBoYXMgdHdvIG9yIG1vcmUgZGVjaW1hbCBwb2ludHNcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmhhc0RlY2ltYWxQb2ludCA9IG5ld1ZhbHVlLmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKSA+IC0xO1xyXG4gICAgICAgICAgICByZXR1cm47IC8vIEFsbG93OiBvbmx5IG9uZSBkZWNpbWFsIHBvaW50XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZS5rZXkgPT09IHRoaXMubmVnYXRpdmVTaWduICYmIHRoaXMuYWxsb3dOZWdhdGl2ZXMpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLmZvcmVjYXN0VmFsdWUoZS5rZXkpO1xyXG4gICAgICAgICAgICBpZiAobmV3VmFsdWUuY2hhckF0KDApICE9PSB0aGlzLm5lZ2F0aXZlU2lnbiB8fCBuZXdWYWx1ZS5zcGxpdCh0aGlzLm5lZ2F0aXZlU2lnbikubGVuZ3RoID4gMikge1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaGFzTmVnYXRpdmVTaWduID0gbmV3VmFsdWUuc3BsaXQodGhpcy5uZWdhdGl2ZVNpZ24pLmxlbmd0aCA+IC0xO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBhIG51bWJlciBhbmQgc3RvcCB0aGUga2V5cHJlc3NcclxuICAgICAgICBpZiAoZS5rZXkgPT09IFwiIFwiIHx8IE51bWJlci5pc05hTihOdW1iZXIoZS5rZXkpKSkge1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3VmFsdWUgfHwgdGhpcy5mb3JlY2FzdFZhbHVlKGUua2V5KTtcclxuICAgICAgICAvLyBjaGVjayB0aGUgaW5wdXQgcGF0dGVybiBSZWdFeHBcclxuICAgICAgICBpZiAodGhpcy5yZWdleCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVnZXgudGVzdChuZXdWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbmV3TnVtYmVyID0gTnVtYmVyKG5ld1ZhbHVlKTtcclxuICAgICAgICBpZiAobmV3TnVtYmVyID4gdGhpcy5tYXggfHwgbmV3TnVtYmVyIDwgdGhpcy5taW4pIHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwicGFzdGVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgb25QYXN0ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuYWxsb3dQYXN0ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBsZXQgcGFzdGVkSW5wdXQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgICAgICAgICAgIGlmICgod2luZG93IGFzIHsgW2tleTogc3RyaW5nXTogYW55IH0pLmNsaXBib2FyZERhdGEpIHtcclxuICAgICAgICAgICAgICAgIC8vIEJyb3dzZXIgaXMgSUVcclxuICAgICAgICAgICAgICAgIHBhc3RlZElucHV0ID0gKHdpbmRvdyBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KS5jbGlwYm9hcmREYXRhLmdldERhdGEoXCJ0ZXh0XCIpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNsaXBib2FyZERhdGEgJiYgZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBPdGhlciBicm93c2Vyc1xyXG4gICAgICAgICAgICAgICAgcGFzdGVkSW5wdXQgPSBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoXCJ0ZXh0L3BsYWluXCIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBhc3RlRGF0YShwYXN0ZWRJbnB1dCk7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyB0aGUgcGFzdGVcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJkcm9wXCIsIFtcIiRldmVudFwiXSlcclxuICAgIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGV4dERhdGEgPSBldmVudC5kYXRhVHJhbnNmZXI/LmdldERhdGEoXCJ0ZXh0XCIpID8/IFwiXCI7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB0aGlzLnBhc3RlRGF0YSh0ZXh0RGF0YSk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHBhc3RlRGF0YShwYXN0ZWRDb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb250ZW50ID0gdGhpcy5zYW5pdGl6ZUlucHV0KHBhc3RlZENvbnRlbnQpO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgc2FuaXRpemVkQ29udGVudC5pbmNsdWRlcyh0aGlzLm5lZ2F0aXZlU2lnbikgJiZcclxuICAgICAgICAgICAgdGhpcy5oYXNOZWdhdGl2ZVNpZ24gJiZcclxuICAgICAgICAgICAgIXRoaXMuZ2V0U2VsZWN0aW9uKCkuaW5jbHVkZXModGhpcy5uZWdhdGl2ZVNpZ24pXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcGFzdGVkID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJpbnNlcnRUZXh0XCIsIGZhbHNlLCBzYW5pdGl6ZWRDb250ZW50KTtcclxuICAgICAgICBpZiAoIXBhc3RlZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQuc2V0UmFuZ2VUZXh0KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0OiBzdGFydCwgc2VsZWN0aW9uRW5kOiBlbmQgfSA9IHRoaXMuaW5wdXRFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuc2V0UmFuZ2VUZXh0KHNhbml0aXplZENvbnRlbnQsIHN0YXJ0ID8/IDAsIGVuZCA/PyAwLCBcImVuZFwiKTtcclxuICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIncyBSZWFjdGl2ZSBGb3JtIHJlbGllcyBvbiBcImlucHV0XCIgZXZlbnQsIGJ1dCBvbiBGaXJlZm94LFxyXG4gICAgICAgICAgICAgICAgLy8gdGhlIHNldFJhbmdlVGV4dCBtZXRob2QgZG9lc24ndCB0cmlnZ2VyIGl0XHJcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIHRyaWdnZXIgaXQgb3Vyc2VsZi5cclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKHdpbmRvdyBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KS5JbnN0YWxsVHJpZ2dlciAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiaW5wdXRcIiwgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIEJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBzZXRSYW5nZVRleHQsIGUuZy4gSUVcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0QXRDdXJzb3IodGhpcy5pbnB1dEVsZW1lbnQsIHNhbml0aXplZENvbnRlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwpIHtcclxuICAgICAgICAgICAgdGhpcy5oYXNEZWNpbWFsUG9pbnQgPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgPiAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oYXNOZWdhdGl2ZVNpZ24gPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKHRoaXMubmVnYXRpdmVTaWduKSA+IC0xO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoZSBmb2xsb3dpbmcgMiBtZXRob2RzIHdlcmUgYWRkZWQgZnJvbSB0aGUgYmVsb3cgYXJ0aWNsZSBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBzZXRSYW5nZVRleHRcclxuICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzExMDc2OTc1L2hvdy10by1pbnNlcnQtdGV4dC1pbnRvLXRoZS10ZXh0YXJlYS1hdC10aGUtY3VycmVudC1jdXJzb3ItcG9zaXRpb25cclxuICAgIHByaXZhdGUgaW5zZXJ0QXRDdXJzb3IobXlGaWVsZDogSFRNTElucHV0RWxlbWVudCwgbXlWYWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnRQb3MgPSBteUZpZWxkLnNlbGVjdGlvblN0YXJ0ID8/IDA7XHJcbiAgICAgICAgY29uc3QgZW5kUG9zID0gbXlGaWVsZC5zZWxlY3Rpb25FbmQgPz8gMDtcclxuXHJcbiAgICAgICAgbXlGaWVsZC52YWx1ZSA9XHJcbiAgICAgICAgICAgIG15RmllbGQudmFsdWUuc3Vic3RyaW5nKDAsIHN0YXJ0UG9zKSArIG15VmFsdWUgKyBteUZpZWxkLnZhbHVlLnN1YnN0cmluZyhlbmRQb3MsIG15RmllbGQudmFsdWUubGVuZ3RoKTtcclxuXHJcbiAgICAgICAgY29uc3QgcG9zID0gc3RhcnRQb3MgKyBteVZhbHVlLmxlbmd0aDtcclxuICAgICAgICBteUZpZWxkLmZvY3VzKCk7XHJcbiAgICAgICAgbXlGaWVsZC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XHJcblxyXG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KG15RmllbGQsIFwiaW5wdXRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0cmlnZ2VyRXZlbnQoZWw6IEhUTUxJbnB1dEVsZW1lbnQsIHR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmIChcImNyZWF0ZUV2ZW50XCIgaW4gZG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgLy8gbW9kZXJuIGJyb3dzZXJzLCBJRTkrXHJcbiAgICAgICAgICAgIGNvbnN0IGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudChcIkhUTUxFdmVudHNcIik7XHJcbiAgICAgICAgICAgIGUuaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgZWwuZGlzcGF0Y2hFdmVudChlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBlbmQgc3RhY2sgb3ZlcmZsb3cgY29kZVxyXG5cclxuICAgIHByaXZhdGUgc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gXCJcIjtcclxuICAgICAgICBsZXQgcmVnZXg7XHJcbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbCAmJiB0aGlzLmlzVmFsaWREZWNpbWFsKGlucHV0KSkge1xyXG4gICAgICAgICAgICByZWdleCA9IG5ldyBSZWdFeHAoYCR7dGhpcy5nZXROZWdhdGl2ZVNpZ25SZWdFeHAoKX1bXjAtOSR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfV1gLCBcImdcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVnZXggPSBuZXcgUmVnRXhwKGAke3RoaXMuZ2V0TmVnYXRpdmVTaWduUmVnRXhwKCl9W14wLTldYCwgXCJnXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKHJlZ2V4LCBcIlwiKTtcclxuXHJcbiAgICAgICAgY29uc3QgeyBtYXhMZW5ndGggfSA9IHRoaXMuaW5wdXRFbGVtZW50O1xyXG4gICAgICAgIGlmIChtYXhMZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIC8vIHRoZSBpbnB1dCBlbGVtZW50IGhhcyBtYXhMZW5ndGggbGltaXRcclxuICAgICAgICAgICAgY29uc3QgYWxsb3dlZExlbmd0aCA9XHJcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGggLSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGggKyAocmVzdWx0LmluY2x1ZGVzKGAke3RoaXMubmVnYXRpdmVTaWdufWApID8gMSA6IDApO1xyXG4gICAgICAgICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TmVnYXRpdmVTaWduUmVnRXhwKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsb3dOZWdhdGl2ZXMgJiYgKCF0aGlzLmhhc05lZ2F0aXZlU2lnbiB8fCB0aGlzLmdldFNlbGVjdGlvbigpLmluY2x1ZGVzKHRoaXMubmVnYXRpdmVTaWduKSlcclxuICAgICAgICAgICAgPyBgKD8hXiR7dGhpcy5uZWdhdGl2ZVNpZ259KWBcclxuICAgICAgICAgICAgOiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZERlY2ltYWwoc3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzRGVjaW1hbFBvaW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKS5sZW5ndGggPD0gMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgYWxyZWFkeSBoYXMgYSBkZWNpbWFsIHNlcGFyYXRvclxyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkVGV4dCAmJiBzZWxlY3RlZFRleHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpID4gLTEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCA8PSAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyaW5nLmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKSA8IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3Rpb24oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKFxyXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydCA/PyAwLFxyXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25FbmQgPz8gMCxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZm9yZWNhc3RWYWx1ZShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCB9ID0gdGhpcy5pbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25FbmQgfSA9IHRoaXMuaW5wdXRFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWU7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdGFydCA9PSBudWxsICYmIHNlbGVjdGlvbkVuZCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvbGRWYWx1ZSArIGtleTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvbGRWYWx1ZS5zdWJzdHJpbmcoMCwgc2VsZWN0aW9uU3RhcnQpICsga2V5ICsgb2xkVmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvbkVuZCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener, Input, Renderer2 } from
|
|
1
|
+
import { Directive, ElementRef, HostListener, Input, Renderer2 } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class FixedRowsPopupTableDirective {
|
|
4
4
|
constructor(el, renderer) {
|
|
@@ -18,19 +18,19 @@ export class FixedRowsPopupTableDirective {
|
|
|
18
18
|
const viewportHeight = window.innerHeight;
|
|
19
19
|
const maxNoOfRowsToDisplay = viewportHeight < 740 ? 5 : 10;
|
|
20
20
|
this.maxRowsRenderedWithoutScrollForPopup = maxNoOfRowsToDisplay;
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const totalPopupTableHeight = this.maxRowsRenderedWithoutScrollForPopup * this.popupRowHeight + this.popupHeaderHeight;
|
|
22
|
+
const tableHeightForPopup = this.tableDataLength < this.maxRowsRenderedWithoutScrollForPopup
|
|
23
23
|
? this.popupRowHeight * (this.tableDataLength ? this.tableDataLength : 1) + this.popupHeaderHeight
|
|
24
24
|
: totalPopupTableHeight;
|
|
25
|
-
this.renderer.setStyle(this.el.nativeElement,
|
|
25
|
+
this.renderer.setStyle(this.el.nativeElement, "height", `calc(${tableHeightForPopup}px)`);
|
|
26
26
|
}
|
|
27
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FixedRowsPopupTableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
28
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FixedRowsPopupTableDirective, isStandalone: true, selector: "[
|
|
28
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FixedRowsPopupTableDirective, isStandalone: true, selector: "[annaCoreFixedRowsInPopupTable]", inputs: { popupRowHeight: "popupRowHeight", popupHeaderHeight: "popupHeaderHeight", tableDataLength: "tableDataLength" }, host: { listeners: { "window:resize": "onWindowResize()" } }, ngImport: i0 }); }
|
|
29
29
|
}
|
|
30
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FixedRowsPopupTableDirective, decorators: [{
|
|
31
31
|
type: Directive,
|
|
32
32
|
args: [{
|
|
33
|
-
selector:
|
|
33
|
+
selector: "[annaCoreFixedRowsInPopupTable]",
|
|
34
34
|
standalone: true,
|
|
35
35
|
}]
|
|
36
36
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { popupRowHeight: [{
|
|
@@ -41,6 +41,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
41
41
|
type: Input
|
|
42
42
|
}], onWindowResize: [{
|
|
43
43
|
type: HostListener,
|
|
44
|
-
args: [
|
|
44
|
+
args: ["window:resize"]
|
|
45
45
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtcm93cy1wb3B1cC10YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9kaXJlY3RpdmVzL2ZpeGVkLXJvd3MtcG9wdXAtdGFibGUvZml4ZWQtcm93cy1wb3B1cC10YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTlGLE1BQU0sT0FBTyw0QkFBNEI7SUFNckMsWUFDWSxFQUFjLEVBQ2QsUUFBbUI7UUFEbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFQdEIsbUJBQWMsR0FBVyxJQUFJLENBQUM7UUFDOUIsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBRXhDLHlDQUFvQyxHQUFXLEVBQUUsQ0FBQztJQUsvQyxDQUFDO0lBR0osY0FBYztRQUNWLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDMUMsTUFBTSxvQkFBb0IsR0FBRyxjQUFjLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsb0NBQW9DLEdBQUcsb0JBQW9CLENBQUM7UUFDakUsTUFBTSxxQkFBcUIsR0FDdkIsSUFBSSxDQUFDLG9DQUFvQyxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRTdGLE1BQU0sbUJBQW1CLEdBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG9DQUFvQztZQUM1RCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUI7WUFDbEcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1FBRWhDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLG1CQUFtQixLQUFLLENBQUMsQ0FBQztJQUM5RixDQUFDOytHQWpDUSw0QkFBNEI7bUdBQTVCLDRCQUE0Qjs7NEZBQTVCLDRCQUE0QjtrQkFKeEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUNBQWlDO29CQUMzQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7eUhBRVksY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFTTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbYW5uYUNvcmVGaXhlZFJvd3NJblBvcHVwVGFibGVdXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRml4ZWRSb3dzUG9wdXBUYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBwb3B1cFJvd0hlaWdodDogbnVtYmVyID0gMzcuNTtcclxuICAgIEBJbnB1dCgpIHBvcHVwSGVhZGVySGVpZ2h0OiBudW1iZXIgPSAzODtcclxuICAgIEBJbnB1dCgpIHRhYmxlRGF0YUxlbmd0aDogbnVtYmVyO1xyXG4gICAgbWF4Um93c1JlbmRlcmVkV2l0aG91dFNjcm9sbEZvclBvcHVwOiBudW1iZXIgPSAxMDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICkge31cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxyXG4gICAgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQb3BVcFRhYmxlSGVpZ2h0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQb3BVcFRhYmxlSGVpZ2h0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UG9wVXBUYWJsZUhlaWdodCgpIHtcclxuICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgICBjb25zdCBtYXhOb09mUm93c1RvRGlzcGxheSA9IHZpZXdwb3J0SGVpZ2h0IDwgNzQwID8gNSA6IDEwO1xyXG4gICAgICAgIHRoaXMubWF4Um93c1JlbmRlcmVkV2l0aG91dFNjcm9sbEZvclBvcHVwID0gbWF4Tm9PZlJvd3NUb0Rpc3BsYXk7XHJcbiAgICAgICAgY29uc3QgdG90YWxQb3B1cFRhYmxlSGVpZ2h0ID1cclxuICAgICAgICAgICAgdGhpcy5tYXhSb3dzUmVuZGVyZWRXaXRob3V0U2Nyb2xsRm9yUG9wdXAgKiB0aGlzLnBvcHVwUm93SGVpZ2h0ICsgdGhpcy5wb3B1cEhlYWRlckhlaWdodDtcclxuXHJcbiAgICAgICAgY29uc3QgdGFibGVIZWlnaHRGb3JQb3B1cCA9XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhTGVuZ3RoIDwgdGhpcy5tYXhSb3dzUmVuZGVyZWRXaXRob3V0U2Nyb2xsRm9yUG9wdXBcclxuICAgICAgICAgICAgICAgID8gdGhpcy5wb3B1cFJvd0hlaWdodCAqICh0aGlzLnRhYmxlRGF0YUxlbmd0aCA/IHRoaXMudGFibGVEYXRhTGVuZ3RoIDogMSkgKyB0aGlzLnBvcHVwSGVhZGVySGVpZ2h0XHJcbiAgICAgICAgICAgICAgICA6IHRvdGFsUG9wdXBUYWJsZUhlaWdodDtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIFwiaGVpZ2h0XCIsIGBjYWxjKCR7dGFibGVIZWlnaHRGb3JQb3B1cH1weClgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,39 +1,41 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener } from
|
|
1
|
+
import { Directive, ElementRef, HostListener } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export class
|
|
3
|
+
export class ShowEllipsisTextOnHoverDirective {
|
|
4
4
|
constructor(elementRef) {
|
|
5
5
|
this.elementRef = elementRef;
|
|
6
6
|
}
|
|
7
7
|
onMouseEnter() {
|
|
8
|
-
|
|
8
|
+
const domElement = this.elementRef.nativeElement;
|
|
9
9
|
if (domElement.offsetWidth < domElement.scrollWidth || this.checkPositionsInDecimals(domElement)) {
|
|
10
|
-
domElement.title = domElement.textContent
|
|
10
|
+
domElement.title = domElement.textContent === "" ? domElement.value : domElement.textContent;
|
|
11
11
|
}
|
|
12
12
|
else if (domElement.title)
|
|
13
|
-
domElement.removeAttribute(
|
|
13
|
+
domElement.removeAttribute("title");
|
|
14
14
|
}
|
|
15
15
|
checkPositionsInDecimals(domElement) {
|
|
16
|
-
// if we don't have any children element Then we can't calculate
|
|
17
|
-
|
|
16
|
+
// if we don't have any children element Then we can't calculate
|
|
17
|
+
// and compare anything so we are returning false from here
|
|
18
|
+
if (!domElement.children || (domElement.children && domElement.children.length === 0))
|
|
18
19
|
return false;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// If overflow happens then Child element's right side position
|
|
20
|
+
const elementRect = domElement.getBoundingClientRect();
|
|
21
|
+
const childRect = domElement.children[0].getBoundingClientRect();
|
|
22
|
+
const paddingOnRight = window.getComputedStyle(domElement).paddingRight;
|
|
23
|
+
const padding = +(paddingOnRight.endsWith("px") ? paddingOnRight.slice(0, -2) : paddingOnRight);
|
|
24
|
+
// If overflow happens then Child element's right side position
|
|
25
|
+
// will be greater than container element's right side position.
|
|
24
26
|
return childRect.right + padding > elementRect.right;
|
|
25
27
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
27
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type:
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShowEllipsisTextOnHoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ShowEllipsisTextOnHoverDirective, isStandalone: true, selector: "[annaCoreShowEllipsisTextOnHover]", host: { listeners: { "mouseenter": "onMouseEnter()" } }, ngImport: i0 }); }
|
|
28
30
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShowEllipsisTextOnHoverDirective, decorators: [{
|
|
30
32
|
type: Directive,
|
|
31
33
|
args: [{
|
|
32
|
-
selector:
|
|
34
|
+
selector: "[annaCoreShowEllipsisTextOnHover]",
|
|
33
35
|
standalone: true,
|
|
34
36
|
}]
|
|
35
37
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onMouseEnter: [{
|
|
36
38
|
type: HostListener,
|
|
37
|
-
args: [
|
|
39
|
+
args: ["mouseenter"]
|
|
38
40
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1lbGxpcHNpcy10ZXh0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29yZS9zcmMvbGliL2FubmEtY29yZS1zaGFyZWQtbGliL2RpcmVjdGl2ZXMvc2hvdy1lbGxpcHNpcy10ZXh0L3Nob3ctZWxsaXBzaXMtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1wRSxNQUFNLE9BQU8sZ0NBQWdDO0lBQ3pDLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0lBRzlDLFlBQVk7UUFDUixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUNqRCxJQUFJLFVBQVUsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDOUYsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNoRzthQUFNLElBQUksVUFBVSxDQUFDLEtBQUs7WUFBRSxVQUFVLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxVQUFtQjtRQUN4QyxnRUFBZ0U7UUFDaEUsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUVwRyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFakUsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUN4RSxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFaEcsK0RBQStEO1FBQy9ELGdFQUFnRTtRQUNoRSxPQUFPLFNBQVMsQ0FBQyxLQUFLLEdBQUcsT0FBTyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQzsrR0F6QlEsZ0NBQWdDO21HQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBSjVDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsVUFBVSxFQUFFLElBQUk7aUJBQ25CO2lHQUtHLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbYW5uYUNvcmVTaG93RWxsaXBzaXNUZXh0T25Ib3Zlcl1cIixcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaG93RWxsaXBzaXNUZXh0T25Ib3ZlckRpcmVjdGl2ZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIilcclxuICAgIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKGRvbUVsZW1lbnQub2Zmc2V0V2lkdGggPCBkb21FbGVtZW50LnNjcm9sbFdpZHRoIHx8IHRoaXMuY2hlY2tQb3NpdGlvbnNJbkRlY2ltYWxzKGRvbUVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgIGRvbUVsZW1lbnQudGl0bGUgPSBkb21FbGVtZW50LnRleHRDb250ZW50ID09PSBcIlwiID8gZG9tRWxlbWVudC52YWx1ZSA6IGRvbUVsZW1lbnQudGV4dENvbnRlbnQ7XHJcbiAgICAgICAgfSBlbHNlIGlmIChkb21FbGVtZW50LnRpdGxlKSBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcInRpdGxlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrUG9zaXRpb25zSW5EZWNpbWFscyhkb21FbGVtZW50OiBFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhbnkgY2hpbGRyZW4gZWxlbWVudCBUaGVuIHdlIGNhbid0IGNhbGN1bGF0ZVxyXG4gICAgICAgIC8vIGFuZCBjb21wYXJlIGFueXRoaW5nIHNvIHdlIGFyZSByZXR1cm5pbmcgZmFsc2UgZnJvbSBoZXJlXHJcbiAgICAgICAgaWYgKCFkb21FbGVtZW50LmNoaWxkcmVuIHx8IChkb21FbGVtZW50LmNoaWxkcmVuICYmIGRvbUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBlbGVtZW50UmVjdCA9IGRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgY29uc3QgY2hpbGRSZWN0ID0gZG9tRWxlbWVudC5jaGlsZHJlblswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFkZGluZ09uUmlnaHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb21FbGVtZW50KS5wYWRkaW5nUmlnaHQ7XHJcbiAgICAgICAgY29uc3QgcGFkZGluZyA9ICsocGFkZGluZ09uUmlnaHQuZW5kc1dpdGgoXCJweFwiKSA/IHBhZGRpbmdPblJpZ2h0LnNsaWNlKDAsIC0yKSA6IHBhZGRpbmdPblJpZ2h0KTtcclxuXHJcbiAgICAgICAgLy8gSWYgb3ZlcmZsb3cgaGFwcGVucyB0aGVuIENoaWxkIGVsZW1lbnQncyByaWdodCBzaWRlIHBvc2l0aW9uXHJcbiAgICAgICAgLy8gd2lsbCBiZSBncmVhdGVyIHRoYW4gY29udGFpbmVyIGVsZW1lbnQncyByaWdodCBzaWRlIHBvc2l0aW9uLlxyXG4gICAgICAgIHJldHVybiBjaGlsZFJlY3QucmlnaHQgKyBwYWRkaW5nID4gZWxlbWVudFJlY3QucmlnaHQ7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nZW5lcmljLWRhdGEtdHlwZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29yZS9zcmMvbGliL2FubmEtY29yZS1zaGFyZWQtbGliL21vZGVscy9hbm5hLWdlbmVyaWMtZGF0YS10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFdlZWtPYmplY3Qge1xuICAgIHN0YXJ0RGF0ZTogc3RyaW5nO1xuICAgIGVuZERhdGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxsZXJHcm91cEhpZXJhcmNoeSB7XG4gICAgaW52ZW50b3J5Q29kZTogc3RyaW5nO1xuICAgIHByb2dyYW06IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYXRpbmdTZWxsZXJHcm91cEhpZXJhcmNoeSB7XG4gICAgSW52ZW50b3J5Q29kZTogc3RyaW5nO1xuICAgIFByb2dyYW06IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR3RDb2x1bW5JY29uRW1pdHRlZERhdGEge1xuICAgIGRhdGE6IGFueTtcbiAgICBrZXk6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nbG9iYWwtZHJvcGRvd24tY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvbW9kZWxzL2FubmEtZ2xvYmFsLWRyb3Bkb3duLWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUmFkaW9CdXR0b24ge1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIGlzRGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgY2xhc3M6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQW5ndWxhcjJNdWx0aVNlbGVjdFNldHRpbmdzIHtcclxuICAgIHRleHQ6IHN0cmluZztcclxuICAgIHNlbGVjdEFsbFRleHQ6IHN0cmluZztcclxuICAgIHVuU2VsZWN0QWxsVGV4dDogc3RyaW5nO1xyXG4gICAgYmFkZ2VTaG93TGltaXQ6IG51bWJlcjtcclxuICAgIHNpbmdsZVNlbGVjdGlvbjogYm9vbGVhbjtcclxuICAgIGNsYXNzZXM6IHN0cmluZztcclxuICAgIGVuYWJsZVNlYXJjaEZpbHRlcjogYm9vbGVhbjtcclxuICAgIGVuYWJsZUNoZWNrQWxsOiBib29sZWFuO1xyXG4gICAgYXV0b1Bvc2l0aW9uOiBib29sZWFuO1xyXG4gICAgcG9zaXRpb246IHN0cmluZztcclxuICAgIGxhenlMb2FkaW5nOiBib29sZWFuO1xyXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBzaG93Q2hlY2tib3g6IGJvb2xlYW47XHJcbiAgICBlbmFibGVGaWx0ZXJTZWxlY3RBbGw6IGJvb2xlYW47XHJcbiAgICBtYXhIZWlnaHQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTmd4QXNpZGVTZXR0aW5ncyB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgY2FuY2VsQnV0dG9uVGl0bGU6IHN0cmluZztcclxuICAgIHN1Ym1pdEJ1dHRvblRpdGxlOiBzdHJpbmc7XHJcbiAgICBjbG9zZU9uRXNjYXBlOiBib29sZWFuO1xyXG4gICAgc2hvd092ZXJsYXk6IGJvb2xlYW47XHJcbiAgICBzaG93RGVmYXVsdEZvb3RlcjogYm9vbGVhbjtcclxuICAgIHNob3dEZWZhdWx0SGVhZGVyOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElOZ2JEYXRlUGlja2VyU2V0dGluZ3Mge1xyXG4gICAgYXV0b0Nsb3NlOiBib29sZWFuO1xyXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICAgIGRpc3BsYXlNb250aHM6IG51bWJlcjtcclxuICAgIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXI7XHJcbiAgICBzaG93V2Vla051bWJlcnM6IGJvb2xlYW47XHJcbiAgICByZWFkb25seTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTmdTZWxlY3RTZXR0aW5ncyB7XHJcbiAgICBhbGxvd0NsZWFyOiBib29sZWFuO1xyXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTmd4SW5maW5pdGVTY3JvbGxTZXR0aW5ncyB7XHJcbiAgICBpbmZpbml0ZVNjcm9sbERpc3RhbmNlOiBudW1iZXI7XHJcbiAgICBpbmZpbml0ZVNjcm9sbFVwRGlzdGFuY2U6IG51bWJlcjtcclxuICAgIGluZmluaXRlU2Nyb2xsVGhyb3R0bGU6IG51bWJlcjtcclxuICAgIHNjcm9sbFdpbmRvdzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTmd4U2tlbGV0b25Mb2FkZXJTZXR0aW5ncyB7XHJcbiAgICBudW1iZXJPZlNrZWxldG9uUm93czogbnVtYmVyW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJhZGlvQnV0dG9uQ29tcG9uZW50Q29uZmlnIHtcclxuICAgIGhlYWRpbmc/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nbG9iYWwtZHJvcGRvd24tY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvbW9kZWxzL2FubmEtZ2xvYmFsLWRyb3Bkb3duLWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUmFkaW9CdXR0b24ge1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIGlzRGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgY2xhc3M6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQW5ndWxhcjJNdWx0aVNlbGVjdFNldHRpbmdzIHtcclxuICAgIHRleHQ6IHN0cmluZztcclxuICAgIHNlbGVjdEFsbFRleHQ6IHN0cmluZztcclxuICAgIHVuU2VsZWN0QWxsVGV4dDogc3RyaW5nO1xyXG4gICAgYmFkZ2VTaG93TGltaXQ6IG51bWJlcjtcclxuICAgIHNpbmdsZVNlbGVjdGlvbjogYm9vbGVhbjtcclxuICAgIGNsYXNzZXM6IHN0cmluZztcclxuICAgIGVuYWJsZVNlYXJjaEZpbHRlcjogYm9vbGVhbjtcclxuICAgIGVuYWJsZUNoZWNrQWxsOiBib29sZWFuO1xyXG4gICAgYXV0b1Bvc2l0aW9uOiBib29sZWFuO1xyXG4gICAgcG9zaXRpb246IHN0cmluZztcclxuICAgIGxhenlMb2FkaW5nOiBib29sZWFuO1xyXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBzaG93Q2hlY2tib3g6IGJvb2xlYW47XHJcbiAgICBlbmFibGVGaWx0ZXJTZWxlY3RBbGw6IGJvb2xlYW47XHJcbiAgICBtYXhIZWlnaHQ6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTmd4QXNpZGVTZXR0aW5ncyB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgY2FuY2VsQnV0dG9uVGl0bGU6IHN0cmluZztcclxuICAgIHN1Ym1pdEJ1dHRvblRpdGxlOiBzdHJpbmc7XHJcbiAgICBjbG9zZU9uRXNjYXBlOiBib29sZWFuO1xyXG4gICAgc2hvd092ZXJsYXk6IGJvb2xlYW47XHJcbiAgICBzaG93RGVmYXVsdEZvb3RlcjogYm9vbGVhbjtcclxuICAgIHNob3dEZWZhdWx0SGVhZGVyOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElOZ2JEYXRlUGlja2VyU2V0dGluZ3Mge1xyXG4gICAgYXV0b0Nsb3NlOiBib29sZWFuO1xyXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICAgIGRpc3BsYXlNb250aHM6IG51bWJlcjtcclxuICAgIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXI7XHJcbiAgICBzaG93V2Vla051bWJlcnM6IGJvb2xlYW47XHJcbiAgICByZWFkb25seTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTmdTZWxlY3RTZXR0aW5ncyB7XHJcbiAgICBhbGxvd0NsZWFyOiBib29sZWFuO1xyXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTmd4SW5maW5pdGVTY3JvbGxTZXR0aW5ncyB7XHJcbiAgICBpbmZpbml0ZVNjcm9sbERpc3RhbmNlOiBudW1iZXI7XHJcbiAgICBpbmZpbml0ZVNjcm9sbFVwRGlzdGFuY2U6IG51bWJlcjtcclxuICAgIGluZmluaXRlU2Nyb2xsVGhyb3R0bGU6IG51bWJlcjtcclxuICAgIHNjcm9sbFdpbmRvdzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTmd4U2tlbGV0b25Mb2FkZXJTZXR0aW5ncyB7XHJcbiAgICBudW1iZXJPZlNrZWxldG9uUm93czogbnVtYmVyW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJhZGlvQnV0dG9uQ29tcG9uZW50Q29uZmlnIHtcclxuICAgIGhlYWRpbmc/OiBzdHJpbmc7XHJcbiAgICByYWRpb0J1dHRvbnM6IElSYWRpb0J1dHRvbltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDb25maXJtYXRpb25Qb3B1cENvbmZpZyB7XHJcbiAgICBzaG93Q2FuY2VsQnV0dG9uOiBib29sZWFuO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHNob3dDb25maXJtQnV0dG9uOiBib29sZWFuO1xyXG4gICAgY2FuY2VsQnV0dG9uTGFiZWw6IHN0cmluZztcclxuICAgIGNvbmZpcm1CdXR0b25MYWJlbDogc3RyaW5nO1xyXG4gICAgc2hvd0Nsb3NlSWNvbjogYm9vbGVhbjtcclxuICAgIHdpbmRvd0NsYXNzOiBzdHJpbmc7XHJcbiAgICBiYWNrZHJvcDogXCJzdGF0aWNcIiB8IGJvb2xlYW47XHJcbiAgICBzaXplOiBcInNtXCIgfCBcImxnXCI7XHJcbiAgICBrZXlib2FyZDogYm9vbGVhbjtcclxuICAgIGNlbnRlcmVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJV2Vla0NhbGVuZGFyIHtcclxuICAgIGZpcnN0RGF5T2ZXZWVrPzogbnVtYmVyO1xyXG4gICAgbnVtYmVyT2ZNb250aHNUb0VuYWJsZUluUGFzdDogbnVtYmVyO1xyXG4gICAgc2VsZWN0TXVsdGlwbGVXZWVrczogYm9vbGVhbjtcclxuICAgIHNob3dXZWVrTnVtYmVycz86IGJvb2xlYW47XHJcbiAgICBkYXRlRm9ybWF0VG9EaXNwbGF5Pzogc3RyaW5nO1xyXG4gICAgbWF4V2Vla3NUb1Nob3dXaXRoUmVtYWluaW5nQ291bnQ/OiBudW1iZXI7XHJcbiAgICBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICAgIGVtaXRNdWx0aXBsZVdlZWtPYmplY3RzPzogYm9vbGVhbjtcclxuICAgIGRhdGVGb3JtYXRGb3JSZXF1ZXN0Pzogc3RyaW5nO1xyXG4gICAgbWF4V2Vla3NUb1NlbGVjdD86IG51bWJlcjtcclxuICAgIHNob3dBc0Ryb3Bkb3duOiBib29sZWFuO1xyXG4gICAgc2VsZWN0Q3VycmVudFdlZWs6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUN1c3RvbVNpbmdsZVNlbGVjdCB7XHJcbiAgICBzaG93U2VhcmNoQmFyOiBib29sZWFuO1xyXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICAgIGNsYXNzZXM6IHN0cmluZztcclxuICAgIHBvc2l0aW9uOiBQb3NpdGlvbjtcclxuICAgIG1heEhlaWdodE9mTGlzdDogbnVtYmVyOyAvLyBweCB2YWx1ZVxyXG4gICAgbWluSGVpZ2h0T2ZMaXN0PzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDdXN0b21NdWx0aVNlbGVjdCBleHRlbmRzIElDdXN0b21TaW5nbGVTZWxlY3Qge1xyXG4gICAgc2hvd0Vycm9yV2hlbk5vT3B0aW9uU2VsZWN0ZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbnR5cGUgUG9zaXRpb24gPSBcIlRPUFwiIHwgXCJCT1RUT01cIjtcclxuIl19
|