@libs-ui/components-datetime-dropdown 0.1.1-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 +3 -0
- package/defines/date-dropdown.define.d.ts +40 -0
- package/directive/date-dropdown.directive.d.ts +11 -0
- package/dropdown.component.d.ts +89 -0
- package/esm2022/defines/date-dropdown.define.mjs +246 -0
- package/esm2022/directive/date-dropdown.directive.mjs +33 -0
- package/esm2022/dropdown.component.mjs +280 -0
- package/esm2022/index.mjs +3 -0
- package/esm2022/interfaces/date-dropdown.interface.mjs +3 -0
- package/esm2022/interfaces/emit-dropdown.interface.mjs +2 -0
- package/esm2022/interfaces/functions-control-event.interface.mjs +2 -0
- package/esm2022/interfaces/index.mjs +5 -0
- package/esm2022/interfaces/valid.interface.mjs +2 -0
- package/esm2022/item/child/child.component.mjs +124 -0
- package/esm2022/item/item.component.mjs +216 -0
- package/esm2022/libs-ui-components-datetime-dropdown.mjs +5 -0
- package/esm2022/pipes/build-list-by-date-type-.pipe.mjs +19 -0
- package/esm2022/pipes/build-width.pipe.mjs +23 -0
- package/fesm2022/libs-ui-components-datetime-dropdown.mjs +928 -0
- package/fesm2022/libs-ui-components-datetime-dropdown.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/interfaces/date-dropdown.interface.d.ts +43 -0
- package/interfaces/emit-dropdown.interface.d.ts +11 -0
- package/interfaces/functions-control-event.interface.d.ts +11 -0
- package/interfaces/index.d.ts +4 -0
- package/interfaces/valid.interface.d.ts +10 -0
- package/item/child/child.component.d.ts +51 -0
- package/item/item.component.d.ts +60 -0
- package/package.json +33 -0
- package/pipes/build-list-by-date-type-.pipe.d.ts +15 -0
- package/pipes/build-width.pipe.d.ts +7 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal, untracked, viewChild } from '@angular/core';
|
|
2
|
+
import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
|
|
3
|
+
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
4
|
+
import { fromEvent, Subject, takeUntil, timer } from 'rxjs';
|
|
5
|
+
import { CompareDate } from './defines/date-dropdown.define';
|
|
6
|
+
import { LibsUiComponentsDatetimeDropdownDirective } from './directive/date-dropdown.directive';
|
|
7
|
+
import { LibsUiComponentsDatetimeDropdownItemComponent } from './item/item.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@ngx-translate/core";
|
|
10
|
+
export class LibsUiComponentsDatetimeDropdownComponent {
|
|
11
|
+
// #region PROPERTY
|
|
12
|
+
width = signal(0);
|
|
13
|
+
widthElement = signal(undefined);
|
|
14
|
+
widthLabel = signal(undefined);
|
|
15
|
+
widthLabelFrom = signal(0);
|
|
16
|
+
widthLabelTo = signal(0);
|
|
17
|
+
isErrorCompareDate = signal(undefined);
|
|
18
|
+
chooseDate = signal({ from: signal({}), to: signal({}) });
|
|
19
|
+
isResponsive = signal(undefined);
|
|
20
|
+
arrayFormat = computed(() => {
|
|
21
|
+
return this.typeFormat().split('-');
|
|
22
|
+
});
|
|
23
|
+
changeType = signal(undefined);
|
|
24
|
+
cacheWidthLabel = signal(undefined);
|
|
25
|
+
timeOut = signal(undefined);
|
|
26
|
+
onDestroy = new Subject();
|
|
27
|
+
functionsControl = new Map();
|
|
28
|
+
// #region INPUT
|
|
29
|
+
labelConfig = input(undefined);
|
|
30
|
+
widthDropdown = input(136, { transform: (value) => value ?? 136 });
|
|
31
|
+
zIndex = input(1200, { transform: (value) => value ?? 1200 });
|
|
32
|
+
maxYear = input(0);
|
|
33
|
+
minYear = input(0);
|
|
34
|
+
minWidth = input(undefined);
|
|
35
|
+
disable = input(false);
|
|
36
|
+
readonly = input(false);
|
|
37
|
+
isMultiple = input(false);
|
|
38
|
+
reverseYear = input(undefined);
|
|
39
|
+
isBorderError = input(false);
|
|
40
|
+
ignoreWidth100 = input(false);
|
|
41
|
+
widthByElement = input(false);
|
|
42
|
+
disableSecond = input(false);
|
|
43
|
+
typeFormat = input('month-day', { transform: (value) => value ?? 'month-day' });
|
|
44
|
+
fromAndToDateLabel = input({ from: 'i18n_label_from', to: 'i18n_to' });
|
|
45
|
+
listHasButtonUnSelectOption = input(false);
|
|
46
|
+
selectedDateTime = input(undefined);
|
|
47
|
+
isEmitAfterChanged = input(false); // dùng để emit mỗi lần chọn giá trị và lần đầu init
|
|
48
|
+
getItemYearDisplay = input();
|
|
49
|
+
ignoreFromAndToDateLabel = input(false);
|
|
50
|
+
classIncludeTextDisplayWhenNoSelect = input(undefined);
|
|
51
|
+
hiddenDate = input();
|
|
52
|
+
listMaxItemShow = input(undefined);
|
|
53
|
+
ignoreConvertYearSelected = input(false);
|
|
54
|
+
listKeysDisable = input(undefined);
|
|
55
|
+
ignoreAllowTimeEqual = input(true, { transform: (value) => value ?? true });
|
|
56
|
+
ignoreValidTimeCompare = input(false, { transform: (value) => value ?? false });
|
|
57
|
+
isCheckErrorWhenSelectItem = input(true, { transform: (value) => value ?? true });
|
|
58
|
+
ignoreRequiredValueSecondWhenNotValidRequired = input(false); // có validate giá trị thứ 2 khi validRequired không?
|
|
59
|
+
validRequired = input();
|
|
60
|
+
// #region OUTPUT
|
|
61
|
+
outFunctionsControl = output();
|
|
62
|
+
outSelectedDropdown = output(); // dùng cho trường hợp emit mỗi một lần chọn giá trị nên khi sử dụng phải check kĩ undefined
|
|
63
|
+
outChooseMultiDate = output();
|
|
64
|
+
outChooseSingleDate = output();
|
|
65
|
+
outChangStageFlagMouse = output();
|
|
66
|
+
/* VIEW CHILD */
|
|
67
|
+
containerRef = viewChild('parent');
|
|
68
|
+
labelFromRef = viewChild('labelFrom');
|
|
69
|
+
labelToRef = viewChild('labelTo');
|
|
70
|
+
// #region INJECT
|
|
71
|
+
translate = inject(TranslateService);
|
|
72
|
+
constructor() {
|
|
73
|
+
effect(() => {
|
|
74
|
+
const isMultiple = this.isMultiple();
|
|
75
|
+
if (!isMultiple) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
untracked(() => {
|
|
79
|
+
this.changeType.set(true);
|
|
80
|
+
this.functionsControl.clear();
|
|
81
|
+
timer(0)
|
|
82
|
+
.pipe()
|
|
83
|
+
.subscribe(() => {
|
|
84
|
+
this.checkResponsive();
|
|
85
|
+
this.changeType.set(false);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
ngOnInit() {
|
|
91
|
+
this.outFunctionsControl.emit(this.FunctionsControl);
|
|
92
|
+
if (this.selectedDateTime()) {
|
|
93
|
+
this.chooseDate.set(this.selectedDateTime());
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
ngAfterViewInit() {
|
|
97
|
+
fromEvent(window, 'resize').pipe(takeUntil(this.onDestroy)).subscribe(this.setWidthDate.bind(this));
|
|
98
|
+
this.widthLabel.set(undefined);
|
|
99
|
+
timer(0)
|
|
100
|
+
.pipe()
|
|
101
|
+
.subscribe(() => {
|
|
102
|
+
this.checkResponsive();
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
get FunctionsControl() {
|
|
106
|
+
return {
|
|
107
|
+
checkIsValid: this.validate.bind(this),
|
|
108
|
+
resetError: this.resetError.bind(this),
|
|
109
|
+
resetTime: this.resetDropdown.bind(this),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
checkResponsive() {
|
|
113
|
+
this.isResponsive.set(false);
|
|
114
|
+
const widthElementParent = this.containerRef()?.nativeElement?.getBoundingClientRect().width || 0;
|
|
115
|
+
this.widthLabelFrom.set(this.labelFromRef()?.nativeElement?.getBoundingClientRect().width || 0);
|
|
116
|
+
this.widthLabelTo.set(this.labelToRef()?.nativeElement?.getBoundingClientRect().width || 0);
|
|
117
|
+
const spaceBetweenDate = this.arrayFormat().length * 2 + (this.fromAndToDateLabel().from ? 1 : 0);
|
|
118
|
+
const width = this.widthDropdown() * 4 + 8 * spaceBetweenDate + this.widthLabelFrom() + this.widthLabelTo();
|
|
119
|
+
if (widthElementParent < width) {
|
|
120
|
+
this.isResponsive.set(true);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
handlerChangeSelectedKey(event, type) {
|
|
124
|
+
this.chooseDate.update((current) => {
|
|
125
|
+
if (current) {
|
|
126
|
+
current[type].set(event);
|
|
127
|
+
}
|
|
128
|
+
return current;
|
|
129
|
+
});
|
|
130
|
+
if (this.isEmitAfterChanged()) {
|
|
131
|
+
const dataEmit = this.isMultiple() ? this.chooseDate() : this.chooseDate()?.from();
|
|
132
|
+
if (dataEmit) {
|
|
133
|
+
this.outSelectedDropdown.emit(dataEmit);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
this.applyDate();
|
|
137
|
+
}
|
|
138
|
+
async resetDropdown() {
|
|
139
|
+
this.functionsControl.forEach((control) => control.resetDropdown());
|
|
140
|
+
}
|
|
141
|
+
async resetError() {
|
|
142
|
+
this.functionsControl.forEach((control) => control.resetError());
|
|
143
|
+
}
|
|
144
|
+
setWidthDate() {
|
|
145
|
+
if (!this.containerRef() || !this.containerRef()?.nativeElement) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
timer(0)
|
|
149
|
+
.pipe()
|
|
150
|
+
.subscribe(() => {
|
|
151
|
+
this.checkResponsive();
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
handlerFunctionControl(event, type) {
|
|
155
|
+
this.functionsControl.set(type, event);
|
|
156
|
+
}
|
|
157
|
+
async checkValid() {
|
|
158
|
+
let valid = true;
|
|
159
|
+
for (const control of this.functionsControl.values()) {
|
|
160
|
+
if (!(await control.checkIsValid())) {
|
|
161
|
+
valid = false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if (this.compareDate()) {
|
|
165
|
+
valid = false;
|
|
166
|
+
}
|
|
167
|
+
return valid;
|
|
168
|
+
}
|
|
169
|
+
setError(error) {
|
|
170
|
+
this.functionsControl.forEach((control) => control.setError(error));
|
|
171
|
+
}
|
|
172
|
+
compareDate() {
|
|
173
|
+
const type = this.typeFormat().split('-');
|
|
174
|
+
const dateCompare = [];
|
|
175
|
+
type.forEach((item) => {
|
|
176
|
+
const from = this.chooseDate()?.from()[item];
|
|
177
|
+
const to = this.chooseDate()?.to()[item];
|
|
178
|
+
dateCompare.push({ from: from, to: to });
|
|
179
|
+
});
|
|
180
|
+
if (this.ignoreValidTimeCompare() || !this.checkCondition(true)) {
|
|
181
|
+
this.isErrorCompareDate.set(false);
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
if (CompareDate(dateCompare, this.ignoreAllowTimeEqual())) {
|
|
185
|
+
this.setError(true);
|
|
186
|
+
this.isErrorCompareDate.set(true);
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
this.isErrorCompareDate.set(false);
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
async validate() {
|
|
193
|
+
let valid = true;
|
|
194
|
+
if (!this.validRequired()) {
|
|
195
|
+
if (!this.checkCondition(false) && !this.ignoreRequiredValueSecondWhenNotValidRequired()) {
|
|
196
|
+
valid = await this.checkValid();
|
|
197
|
+
}
|
|
198
|
+
return valid;
|
|
199
|
+
}
|
|
200
|
+
return await this.checkValid();
|
|
201
|
+
}
|
|
202
|
+
checkCondition(hasValue) {
|
|
203
|
+
let checkValue = true;
|
|
204
|
+
const type = this.typeFormat().split('-');
|
|
205
|
+
type.forEach((item) => {
|
|
206
|
+
if (hasValue && (!this.chooseDate()?.from()[item] || !this.chooseDate()?.to()[item])) {
|
|
207
|
+
checkValue = false;
|
|
208
|
+
}
|
|
209
|
+
if (!hasValue && (this.chooseDate()?.from()[item] || this.chooseDate()?.to()[item])) {
|
|
210
|
+
checkValue = false;
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
return checkValue;
|
|
214
|
+
}
|
|
215
|
+
applyDate() {
|
|
216
|
+
this.setError(false);
|
|
217
|
+
this.isErrorCompareDate.set(false);
|
|
218
|
+
if (this.isCheckErrorWhenSelectItem() && !this.validate()) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
const from = this.chooseDate()?.from;
|
|
222
|
+
const to = this.chooseDate()?.to;
|
|
223
|
+
if (this.isMultiple()) {
|
|
224
|
+
if (this.compareDate()) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
let dataSelected = { from: signal({}), to: signal({}) };
|
|
228
|
+
this.arrayFormat().forEach((key) => {
|
|
229
|
+
if (!from?.()?.[key] || !to?.()?.[key]) {
|
|
230
|
+
dataSelected = undefined;
|
|
231
|
+
}
|
|
232
|
+
if (dataSelected) {
|
|
233
|
+
dataSelected.from.update((current) => {
|
|
234
|
+
current[key] = Number(from?.()[key]);
|
|
235
|
+
return current;
|
|
236
|
+
});
|
|
237
|
+
dataSelected.to.update((current) => {
|
|
238
|
+
current[key] = Number(to?.()[key]);
|
|
239
|
+
return current;
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
if (dataSelected) {
|
|
244
|
+
this.outChooseMultiDate.emit(dataSelected);
|
|
245
|
+
}
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
let dataSelected = {};
|
|
249
|
+
this.arrayFormat().forEach((key) => {
|
|
250
|
+
if (!from?.()?.[key]) {
|
|
251
|
+
dataSelected = undefined;
|
|
252
|
+
}
|
|
253
|
+
if (dataSelected) {
|
|
254
|
+
dataSelected[key] = Number(from?.()?.[key]);
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
if (dataSelected) {
|
|
258
|
+
this.outChooseSingleDate.emit(dataSelected);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
handlerChangeWidthLabel(width) {
|
|
262
|
+
this.cacheWidthLabel.set(width < (this.cacheWidthLabel() || 0) ? this.cacheWidthLabel() : Math.ceil(width));
|
|
263
|
+
if (this.timeOut()) {
|
|
264
|
+
clearTimeout(this.timeOut());
|
|
265
|
+
}
|
|
266
|
+
this.timeOut.set(setTimeout(() => {
|
|
267
|
+
this.widthLabel.set(this.cacheWidthLabel());
|
|
268
|
+
}, 100));
|
|
269
|
+
}
|
|
270
|
+
handlerChangStageFlagMouse(flagMouse) {
|
|
271
|
+
this.outChangStageFlagMouse.emit(flagMouse);
|
|
272
|
+
}
|
|
273
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsDatetimeDropdownComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown", inputs: { labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, reverseYear: { classPropertyName: "reverseYear", publicName: "reverseYear", isSignal: true, isRequired: false, transformFunction: null }, isBorderError: { classPropertyName: "isBorderError", publicName: "isBorderError", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidth100: { classPropertyName: "ignoreWidth100", publicName: "ignoreWidth100", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", isSignal: true, isRequired: false, transformFunction: null }, disableSecond: { classPropertyName: "disableSecond", publicName: "disableSecond", isSignal: true, isRequired: false, transformFunction: null }, typeFormat: { classPropertyName: "typeFormat", publicName: "typeFormat", isSignal: true, isRequired: false, transformFunction: null }, fromAndToDateLabel: { classPropertyName: "fromAndToDateLabel", publicName: "fromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, selectedDateTime: { classPropertyName: "selectedDateTime", publicName: "selectedDateTime", isSignal: true, isRequired: false, transformFunction: null }, isEmitAfterChanged: { classPropertyName: "isEmitAfterChanged", publicName: "isEmitAfterChanged", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, ignoreFromAndToDateLabel: { classPropertyName: "ignoreFromAndToDateLabel", publicName: "ignoreFromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, hiddenDate: { classPropertyName: "hiddenDate", publicName: "hiddenDate", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, ignoreConvertYearSelected: { classPropertyName: "ignoreConvertYearSelected", publicName: "ignoreConvertYearSelected", isSignal: true, isRequired: false, transformFunction: null }, listKeysDisable: { classPropertyName: "listKeysDisable", publicName: "listKeysDisable", isSignal: true, isRequired: false, transformFunction: null }, ignoreAllowTimeEqual: { classPropertyName: "ignoreAllowTimeEqual", publicName: "ignoreAllowTimeEqual", isSignal: true, isRequired: false, transformFunction: null }, ignoreValidTimeCompare: { classPropertyName: "ignoreValidTimeCompare", publicName: "ignoreValidTimeCompare", isSignal: true, isRequired: false, transformFunction: null }, isCheckErrorWhenSelectItem: { classPropertyName: "isCheckErrorWhenSelectItem", publicName: "isCheckErrorWhenSelectItem", isSignal: true, isRequired: false, transformFunction: null }, ignoreRequiredValueSecondWhenNotValidRequired: { classPropertyName: "ignoreRequiredValueSecondWhenNotValidRequired", publicName: "ignoreRequiredValueSecondWhenNotValidRequired", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outFunctionsControl: "outFunctionsControl", outSelectedDropdown: "outSelectedDropdown", outChooseMultiDate: "outChooseMultiDate", outChooseSingleDate: "outChooseSingleDate", outChangStageFlagMouse: "outChangStageFlagMouse" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "labelFromRef", first: true, predicate: ["labelFrom"], descendants: true, isSignal: true }, { propertyName: "labelToRef", first: true, predicate: ["labelTo"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "directive", type: LibsUiComponentsDatetimeDropdownDirective, selector: "[LibsUiComponentsDatetimeDropdownDirective]", outputs: ["outChangeWidth"] }, { kind: "component", type: LibsUiComponentsDatetimeDropdownItemComponent, selector: "libs_ui-components-datetime-dropdown-item", inputs: ["typeDate", "disableSecond", "selectedDate", "widthDropdown", "widthByElement", "getItemYearDisplay", "listHasButtonUnSelectOption", "readonly", "disable", "zIndex", "isMultiple", "classIncludeTextDisplayWhenNoSelect", "isCheckErrorWhenSelectItem", "maxYear", "minYear", "reverseYear", "listKeysDisable", "ignoreConvertYearSelected", "validRequired", "isEmitSelectedDropDown", "listMaxItemShow"], outputs: ["outSelectedData", "outFunctionControl", "outChangStageFlagMouse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
275
|
+
}
|
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownComponent, decorators: [{
|
|
277
|
+
type: Component,
|
|
278
|
+
args: [{ selector: 'libs_ui-components-datetime-dropdown', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, LibsUiComponentsLabelComponent, LibsUiComponentsDatetimeDropdownDirective, LibsUiComponentsDatetimeDropdownItemComponent], template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n" }]
|
|
279
|
+
}], ctorParameters: () => [] });
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0ssT0FBTyxFQUFVLDhCQUE4QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBS2hHLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFXdEYsTUFBTSxPQUFPLHlDQUF5QztJQUNwRCxtQkFBbUI7SUFDVCxLQUFLLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFlBQVksR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELGNBQWMsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENB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QUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsRUFBRSxHQUFHLENBQXNCLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRVMsMEJBQTBCLENBQUMsU0FBcUI7UUFDeEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO3dHQTFUVSx5Q0FBeUM7NEZBQXpDLHlDQUF5QyxxektDdEJ0RCxpbk5BdUpBLHlERG5JWSxlQUFlLDRGQUFFLDhCQUE4Qiw0cUJBQUUseUNBQXlDLHFIQUFFLDZDQUE2Qzs7NEZBRXhJLHlDQUF5QztrQkFUckQsU0FBUzsrQkFFRSxzQ0FBc0MsY0FHcEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZUFBZSxFQUFFLDhCQUE4QixFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdW50cmFja2VkLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMYWJlbCwgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1sYWJlbCc7XG5pbXBvcnQgeyBJRmxhZ01vdXNlIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wYXJlRGF0ZSB9IGZyb20gJy4vZGVmaW5lcy9kYXRlLWRyb3Bkb3duLmRlZmluZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL2RhdGUtZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElEYXRlRHJvcGRvd25EaXNhYmxlS2V5cywgSUZyb21BbmRUb0RhdGVMYWJlbCwgSUhpZGRlbkRhdGUsIFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQsIFRZUEVfREFURV9GT1JNQVQgfSBmcm9tICcuL2ludGVyZmFjZXMvZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUVtaXRNdWx0aURhdGVEcm9wZG93biwgSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfSBmcm9tICcuL2ludGVyZmFjZXMvZW1pdC1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJRGF0ZURyb3Bkb3duSXRlbUZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9ucy1jb250cm9sLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJVmFsaWREYXRlRHJvcGRvd24gfSBmcm9tICcuL2ludGVyZmFjZXMvdmFsaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS9pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1kYXRldGltZS1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzTGFiZWxDb21wb25lbnQsIExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duRGlyZWN0aXZlLCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIHdpZHRoID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByb3RlY3RlZCB3aWR0aEVsZW1lbnQgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgd2lkdGhMYWJlbCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCB3aWR0aExhYmVsRnJvbSA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgd2lkdGhMYWJlbFRvID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByb3RlY3RlZCBpc0Vycm9yQ29tcGFyZURhdGUgPSBzaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGNob29zZURhdGUgPSBzaWduYWw8SUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZD4oeyBmcm9tOiBzaWduYWwoe30pLCB0bzogc2lnbmFsKHt9KSB9KTtcbiAgcHJvdGVjdGVkIGlzUmVzcG9uc2l2ZSA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgYXJyYXlGb3JtYXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZUZvcm1hdCgpLnNwbGl0KCctJykgYXMgQXJyYXk8VFlQRV9EQVRFX0ZPUk1BVD47XG4gIH0pO1xuICBwcm90ZWN0ZWQgY2hhbmdlVHlwZSA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgY2FjaGVXaWR0aExhYmVsID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSB0aW1lT3V0ID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGZ1bmN0aW9uc0NvbnRyb2wgPSBuZXcgTWFwPHN0cmluZywgSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGxhYmVsQ29uZmlnID0gaW5wdXQ8SUxhYmVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSB3aWR0aERyb3Bkb3duID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDEzNiwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTM2IH0pO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTIwMCwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTIwMCB9KTtcbiAgcmVhZG9ubHkgbWF4WWVhciA9IGlucHV0PG51bWJlcj4oMCk7XG4gIHJlYWRvbmx5IG1pblllYXIgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBtaW5XaWR0aCA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGlzTXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJldmVyc2VZZWFyID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNCb3JkZXJFcnJvciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgaWdub3JlV2lkdGgxMDAgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlU2Vjb25kID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB0eXBlRm9ybWF0ID0gaW5wdXQ8VFlQRV9EQVRFX0RST1BET1dOX0ZPUk1BVCwgVFlQRV9EQVRFX0RST1BET1dOX0ZPUk1BVD4oJ21vbnRoLWRheScsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/ICdtb250aC1kYXknIH0pO1xuICByZWFkb25seSBmcm9tQW5kVG9EYXRlTGFiZWwgPSBpbnB1dDxJRnJvbUFuZFRvRGF0ZUxhYmVsPih7IGZyb206ICdpMThuX2xhYmVsX2Zyb20nLCB0bzogJ2kxOG5fdG8nIH0pO1xuICByZWFkb25seSBsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZVRpbWUgPSBpbnB1dDxJRW1pdE11bHRpRGF0ZURyb3Bkb3duIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc0VtaXRBZnRlckNoYW5nZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIGTDuW5nIMSR4buDIGVtaXQgbeG7l2kgbOG6p24gY2jhu41uIGdpw6EgdHLhu4sgdsOgIGzhuqduIMSR4bqndSBpbml0XG4gIHJlYWRvbmx5IGdldEl0ZW1ZZWFyRGlzcGxheSA9IGlucHV0PCh5ZWFyOiBzdHJpbmcpID0+IHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgaWdub3JlRnJvbUFuZFRvRGF0ZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaGlkZGVuRGF0ZSA9IGlucHV0PElIaWRkZW5EYXRlIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBsaXN0TWF4SXRlbVNob3cgPSBpbnB1dDx7IHllYXI/OiBudW1iZXI7IG1vbnRoPzogbnVtYmVyOyBxdWFydGVyPzogbnVtYmVyOyBkYXk/OiBudW1iZXIgfSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgbGlzdEtleXNEaXNhYmxlID0gaW5wdXQ8SURhdGVEcm9wZG93bkRpc2FibGVLZXlzIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGlnbm9yZUFsbG93VGltZUVxdWFsID0gaW5wdXQ8Ym9vbGVhbiwgYm9vbGVhbj4odHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgaWdub3JlVmFsaWRUaW1lQ29tcGFyZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgaXNDaGVja0Vycm9yV2hlblNlbGVjdEl0ZW0gPSBpbnB1dDxib29sZWFuLCBib29sZWFuPih0cnVlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyB0cnVlIH0pO1xuICByZWFkb25seSBpZ25vcmVSZXF1aXJlZFZhbHVlU2Vjb25kV2hlbk5vdFZhbGlkUmVxdWlyZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIGPDsyB2YWxpZGF0ZSBnacOhIHRy4buLIHRo4bupIDIga2hpIHZhbGlkUmVxdWlyZWQga2jDtG5nP1xuICByZWFkb25seSB2YWxpZFJlcXVpcmVkID0gaW5wdXQ8SVZhbGlkRGF0ZURyb3Bkb3duPigpO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTZWxlY3RlZERyb3Bkb3duID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duIHwgSUVtaXRNdWx0aURhdGVEcm9wZG93bj4oKTsgLy8gZMO5bmcgY2hvIHRyxrDhu51uZyBo4bujcCBlbWl0IG3hu5dpIG3hu5l0IGzhuqduIGNo4buNbiBnacOhIHRy4buLIG7Dqm4ga2hpIHPhu60gZOG7pW5nIHBo4bqjaSBjaGVjayBrxKkgdW5kZWZpbmVkXG4gIHJlYWRvbmx5IG91dENob29zZU11bHRpRGF0ZSA9IG91dHB1dDxJRW1pdE11bHRpRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRDaG9vc2VTaW5nbGVEYXRlID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlID0gb3V0cHV0PElGbGFnTW91c2U+KCk7XG5cbiAgLyogVklFVyBDSElMRCAqL1xuICBwcml2YXRlIGNvbnRhaW5lclJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigncGFyZW50Jyk7XG4gIHByaXZhdGUgbGFiZWxGcm9tUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdsYWJlbEZyb20nKTtcbiAgcHJpdmF0ZSBsYWJlbFRvUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdsYWJlbFRvJyk7XG5cbiAgLy8gI3JlZ2lvbiBJTkpFQ1RcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB0aGlzLmlzTXVsdGlwbGUoKTtcblxuICAgICAgaWYgKCFpc011bHRpcGxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VUeXBlLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmNsZWFyKCk7XG4gICAgICAgIHRpbWVyKDApXG4gICAgICAgICAgLnBpcGUoKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmUoKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVHlwZS5zZXQoZmFsc2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uc0NvbnRyb2wuZW1pdCh0aGlzLkZ1bmN0aW9uc0NvbnRyb2wpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZVRpbWUoKSkge1xuICAgICAgdGhpcy5jaG9vc2VEYXRlLnNldCh0aGlzLnNlbGVjdGVkRGF0ZVRpbWUoKSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSh0aGlzLnNldFdpZHRoRGF0ZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLndpZHRoTGFiZWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGltZXIoMClcbiAgICAgIC5waXBlKClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrUmVzcG9uc2l2ZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hlY2tJc1ZhbGlkOiB0aGlzLnZhbGlkYXRlLmJpbmQodGhpcyksXG4gICAgICByZXNldEVycm9yOiB0aGlzLnJlc2V0RXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHJlc2V0VGltZTogdGhpcy5yZXNldERyb3Bkb3duLmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja1Jlc3BvbnNpdmUoKSB7XG4gICAgdGhpcy5pc1Jlc3BvbnNpdmUuc2V0KGZhbHNlKTtcbiAgICBjb25zdCB3aWR0aEVsZW1lbnRQYXJlbnQgPSB0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCAwO1xuXG4gICAgdGhpcy53aWR0aExhYmVsRnJvbS5zZXQodGhpcy5sYWJlbEZyb21SZWYoKT8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgMCk7XG4gICAgdGhpcy53aWR0aExhYmVsVG8uc2V0KHRoaXMubGFiZWxUb1JlZigpPy5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCAwKTtcblxuICAgIGNvbnN0IHNwYWNlQmV0d2VlbkRhdGUgPSB0aGlzLmFycmF5Rm9ybWF0KCkubGVuZ3RoICogMiArICh0aGlzLmZyb21BbmRUb0RhdGVMYWJlbCgpLmZyb20gPyAxIDogMCk7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLndpZHRoRHJvcGRvd24oKSAqIDQgKyA4ICogc3BhY2VCZXR3ZWVuRGF0ZSArIHRoaXMud2lkdGhMYWJlbEZyb20oKSArIHRoaXMud2lkdGhMYWJlbFRvKCk7XG5cbiAgICBpZiAod2lkdGhFbGVtZW50UGFyZW50IDwgd2lkdGgpIHtcbiAgICAgIHRoaXMuaXNSZXNwb25zaXZlLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZVNlbGVjdGVkS2V5KGV2ZW50OiBJRW1pdFNpbmdsZURhdGVEcm9wZG93biwgdHlwZTogJ2Zyb20nIHwgJ3RvJykge1xuICAgIHRoaXMuY2hvb3NlRGF0ZS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgIGN1cnJlbnRbdHlwZV0uc2V0KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuaXNFbWl0QWZ0ZXJDaGFuZ2VkKCkpIHtcbiAgICAgIGNvbnN0IGRhdGFFbWl0ID0gdGhpcy5pc011bHRpcGxlKCkgPyB0aGlzLmNob29zZURhdGUoKSA6IHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKCk7XG5cbiAgICAgIGlmIChkYXRhRW1pdCkge1xuICAgICAgICB0aGlzLm91dFNlbGVjdGVkRHJvcGRvd24uZW1pdChkYXRhRW1pdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYXBwbHlEYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RHJvcGRvd24oKSB7XG4gICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmZvckVhY2goKGNvbnRyb2wpID0+IGNvbnRyb2wucmVzZXREcm9wZG93bigpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzZXRFcnJvcigpIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuZm9yRWFjaCgoY29udHJvbCkgPT4gY29udHJvbC5yZXNldEVycm9yKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWR0aERhdGUoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lclJlZigpIHx8ICF0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRpbWVyKDApXG4gICAgICAucGlwZSgpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElEYXRlRHJvcGRvd25JdGVtRnVuY3Rpb25Db250cm9sRXZlbnQsIHR5cGU6ICdmcm9tJyB8ICd0bycpIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuc2V0KHR5cGUsIGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjaGVja1ZhbGlkKCkge1xuICAgIGxldCB2YWxpZCA9IHRydWU7XG5cbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5mdW5jdGlvbnNDb250cm9sLnZhbHVlcygpKSB7XG4gICAgICBpZiAoIShhd2FpdCBjb250cm9sLmNoZWNrSXNWYWxpZCgpKSkge1xuICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5jb21wYXJlRGF0ZSgpKSB7XG4gICAgICB2YWxpZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RXJyb3IoZXJyb3I6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuZm9yRWFjaCgoY29udHJvbCkgPT4gY29udHJvbC5zZXRFcnJvcihlcnJvcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlRGF0ZSgpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlRm9ybWF0KCkuc3BsaXQoJy0nKSBhcyBBcnJheTxUWVBFX0RBVEVfRk9STUFUPjtcbiAgICBjb25zdCBkYXRlQ29tcGFyZTogQXJyYXk8eyBmcm9tOiBudW1iZXIgfCB1bmRlZmluZWQ7IHRvOiBudW1iZXIgfCB1bmRlZmluZWQgfT4gPSBbXTtcblxuICAgIHR5cGUuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgZnJvbSA9IHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKClbaXRlbV07XG4gICAgICBjb25zdCB0byA9IHRoaXMuY2hvb3NlRGF0ZSgpPy50bygpW2l0ZW1dO1xuXG4gICAgICBkYXRlQ29tcGFyZS5wdXNoKHsgZnJvbTogZnJvbSwgdG86IHRvIH0pO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLmlnbm9yZVZhbGlkVGltZUNvbXBhcmUoKSB8fCAhdGhpcy5jaGVja0NvbmRpdGlvbih0cnVlKSkge1xuICAgICAgdGhpcy5pc0Vycm9yQ29tcGFyZURhdGUuc2V0KGZhbHNlKTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoQ29tcGFyZURhdGUoZGF0ZUNvbXBhcmUsIHRoaXMuaWdub3JlQWxsb3dUaW1lRXF1YWwoKSkpIHtcbiAgICAgIHRoaXMuc2V0RXJyb3IodHJ1ZSk7XG4gICAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQodHJ1ZSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQoZmFsc2UpO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgaWYgKCF0aGlzLnZhbGlkUmVxdWlyZWQoKSkge1xuICAgICAgaWYgKCF0aGlzLmNoZWNrQ29uZGl0aW9uKGZhbHNlKSAmJiAhdGhpcy5pZ25vcmVSZXF1aXJlZFZhbHVlU2Vjb25kV2hlbk5vdFZhbGlkUmVxdWlyZWQoKSkge1xuICAgICAgICB2YWxpZCA9IGF3YWl0IHRoaXMuY2hlY2tWYWxpZCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2hlY2tWYWxpZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NvbmRpdGlvbihoYXNWYWx1ZTogYm9vbGVhbikge1xuICAgIGxldCBjaGVja1ZhbHVlID0gdHJ1ZTtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlRm9ybWF0KCkuc3BsaXQoJy0nKSBhcyBBcnJheTxUWVBFX0RBVEVfRk9STUFUPjtcblxuICAgIHR5cGUuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGhhc1ZhbHVlICYmICghdGhpcy5jaG9vc2VEYXRlKCk/LmZyb20oKVtpdGVtXSB8fCAhdGhpcy5jaG9vc2VEYXRlKCk/LnRvKClbaXRlbV0pKSB7XG4gICAgICAgIGNoZWNrVmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghaGFzVmFsdWUgJiYgKHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKClbaXRlbV0gfHwgdGhpcy5jaG9vc2VEYXRlKCk/LnRvKClbaXRlbV0pKSB7XG4gICAgICAgIGNoZWNrVmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjaGVja1ZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5RGF0ZSgpIHtcbiAgICB0aGlzLnNldEVycm9yKGZhbHNlKTtcbiAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLmlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtKCkgJiYgIXRoaXMudmFsaWRhdGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmcm9tID0gdGhpcy5jaG9vc2VEYXRlKCk/LmZyb207XG4gICAgY29uc3QgdG8gPSB0aGlzLmNob29zZURhdGUoKT8udG87XG5cbiAgICBpZiAodGhpcy5pc011bHRpcGxlKCkpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmVEYXRlKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZCA9IHsgZnJvbTogc2lnbmFsKHt9KSwgdG86IHNpZ25hbCh7fSkgfTtcblxuICAgICAgdGhpcy5hcnJheUZvcm1hdCgpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoIWZyb20/LigpPy5ba2V5XSB8fCAhdG8/LigpPy5ba2V5XSkge1xuICAgICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICAgICAgZGF0YVNlbGVjdGVkLmZyb20udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBOdW1iZXIoZnJvbT8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRhdGFTZWxlY3RlZC50by51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IE51bWJlcih0bz8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGRhdGFTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLm91dENob29zZU11bHRpRGF0ZS5lbWl0KGRhdGFTZWxlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfCB1bmRlZmluZWQgPSB7fTtcblxuICAgIHRoaXMuYXJyYXlGb3JtYXQoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghZnJvbT8uKCk/LltrZXldKSB7XG4gICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhU2VsZWN0ZWQpIHtcbiAgICAgICAgZGF0YVNlbGVjdGVkW2tleV0gPSBOdW1iZXIoZnJvbT8uKCk/LltrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLm91dENob29zZVNpbmdsZURhdGUuZW1pdChkYXRhU2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdlV2lkdGhMYWJlbCh3aWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5jYWNoZVdpZHRoTGFiZWwuc2V0KHdpZHRoIDwgKHRoaXMuY2FjaGVXaWR0aExhYmVsKCkgfHwgMCkgPyB0aGlzLmNhY2hlV2lkdGhMYWJlbCgpIDogTWF0aC5jZWlsKHdpZHRoKSk7XG4gICAgaWYgKHRoaXMudGltZU91dCgpKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lT3V0KCkpO1xuICAgIH1cbiAgICB0aGlzLnRpbWVPdXQuc2V0KFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMud2lkdGhMYWJlbC5zZXQodGhpcy5jYWNoZVdpZHRoTGFiZWwoKSk7XG4gICAgICB9LCAxMDApIGFzIHVua25vd24gYXMgbnVtYmVyXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG59XG4iLCJAaWYgKGxhYmVsQ29uZmlnKCk7IGFzIGxhYmVsQ29uZmlnKSB7XG4gIDxsaWJzX3VpLWNvbXBvbmVudHMtbGFiZWxcbiAgICBbY2xhc3NJbmNsdWRlXT1cImxhYmVsQ29uZmlnLmNsYXNzSW5jbHVkZVwiXG4gICAgW2xhYmVsTGVmdF09XCJsYWJlbENvbmZpZy5sYWJlbExlZnRcIlxuICAgIFtsYWJlbExlZnRDbGFzc109XCJsYWJlbENvbmZpZy5sYWJlbExlZnRDbGFzc1wiXG4gICAgW3JlcXVpcmVkXT1cImxhYmVsQ29uZmlnLnJlcXVpcmVkXCJcbiAgICBbZGVzY3JpcHRpb25dPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25cIlxuICAgIFtsYWJlbFJpZ2h0XT1cImxhYmVsQ29uZmlnLmxhYmVsUmlnaHRcIlxuICAgIFtsYWJlbFJpZ2h0Q2xhc3NdPVwibGFiZWxDb25maWcubGFiZWxSaWdodENsYXNzXCJcbiAgICBbb25seVNob3dDb3VudF09XCJsYWJlbENvbmZpZy5vbmx5U2hvd0NvdW50XCJcbiAgICBbYnV0dG9uc0xlZnRdPVwibGFiZWxDb25maWcuYnV0dG9uc0xlZnRcIlxuICAgIFtidXR0b25zUmlnaHRdPVwibGFiZWxDb25maWcuYnV0dG9uc1JpZ2h0XCJcbiAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmJ1dHRvbnNEZXNjcmlwdGlvblwiXG4gICAgW2Rlc2NyaXB0aW9uQ2xhc3NdPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25DbGFzc1wiXG4gICAgW2Rpc2FibGVCdXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0xlZnRcIlxuICAgIFtkaXNhYmxlQnV0dG9uc1JpZ2h0XT1cImxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zUmlnaHRcIlxuICAgIFtoYXNUb2dnbGVdPVwibGFiZWxDb25maWcuaGFzVG9nZ2xlXCJcbiAgICBbdG9nZ2xlQWN0aXZlXT1cImxhYmVsQ29uZmlnLnRvZ2dsZUFjdGl2ZVwiXG4gICAgW3RvZ2dsZURpc2FibGVdPVwibGFiZWxDb25maWcudG9nZ2xlRGlzYWJsZSB8fCBkaXNhYmxlKClcIlxuICAgIFtwb3BvdmVyXT1cImxhYmVsQ29uZmlnLnBvcG92ZXJcIlxuICAgIFtpY29uUG9wb3ZlckNsYXNzXT1cImxhYmVsQ29uZmlnLmljb25Qb3BvdmVyQ2xhc3NcIlxuICAgIFtsaW1pdExlbmd0aF09XCJsYWJlbENvbmZpZy5saW1pdExlbmd0aFwiXG4gICAgW2NvdW50XT1cImxhYmVsQ29uZmlnLmNvdW50XCIgLz5cbn1cbjxkaXZcbiAgI3BhcmVudFxuICBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnRcIlxuICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgW2NsYXNzLiFjb2x1bW5dPVwiaXNSZXNwb25zaXZlKCkgJiYgaXNNdWx0aXBsZSgpXCI+XG4gIDxkaXZcbiAgICAjY2hpbGRGcm9tXG4gICAgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCJcbiAgICBbY2xhc3Mudy1bNTAlXV09XCJ3aWR0aEJ5RWxlbWVudCgpICYmICFpc1Jlc3BvbnNpdmUoKVwiXG4gICAgW2NsYXNzLiFtYi1bOHB4XV09XCJpc1Jlc3BvbnNpdmUoKSAmJiBpc011bHRpcGxlKClcIlxuICAgIFtjbGFzcy4hbXItWzhweF1dPVwiIWlzUmVzcG9uc2l2ZSgpICYmIGlzTXVsdGlwbGUoKVwiXG4gICAgW2NsYXNzLnctZnVsbF09XCIoIWlzTXVsdGlwbGUoKSAmJiAhd2lkdGhCeUVsZW1lbnQoKSkgfHwgaXNSZXNwb25zaXZlKClcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCIhd2lkdGhCeUVsZW1lbnQoKSAmJiBpc011bHRpcGxlKCkgJiYgIWlzUmVzcG9uc2l2ZSgpID8gd2lkdGhEcm9wZG93bigpICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyA4ICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyB3aWR0aExhYmVsRnJvbSgpIDogdW5kZWZpbmVkXCI+XG4gICAgQGlmIChpc011bHRpcGxlKCkgJiYgIWlnbm9yZUZyb21BbmRUb0RhdGVMYWJlbCgpICYmIGZyb21BbmRUb0RhdGVMYWJlbCgpLmZyb20pIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtci1bOHB4XSBmbGV4LXNocmluay0wIGgtWzMycHhdIGZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImlzUmVzcG9uc2l2ZSgpID8gd2lkdGhMYWJlbCgpIHx8IHVuZGVmaW5lZCA6IHVuZGVmaW5lZFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNsYWJlbEZyb21cbiAgICAgICAgICBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZVxuICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg1ciB0ZXh0LW5vd3JhcCB7eyBmcm9tQW5kVG9EYXRlTGFiZWwoKS5jbGFzc0xhYmVsRnJvbSB8fCAnJyB9fVwiXG4gICAgICAgICAgKG91dENoYW5nZVdpZHRoKT1cImhhbmRsZXJDaGFuZ2VXaWR0aExhYmVsKCRldmVudClcIj5cbiAgICAgICAgICBAbGV0IGNvbnN0SHRtbEZyb20gPSBmcm9tQW5kVG9EYXRlTGFiZWwoKS5mcm9tIHx8ICcgJztcbiAgICAgICAgICB7eyBjb25zdEh0bWxGcm9tIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZsZXhcIlxuICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwid2lkdGhCeUVsZW1lbnQoKVwiPlxuICAgICAgQGlmICghY2hhbmdlVHlwZSgpKSB7XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbVxuICAgICAgICAgIFtjbGFzcy4hdy1mdWxsXT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgICAgIFtkaXNhYmxlU2Vjb25kXT1cImRpc2FibGVTZWNvbmQoKVwiXG4gICAgICAgICAgW3R5cGVEYXRlXT1cInR5cGVGb3JtYXQoKVwiXG4gICAgICAgICAgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgICAgICAgW21heFllYXJdPVwibWF4WWVhcigpXCJcbiAgICAgICAgICBbZGlzYWJsZV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgIFttaW5ZZWFyXT1cIm1pblllYXIoKVwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgICAgIFtpc011bHRpcGxlXT1cImlzTXVsdGlwbGUoKSA/IChpc1Jlc3BvbnNpdmUoKSA/IHRydWUgOiBmYWxzZSkgOiB0cnVlXCJcbiAgICAgICAgICBbcmV2ZXJzZVllYXJdPVwicmV2ZXJzZVllYXIoKVwiXG4gICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVUaW1lKCk/LmZyb20oKSB8fCB7fVwiXG4gICAgICAgICAgW3dpZHRoRHJvcGRvd25dPVwid2lkdGhEcm9wZG93bigpXCJcbiAgICAgICAgICBbd2lkdGhCeUVsZW1lbnRdPVwid2lkdGhCeUVsZW1lbnQoKVwiXG4gICAgICAgICAgW2dldEl0ZW1ZZWFyRGlzcGxheV09XCJnZXRJdGVtWWVhckRpc3BsYXkoKVwiXG4gICAgICAgICAgW2xpc3RNYXhJdGVtU2hvd109XCJsaXN0TWF4SXRlbVNob3coKVwiXG4gICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8uZnJvbSgpXCJcbiAgICAgICAgICBbbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uXT1cImxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbigpXCJcbiAgICAgICAgICBbaXNFbWl0U2VsZWN0ZWREcm9wRG93bl09XCJpc0VtaXRBZnRlckNoYW5nZWQoKVwiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZVRleHREaXNwbGF5V2hlbk5vU2VsZWN0XT1cIidsaWJzLXVpLWZvbnQtaDVyICcgKyBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCgpXCJcbiAgICAgICAgICAob3V0U2VsZWN0ZWREYXRhKT1cImhhbmRsZXJDaGFuZ2VTZWxlY3RlZEtleSgkZXZlbnQsICdmcm9tJylcIlxuICAgICAgICAgIChvdXRGdW5jdGlvbkNvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uQ29udHJvbCgkZXZlbnQsICdmcm9tJylcIlxuICAgICAgICAgIChvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlKT1cImhhbmRsZXJDaGFuZ1N0YWdlRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmIChpc011bHRpcGxlKCkpIHtcbiAgICA8ZGl2XG4gICAgICAjY2hpbGRUb1xuICAgICAgW2NsYXNzLiF3LVs1MCVdXT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwiIXdpZHRoQnlFbGVtZW50KCkgfHwgaXNSZXNwb25zaXZlKClcIlxuICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibXItWzhweF0gaC1bMzJweF0gZmxleC1zaHJpbmstMCBmbGV4IGl0ZW1zLWNlbnRlclwiXG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJpc1Jlc3BvbnNpdmUoKSA/IHdpZHRoTGFiZWwoKSA6IHVuZGVmaW5lZFwiPlxuICAgICAgICBAaWYgKCFpZ25vcmVGcm9tQW5kVG9EYXRlTGFiZWwoKSkge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAjbGFiZWxUb1xuICAgICAgICAgICAgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25EaXJlY3RpdmVcbiAgICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVyIHRleHQtbm93cmFwIHt7IGZyb21BbmRUb0RhdGVMYWJlbCgpLmNsYXNzTGFiZWxUbyB8fCAnJyB9fVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdlV2lkdGgpPVwiaGFuZGxlckNoYW5nZVdpZHRoTGFiZWwoJGV2ZW50KVwiPlxuICAgICAgICAgICAgQGxldCBjb25zdEh0bWxUbyA9IGZyb21BbmRUb0RhdGVMYWJlbCgpLnRvIHx8ICcgJztcbiAgICAgICAgICAgIHt7IGNvbnN0SHRtbFRvIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaWdub3JlRnJvbUFuZFRvRGF0ZUxhYmVsKCkpIHtcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2NsYXNzLiFvcGFjaXR5LVswLjVdXT1cImRpc2FibGUoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImxpYnMtdWktZm9udC1oNXJcIj5cbiAgICAgICAgICAgIC1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXhcIlxuICAgICAgICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCI+XG4gICAgICAgIEBpZiAoIWNoYW5nZVR5cGUoKSkge1xuICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbVxuICAgICAgICAgICAgW2NsYXNzLnctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlU2Vjb25kXT1cImRpc2FibGVTZWNvbmQoKVwiXG4gICAgICAgICAgICBbdHlwZURhdGVdPVwidHlwZUZvcm1hdCgpXCJcbiAgICAgICAgICAgIFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgICAgICAgICAgW21heFllYXJdPVwibWF4WWVhcigpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICAgICAgICBbbWluWWVhcl09XCJtaW5ZZWFyKClcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgICAgICAgW2lzTXVsdGlwbGVdPVwiaXNNdWx0aXBsZSgpXCJcbiAgICAgICAgICAgIFtyZXZlcnNlWWVhcl09XCJyZXZlcnNlWWVhcigpXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlVGltZSgpPy50bygpIHx8IHt9XCJcbiAgICAgICAgICAgIFt3aWR0aERyb3Bkb3duXT1cIndpZHRoRHJvcGRvd24oKVwiXG4gICAgICAgICAgICBbd2lkdGhCeUVsZW1lbnRdPVwid2lkdGhCeUVsZW1lbnQoKVwiXG4gICAgICAgICAgICBbZ2V0SXRlbVllYXJEaXNwbGF5XT1cImdldEl0ZW1ZZWFyRGlzcGxheSgpXCJcbiAgICAgICAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KClcIlxuICAgICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8udG8oKVwiXG4gICAgICAgICAgICBbbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uXT1cImxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbigpXCJcbiAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdF09XCInbGlicy11aS1mb250LWg1ciAnICsgY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RcIlxuICAgICAgICAgICAgW2lzRW1pdFNlbGVjdGVkRHJvcERvd25dPVwiaXNFbWl0QWZ0ZXJDaGFuZ2VkKClcIlxuICAgICAgICAgICAgKG91dFNlbGVjdGVkRGF0YSk9XCJoYW5kbGVyQ2hhbmdlU2VsZWN0ZWRLZXkoJGV2ZW50LCAndG8nKVwiXG4gICAgICAgICAgICAob3V0RnVuY3Rpb25Db250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2woJGV2ZW50LCAndG8nKVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKGlzRXJyb3JDb21wYXJlRGF0ZSgpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC1bNHB4XVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1tZXNzYWdlLWVycm9yIGxpYnMtdWktZm9udC1oN3IgbGlicy11aS10ZXh0LWVycm9yXCI+XG4gICAgICBAbGV0IGNvbnN0SHRtbE1lc3NhZ2UgPSB2YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2VWYWxpZENvbXBhcmVUaW1lIHx8ICdpMThuX2ludmFsaWRfZW5kX2RhdGVfc2VsZWN0ZWQnO1xuICAgICAge3sgY29uc3RIdG1sTWVzc2FnZSB8IHRyYW5zbGF0ZTogdmFsaWRSZXF1aXJlZCgpPy5pbnRlcnBvbGF0ZVBhcmFtc0NvbXBhcmVUaW1lIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './dropdown.component';
|
|
2
|
+
export * from './interfaces';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2ludGVyZmFjZXMvZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuXG5pbXBvcnQgeyBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURyb3Bkb3duRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWRyb3Bkb3duJztcblxuZXhwb3J0IHR5cGUgVFlQRV9EUk9QRE9XTl9NT05USF9JRCA9IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDcgfCA4IHwgOSB8IDEwIHwgMTEgfCAxMjtcbmV4cG9ydCB0eXBlIFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQgPSAneWVhcicgfCAnbW9udGgnIHwgJ3F1YXJ0ZXInIHwgJ3llYXItbW9udGgnIHwgJ21vbnRoLWRheScgfCAneWVhci1xdWFydGVyJyB8IHN0cmluZztcbmV4cG9ydCB0eXBlIFRZUEVfREFURV9GT1JNQVQgPSAneWVhcicgfCAnbW9udGgnIHwgJ3F1YXJ0ZXInIHwgJ2RheSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVR5cGVEYXRlIHtcbiAgaWQ6IFRZUEVfREFURV9GT1JNQVQ7XG4gIGtleVNlbGVjdGVkOiBhbnk7XG4gIGRpc2FibGU/OiBib29sZWFuO1xuICBzaG93Qm9yZGVyRXJyb3I/OiBib29sZWFuO1xuICBpc0Vycm9yPzogYm9vbGVhbjtcbiAgZnVuY3Rpb25Db250cm9sPzogSURyb3Bkb3duRnVuY3Rpb25Db250cm9sRXZlbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVEcm9wZG93bkRpc2FibGVLZXlzIHtcbiAgZnJvbT86IFdyaXRhYmxlU2lnbmFsPElEYXRlRHJvcGRvd25EaXNhYmxlPjtcbiAgdG8/OiBXcml0YWJsZVNpZ25hbDxJRGF0ZURyb3Bkb3duRGlzYWJsZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVEcm9wZG93bkRpc2FibGUge1xuICB5ZWFyPzogV3JpdGFibGVTaWduYWw8QXJyYXk8bnVtYmVyPj47XG4gIG1vbnRoPzogV3JpdGFibGVTaWduYWw8QXJyYXk8bnVtYmVyPj47XG4gIHF1YXJ0ZXI/OiBXcml0YWJsZVNpZ25hbDxBcnJheTxudW1iZXI+PjtcbiAgZGF5PzogV3JpdGFibGVTaWduYWw8QXJyYXk8bnVtYmVyPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhpZGRlbkRhdGUge1xuICBmb3JtYXREYXRlOiBUWVBFX0RBVEVfRFJPUERPV05fRk9STUFUO1xuICB5ZWFyTW9udGg/OiBXcml0YWJsZVNpZ25hbDxBcnJheTxXcml0YWJsZVNpZ25hbDxJSGlkZGVuRGF0ZVllYXJNb250aD4+PjtcbiAgbW9udGhEYXk/OiBXcml0YWJsZVNpZ25hbDxBcnJheTxXcml0YWJsZVNpZ25hbDxJSGlkZGVuRGF0ZU1vbnRoRGF5Pj4+O1xufVxuXG5pbnRlcmZhY2UgSUhpZGRlbkRhdGVNb250aERheSB7XG4gIGhpZGRlbk1vbnRoOiBudW1iZXI7XG4gIGhpZGRlbkRheXM6IEFycmF5PG51bWJlcj47XG59XG5pbnRlcmZhY2UgSUhpZGRlbkRhdGVZZWFyTW9udGgge1xuICBoaWRkZW5ZZWFyOiBudW1iZXI7XG4gIGhpZGRlbk1vbnRoczogQXJyYXk8bnVtYmVyPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRnJvbUFuZFRvRGF0ZUxhYmVsIHtcbiAgdG8/OiBzdHJpbmc7XG4gIGZyb20/OiBzdHJpbmc7XG4gIGNsYXNzTGFiZWxUbz86IHN0cmluZztcbiAgY2xhc3NMYWJlbEZyb20/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdC1kcm9wZG93bi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2ludGVyZmFjZXMvZW1pdC1kcm9wZG93bi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVtaXRNdWx0aURhdGVEcm9wZG93biB7XG4gIGZyb206IFdyaXRhYmxlU2lnbmFsPElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPjtcbiAgdG86IFdyaXRhYmxlU2lnbmFsPElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW1pdFNpbmdsZURhdGVEcm9wZG93biB7XG4gIHllYXI/OiBudW1iZXI7XG4gIG1vbnRoPzogbnVtYmVyO1xuICBxdWFydGVyPzogbnVtYmVyO1xuICBkYXk/OiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9pbnRlcmZhY2VzL2Z1bmN0aW9ucy1jb250cm9sLWV2ZW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRGF0ZURyb3Bkb3duSXRlbUZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgY2hlY2tJc1ZhbGlkOiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICByZXNldERyb3Bkb3duOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZXNldEVycm9yOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBzZXRFcnJvcjogKGVycm9yOiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gIGNoZWNrSXNWYWxpZDogKCkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgcmVzZXRFcnJvcj86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIHJlc2V0VGltZT86ICgpID0+IFByb21pc2U8dm9pZD47XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './date-dropdown.interface';
|
|
2
|
+
export * from './emit-dropdown.interface';
|
|
3
|
+
export * from './functions-control-event.interface';
|
|
4
|
+
export * from './valid.interface';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lbWl0LWRyb3Bkb3duLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Z1bmN0aW9ucy1jb250cm9sLWV2ZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkLmludGVyZmFjZSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9pbnRlcmZhY2VzL3ZhbGlkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJVmFsaWREYXRlRHJvcGRvd24ge1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBpbnRlcnBvbGF0ZVBhcmFtcz86IHsgYW55OiBvYmplY3QgfTtcbiAgbWVzc2FnZVZhbGlkQ29tcGFyZVRpbWU/OiBzdHJpbmc7XG4gIGludGVycG9sYXRlUGFyYW1zQ29tcGFyZVRpbWU/OiB7IGFueTogb2JqZWN0IH07XG59XG4iXX0=
|