@alauda/ui 7.4.2-beta.0 → 7.4.2-beta.2
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/date-picker/calendar/header/component.d.ts +4 -0
- package/esm2022/accordion/accordion-item/accordion-item.component.mjs +9 -11
- package/esm2022/accordion/accordion.component.mjs +4 -6
- package/esm2022/accordion/accordion.module.mjs +6 -6
- package/esm2022/anchor/anchor.component.mjs +14 -18
- package/esm2022/anchor/anchor.directive.mjs +13 -29
- package/esm2022/anchor/anchor.module.mjs +5 -5
- package/esm2022/autocomplete/autocomplete-placeholder.component.mjs +3 -3
- package/esm2022/autocomplete/autocomplete.component.mjs +4 -12
- package/esm2022/autocomplete/autocomplete.directive.mjs +22 -23
- package/esm2022/autocomplete/autocomplete.module.mjs +6 -6
- package/esm2022/autocomplete/helper-directives.mjs +3 -3
- package/esm2022/autocomplete/suggestion/suggestion.component.mjs +8 -15
- package/esm2022/autocomplete/suggestion-group/suggestion-group.component.mjs +3 -5
- package/esm2022/back-top/back-top.component.mjs +12 -15
- package/esm2022/back-top/back-top.module.mjs +4 -4
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +5 -6
- package/esm2022/breadcrumb/breadcrumb.component.mjs +7 -6
- package/esm2022/breadcrumb/breadcrumb.module.mjs +6 -6
- package/esm2022/button/button-group/button-group.component.mjs +3 -3
- package/esm2022/button/button.component.mjs +9 -12
- package/esm2022/button/button.module.mjs +4 -4
- package/esm2022/card/card.component.mjs +6 -4
- package/esm2022/card/card.module.mjs +5 -5
- package/esm2022/card/helper-directives.mjs +7 -7
- package/esm2022/card/section.component.mjs +3 -3
- package/esm2022/checkbox/checkbox-group/checkbox-group.component.mjs +8 -7
- package/esm2022/checkbox/checkbox.component.mjs +10 -14
- package/esm2022/checkbox/checkbox.module.mjs +6 -6
- package/esm2022/color-picker/color-picker.component.mjs +4 -4
- package/esm2022/color-picker/color-picker.module.mjs +4 -4
- package/esm2022/date-picker/calendar/date-picker-panel/component.mjs +17 -26
- package/esm2022/date-picker/calendar/footer/component.mjs +8 -8
- package/esm2022/date-picker/calendar/header/component.mjs +38 -23
- package/esm2022/date-picker/calendar/panel/picker-panel.mjs +19 -26
- package/esm2022/date-picker/calendar/range-picker-panel/component.mjs +29 -32
- package/esm2022/date-picker/calendar/util.mjs +1 -8
- package/esm2022/date-picker/date-picker/date-picker.component.mjs +18 -23
- package/esm2022/date-picker/date-picker.module.mjs +6 -6
- package/esm2022/date-picker/range-picker/range-picker.component.mjs +18 -20
- package/esm2022/date-picker/trigger/trigger.component.mjs +13 -20
- package/esm2022/dialog/confirm-dialog/confirm-dialog-config.mjs +8 -9
- package/esm2022/dialog/confirm-dialog/confirm-dialog.component.mjs +8 -11
- package/esm2022/dialog/dialog-config.mjs +10 -9
- package/esm2022/dialog/dialog-content/dialog-close.directive.mjs +3 -7
- package/esm2022/dialog/dialog-content/dialog-content.component.mjs +4 -4
- package/esm2022/dialog/dialog-content/dialog-footer.component.mjs +6 -4
- package/esm2022/dialog/dialog-content/dialog-header.component.mjs +7 -10
- package/esm2022/dialog/dialog-ref.mjs +4 -8
- package/esm2022/dialog/dialog.component.mjs +6 -13
- package/esm2022/dialog/dialog.module.mjs +6 -6
- package/esm2022/dialog/dialog.service.mjs +7 -11
- package/esm2022/drawer/component/drawer.component.mjs +5 -24
- package/esm2022/drawer/component/internal/internal.component.mjs +8 -13
- package/esm2022/drawer/drawer-ref.mjs +3 -5
- package/esm2022/drawer/drawer.module.mjs +5 -5
- package/esm2022/drawer/drawer.service.mjs +4 -9
- package/esm2022/drawer/helper-directives.mjs +7 -7
- package/esm2022/dropdown/dropdown-active.directive.mjs +7 -4
- package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +11 -12
- package/esm2022/dropdown/dropdown.directive.mjs +7 -7
- package/esm2022/dropdown/dropdown.module.mjs +6 -6
- package/esm2022/dropdown/helper-directives.mjs +3 -3
- package/esm2022/dropdown/menu/menu.component.mjs +7 -5
- package/esm2022/dropdown/menu-group/menu-group.component.mjs +3 -3
- package/esm2022/dropdown/menu-item/menu-item.component.mjs +10 -8
- package/esm2022/dropdown/submenu/submenu.component.mjs +9 -7
- package/esm2022/form/common-form.mjs +7 -12
- package/esm2022/form/form-item/form-item.component.mjs +9 -22
- package/esm2022/form/form.directive.mjs +16 -17
- package/esm2022/form/form.module.mjs +5 -5
- package/esm2022/form/helper-directives.mjs +11 -12
- package/esm2022/i18n/i18n.module.mjs +4 -4
- package/esm2022/i18n/i18n.pipe.mjs +4 -6
- package/esm2022/i18n/i18n.service.mjs +3 -6
- package/esm2022/icon/icon-register.service.mjs +4 -6
- package/esm2022/icon/icon.component.mjs +6 -15
- package/esm2022/icon/icon.module.mjs +4 -4
- package/esm2022/inline-alert/helper-directives.mjs +3 -3
- package/esm2022/inline-alert/inline-alert.component.mjs +10 -11
- package/esm2022/inline-alert/inline-alert.module.mjs +6 -6
- package/esm2022/input/autosize.directive.mjs +5 -7
- package/esm2022/input/helper-directives.mjs +9 -9
- package/esm2022/input/input-group/input-group.component.mjs +6 -13
- package/esm2022/input/input.component.mjs +7 -9
- package/esm2022/input/input.module.mjs +6 -6
- package/esm2022/input/number-input/number-input.component.mjs +18 -21
- package/esm2022/input/search/search.component.mjs +16 -15
- package/esm2022/input/tags-input/tags-input.component.mjs +16 -25
- package/esm2022/internal/utils/bem.mjs +1 -2
- package/esm2022/internal/utils/styles-renderer.mjs +1 -4
- package/esm2022/message/base-message.mjs +2 -11
- package/esm2022/message/message-wrapper.component.mjs +3 -4
- package/esm2022/message/message.component.mjs +10 -17
- package/esm2022/message/message.config.mjs +1 -5
- package/esm2022/message/message.module.mjs +6 -6
- package/esm2022/message/message.service.mjs +3 -3
- package/esm2022/notification/notification-wrapper.component.mjs +3 -4
- package/esm2022/notification/notification.component.mjs +13 -16
- package/esm2022/notification/notification.module.mjs +6 -6
- package/esm2022/notification/notification.service.mjs +3 -3
- package/esm2022/paginator/paginator-intl.mjs +10 -8
- package/esm2022/paginator/paginator.component.mjs +13 -16
- package/esm2022/paginator/paginator.module.mjs +6 -6
- package/esm2022/radio/base-radio.mjs +9 -14
- package/esm2022/radio/radio-button/radio-button.component.mjs +6 -6
- package/esm2022/radio/radio-group/radio-group.component.mjs +20 -17
- package/esm2022/radio/radio.component.mjs +4 -4
- package/esm2022/radio/radio.module.mjs +6 -6
- package/esm2022/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +13 -12
- package/esm2022/scrolling/fixed-size-table-virtual-scroll.directive.mjs +12 -12
- package/esm2022/scrolling/fixed-size-virtual-scroll.directive.mjs +4 -4
- package/esm2022/scrolling/scrolling.module.mjs +5 -5
- package/esm2022/scrolling/virtual-for-of.directive.mjs +3 -3
- package/esm2022/scrolling/virtual-scroll-viewport.component.mjs +4 -4
- package/esm2022/select/base-select.mjs +25 -39
- package/esm2022/select/helper-directives.mjs +5 -13
- package/esm2022/select/multi-select/multi-select.component.mjs +16 -25
- package/esm2022/select/option/option.component.mjs +20 -27
- package/esm2022/select/option-group/option-group.component.mjs +3 -5
- package/esm2022/select/option-placeholder.component.mjs +3 -3
- package/esm2022/select/select.component.mjs +9 -9
- package/esm2022/select/select.module.mjs +6 -6
- package/esm2022/select/validators.mjs +5 -8
- package/esm2022/shared/click-outside.directive.mjs +4 -5
- package/esm2022/shared/shared.module.mjs +4 -4
- package/esm2022/sort/sort-header.component.mjs +5 -11
- package/esm2022/sort/sort.directive.mjs +10 -9
- package/esm2022/sort/sort.module.mjs +4 -4
- package/esm2022/status-bar/status-bar.component.mjs +9 -8
- package/esm2022/status-bar/status-bar.module.mjs +4 -4
- package/esm2022/steps/steps.component.mjs +14 -14
- package/esm2022/steps/steps.module.mjs +4 -4
- package/esm2022/switch/switch.component.mjs +9 -6
- package/esm2022/switch/switch.module.mjs +4 -4
- package/esm2022/table/table-cell-def.directive.mjs +4 -4
- package/esm2022/table/table-cell.component.mjs +18 -12
- package/esm2022/table/table-cell.directive.mjs +4 -4
- package/esm2022/table/table-column-def.directive.mjs +4 -4
- package/esm2022/table/table-column-resizable.directive.mjs +14 -13
- package/esm2022/table/table-header-cell-def.directive.mjs +4 -4
- package/esm2022/table/table-header-cell.directive.mjs +3 -3
- package/esm2022/table/table-header-row-def.directive.mjs +8 -6
- package/esm2022/table/table-header-row.component.mjs +3 -3
- package/esm2022/table/table-placeholder.directive.mjs +5 -8
- package/esm2022/table/table-row-def.directive.mjs +8 -5
- package/esm2022/table/table-row.component.mjs +5 -6
- package/esm2022/table/table-scroll.directive.mjs +14 -14
- package/esm2022/table/table.component.mjs +9 -9
- package/esm2022/table/table.module.mjs +6 -6
- package/esm2022/table-of-contents/table-of-contents.module.mjs +5 -5
- package/esm2022/table-of-contents/toc-container.directive.mjs +9 -11
- package/esm2022/table-of-contents/toc-content.directive.mjs +3 -7
- package/esm2022/table-of-contents/toc-link.directive.mjs +4 -8
- package/esm2022/tabs/tab-body.component.mjs +19 -23
- package/esm2022/tabs/tab-context.service.mjs +4 -6
- package/esm2022/tabs/tab-group.component.mjs +18 -28
- package/esm2022/tabs/tab-header-active-indicator.component.mjs +5 -7
- package/esm2022/tabs/tab-header.component.mjs +16 -26
- package/esm2022/tabs/tab.component.mjs +10 -17
- package/esm2022/tabs/tabs.module.mjs +6 -6
- package/esm2022/tag/check-tag/check-tag.component.mjs +11 -9
- package/esm2022/tag/tag.component.mjs +16 -14
- package/esm2022/tag/tag.module.mjs +4 -4
- package/esm2022/theme/theme.module.mjs +5 -5
- package/esm2022/theme/theme.pipe.mjs +19 -14
- package/esm2022/theme/theme.service.mjs +7 -10
- package/esm2022/time-picker/component.mjs +19 -21
- package/esm2022/time-picker/panel/panel.component.mjs +17 -29
- package/esm2022/time-picker/time-picker.module.mjs +6 -6
- package/esm2022/tooltip/base-tooltip.mjs +20 -31
- package/esm2022/tooltip/tooltip-active.directive.mjs +5 -7
- package/esm2022/tooltip/tooltip-copy.directive.mjs +4 -9
- package/esm2022/tooltip/tooltip-intl.mjs +8 -6
- package/esm2022/tooltip/tooltip.component.mjs +11 -25
- package/esm2022/tooltip/tooltip.directive.mjs +9 -6
- package/esm2022/tooltip/tooltip.module.mjs +6 -6
- package/esm2022/tree-select/tree-node-placeholder.component.mjs +3 -3
- package/esm2022/tree-select/tree-select.component.mjs +30 -44
- package/esm2022/tree-select/tree-select.module.mjs +6 -6
- package/fesm2022/alauda-ui.mjs +1269 -1612
- package/fesm2022/alauda-ui.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -12,12 +12,6 @@ import * as i0 from "@angular/core";
|
|
|
12
12
|
dayjs.extend(isBetween);
|
|
13
13
|
const bem = buildBem('aui-picker-panel');
|
|
14
14
|
export class PickerPanelComponent {
|
|
15
|
-
cdr;
|
|
16
|
-
navRange;
|
|
17
|
-
type;
|
|
18
|
-
anchor = dayjs();
|
|
19
|
-
matchDates;
|
|
20
|
-
disabledDate = () => false;
|
|
21
15
|
set weekStartDay(day) {
|
|
22
16
|
const normalized = Math.max(Math.min(Math.round(day), 6), 0);
|
|
23
17
|
this.weekDefs = [
|
|
@@ -29,28 +23,27 @@ export class PickerPanelComponent {
|
|
|
29
23
|
get weekStartDay() {
|
|
30
24
|
return this._weekStartDay;
|
|
31
25
|
}
|
|
32
|
-
minDate;
|
|
33
|
-
maxDate;
|
|
34
26
|
get disabledDateFn() {
|
|
35
27
|
return composeDisabledDateFn(date => this.minDate && date.isBefore(this.minDate, 'date'), date => this.maxDate && date.isAfter(this.maxDate, 'date'), this.disabledDate);
|
|
36
28
|
}
|
|
37
|
-
_weekStartDay = 0;
|
|
38
|
-
panelData;
|
|
39
|
-
select = new EventEmitter();
|
|
40
|
-
hovered = new EventEmitter();
|
|
41
|
-
bem = bem;
|
|
42
|
-
DateNavRange = DateNavRange;
|
|
43
|
-
weekDefs = [
|
|
44
|
-
'sunday',
|
|
45
|
-
'monday',
|
|
46
|
-
'tuesday',
|
|
47
|
-
'wednesday',
|
|
48
|
-
'thursday',
|
|
49
|
-
'friday',
|
|
50
|
-
'saturday',
|
|
51
|
-
];
|
|
52
29
|
constructor(cdr) {
|
|
53
30
|
this.cdr = cdr;
|
|
31
|
+
this.anchor = dayjs();
|
|
32
|
+
this.disabledDate = () => false;
|
|
33
|
+
this._weekStartDay = 0;
|
|
34
|
+
this.select = new EventEmitter();
|
|
35
|
+
this.hovered = new EventEmitter();
|
|
36
|
+
this.bem = bem;
|
|
37
|
+
this.DateNavRange = DateNavRange;
|
|
38
|
+
this.weekDefs = [
|
|
39
|
+
'sunday',
|
|
40
|
+
'monday',
|
|
41
|
+
'tuesday',
|
|
42
|
+
'wednesday',
|
|
43
|
+
'thursday',
|
|
44
|
+
'friday',
|
|
45
|
+
'saturday',
|
|
46
|
+
];
|
|
54
47
|
}
|
|
55
48
|
ngOnChanges() {
|
|
56
49
|
const headerRange = calcRangeValue(this.navRange, this.anchor);
|
|
@@ -128,8 +121,8 @@ export class PickerPanelComponent {
|
|
|
128
121
|
trackByFn() {
|
|
129
122
|
return this.navRange;
|
|
130
123
|
}
|
|
131
|
-
static
|
|
132
|
-
static
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: PickerPanelComponent, isStandalone: true, selector: "aui-picker-panel", inputs: { navRange: "navRange", type: "type", anchor: "anchor", matchDates: "matchDates", disabledDate: "disabledDate", weekStartDay: "weekStartDay", minDate: "minDate", maxDate: "maxDate" }, outputs: { select: "select", hovered: "hovered" }, usesOnChanges: true, ngImport: i0, template: "<div\n [class]=\"bem.element('container')\"\n [ngClass]=\"{\n 'day-panel-container': navRange === DateNavRange.Month,\n 'month-panel-container': navRange === DateNavRange.Year,\n 'year-panel-container': navRange === DateNavRange.Decade\n }\"\n>\n <div\n [class]=\"[bem.element('row'), 'week-header'].join(' ')\"\n *ngIf=\"navRange === DateNavRange.Month\"\n >\n <span\n *ngFor=\"let item of weekDefs\"\n [class]=\"bem.element('cell')\"\n >\n {{ item | auiI18n }}\n </span>\n </div>\n <div\n [class]=\"bem.element('row')\"\n *ngFor=\"let row of panelData; trackBy: trackByFn\"\n >\n <span\n *ngFor=\"let item of row; trackBy: trackByFn\"\n [class]=\"bem.element('cell')\"\n [ngClass]=\"{\n inRange: item.inRange && !item.isDisabled,\n isActive: match(item.value),\n isBackground: item.isBackground && !item.isDisabled,\n isRangeStart: item.isRangeStart,\n isRangeEnd: item.isRangeEnd,\n isToday: matchToday(item.value) && !item.isBackground,\n isDisabled: item.isDisabled\n }\"\n ><button\n aui-button=\"text\"\n [plain]=\"true\"\n [size]=\"navRange === DateNavRange.Month ? 'mini' : 'small'\"\n [disabled]=\"item.isDisabled\"\n (click)=\"selectValue(item.value)\"\n (mouseenter)=\"hovered.next(item.value)\"\n >\n {{ item.label\n }}<ng-container *ngIf=\"navRange === DateNavRange.Year\">{{\n 'month_suffix' | auiI18n\n }}</ng-container>\n </button>\n </span>\n </div>\n</div>\n", styles: [".aui-picker-panel__container{height:min-content;box-sizing:border-box;justify-content:stretch;display:flex;flex-direction:column;margin:12px 9px;align-items:center}.aui-picker-panel__container .aui-button{box-sizing:border-box}.aui-picker-panel__container .aui-button__content{padding:0!important}.aui-picker-panel__container.month-panel-container button,.aui-picker-panel__container.year-panel-container button{width:56px;height:28px!important}.aui-picker-panel__container.day-panel-container{height:min-content;padding:0;margin:0}.aui-picker-panel__container.day-panel-container button{height:24px!important;width:24px!important}.aui-picker-panel__container.day-panel-container .aui-picker-panel__row+.aui-picker-panel__row{margin-top:8px}.aui-picker-panel__row+.aui-picker-panel__row{margin-top:20px}.aui-picker-panel__row{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal);width:100%}.aui-picker-panel__row.week-header{color:rgb(var(--aui-color-help-text));margin-bottom:8px}.aui-picker-panel__row.week-header span{display:inline-block;margin:0;width:36px;text-align:center}.aui-picker-panel__cell{display:inline-flex;position:relative;align-items:center;justify-content:center;margin-inline:6px}.aui-picker-panel__cell button{box-sizing:content-box;transition:color .3s ease,background-color .3s ease}.aui-picker-panel__cell.inRange{background-color:rgb(var(--aui-color-p-6));box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeEnd{box-shadow:-6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isRangeStart{box-shadow:6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell.isDisabled{background-color:rgb(var(--aui-color-n-8));box-shadow:-6px 0 0 0 rgb(var(--aui-color-n-8)),6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isDisabled button{color:rgb(var(--aui-color-disabled-text))!important;border-color:rgb(var(--aui-color-disabled-text))!important}.aui-picker-panel__cell.isDisabled.isActive button,.aui-picker-panel__cell.isDisabled.isToday button{color:#fff!important;border-color:rgb(var(--aui-color-p-4))!important;background-color:rgb(var(--aui-color-p-4))!important}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled,.isRangeStart){box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg))}.aui-picker-panel__cell.isDisabled+.aui-picker-panel__cell:not(.isDisabled).isRangeStart{box-shadow:-12px 0 0 0 rgb(var(--aui-color-popper-bg)),6px 0 0 0 rgb(var(--aui-color-p-6))}.aui-picker-panel__cell:not(.isDisabled)+.aui-picker-panel__cell.isDisabled{box-shadow:6px 0 0 0 rgb(var(--aui-color-n-8))}.aui-picker-panel__cell.isToday button{border:rgb(var(--aui-color-primary)) 1px solid;color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-7))}.aui-picker-panel__cell.isActive button{color:#fff;background-color:rgb(var(--aui-color-primary))}.aui-picker-panel__cell.isBackground button{background-color:initial!important;color:rgb(var(--aui-color-disabled-text))}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
133
126
|
}
|
|
134
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: PickerPanelComponent, decorators: [{
|
|
135
128
|
type: Component,
|
|
@@ -155,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
|
|
|
155
148
|
}], hovered: [{
|
|
156
149
|
type: Output
|
|
157
150
|
}] } });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL3BhbmVsL3BpY2tlci1wYW5lbC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9jYWxlbmRhci9wYW5lbC9waWNrZXItcGFuZWwudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUNMLEdBQUcsRUFDSCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBRW5CLEtBQUssRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFFTCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxTQUFTLENBQUM7O0FBRWpCLEtBQUssQ0FBQyxNQUFNLENB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QkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBZ0JOLE1BQU07c0JBREwsTUFBTTtnQkFJUCxPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcbmltcG9ydCBpc0JldHdlZW4gZnJvbSAnZGF5anMvcGx1Z2luL2lzQmV0d2Vlbic7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEkxOG5QaXBlIH0gZnJvbSAnLi4vLi4vLi4vaTE4bi9pMThuLnBpcGUnO1xuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQgeyBEYXRlTmF2UmFuZ2UgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci50eXBlJztcbmltcG9ydCB7XG4gIERBWSxcbiAgREFZX1BBTkVMX0NPTFVNTl9DT1VOVCxcbiAgREFZX1BBTkVMX1JPV19DT1VOVCxcbiAgRGF0ZVBpY2tlclR5cGUsXG4gIE1PTlRILFxuICBNT05USF9QQU5FTF9DT0xVTU5fQ09VTlQsXG4gIE1PTlRIX1BBTkVMX1JPV19DT1VOVCxcbiAgWUVBUixcbiAgWUVBUl9QQU5FTF9DT0xVTU5fQ09VTlQsXG4gIFlFQVJfUEFORUxfUk9XX0NPVU5ULFxufSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQge1xuICBEYXRlQ2VsbCxcbiAgY2FsY1JhbmdlVmFsdWUsXG4gIGNvbXBvc2VEaXNhYmxlZERhdGVGbixcbiAgZm9ybWF0RGF0ZSxcbiAgZ2V0RGF0ZVBhbmVsSXRlcmFibGUsXG4gIGdldE5hdlJhbmdlQnlUeXBlLFxuICBnZXRUeXBlQnlOYXZSYW5nZSxcbiAgc29ydERhdGVzLFxufSBmcm9tICcuLi91dGlsJztcblxuZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG5cbmNvbnN0IGJlbSA9IGJ1aWxkQmVtKCdhdWktcGlja2VyLXBhbmVsJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1waWNrZXItcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLXBhbmVsLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waWNrZXItcGFuZWwuc3R5bGUuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nSWYsIE5nRm9yLCBCdXR0b25Db21wb25lbnQsIEkxOG5QaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgUGlja2VyUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGU6IERhdGVQaWNrZXJUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIGFuY2hvciA9IGRheWpzKCk7XG5cbiAgQElucHV0KClcbiAgbWF0Y2hEYXRlczogRGF5anNbXTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZERhdGU6IChkYXRlOiBEYXlqcywgbmF2UmFuZ2U6IERhdGVOYXZSYW5nZSkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB3ZWVrU3RhcnREYXkoZGF5OiBudW1iZXIpIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5tYXgoTWF0aC5taW4oTWF0aC5yb3VuZChkYXkpLCA2KSwgMCk7XG4gICAgdGhpcy53ZWVrRGVmcyA9IFtcbiAgICAgIC4uLnRoaXMud2Vla0RlZnMuc2xpY2Uobm9ybWFsaXplZCksXG4gICAgICAuLi50aGlzLndlZWtEZWZzLnNsaWNlKDAsIG5vcm1hbGl6ZWQpLFxuICAgIF07XG4gICAgdGhpcy5fd2Vla1N0YXJ0RGF5ID0gbm9ybWFsaXplZDtcbiAgfVxuXG4gIGdldCB3ZWVrU3RhcnREYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dlZWtTdGFydERheTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG1pbkRhdGU6IERheWpzO1xuXG4gIEBJbnB1dCgpXG4gIG1heERhdGU6IERheWpzO1xuXG4gIGdldCBkaXNhYmxlZERhdGVGbigpIHtcbiAgICByZXR1cm4gY29tcG9zZURpc2FibGVkRGF0ZUZuKFxuICAgICAgZGF0ZSA9PiB0aGlzLm1pbkRhdGUgJiYgZGF0ZS5pc0JlZm9yZSh0aGlzLm1pbkRhdGUsICdkYXRlJyksXG4gICAgICBkYXRlID0+IHRoaXMubWF4RGF0ZSAmJiBkYXRlLmlzQWZ0ZXIodGhpcy5tYXhEYXRlLCAnZGF0ZScpLFxuICAgICAgdGhpcy5kaXNhYmxlZERhdGUsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3dlZWtTdGFydERheSA9IDA7XG5cbiAgcGFuZWxEYXRhOiBEYXRlQ2VsbFtdW107XG5cbiAgQE91dHB1dCgpXG4gIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGhvdmVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERheWpzPigpO1xuXG4gIGJlbSA9IGJlbTtcbiAgRGF0ZU5hdlJhbmdlID0gRGF0ZU5hdlJhbmdlO1xuXG4gIHdlZWtEZWZzID0gW1xuICAgICdzdW5kYXknLFxuICAgICdtb25kYXknLFxuICAgICd0dWVzZGF5JyxcbiAgICAnd2VkbmVzZGF5JyxcbiAgICAndGh1cnNkYXknLFxuICAgICdmcmlkYXknLFxuICAgICdzYXR1cmRheScsXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIC8vIOWmguaenCBkYXRlVmFsdWUg5piv5LiA5Liq5pWw57uE77yM5b+F54S25piv5ZCM5LiA5Liq6Z2i5p2/5LiK77yM5ZCm5YiZ5bqU5b2T57uZ5LiO5LiN5ZCM55qE6Z2i5p2/5LiN5ZCM55qEZGF0ZVZhbHVl5YC8XG4gICAgY29uc3QgaGVhZGVyUmFuZ2UgPSBjYWxjUmFuZ2VWYWx1ZSh0aGlzLm5hdlJhbmdlLCB0aGlzLmFuY2hvcik7XG4gICAgdGhpcy5yZW5kZXJQYW5lbERhdGEoaGVhZGVyUmFuZ2Uuc3RhcnQsIHRoaXMubmF2UmFuZ2UpO1xuICB9XG5cbiAgLy8g5qC55o2u5b2T5YmN5pWw5o2u77yM6K6h566X5riy5p+T6KGo5qC8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2NvZ25pdGl2ZS1jb21wbGV4aXR5XG4gIHJlbmRlclBhbmVsRGF0YShkYXRlOiBEYXlqcywgbmF2UmFuZ2U6IERhdGVOYXZSYW5nZSkge1xuICAgIGNvbnN0IHZhbHVlID0gW107XG4gICAgbGV0IGNvbENvdW50cyA9IDA7XG4gICAgbGV0IHJvd0NvdW50cyA9IDA7XG4gICAgaWYgKCF0aGlzLnBhbmVsRGF0YSkge1xuICAgICAgdGhpcy5wYW5lbERhdGEgPSBbW11dO1xuICAgIH1cbiAgICBjb25zdCBbLi4udmFsdWVzXSA9IGdldERhdGVQYW5lbEl0ZXJhYmxlKGRhdGUsIG5hdlJhbmdlLCB0aGlzLndlZWtTdGFydERheSk7XG4gICAgc3dpdGNoIChuYXZSYW5nZSkge1xuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuTW9udGg6IHtcbiAgICAgICAgY29sQ291bnRzID0gREFZX1BBTkVMX0NPTFVNTl9DT1VOVDtcbiAgICAgICAgcm93Q291bnRzID0gREFZX1BBTkVMX1JPV19DT1VOVDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLkRlY2FkZToge1xuICAgICAgICBjb2xDb3VudHMgPSBZRUFSX1BBTkVMX0NPTFVNTl9DT1VOVDtcbiAgICAgICAgcm93Q291bnRzID0gWUVBUl9QQU5FTF9ST1dfQ09VTlQ7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5ZZWFyOiB7XG4gICAgICAgIGNvbENvdW50cyA9IE1PTlRIX1BBTkVMX0NPTFVNTl9DT1VOVDtcbiAgICAgICAgcm93Q291bnRzID0gTU9OVEhfUEFORUxfUk9XX0NPVU5UO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gTm8gZGVmYXVsdFxuICAgIH1cbiAgICBmb3IgKGxldCBrID0gMDsgayA8IHJvd0NvdW50czsgaysrKSB7XG4gICAgICBjb25zdCByb3cgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sQ291bnRzOyBpKyspIHtcbiAgICAgICAgY29uc3QgY2VsbCA9IGZvcm1hdERhdGUobmF2UmFuZ2UsIHZhbHVlc1trICogY29sQ291bnRzICsgaV0sIGRhdGUpO1xuICAgICAgICBjZWxsLmlzRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkRGF0ZUZuKGNlbGwudmFsdWUsIG5hdlJhbmdlKTtcbiAgICAgICAgY29uc3Qgc29ydGVkRGF0ZXMgPSBzb3J0RGF0ZXModGhpcy5tYXRjaERhdGVzKTtcbiAgICAgICAgaWYgKHNvcnRlZERhdGVzPy5sZW5ndGggPT09IDIgJiYgbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGNlbGwudmFsdWUuaXNCZXR3ZWVuKHNvcnRlZERhdGVzWzBdLCBzb3J0ZWREYXRlc1sxXSkgJiZcbiAgICAgICAgICAgICFjZWxsLmlzQmFja2dyb3VuZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY2VsbC5pblJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2VsbC5pc1JhbmdlU3RhcnQgPVxuICAgICAgICAgICAgY2VsbC52YWx1ZS5pc1NhbWUoc29ydGVkRGF0ZXNbMF0sIERBWSkgJiYgIWNlbGwuaXNCYWNrZ3JvdW5kO1xuICAgICAgICAgIGNlbGwuaXNSYW5nZUVuZCA9XG4gICAgICAgICAgICBjZWxsLnZhbHVlLmlzU2FtZShzb3J0ZWREYXRlc1sxXSwgREFZKSAmJiAhY2VsbC5pc0JhY2tncm91bmQ7XG4gICAgICAgICAgaWYgKGNlbGwuaXNSYW5nZVN0YXJ0ICYmIGNlbGwuaXNSYW5nZUVuZCkge1xuICAgICAgICAgICAgY2VsbC5pc1JhbmdlU3RhcnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNlbGwuaXNSYW5nZUVuZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb3cucHVzaChjZWxsKTtcbiAgICAgIH1cbiAgICAgIHZhbHVlLnB1c2gocm93KTtcbiAgICB9XG4gICAgdGhpcy5wYW5lbERhdGEgPSB2YWx1ZS5zbGljZSgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWF0Y2godmFsdWU6IERheWpzKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMubWF0Y2hEYXRlcz8uZmlsdGVyKHYgPT4gISF2KT8ubGVuZ3RoIHx8XG4gICAgICBnZXROYXZSYW5nZUJ5VHlwZSh0aGlzLnR5cGUpICE9PSB0aGlzLm5hdlJhbmdlXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1hdGNoRGF0ZXM/LnNvbWUoZGF0ZVZhbHVlID0+XG4gICAgICB0aGlzLm5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXG4gICAgICAgID8gdmFsdWUuaXNTYW1lKGRhdGVWYWx1ZSwgWUVBUilcbiAgICAgICAgOiB0aGlzLm5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhclxuICAgICAgICA/IHZhbHVlLmlzU2FtZShkYXRlVmFsdWUsIE1PTlRIKVxuICAgICAgICA6IHZhbHVlLmlzU2FtZShkYXRlVmFsdWUsIERBWSksXG4gICAgKTtcbiAgfVxuXG4gIG1hdGNoVG9kYXkodmFsdWU6IERheWpzKSB7XG4gICAgcmV0dXJuIHZhbHVlLmlzU2FtZShkYXlqcygpLCBnZXRUeXBlQnlOYXZSYW5nZSh0aGlzLm5hdlJhbmdlKSk7XG4gIH1cblxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogRGF5anMpIHtcbiAgICB0aGlzLnNlbGVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHRyYWNrQnlGbigpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZSYW5nZTtcbiAgfVxufVxuIiwiPGRpdlxuICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRhaW5lcicpXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdkYXktcGFuZWwtY29udGFpbmVyJzogbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCxcbiAgICAnbW9udGgtcGFuZWwtY29udGFpbmVyJzogbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5ZZWFyLFxuICAgICd5ZWFyLXBhbmVsLWNvbnRhaW5lcic6IG5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXG4gIH1cIlxuPlxuICA8ZGl2XG4gICAgW2NsYXNzXT1cIltiZW0uZWxlbWVudCgncm93JyksICd3ZWVrLWhlYWRlciddLmpvaW4oJyAnKVwiXG4gICAgKm5nSWY9XCJuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB3ZWVrRGVmc1wiXG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgPlxuICAgICAge3sgaXRlbSB8IGF1aUkxOG4gfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdyb3cnKVwiXG4gICAgKm5nRm9yPVwibGV0IHJvdyBvZiBwYW5lbERhdGE7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gID5cbiAgICA8c3BhblxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygcm93OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjZWxsJylcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICBpblJhbmdlOiBpdGVtLmluUmFuZ2UgJiYgIWl0ZW0uaXNEaXNhYmxlZCxcbiAgICAgICAgaXNBY3RpdmU6IG1hdGNoKGl0ZW0udmFsdWUpLFxuICAgICAgICBpc0JhY2tncm91bmQ6IGl0ZW0uaXNCYWNrZ3JvdW5kICYmICFpdGVtLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzUmFuZ2VTdGFydDogaXRlbS5pc1JhbmdlU3RhcnQsXG4gICAgICAgIGlzUmFuZ2VFbmQ6IGl0ZW0uaXNSYW5nZUVuZCxcbiAgICAgICAgaXNUb2RheTogbWF0Y2hUb2RheShpdGVtLnZhbHVlKSAmJiAhaXRlbS5pc0JhY2tncm91bmQsXG4gICAgICAgIGlzRGlzYWJsZWQ6IGl0ZW0uaXNEaXNhYmxlZFxuICAgICAgfVwiXG4gICAgICA+PGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgIFtwbGFpbl09XCJ0cnVlXCJcbiAgICAgICAgW3NpemVdPVwibmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCA/ICdtaW5pJyA6ICdzbWFsbCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5pc0Rpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0udmFsdWUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZC5uZXh0KGl0ZW0udmFsdWUpXCJcbiAgICAgID5cbiAgICAgICAge3sgaXRlbS5sYWJlbFxuICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLlllYXJcIj57e1xuICAgICAgICAgICdtb250aF9zdWZmaXgnIHwgYXVpSTE4blxuICAgICAgICB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL3BhbmVsL3BpY2tlci1wYW5lbC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9jYWxlbmRhci9wYW5lbC9waWNrZXItcGFuZWwudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUNMLEdBQUcsRUFDSCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBRW5CLEtBQUssRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFFTCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxTQUFTLENBQUM7O0FBRWpCLEtBQUssQ0FBQyxNQUFNLENB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eyBOZ0NsYXNzLCBOZ0lmLCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcbmltcG9ydCBpc0JldHdlZW4gZnJvbSAnZGF5anMvcGx1Z2luL2lzQmV0d2Vlbic7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEkxOG5QaXBlIH0gZnJvbSAnLi4vLi4vLi4vaTE4bi9pMThuLnBpcGUnO1xuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQgeyBEYXRlTmF2UmFuZ2UgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci50eXBlJztcbmltcG9ydCB7XG4gIERBWSxcbiAgREFZX1BBTkVMX0NPTFVNTl9DT1VOVCxcbiAgREFZX1BBTkVMX1JPV19DT1VOVCxcbiAgRGF0ZVBpY2tlclR5cGUsXG4gIE1PTlRILFxuICBNT05USF9QQU5FTF9DT0xVTU5fQ09VTlQsXG4gIE1PTlRIX1BBTkVMX1JPV19DT1VOVCxcbiAgWUVBUixcbiAgWUVBUl9QQU5FTF9DT0xVTU5fQ09VTlQsXG4gIFlFQVJfUEFORUxfUk9XX0NPVU5ULFxufSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQge1xuICBEYXRlQ2VsbCxcbiAgY2FsY1JhbmdlVmFsdWUsXG4gIGNvbXBvc2VEaXNhYmxlZERhdGVGbixcbiAgZm9ybWF0RGF0ZSxcbiAgZ2V0RGF0ZVBhbmVsSXRlcmFibGUsXG4gIGdldE5hdlJhbmdlQnlUeXBlLFxuICBnZXRUeXBlQnlOYXZSYW5nZSxcbiAgc29ydERhdGVzLFxufSBmcm9tICcuLi91dGlsJztcblxuZGF5anMuZXh0ZW5kKGlzQmV0d2Vlbik7XG5cbmNvbnN0IGJlbSA9IGJ1aWxkQmVtKCdhdWktcGlja2VyLXBhbmVsJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1waWNrZXItcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLXBhbmVsLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waWNrZXItcGFuZWwuc3R5bGUuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nSWYsIE5nRm9yLCBCdXR0b25Db21wb25lbnQsIEkxOG5QaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgUGlja2VyUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlO1xuXG4gIEBJbnB1dCgpXG4gIHR5cGU6IERhdGVQaWNrZXJUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIGFuY2hvciA9IGRheWpzKCk7XG5cbiAgQElucHV0KClcbiAgbWF0Y2hEYXRlczogRGF5anNbXTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZERhdGU6IChkYXRlOiBEYXlqcywgbmF2UmFuZ2U6IERhdGVOYXZSYW5nZSkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB3ZWVrU3RhcnREYXkoZGF5OiBudW1iZXIpIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5tYXgoTWF0aC5taW4oTWF0aC5yb3VuZChkYXkpLCA2KSwgMCk7XG4gICAgdGhpcy53ZWVrRGVmcyA9IFtcbiAgICAgIC4uLnRoaXMud2Vla0RlZnMuc2xpY2Uobm9ybWFsaXplZCksXG4gICAgICAuLi50aGlzLndlZWtEZWZzLnNsaWNlKDAsIG5vcm1hbGl6ZWQpLFxuICAgIF07XG4gICAgdGhpcy5fd2Vla1N0YXJ0RGF5ID0gbm9ybWFsaXplZDtcbiAgfVxuXG4gIGdldCB3ZWVrU3RhcnREYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dlZWtTdGFydERheTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG1pbkRhdGU6IERheWpzO1xuXG4gIEBJbnB1dCgpXG4gIG1heERhdGU6IERheWpzO1xuXG4gIGdldCBkaXNhYmxlZERhdGVGbigpIHtcbiAgICByZXR1cm4gY29tcG9zZURpc2FibGVkRGF0ZUZuKFxuICAgICAgZGF0ZSA9PiB0aGlzLm1pbkRhdGUgJiYgZGF0ZS5pc0JlZm9yZSh0aGlzLm1pbkRhdGUsICdkYXRlJyksXG4gICAgICBkYXRlID0+IHRoaXMubWF4RGF0ZSAmJiBkYXRlLmlzQWZ0ZXIodGhpcy5tYXhEYXRlLCAnZGF0ZScpLFxuICAgICAgdGhpcy5kaXNhYmxlZERhdGUsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3dlZWtTdGFydERheSA9IDA7XG5cbiAgcGFuZWxEYXRhOiBEYXRlQ2VsbFtdW107XG5cbiAgQE91dHB1dCgpXG4gIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF5anM+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGhvdmVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERheWpzPigpO1xuXG4gIGJlbSA9IGJlbTtcbiAgRGF0ZU5hdlJhbmdlID0gRGF0ZU5hdlJhbmdlO1xuXG4gIHdlZWtEZWZzID0gW1xuICAgICdzdW5kYXknLFxuICAgICdtb25kYXknLFxuICAgICd0dWVzZGF5JyxcbiAgICAnd2VkbmVzZGF5JyxcbiAgICAndGh1cnNkYXknLFxuICAgICdmcmlkYXknLFxuICAgICdzYXR1cmRheScsXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIC8vIOWmguaenCBkYXRlVmFsdWUg5piv5LiA5Liq5pWw57uE77yM5b+F54S25piv5ZCM5LiA5Liq6Z2i5p2/5LiK77yM5ZCm5YiZ5bqU5b2T57uZ5LiO5LiN5ZCM55qE6Z2i5p2/5LiN5ZCM55qEZGF0ZVZhbHVl5YC8XG4gICAgY29uc3QgaGVhZGVyUmFuZ2UgPSBjYWxjUmFuZ2VWYWx1ZSh0aGlzLm5hdlJhbmdlLCB0aGlzLmFuY2hvcik7XG4gICAgdGhpcy5yZW5kZXJQYW5lbERhdGEoaGVhZGVyUmFuZ2Uuc3RhcnQsIHRoaXMubmF2UmFuZ2UpO1xuICB9XG5cbiAgLy8g5qC55o2u5b2T5YmN5pWw5o2u77yM6K6h566X5riy5p+T6KGo5qC8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2NvZ25pdGl2ZS1jb21wbGV4aXR5XG4gIHJlbmRlclBhbmVsRGF0YShkYXRlOiBEYXlqcywgbmF2UmFuZ2U6IERhdGVOYXZSYW5nZSkge1xuICAgIGNvbnN0IHZhbHVlID0gW107XG4gICAgbGV0IGNvbENvdW50cyA9IDA7XG4gICAgbGV0IHJvd0NvdW50cyA9IDA7XG4gICAgaWYgKCF0aGlzLnBhbmVsRGF0YSkge1xuICAgICAgdGhpcy5wYW5lbERhdGEgPSBbW11dO1xuICAgIH1cbiAgICBjb25zdCBbLi4udmFsdWVzXSA9IGdldERhdGVQYW5lbEl0ZXJhYmxlKGRhdGUsIG5hdlJhbmdlLCB0aGlzLndlZWtTdGFydERheSk7XG4gICAgc3dpdGNoIChuYXZSYW5nZSkge1xuICAgICAgY2FzZSBEYXRlTmF2UmFuZ2UuTW9udGg6IHtcbiAgICAgICAgY29sQ291bnRzID0gREFZX1BBTkVMX0NPTFVNTl9DT1VOVDtcbiAgICAgICAgcm93Q291bnRzID0gREFZX1BBTkVMX1JPV19DT1VOVDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRGF0ZU5hdlJhbmdlLkRlY2FkZToge1xuICAgICAgICBjb2xDb3VudHMgPSBZRUFSX1BBTkVMX0NPTFVNTl9DT1VOVDtcbiAgICAgICAgcm93Q291bnRzID0gWUVBUl9QQU5FTF9ST1dfQ09VTlQ7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERhdGVOYXZSYW5nZS5ZZWFyOiB7XG4gICAgICAgIGNvbENvdW50cyA9IE1PTlRIX1BBTkVMX0NPTFVNTl9DT1VOVDtcbiAgICAgICAgcm93Q291bnRzID0gTU9OVEhfUEFORUxfUk9XX0NPVU5UO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gTm8gZGVmYXVsdFxuICAgIH1cbiAgICBmb3IgKGxldCBrID0gMDsgayA8IHJvd0NvdW50czsgaysrKSB7XG4gICAgICBjb25zdCByb3cgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sQ291bnRzOyBpKyspIHtcbiAgICAgICAgY29uc3QgY2VsbCA9IGZvcm1hdERhdGUobmF2UmFuZ2UsIHZhbHVlc1trICogY29sQ291bnRzICsgaV0sIGRhdGUpO1xuICAgICAgICBjZWxsLmlzRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkRGF0ZUZuKGNlbGwudmFsdWUsIG5hdlJhbmdlKTtcbiAgICAgICAgY29uc3Qgc29ydGVkRGF0ZXMgPSBzb3J0RGF0ZXModGhpcy5tYXRjaERhdGVzKTtcbiAgICAgICAgaWYgKHNvcnRlZERhdGVzPy5sZW5ndGggPT09IDIgJiYgbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGNlbGwudmFsdWUuaXNCZXR3ZWVuKHNvcnRlZERhdGVzWzBdLCBzb3J0ZWREYXRlc1sxXSkgJiZcbiAgICAgICAgICAgICFjZWxsLmlzQmFja2dyb3VuZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY2VsbC5pblJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2VsbC5pc1JhbmdlU3RhcnQgPVxuICAgICAgICAgICAgY2VsbC52YWx1ZS5pc1NhbWUoc29ydGVkRGF0ZXNbMF0sIERBWSkgJiYgIWNlbGwuaXNCYWNrZ3JvdW5kO1xuICAgICAgICAgIGNlbGwuaXNSYW5nZUVuZCA9XG4gICAgICAgICAgICBjZWxsLnZhbHVlLmlzU2FtZShzb3J0ZWREYXRlc1sxXSwgREFZKSAmJiAhY2VsbC5pc0JhY2tncm91bmQ7XG4gICAgICAgICAgaWYgKGNlbGwuaXNSYW5nZVN0YXJ0ICYmIGNlbGwuaXNSYW5nZUVuZCkge1xuICAgICAgICAgICAgY2VsbC5pc1JhbmdlU3RhcnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNlbGwuaXNSYW5nZUVuZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb3cucHVzaChjZWxsKTtcbiAgICAgIH1cbiAgICAgIHZhbHVlLnB1c2gocm93KTtcbiAgICB9XG4gICAgdGhpcy5wYW5lbERhdGEgPSB2YWx1ZS5zbGljZSgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWF0Y2godmFsdWU6IERheWpzKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMubWF0Y2hEYXRlcz8uZmlsdGVyKHYgPT4gISF2KT8ubGVuZ3RoIHx8XG4gICAgICBnZXROYXZSYW5nZUJ5VHlwZSh0aGlzLnR5cGUpICE9PSB0aGlzLm5hdlJhbmdlXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1hdGNoRGF0ZXM/LnNvbWUoZGF0ZVZhbHVlID0+XG4gICAgICB0aGlzLm5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXG4gICAgICAgID8gdmFsdWUuaXNTYW1lKGRhdGVWYWx1ZSwgWUVBUilcbiAgICAgICAgOiB0aGlzLm5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhclxuICAgICAgICA/IHZhbHVlLmlzU2FtZShkYXRlVmFsdWUsIE1PTlRIKVxuICAgICAgICA6IHZhbHVlLmlzU2FtZShkYXRlVmFsdWUsIERBWSksXG4gICAgKTtcbiAgfVxuXG4gIG1hdGNoVG9kYXkodmFsdWU6IERheWpzKSB7XG4gICAgcmV0dXJuIHZhbHVlLmlzU2FtZShkYXlqcygpLCBnZXRUeXBlQnlOYXZSYW5nZSh0aGlzLm5hdlJhbmdlKSk7XG4gIH1cblxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogRGF5anMpIHtcbiAgICB0aGlzLnNlbGVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHRyYWNrQnlGbigpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZSYW5nZTtcbiAgfVxufVxuIiwiPGRpdlxuICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRhaW5lcicpXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdkYXktcGFuZWwtY29udGFpbmVyJzogbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCxcbiAgICAnbW9udGgtcGFuZWwtY29udGFpbmVyJzogbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5ZZWFyLFxuICAgICd5ZWFyLXBhbmVsLWNvbnRhaW5lcic6IG5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXG4gIH1cIlxuPlxuICA8ZGl2XG4gICAgW2NsYXNzXT1cIltiZW0uZWxlbWVudCgncm93JyksICd3ZWVrLWhlYWRlciddLmpvaW4oJyAnKVwiXG4gICAgKm5nSWY9XCJuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoXCJcbiAgPlxuICAgIDxzcGFuXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB3ZWVrRGVmc1wiXG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgPlxuICAgICAge3sgaXRlbSB8IGF1aUkxOG4gfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdyb3cnKVwiXG4gICAgKm5nRm9yPVwibGV0IHJvdyBvZiBwYW5lbERhdGE7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gID5cbiAgICA8c3BhblxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygcm93OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjZWxsJylcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICBpblJhbmdlOiBpdGVtLmluUmFuZ2UgJiYgIWl0ZW0uaXNEaXNhYmxlZCxcbiAgICAgICAgaXNBY3RpdmU6IG1hdGNoKGl0ZW0udmFsdWUpLFxuICAgICAgICBpc0JhY2tncm91bmQ6IGl0ZW0uaXNCYWNrZ3JvdW5kICYmICFpdGVtLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzUmFuZ2VTdGFydDogaXRlbS5pc1JhbmdlU3RhcnQsXG4gICAgICAgIGlzUmFuZ2VFbmQ6IGl0ZW0uaXNSYW5nZUVuZCxcbiAgICAgICAgaXNUb2RheTogbWF0Y2hUb2RheShpdGVtLnZhbHVlKSAmJiAhaXRlbS5pc0JhY2tncm91bmQsXG4gICAgICAgIGlzRGlzYWJsZWQ6IGl0ZW0uaXNEaXNhYmxlZFxuICAgICAgfVwiXG4gICAgICA+PGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgIFtwbGFpbl09XCJ0cnVlXCJcbiAgICAgICAgW3NpemVdPVwibmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCA/ICdtaW5pJyA6ICdzbWFsbCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5pc0Rpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0udmFsdWUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZC5uZXh0KGl0ZW0udmFsdWUpXCJcbiAgICAgID5cbiAgICAgICAge3sgaXRlbS5sYWJlbFxuICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLlllYXJcIj57e1xuICAgICAgICAgICdtb250aF9zdWZmaXgnIHwgYXVpSTE4blxuICAgICAgICB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -16,38 +16,37 @@ import * as i0 from "@angular/core";
|
|
|
16
16
|
import * as i1 from "@angular/forms";
|
|
17
17
|
const bem = buildBem('aui-date-range-picker-panel');
|
|
18
18
|
export class DateRangePickerPanelComponent extends CommonFormControl {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.clearable = true;
|
|
22
|
+
this.showTime = true;
|
|
23
|
+
this.showFooter = true;
|
|
24
|
+
this.disabledDate = () => false;
|
|
25
|
+
this.disabledTime = {
|
|
26
|
+
left: () => null,
|
|
27
|
+
right: () => null,
|
|
28
|
+
};
|
|
29
|
+
this.weekStartDay = 0;
|
|
30
|
+
this.clear = new EventEmitter();
|
|
31
|
+
this.confirm = new EventEmitter();
|
|
32
|
+
this.bem = bem;
|
|
33
|
+
this.Side = Side;
|
|
34
|
+
this.DatePickerType = DatePickerType;
|
|
35
|
+
this.leftDateRange = DateNavRange.Month;
|
|
36
|
+
this.rightDateRange = DateNavRange.Month;
|
|
37
|
+
this.FOOTER_DATE_FORMAT = 'YYYY-MM-dd';
|
|
38
|
+
this.leftAnchor = dayjs();
|
|
39
|
+
this.rightAnchor = dayjs().add(1, MONTH);
|
|
40
|
+
this.rangeValue = [];
|
|
41
|
+
this.leftDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Left);
|
|
42
|
+
this.rightDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Right);
|
|
43
|
+
}
|
|
41
44
|
get maxHeaderAvail() {
|
|
42
45
|
return minDate(this.rightAnchor, this.maxDate);
|
|
43
46
|
}
|
|
44
47
|
get minHeaderAvail() {
|
|
45
48
|
return maxDate(this.minDate, this.leftAnchor);
|
|
46
49
|
}
|
|
47
|
-
rangeValue = [];
|
|
48
|
-
matchValues;
|
|
49
|
-
startTime;
|
|
50
|
-
endTime;
|
|
51
50
|
writeValue(obj) {
|
|
52
51
|
super.writeValue(obj);
|
|
53
52
|
this.rangeValue = obj || [];
|
|
@@ -89,8 +88,6 @@ export class DateRangePickerPanelComponent extends CommonFormControl {
|
|
|
89
88
|
return cacheDisabledTimeFn?.[key];
|
|
90
89
|
};
|
|
91
90
|
}
|
|
92
|
-
leftDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Left);
|
|
93
|
-
rightDisabledTimeFn = this.getDisabledTimeCachedFn(Side.Right);
|
|
94
91
|
selectPickerPanel(value, side) {
|
|
95
92
|
const navRange = side === Side.Left ? this.leftDateRange : this.rightDateRange;
|
|
96
93
|
const type = getTypeByNavRange(navRange);
|
|
@@ -167,14 +164,14 @@ export class DateRangePickerPanelComponent extends CommonFormControl {
|
|
|
167
164
|
this.rangeValue = [startDate, endDate].filter(i => !!i);
|
|
168
165
|
}
|
|
169
166
|
}
|
|
170
|
-
static
|
|
171
|
-
static
|
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: DateRangePickerPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: DateRangePickerPanelComponent, isStandalone: true, selector: "aui-date-range-picker-panel", inputs: { clearable: "clearable", clearText: "clearText", showTime: "showTime", showFooter: "showFooter", disabledDate: "disabledDate", disabledTime: "disabledTime", weekStartDay: "weekStartDay", minDate: "minDate", maxDate: "maxDate" }, outputs: { clear: "clear", confirm: "confirm" }, providers: [
|
|
172
169
|
{
|
|
173
170
|
provide: NG_VALUE_ACCESSOR,
|
|
174
171
|
useExisting: forwardRef(() => DateRangePickerPanelComponent),
|
|
175
172
|
multi: true,
|
|
176
173
|
},
|
|
177
|
-
], usesInheritance: true, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div [class]=\"bem.element('header')\">\n <aui-calendar-header\n [dateNavRange]=\"leftDateRange\"\n [anchor]=\"leftAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Left)\"\n (anchorChange)=\"leftAnchor = $event\"\n [maxAvail]=\"maxHeaderAvail\"\n [minAvail]=\"minDate\"\n ></aui-calendar-header>\n <aui-calendar-header\n [dateNavRange]=\"rightDateRange\"\n [anchor]=\"rightAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Right)\"\n (anchorChange)=\"rightAnchor = $event\"\n [minAvail]=\"minHeaderAvail\"\n [maxAvail]=\"maxDate\"\n ></aui-calendar-header>\n </div>\n <div [class]=\"bem.element('body')\">\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"leftDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"leftAnchor\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Left, rightAnchor)\"\n [weekStartDay]=\"weekStartDay\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Left)\"\n ></aui-picker-panel>\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"rightDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"rightAnchor\"\n [weekStartDay]=\"weekStartDay\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Right, leftAnchor)\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Right)\"\n ></aui-picker-panel>\n </div>\n\n <aui-calendar-footer\n [class]=\"bem.element('footer')\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue(rangeValue)\"\n *ngIf=\"showFooter && showTime\"\n >\n <div\n [class]=\"bem.element('footer-content')\"\n *ngIf=\"showTime\"\n >\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'start_date' | auiI18n,\n value: rangeValue[0]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n [(ngModel)]=\"startTime\"\n size=\"small\"\n (ngModelChange)=\"timeChange($event)\"\n [disableHours]=\"leftDisabledTimeFn(rangeValue[0], 'hours')\"\n [disableMinutes]=\"leftDisabledTimeFn(rangeValue[0], 'minutes')\"\n [disableSeconds]=\"leftDisabledTimeFn(rangeValue[0], 'seconds')\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n\n <span class=\"placeholder separator\">{{ 'to' | auiI18n }}</span>\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'end_date' | auiI18n,\n value: rangeValue[1]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"endTime\"\n [disableHours]=\"rightDisabledTimeFn(rangeValue[1], 'hours')\"\n [disableMinutes]=\"rightDisabledTimeFn(rangeValue[1], 'minutes')\"\n [disableSeconds]=\"rightDisabledTimeFn(rangeValue[1], 'seconds')\"\n (ngModelChange)=\"timeChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n </div>\n </aui-calendar-footer>\n</div>\n\n<ng-template\n #datePlaceholder\n let-placeholder=\"placeholder\"\n let-value=\"value\"\n>\n <span\n *ngIf=\"!value\"\n class=\"placeholder date-holder\"\n >{{ placeholder }}</span\n >\n <span\n *ngIf=\"value\"\n class=\"date-value date-holder\"\n >{{ value | date : FOOTER_DATE_FORMAT }}</span\n >\n</ng-template>\n", styles: [".aui-date-range-picker-panel__container{display:flex;flex-direction:column;width:524px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-range-picker-panel__container .placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-date-range-picker-panel__container .placeholder.separator{margin-inline:12px}.aui-date-range-picker-panel__container .date-value{color:rgb(var(--aui-color-main-text))}.aui-date-range-picker-panel__container .date-holder{display:inline-block;margin-right:8px;width:82px}.aui-date-range-picker-panel__container .panel__wrapper{width:246px;display:flex;justify-content:center}.aui-date-range-picker-panel__header{display:flex;justify-content:space-between}.aui-date-range-picker-panel__header aui-calendar-header{flex:0 0 246px}.aui-date-range-picker-panel__body{display:flex;justify-content:space-between;margin:16px 0}.aui-date-range-picker-panel__footer .aui-time-picker{width:88px}.aui-date-range-picker-panel__footer-content{display:flex;align-items:center;height:100%}\n"], dependencies: [{ kind: "component", type: CalendarHeaderComponent, selector: "aui-calendar-header", inputs: ["dateNavRange", "anchor", "maxAvail", "minAvail"], outputs: ["navRangeChange", "anchorChange"] }, { kind: "component", type: PickerPanelComponent, selector: "aui-picker-panel", inputs: ["navRange", "type", "anchor", "matchDates", "disabledDate", "weekStartDay", "minDate", "maxDate"], outputs: ["select", "hovered"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: ["clearable", "clearText", "customAction"], outputs: ["confirm", "clear"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TimePickerComponent, selector: "aui-time-picker", inputs: ["format", "size", "placeholder", "clearable", "showIcon", "disableHours", "disableMinutes", "disableSeconds", "hourStep", "minuteStep", "secondStep", "footerTemplate"], outputs: ["open", "close"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
174
|
+
], usesInheritance: true, ngImport: i0, template: "<div [class]=\"bem.element('container')\">\n <div [class]=\"bem.element('header')\">\n <aui-calendar-header\n [dateNavRange]=\"leftDateRange\"\n [anchor]=\"leftAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Left)\"\n (anchorChange)=\"leftAnchor = $event\"\n [maxAvail]=\"maxHeaderAvail\"\n [minAvail]=\"minDate\"\n ></aui-calendar-header>\n <aui-calendar-header\n [dateNavRange]=\"rightDateRange\"\n [anchor]=\"rightAnchor\"\n (navRangeChange)=\"calendarRangeChange($event, Side.Right)\"\n (anchorChange)=\"rightAnchor = $event\"\n [minAvail]=\"minHeaderAvail\"\n [maxAvail]=\"maxDate\"\n ></aui-calendar-header>\n </div>\n <div [class]=\"bem.element('body')\">\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"leftDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"leftAnchor\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Left, rightAnchor)\"\n [weekStartDay]=\"weekStartDay\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Left)\"\n ></aui-picker-panel>\n <aui-picker-panel\n class=\"panel__wrapper\"\n [navRange]=\"rightDateRange\"\n [type]=\"DatePickerType.Day\"\n [anchor]=\"rightAnchor\"\n [weekStartDay]=\"weekStartDay\"\n [matchDates]=\"matchValues\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [disabledDate]=\"getDateDisabledFn(Side.Right, leftAnchor)\"\n (hovered)=\"hoverItem($event)\"\n (select)=\"selectPickerPanel($event, Side.Right)\"\n ></aui-picker-panel>\n </div>\n\n <aui-calendar-footer\n [class]=\"bem.element('footer')\"\n [clearable]=\"clearable\"\n [clearText]=\"clearText\"\n (clear)=\"clear.next()\"\n (confirm)=\"confirmValue(rangeValue)\"\n *ngIf=\"showFooter && showTime\"\n >\n <div\n [class]=\"bem.element('footer-content')\"\n *ngIf=\"showTime\"\n >\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'start_date' | auiI18n,\n value: rangeValue[0]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n [(ngModel)]=\"startTime\"\n size=\"small\"\n (ngModelChange)=\"timeChange($event)\"\n [disableHours]=\"leftDisabledTimeFn(rangeValue[0], 'hours')\"\n [disableMinutes]=\"leftDisabledTimeFn(rangeValue[0], 'minutes')\"\n [disableSeconds]=\"leftDisabledTimeFn(rangeValue[0], 'seconds')\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n\n <span class=\"placeholder separator\">{{ 'to' | auiI18n }}</span>\n <ng-container\n [ngTemplateOutlet]=\"datePlaceholder\"\n [ngTemplateOutletContext]=\"{\n placeholder: 'end_date' | auiI18n,\n value: rangeValue[1]\n }\"\n ></ng-container>\n <aui-time-picker\n [showIcon]=\"false\"\n size=\"small\"\n [(ngModel)]=\"endTime\"\n [disableHours]=\"rightDisabledTimeFn(rangeValue[1], 'hours')\"\n [disableMinutes]=\"rightDisabledTimeFn(rangeValue[1], 'minutes')\"\n [disableSeconds]=\"rightDisabledTimeFn(rangeValue[1], 'seconds')\"\n (ngModelChange)=\"timeChange($event)\"\n [placeholder]=\"'select_time' | auiI18n\"\n tooltipPosition=\"top start\"\n ></aui-time-picker>\n </div>\n </aui-calendar-footer>\n</div>\n\n<ng-template\n #datePlaceholder\n let-placeholder=\"placeholder\"\n let-value=\"value\"\n>\n <span\n *ngIf=\"!value\"\n class=\"placeholder date-holder\"\n >{{ placeholder }}</span\n >\n <span\n *ngIf=\"value\"\n class=\"date-value date-holder\"\n >{{ value | date : FOOTER_DATE_FORMAT }}</span\n >\n</ng-template>\n", styles: [".aui-date-range-picker-panel__container{display:flex;flex-direction:column;width:524px;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}.aui-date-range-picker-panel__container .placeholder{color:rgb(var(--aui-color-placeholder-text))}.aui-date-range-picker-panel__container .placeholder.separator{margin-inline:12px}.aui-date-range-picker-panel__container .date-value{color:rgb(var(--aui-color-main-text))}.aui-date-range-picker-panel__container .date-holder{display:inline-block;margin-right:8px;width:82px}.aui-date-range-picker-panel__container .panel__wrapper{width:246px;display:flex;justify-content:center}.aui-date-range-picker-panel__header{display:flex;justify-content:space-between}.aui-date-range-picker-panel__header aui-calendar-header{flex:0 0 246px}.aui-date-range-picker-panel__body{display:flex;justify-content:space-between;margin:16px 0}.aui-date-range-picker-panel__footer .aui-time-picker{width:88px}.aui-date-range-picker-panel__footer-content{display:flex;align-items:center;height:100%}\n"], dependencies: [{ kind: "component", type: CalendarHeaderComponent, selector: "aui-calendar-header", inputs: ["dateNavRange", "anchor", "maxAvail", "minAvail"], outputs: ["navRangeChange", "anchorChange"] }, { kind: "component", type: PickerPanelComponent, selector: "aui-picker-panel", inputs: ["navRange", "type", "anchor", "matchDates", "disabledDate", "weekStartDay", "minDate", "maxDate"], outputs: ["select", "hovered"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CalendarFooterComponent, selector: "aui-calendar-footer", inputs: ["clearable", "clearText", "customAction"], outputs: ["confirm", "clear"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TimePickerComponent, selector: "aui-time-picker", inputs: ["format", "size", "placeholder", "clearable", "showIcon", "disableHours", "disableMinutes", "disableSeconds", "hourStep", "minuteStep", "secondStep", "footerTemplate"], outputs: ["open", "close"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
178
175
|
}
|
|
179
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: DateRangePickerPanelComponent, decorators: [{
|
|
180
177
|
type: Component,
|
|
@@ -218,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
|
|
|
218
215
|
}], confirm: [{
|
|
219
216
|
type: Output
|
|
220
217
|
}] } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL3JhbmdlLXBpY2tlci1wYW5lbC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvY2FsZW5kYXIvcmFuZ2UtcGlja2VyLXBhbmVsL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFckUsT0FBTyxFQUFFLFlBQVksRUFBa0IsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFB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RixpRENqREgsNDRIQXNIQSw2bUNEbEVJLHVCQUF1Qix5S0FDdkIsb0JBQW9CLHlNQUNwQixJQUFJLDZGQUNKLHVCQUF1QixtSkFDdkIsZ0JBQWdCLG9KQUNoQixtQkFBbUIseVFBQ25CLFdBQVcsMFZBQ1gsUUFBUSx3Q0FDUixRQUFROzsyRkFHQyw2QkFBNkI7a0JBMUJ6QyxTQUFTOytCQUNFLDZCQUE2QixpQkFHeEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQzs0QkFDNUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLElBQUk7d0JBQ0osdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxRQUFRO3dCQUNSLFFBQVE7cUJBQ1Q7OEJBSUQsU0FBUztzQkFEUixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFRTixZQUFZO3NCQURYLEtBQUs7Z0JBT04sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sS0FBSztzQkFESixNQUFNO2dCQUlQLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyBDb21tb25Gb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uLy4uL2Zvcm0vY29tbW9uLWZvcm0nO1xuaW1wb3J0IHsgSTE4blBpcGUgfSBmcm9tICcuLi8uLi8uLi9pMThuL2kxOG4ucGlwZSc7XG5pbXBvcnQgeyBidWlsZEJlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFsL3V0aWxzJztcbmltcG9ydCB7IFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi90aW1lLXBpY2tlci9jb21wb25lbnQnO1xuaW1wb3J0IHsgVGltZVBpY2tlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vdGltZS1waWNrZXIvdGltZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlTmF2UmFuZ2UsIERpc2FibGVkVGltZUZuLCBTaWRlIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyVHlwZSwgTU9OVEgsIFlFQVIgfSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQgeyBDYWxlbmRhckZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvb3Rlci9jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXIvY29tcG9uZW50JztcbmltcG9ydCB7IFBpY2tlclBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFuZWwvcGlja2VyLXBhbmVsJztcbmltcG9ydCB7XG4gIGNvbXBvc2VEaXNhYmxlZERhdGVGbixcbiAgZ2V0VGltZVBpY2tlck1vZGVsLFxuICBnZXRUeXBlQnlOYXZSYW5nZSxcbiAgbWF4RGF0ZSxcbiAgbWluRGF0ZSxcbiAgbmV4dE5hdlJhbmdlVHlwZSxcbiAgc29ydERhdGVzLFxuICB1cGRhdGVEYXRlLFxuICB1cGRhdGVEYXRlQnlUaW1lTW9kZWwsXG59IGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBiZW0gPSBidWlsZEJlbSgnYXVpLWRhdGUtcmFuZ2UtcGlja2VyLXBhbmVsJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1kYXRlLXJhbmdlLXBpY2tlci1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlUmFuZ2VQaWNrZXJQYW5lbENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQsXG4gICAgUGlja2VyUGFuZWxDb21wb25lbnQsXG4gICAgTmdJZixcbiAgICBDYWxlbmRhckZvb3RlckNvbXBvbmVudCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRGF0ZVBpcGUsXG4gICAgSTE4blBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZVBpY2tlclBhbmVsQ29tcG9uZW50IGV4dGVuZHMgQ29tbW9uRm9ybUNvbnRyb2w8RGF5anNbXT4ge1xuICBASW5wdXQoKVxuICBjbGVhcmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGNsZWFyVGV4dDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dUaW1lID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBzaG93Rm9vdGVyID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZERhdGU6IChcbiAgICBkYXRlOiBEYXlqcyxcbiAgICBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlLFxuICAgIHN0YXJ0RGF0ZTogRGF5anMsXG4gICkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkVGltZTogeyBsZWZ0OiBEaXNhYmxlZFRpbWVGbjsgcmlnaHQ6IERpc2FibGVkVGltZUZuIH0gPSB7XG4gICAgbGVmdDogKCkgPT4gbnVsbCxcbiAgICByaWdodDogKCkgPT4gbnVsbCxcbiAgfTtcblxuICBASW5wdXQoKVxuICB3ZWVrU3RhcnREYXkgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIG1pbkRhdGU6IERheWpzO1xuXG4gIEBJbnB1dCgpXG4gIG1heERhdGU6IERheWpzO1xuXG4gIEBPdXRwdXQoKVxuICBjbGVhciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBiZW0gPSBiZW07XG4gIFNpZGUgPSBTaWRlO1xuICBEYXRlUGlja2VyVHlwZSA9IERhdGVQaWNrZXJUeXBlO1xuICBsZWZ0RGF0ZVJhbmdlID0gRGF0ZU5hdlJhbmdlLk1vbnRoO1xuICByaWdodERhdGVSYW5nZSA9IERhdGVOYXZSYW5nZS5Nb250aDtcblxuICBGT09URVJfREFURV9GT1JNQVQgPSAnWVlZWS1NTS1kZCc7XG5cbiAgbGVmdEFuY2hvciA9IGRheWpzKCk7XG4gIHJpZ2h0QW5jaG9yID0gZGF5anMoKS5hZGQoMSwgTU9OVEgpO1xuXG4gIGdldCBtYXhIZWFkZXJBdmFpbCgpIHtcbiAgICByZXR1cm4gbWluRGF0ZSh0aGlzLnJpZ2h0QW5jaG9yLCB0aGlzLm1heERhdGUpO1xuICB9XG5cbiAgZ2V0IG1pbkhlYWRlckF2YWlsKCkge1xuICAgIHJldHVybiBtYXhEYXRlKHRoaXMubWluRGF0ZSwgdGhpcy5sZWZ0QW5jaG9yKTtcbiAgfVxuXG4gIC8vIOeUqOS6juWtmOaUviByYW5nZSBkYXRhIOW6j+WIl++8jOaVsOmHj+S4uiAyIOaXtua4hemZpFxuICByYW5nZVZhbHVlOiBEYXlqc1tdID0gW107XG5cbiAgLy8g55So5LqO57uE6KOF5Yy56YWN5pel5pyf5bqP5YiXXG4gIG1hdGNoVmFsdWVzOiBEYXlqc1tdO1xuXG4gIHN0YXJ0VGltZTogVGltZVBpY2tlck1vZGVsO1xuICBlbmRUaW1lOiBUaW1lUGlja2VyTW9kZWw7XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IERheWpzW10pIHtcbiAgICBzdXBlci53cml0ZVZhbHVlKG9iaik7XG4gICAgdGhpcy5yYW5nZVZhbHVlID0gb2JqIHx8IFtdO1xuICAgIHRoaXMubWF0Y2hWYWx1ZXMgPSBbLi4udGhpcy5yYW5nZVZhbHVlXTtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IGdldFRpbWVQaWNrZXJNb2RlbChvYmo/LlswXSk7XG4gICAgdGhpcy5lbmRUaW1lID0gZ2V0VGltZVBpY2tlck1vZGVsKG9iaj8uWzFdKTtcbiAgICBpZiAob2JqPy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHRoaXMucmVvcmRlcihzb3J0RGF0ZXMob2JqKSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgY2FsZW5kYXJSYW5nZUNoYW5nZSh0eXBlOiBEYXRlTmF2UmFuZ2UsIHNpZGU6IFNpZGUpIHtcbiAgICBpZiAoc2lkZSA9PT0gU2lkZS5MZWZ0KSB7XG4gICAgICB0aGlzLmxlZnREYXRlUmFuZ2UgPSB0eXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJpZ2h0RGF0ZVJhbmdlID0gdHlwZTtcbiAgICB9XG4gIH1cblxuICAvLyByYW5nZSDnu4Tku7bojIPlm7Tlj5fmjqdcbiAgZ2V0RGF0ZURpc2FibGVkRm4oc2lkZTogU2lkZSwgY29uc3RyYWluVmFsdWU6IERheWpzKSB7XG4gICAgcmV0dXJuIGNvbXBvc2VEaXNhYmxlZERhdGVGbihcbiAgICAgIChkYXRlOiBEYXlqcywgbmF2UmFuZ2U6IERhdGVOYXZSYW5nZSkgPT4ge1xuICAgICAgICBpZiAobmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5EZWNhZGUpIHtcbiAgICAgICAgICByZXR1cm4gZGF0ZVtzaWRlID09PSBTaWRlLkxlZnQgPyAnaXNBZnRlcicgOiAnaXNCZWZvcmUnXShcbiAgICAgICAgICAgIGNvbnN0cmFpblZhbHVlLFxuICAgICAgICAgICAgWUVBUixcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhZGF0ZVtzaWRlID09PSBTaWRlLkxlZnQgPyAnaXNCZWZvcmUnIDogJ2lzQWZ0ZXInXShcbiAgICAgICAgICBjb25zdHJhaW5WYWx1ZSxcbiAgICAgICAgICBNT05USCxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICAoLi4uYXJnKSA9PiB0aGlzLmRpc2FibGVkRGF0ZSguLi5hcmcsIHRoaXMucmFuZ2VWYWx1ZVswXSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlzYWJsZWRUaW1lQ2FjaGVkRm4oc2lkZTogU2lkZSkge1xuICAgIGxldCBjYWNoZVNlbGVjdGVkRGF0ZTogRGF5anM7XG4gICAgbGV0IGNhY2hlRGlzYWJsZWRUaW1lRm46IFJldHVyblR5cGU8RGlzYWJsZWRUaW1lRm4+O1xuICAgIHJldHVybiAodmFsdWU6IERheWpzLCBrZXk6IGtleW9mIFJldHVyblR5cGU8RGlzYWJsZWRUaW1lRm4+KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IGNhY2hlU2VsZWN0ZWREYXRlKSB7XG4gICAgICAgIGNhY2hlRGlzYWJsZWRUaW1lRm4gPSAodGhpcy5kaXNhYmxlZFRpbWU/LltzaWRlXSB8fCAoKCkgPT4gbnVsbCkpKFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICApO1xuICAgICAgICBjYWNoZVNlbGVjdGVkRGF0ZSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNhY2hlRGlzYWJsZWRUaW1lRm4/LltrZXldO1xuICAgIH07XG4gIH1cblxuICBsZWZ0RGlzYWJsZWRUaW1lRm4gPSB0aGlzLmdldERpc2FibGVkVGltZUNhY2hlZEZuKFNpZGUuTGVmdCk7XG4gIHJpZ2h0RGlzYWJsZWRUaW1lRm4gPSB0aGlzLmdldERpc2FibGVkVGltZUNhY2hlZEZuKFNpZGUuUmlnaHQpO1xuXG4gIHNlbGVjdFBpY2tlclBhbmVsKHZhbHVlOiBEYXlqcywgc2lkZTogU2lkZSkge1xuICAgIGNvbnN0IG5hdlJhbmdlID1cbiAgICAgIHNpZGUgPT09IFNpZGUuTGVmdCA/IHRoaXMubGVmdERhdGVSYW5nZSA6IHRoaXMucmlnaHREYXRlUmFuZ2U7XG4gICAgY29uc3QgdHlwZSA9IGdldFR5cGVCeU5hdlJhbmdlKG5hdlJhbmdlKTtcbiAgICBjb25zdCBkYXRlVmFsdWUgPSB1cGRhdGVEYXRlKFxuICAgICAgc2lkZSA9PT0gU2lkZS5MZWZ0ID8gdGhpcy5sZWZ0QW5jaG9yIDogdGhpcy5yaWdodEFuY2hvcixcbiAgICAgIHZhbHVlLFxuICAgICAgdHlwZSxcbiAgICApO1xuICAgIGNvbnN0IG5leHRSYW5nZSA9IG5leHROYXZSYW5nZVR5cGUobmF2UmFuZ2UsIERhdGVOYXZSYW5nZS5Nb250aCk7XG5cbiAgICBpZiAoc2lkZSA9PT0gU2lkZS5MZWZ0KSB7XG4gICAgICB0aGlzLmxlZnRBbmNob3IgPSBkYXRlVmFsdWU7XG4gICAgICB0aGlzLmxlZnREYXRlUmFuZ2UgPSBuZXh0UmFuZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmlnaHRBbmNob3IgPSBkYXRlVmFsdWU7XG4gICAgICB0aGlzLnJpZ2h0RGF0ZVJhbmdlID0gbmV4dFJhbmdlO1xuICAgIH1cblxuICAgIGlmIChuYXZSYW5nZSAhPT0gRGF0ZU5hdlJhbmdlLk1vbnRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGVmdEFuY2hvci5pc1NhbWUodGhpcy5yaWdodEFuY2hvciwgTU9OVEgpKSB7XG4gICAgICB0aGlzLnJpZ2h0QW5jaG9yID0gdGhpcy5yaWdodEFuY2hvci5hZGQoMSwgTU9OVEgpO1xuICAgIH1cblxuICAgIHRoaXMucmFuZ2VWYWx1ZSA9XG4gICAgICB0aGlzLnJhbmdlVmFsdWUubGVuZ3RoID09PSAyXG4gICAgICAgID8gW2RhdGVWYWx1ZV1cbiAgICAgICAgOiBzb3J0RGF0ZXMoWy4uLnRoaXMucmFuZ2VWYWx1ZSwgZGF0ZVZhbHVlXSk7XG4gICAgdGhpcy5tYXRjaFZhbHVlcyA9IFsuLi50aGlzLnJhbmdlVmFsdWVdO1xuICAgIHRoaXMuc3luY1RpbWUoKTtcbiAgICBpZiAodGhpcy5yYW5nZVZhbHVlLmxlbmd0aCA9PT0gMikge1xuICAgICAgdGhpcy5yZW9yZGVyKHRoaXMucmFuZ2VWYWx1ZSk7XG4gICAgICB0aGlzLmNvbmZpcm1WYWx1ZSh0aGlzLnJhbmdlVmFsdWUsICF0aGlzLnNob3dUaW1lKTtcbiAgICB9XG4gIH1cblxuICByZW9yZGVyKHNvcnRlZERhdGU6IERheWpzW10pIHtcbiAgICBpZiAoIXNvcnRlZERhdGVbMF0uaXNTYW1lKHNvcnRlZERhdGVbMV0sIE1PTlRIKSkge1xuICAgICAgdGhpcy5sZWZ0QW5jaG9yID0gdXBkYXRlRGF0ZShcbiAgICAgICAgdGhpcy5sZWZ0QW5jaG9yLFxuICAgICAgICBzb3J0ZWREYXRlWzBdLFxuICAgICAgICBEYXRlUGlja2VyVHlwZS5EYXksXG4gICAgICApO1xuICAgICAgdGhpcy5yaWdodEFuY2hvciA9IHVwZGF0ZURhdGUoXG4gICAgICAgIHRoaXMubGVmdEFuY2hvcixcbiAgICAgICAgc29ydGVkRGF0ZVsxXSxcbiAgICAgICAgRGF0ZVBpY2tlclR5cGUuRGF5LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBob3Zlckl0ZW0oZGF0ZTogRGF5anMpIHtcbiAgICBpZiAodGhpcy5yYW5nZVZhbHVlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5tYXRjaFZhbHVlc1sxXSA9IGRhdGU7XG4gICAgfVxuICB9XG5cbiAgY29uZmlybVZhbHVlKHZhbHVlOiBEYXlqc1tdLCBjbG9zZVRoZW4gPSB0cnVlKSB7XG4gICAgY29uc3Qgc29ydFZhbHVlID0gdmFsdWUuc29ydCgoc3RhcnREYXRlLCBlbmREYXRlKSA9PlxuICAgICAgc3RhcnREYXRlLmlzQWZ0ZXIoZW5kRGF0ZSkgPyAxIDogLTEsXG4gICAgKTtcbiAgICB0aGlzLmVtaXRWYWx1ZShzb3J0VmFsdWUpO1xuICAgIGNsb3NlVGhlbiAmJiB0aGlzLmNvbmZpcm0ubmV4dCgpO1xuICB9XG5cbiAgdGltZUNoYW5nZSh0aW1lOiBUaW1lUGlja2VyTW9kZWwpIHtcbiAgICBpZiAoIXRpbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zeW5jVGltZSgpO1xuICAgIGlmICghdGhpcy5yYW5nZVZhbHVlPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSB1cGRhdGVEYXRlQnlUaW1lTW9kZWwoZGF5anMoKSwgdGltZSk7XG4gICAgICB0aGlzLnJhbmdlVmFsdWUgPSBbZGF0ZSwgZGF0ZV07XG4gICAgICB0aGlzLm1hdGNoVmFsdWVzID0gWy4uLnRoaXMucmFuZ2VWYWx1ZV07XG4gICAgICB0aGlzLnN0YXJ0VGltZSA9IHRoaXMuZW5kVGltZSA9IHRpbWU7XG4gICAgfVxuICAgIHRoaXMuZW1pdFZhbHVlKHRoaXMucmFuZ2VWYWx1ZSk7XG4gIH1cblxuICBzeW5jVGltZSgpIHtcbiAgICBpZiAodGhpcy5zaG93VGltZSAmJiAhIXRoaXMucmFuZ2VWYWx1ZT8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLnJhbmdlVmFsdWVbMF1cbiAgICAgICAgPyB1cGRhdGVEYXRlQnlUaW1lTW9kZWwodGhpcy5yYW5nZVZhbHVlWzBdLCB0aGlzLnN0YXJ0VGltZSlcbiAgICAgICAgOiBudWxsO1xuICAgICAgY29uc3QgZW5kRGF0ZSA9IHRoaXMucmFuZ2VWYWx1ZVsxXVxuICAgICAgICA/IHVwZGF0ZURhdGVCeVRpbWVNb2RlbCh0aGlzLnJhbmdlVmFsdWVbMV0sIHRoaXMuZW5kVGltZSlcbiAgICAgICAgOiBudWxsO1xuICAgICAgaWYgKCF0aGlzLnN0YXJ0VGltZSAmJiBzdGFydERhdGUpIHtcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBnZXRUaW1lUGlja2VyTW9kZWwodGhpcy5yYW5nZVZhbHVlWzBdKTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5lbmRUaW1lICYmIGVuZERhdGUpIHtcbiAgICAgICAgdGhpcy5lbmRUaW1lID0gZ2V0VGltZVBpY2tlck1vZGVsKHRoaXMucmFuZ2VWYWx1ZVsxXSk7XG4gICAgICB9XG4gICAgICB0aGlzLnJhbmdlVmFsdWUgPSBbc3RhcnREYXRlLCBlbmREYXRlXS5maWx0ZXIoaSA9PiAhIWkpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbnRhaW5lcicpXCI+XG4gIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdoZWFkZXInKVwiPlxuICAgIDxhdWktY2FsZW5kYXItaGVhZGVyXG4gICAgICBbZGF0ZU5hdlJhbmdlXT1cImxlZnREYXRlUmFuZ2VcIlxuICAgICAgW2FuY2hvcl09XCJsZWZ0QW5jaG9yXCJcbiAgICAgIChuYXZSYW5nZUNoYW5nZSk9XCJjYWxlbmRhclJhbmdlQ2hhbmdlKCRldmVudCwgU2lkZS5MZWZ0KVwiXG4gICAgICAoYW5jaG9yQ2hhbmdlKT1cImxlZnRBbmNob3IgPSAkZXZlbnRcIlxuICAgICAgW21heEF2YWlsXT1cIm1heEhlYWRlckF2YWlsXCJcbiAgICAgIFttaW5BdmFpbF09XCJtaW5EYXRlXCJcbiAgICA+PC9hdWktY2FsZW5kYXItaGVhZGVyPlxuICAgIDxhdWktY2FsZW5kYXItaGVhZGVyXG4gICAgICBbZGF0ZU5hdlJhbmdlXT1cInJpZ2h0RGF0ZVJhbmdlXCJcbiAgICAgIFthbmNob3JdPVwicmlnaHRBbmNob3JcIlxuICAgICAgKG5hdlJhbmdlQ2hhbmdlKT1cImNhbGVuZGFyUmFuZ2VDaGFuZ2UoJGV2ZW50LCBTaWRlLlJpZ2h0KVwiXG4gICAgICAoYW5jaG9yQ2hhbmdlKT1cInJpZ2h0QW5jaG9yID0gJGV2ZW50XCJcbiAgICAgIFttaW5BdmFpbF09XCJtaW5IZWFkZXJBdmFpbFwiXG4gICAgICBbbWF4QXZhaWxdPVwibWF4RGF0ZVwiXG4gICAgPjwvYXVpLWNhbGVuZGFyLWhlYWRlcj5cbiAgPC9kaXY+XG4gIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdib2R5JylcIj5cbiAgICA8YXVpLXBpY2tlci1wYW5lbFxuICAgICAgY2xhc3M9XCJwYW5lbF9fd3JhcHBlclwiXG4gICAgICBbbmF2UmFuZ2VdPVwibGVmdERhdGVSYW5nZVwiXG4gICAgICBbdHlwZV09XCJEYXRlUGlja2VyVHlwZS5EYXlcIlxuICAgICAgW2FuY2hvcl09XCJsZWZ0QW5jaG9yXCJcbiAgICAgIFttYXRjaERhdGVzXT1cIm1hdGNoVmFsdWVzXCJcbiAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICBbZGlzYWJsZWREYXRlXT1cImdldERhdGVEaXNhYmxlZEZuKFNpZGUuTGVmdCwgcmlnaHRBbmNob3IpXCJcbiAgICAgIFt3ZWVrU3RhcnREYXldPVwid2Vla1N0YXJ0RGF5XCJcbiAgICAgIChob3ZlcmVkKT1cImhvdmVySXRlbSgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3QpPVwic2VsZWN0UGlja2VyUGFuZWwoJGV2ZW50LCBTaWRlLkxlZnQpXCJcbiAgICA+PC9hdWktcGlja2VyLXBhbmVsPlxuICAgIDxhdWktcGlja2VyLXBhbmVsXG4gICAgICBjbGFzcz1cInBhbmVsX193cmFwcGVyXCJcbiAgICAgIFtuYXZSYW5nZV09XCJyaWdodERhdGVSYW5nZVwiXG4gICAgICBbdHlwZV09XCJEYXRlUGlja2VyVHlwZS5EYXlcIlxuICAgICAgW2FuY2hvcl09XCJyaWdodEFuY2hvclwiXG4gICAgICBbd2Vla1N0YXJ0RGF5XT1cIndlZWtTdGFydERheVwiXG4gICAgICBbbWF0Y2hEYXRlc109XCJtYXRjaFZhbHVlc1wiXG4gICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgW2Rpc2FibGVkRGF0ZV09XCJnZXREYXRlRGlzYWJsZWRGbihTaWRlLlJpZ2h0LCBsZWZ0QW5jaG9yKVwiXG4gICAgICAoaG92ZXJlZCk9XCJob3Zlckl0ZW0oJGV2ZW50KVwiXG4gICAgICAoc2VsZWN0KT1cInNlbGVjdFBpY2tlclBhbmVsKCRldmVudCwgU2lkZS5SaWdodClcIlxuICAgID48L2F1aS1waWNrZXItcGFuZWw+XG4gIDwvZGl2PlxuXG4gIDxhdWktY2FsZW5kYXItZm9vdGVyXG4gICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdmb290ZXInKVwiXG4gICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgIFtjbGVhclRleHRdPVwiY2xlYXJUZXh0XCJcbiAgICAoY2xlYXIpPVwiY2xlYXIubmV4dCgpXCJcbiAgICAoY29uZmlybSk9XCJjb25maXJtVmFsdWUocmFuZ2VWYWx1ZSlcIlxuICAgICpuZ0lmPVwic2hvd0Zvb3RlciAmJiBzaG93VGltZVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2Zvb3Rlci1jb250ZW50JylcIlxuICAgICAgKm5nSWY9XCJzaG93VGltZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkYXRlUGxhY2Vob2xkZXJcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnc3RhcnRfZGF0ZScgfCBhdWlJMThuLFxuICAgICAgICAgIHZhbHVlOiByYW5nZVZhbHVlWzBdXG4gICAgICAgIH1cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPGF1aS10aW1lLXBpY2tlclxuICAgICAgICBbc2hvd0ljb25dPVwiZmFsc2VcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiXG4gICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRpbWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtkaXNhYmxlSG91cnNdPVwibGVmdERpc2FibGVkVGltZUZuKHJhbmdlVmFsdWVbMF0sICdob3VycycpXCJcbiAgICAgICAgW2Rpc2FibGVNaW51dGVzXT1cImxlZnREaXNhYmxlZFRpbWVGbihyYW5nZVZhbHVlWzBdLCAnbWludXRlcycpXCJcbiAgICAgICAgW2Rpc2FibGVTZWNvbmRzXT1cImxlZnREaXNhYmxlZFRpbWVGbihyYW5nZVZhbHVlWzBdLCAnc2Vjb25kcycpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWxlY3RfdGltZScgfCBhdWlJMThuXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wIHN0YXJ0XCJcbiAgICAgID48L2F1aS10aW1lLXBpY2tlcj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlciBzZXBhcmF0b3JcIj57eyAndG8nIHwgYXVpSTE4biB9fTwvc3Bhbj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ2VuZF9kYXRlJyB8IGF1aUkxOG4sXG4gICAgICAgICAgdmFsdWU6IHJhbmdlVmFsdWVbMV1cbiAgICAgICAgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8YXVpLXRpbWUtcGlja2VyXG4gICAgICAgIFtzaG93SWNvbl09XCJmYWxzZVwiXG4gICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZW5kVGltZVwiXG4gICAgICAgIFtkaXNhYmxlSG91cnNdPVwicmlnaHREaXNhYmxlZFRpbWVGbihyYW5nZVZhbHVlWzFdLCAnaG91cnMnKVwiXG4gICAgICAgIFtkaXNhYmxlTWludXRlc109XCJyaWdodERpc2FibGVkVGltZUZuKHJhbmdlVmFsdWVbMV0sICdtaW51dGVzJylcIlxuICAgICAgICBbZGlzYWJsZVNlY29uZHNdPVwicmlnaHREaXNhYmxlZFRpbWVGbihyYW5nZVZhbHVlWzFdLCAnc2Vjb25kcycpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGltZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWxlY3RfdGltZScgfCBhdWlJMThuXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wIHN0YXJ0XCJcbiAgICAgID48L2F1aS10aW1lLXBpY2tlcj5cbiAgICA8L2Rpdj5cbiAgPC9hdWktY2FsZW5kYXItZm9vdGVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZVxuICAjZGF0ZVBsYWNlaG9sZGVyXG4gIGxldC1wbGFjZWhvbGRlcj1cInBsYWNlaG9sZGVyXCJcbiAgbGV0LXZhbHVlPVwidmFsdWVcIlxuPlxuICA8c3BhblxuICAgICpuZ0lmPVwiIXZhbHVlXCJcbiAgICBjbGFzcz1cInBsYWNlaG9sZGVyIGRhdGUtaG9sZGVyXCJcbiAgICA+e3sgcGxhY2Vob2xkZXIgfX08L3NwYW5cbiAgPlxuICA8c3BhblxuICAgICpuZ0lmPVwidmFsdWVcIlxuICAgIGNsYXNzPVwiZGF0ZS12YWx1ZSBkYXRlLWhvbGRlclwiXG4gICAgPnt7IHZhbHVlIHwgZGF0ZSA6IEZPT1RFUl9EQVRFX0ZPUk1BVCB9fTwvc3BhblxuICA+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2NhbGVuZGFyL3JhbmdlLXBpY2tlci1wYW5lbC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvY2FsZW5kYXIvcmFuZ2UtcGlja2VyLXBhbmVsL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFckUsT0FBTyxFQUFFLFlBQVksRUFBa0IsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFB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QUN2QixnQkFBZ0Isb0pBQ2hCLG1CQUFtQix5UUFDbkIsV0FBVywwVkFDWCxRQUFRLHdDQUNSLFFBQVE7OzJGQUdDLDZCQUE2QjtrQkExQnpDLFNBQVM7K0JBQ0UsNkJBQTZCLGlCQUd4QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDhCQUE4QixDQUFDOzRCQUM1RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCx1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsSUFBSTt3QkFDSix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLFFBQVE7d0JBQ1IsUUFBUTtxQkFDVDs4QkFJRCxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQVFOLFlBQVk7c0JBRFgsS0FBSztnQkFPTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixLQUFLO3NCQURKLE1BQU07Z0JBSVAsT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgZGF5anMsIHsgRGF5anMgfSBmcm9tICdkYXlqcyc7XG5cbmltcG9ydCB7IENvbW1vbkZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vLi4vZm9ybS9jb21tb24tZm9ybSc7XG5pbXBvcnQgeyBJMThuUGlwZSB9IGZyb20gJy4uLy4uLy4uL2kxOG4vaTE4bi5waXBlJztcbmltcG9ydCB7IGJ1aWxkQmVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWwvdXRpbHMnO1xuaW1wb3J0IHsgVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RpbWUtcGlja2VyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lUGlja2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi90aW1lLXBpY2tlci90aW1lLXBpY2tlci50eXBlJztcbmltcG9ydCB7IERhdGVOYXZSYW5nZSwgRGlzYWJsZWRUaW1lRm4sIFNpZGUgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci50eXBlJztcbmltcG9ydCB7IERhdGVQaWNrZXJUeXBlLCBNT05USCwgWUVBUiB9IGZyb20gJy4uL2NvbnN0YW50JztcbmltcG9ydCB7IENhbGVuZGFyRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9vdGVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2hlYWRlci9jb21wb25lbnQnO1xuaW1wb3J0IHsgUGlja2VyUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9wYW5lbC9waWNrZXItcGFuZWwnO1xuaW1wb3J0IHtcbiAgY29tcG9zZURpc2FibGVkRGF0ZUZuLFxuICBnZXRUaW1lUGlja2VyTW9kZWwsXG4gIGdldFR5cGVCeU5hdlJhbmdlLFxuICBtYXhEYXRlLFxuICBtaW5EYXRlLFxuICBuZXh0TmF2UmFuZ2VUeXBlLFxuICBzb3J0RGF0ZXMsXG4gIHVwZGF0ZURhdGUsXG4gIHVwZGF0ZURhdGVCeVRpbWVNb2RlbCxcbn0gZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IGJlbSA9IGJ1aWxkQmVtKCdhdWktZGF0ZS1yYW5nZS1waWNrZXItcGFuZWwnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLWRhdGUtcmFuZ2UtcGlja2VyLXBhbmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVSYW5nZVBpY2tlclBhbmVsQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDYWxlbmRhckhlYWRlckNvbXBvbmVudCxcbiAgICBQaWNrZXJQYW5lbENvbXBvbmVudCxcbiAgICBOZ0lmLFxuICAgIENhbGVuZGFyRm9vdGVyQ29tcG9uZW50LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgVGltZVBpY2tlckNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBEYXRlUGlwZSxcbiAgICBJMThuUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlUGlja2VyUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBDb21tb25Gb3JtQ29udHJvbDxEYXlqc1tdPiB7XG4gIEBJbnB1dCgpXG4gIGNsZWFyYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgY2xlYXJUZXh0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc2hvd1RpbWUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dGb290ZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkRGF0ZTogKFxuICAgIGRhdGU6IERheWpzLFxuICAgIG5hdlJhbmdlOiBEYXRlTmF2UmFuZ2UsXG4gICAgc3RhcnREYXRlOiBEYXlqcyxcbiAgKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWRUaW1lOiB7IGxlZnQ6IERpc2FibGVkVGltZUZuOyByaWdodDogRGlzYWJsZWRUaW1lRm4gfSA9IHtcbiAgICBsZWZ0OiAoKSA9PiBudWxsLFxuICAgIHJpZ2h0OiAoKSA9PiBudWxsLFxuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHdlZWtTdGFydERheSA9IDA7XG5cbiAgQElucHV0KClcbiAgbWluRGF0ZTogRGF5anM7XG5cbiAgQElucHV0KClcbiAgbWF4RGF0ZTogRGF5anM7XG5cbiAgQE91dHB1dCgpXG4gIGNsZWFyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBjb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGJlbSA9IGJlbTtcbiAgU2lkZSA9IFNpZGU7XG4gIERhdGVQaWNrZXJUeXBlID0gRGF0ZVBpY2tlclR5cGU7XG4gIGxlZnREYXRlUmFuZ2UgPSBEYXRlTmF2UmFuZ2UuTW9udGg7XG4gIHJpZ2h0RGF0ZVJhbmdlID0gRGF0ZU5hdlJhbmdlLk1vbnRoO1xuXG4gIEZPT1RFUl9EQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLWRkJztcblxuICBsZWZ0QW5jaG9yID0gZGF5anMoKTtcbiAgcmlnaHRBbmNob3IgPSBkYXlqcygpLmFkZCgxLCBNT05USCk7XG5cbiAgZ2V0IG1heEhlYWRlckF2YWlsKCkge1xuICAgIHJldHVybiBtaW5EYXRlKHRoaXMucmlnaHRBbmNob3IsIHRoaXMubWF4RGF0ZSk7XG4gIH1cblxuICBnZXQgbWluSGVhZGVyQXZhaWwoKSB7XG4gICAgcmV0dXJuIG1heERhdGUodGhpcy5taW5EYXRlLCB0aGlzLmxlZnRBbmNob3IpO1xuICB9XG5cbiAgLy8g55So5LqO5a2Y5pS+IHJhbmdlIGRhdGEg5bqP5YiX77yM5pWw6YeP5Li6IDIg5pe25riF6ZmkXG4gIHJhbmdlVmFsdWU6IERheWpzW10gPSBbXTtcblxuICAvLyDnlKjkuo7nu4Too4XljLnphY3ml6XmnJ/luo/liJdcbiAgbWF0Y2hWYWx1ZXM6IERheWpzW107XG5cbiAgc3RhcnRUaW1lOiBUaW1lUGlja2VyTW9kZWw7XG4gIGVuZFRpbWU6IFRpbWVQaWNrZXJNb2RlbDtcblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogRGF5anNbXSkge1xuICAgIHN1cGVyLndyaXRlVmFsdWUob2JqKTtcbiAgICB0aGlzLnJhbmdlVmFsdWUgPSBvYmogfHwgW107XG4gICAgdGhpcy5tYXRjaFZhbHVlcyA9IFsuLi50aGlzLnJhbmdlVmFsdWVdO1xuICAgIHRoaXMuc3RhcnRUaW1lID0gZ2V0VGltZVBpY2tlck1vZGVsKG9iaj8uWzBdKTtcbiAgICB0aGlzLmVuZFRpbWUgPSBnZXRUaW1lUGlja2VyTW9kZWwob2JqPy5bMV0pO1xuICAgIGlmIChvYmo/Lmxlbmd0aCA9PT0gMikge1xuICAgICAgdGhpcy5yZW9yZGVyKHNvcnREYXRlcyhvYmopKTtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjYWxlbmRhclJhbmdlQ2hhbmdlKHR5cGU6IERhdGVOYXZSYW5nZSwgc2lkZTogU2lkZSkge1xuICAgIGlmIChzaWRlID09PSBTaWRlLkxlZnQpIHtcbiAgICAgIHRoaXMubGVmdERhdGVSYW5nZSA9IHR5cGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmlnaHREYXRlUmFuZ2UgPSB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIHJhbmdlIOe7hOS7tuiMg+WbtOWPl+aOp1xuICBnZXREYXRlRGlzYWJsZWRGbihzaWRlOiBTaWRlLCBjb25zdHJhaW5WYWx1ZTogRGF5anMpIHtcbiAgICByZXR1cm4gY29tcG9zZURpc2FibGVkRGF0ZUZuKFxuICAgICAgKGRhdGU6IERheWpzLCBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlKSA9PiB7XG4gICAgICAgIGlmIChuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZSkge1xuICAgICAgICAgIHJldHVybiBkYXRlW3NpZGUgPT09IFNpZGUuTGVmdCA/ICdpc0FmdGVyJyA6ICdpc0JlZm9yZSddKFxuICAgICAgICAgICAgY29uc3RyYWluVmFsdWUsXG4gICAgICAgICAgICBZRUFSLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFkYXRlW3NpZGUgPT09IFNpZGUuTGVmdCA/ICdpc0JlZm9yZScgOiAnaXNBZnRlciddKFxuICAgICAgICAgIGNvbnN0cmFpblZhbHVlLFxuICAgICAgICAgIE1PTlRILFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgICguLi5hcmcpID0+IHRoaXMuZGlzYWJsZWREYXRlKC4uLmFyZywgdGhpcy5yYW5nZVZhbHVlWzBdKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXNhYmxlZFRpbWVDYWNoZWRGbihzaWRlOiBTaWRlKSB7XG4gICAgbGV0IGNhY2hlU2VsZWN0ZWREYXRlOiBEYXlqcztcbiAgICBsZXQgY2FjaGVEaXNhYmxlZFRpbWVGbjogUmV0dXJuVHlwZTxEaXNhYmxlZFRpbWVGbj47XG4gICAgcmV0dXJuICh2YWx1ZTogRGF5anMsIGtleToga2V5b2YgUmV0dXJuVHlwZTxEaXNhYmxlZFRpbWVGbj4pID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gY2FjaGVTZWxlY3RlZERhdGUpIHtcbiAgICAgICAgY2FjaGVEaXNhYmxlZFRpbWVGbiA9ICh0aGlzLmRpc2FibGVkVGltZT8uW3NpZGVdIHx8ICgoKSA9PiBudWxsKSkoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICk7XG4gICAgICAgIGNhY2hlU2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2FjaGVEaXNhYmxlZFRpbWVGbj8uW2tleV07XG4gICAgfTtcbiAgfVxuXG4gIGxlZnREaXNhYmxlZFRpbWVGbiA9IHRoaXMuZ2V0RGlzYWJsZWRUaW1lQ2FjaGVkRm4oU2lkZS5MZWZ0KTtcbiAgcmlnaHREaXNhYmxlZFRpbWVGbiA9IHRoaXMuZ2V0RGlzYWJsZWRUaW1lQ2FjaGVkRm4oU2lkZS5SaWdodCk7XG5cbiAgc2VsZWN0UGlja2VyUGFuZWwodmFsdWU6IERheWpzLCBzaWRlOiBTaWRlKSB7XG4gICAgY29uc3QgbmF2UmFuZ2UgPVxuICAgICAgc2lkZSA9PT0gU2lkZS5MZWZ0ID8gdGhpcy5sZWZ0RGF0ZVJhbmdlIDogdGhpcy5yaWdodERhdGVSYW5nZTtcbiAgICBjb25zdCB0eXBlID0gZ2V0VHlwZUJ5TmF2UmFuZ2UobmF2UmFuZ2UpO1xuICAgIGNvbnN0IGRhdGVWYWx1ZSA9IHVwZGF0ZURhdGUoXG4gICAgICBzaWRlID09PSBTaWRlLkxlZnQgPyB0aGlzLmxlZnRBbmNob3IgOiB0aGlzLnJpZ2h0QW5jaG9yLFxuICAgICAgdmFsdWUsXG4gICAgICB0eXBlLFxuICAgICk7XG4gICAgY29uc3QgbmV4dFJhbmdlID0gbmV4dE5hdlJhbmdlVHlwZShuYXZSYW5nZSwgRGF0ZU5hdlJhbmdlLk1vbnRoKTtcblxuICAgIGlmIChzaWRlID09PSBTaWRlLkxlZnQpIHtcbiAgICAgIHRoaXMubGVmdEFuY2hvciA9IGRhdGVWYWx1ZTtcbiAgICAgIHRoaXMubGVmdERhdGVSYW5nZSA9IG5leHRSYW5nZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yaWdodEFuY2hvciA9IGRhdGVWYWx1ZTtcbiAgICAgIHRoaXMucmlnaHREYXRlUmFuZ2UgPSBuZXh0UmFuZ2U7XG4gICAgfVxuXG4gICAgaWYgKG5hdlJhbmdlICE9PSBEYXRlTmF2UmFuZ2UuTW9udGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5sZWZ0QW5jaG9yLmlzU2FtZSh0aGlzLnJpZ2h0QW5jaG9yLCBNT05USCkpIHtcbiAgICAgIHRoaXMucmlnaHRBbmNob3IgPSB0aGlzLnJpZ2h0QW5jaG9yLmFkZCgxLCBNT05USCk7XG4gICAgfVxuXG4gICAgdGhpcy5yYW5nZVZhbHVlID1cbiAgICAgIHRoaXMucmFuZ2VWYWx1ZS5sZW5ndGggPT09IDJcbiAgICAgICAgPyBbZGF0ZVZhbHVlXVxuICAgICAgICA6IHNvcnREYXRlcyhbLi4udGhpcy5yYW5nZVZhbHVlLCBkYXRlVmFsdWVdKTtcbiAgICB0aGlzLm1hdGNoVmFsdWVzID0gWy4uLnRoaXMucmFuZ2VWYWx1ZV07XG4gICAgdGhpcy5zeW5jVGltZSgpO1xuICAgIGlmICh0aGlzLnJhbmdlVmFsdWUubGVuZ3RoID09PSAyKSB7XG4gICAgICB0aGlzLnJlb3JkZXIodGhpcy5yYW5nZVZhbHVlKTtcbiAgICAgIHRoaXMuY29uZmlybVZhbHVlKHRoaXMucmFuZ2VWYWx1ZSwgIXRoaXMuc2hvd1RpbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJlb3JkZXIoc29ydGVkRGF0ZTogRGF5anNbXSkge1xuICAgIGlmICghc29ydGVkRGF0ZVswXS5pc1NhbWUoc29ydGVkRGF0ZVsxXSwgTU9OVEgpKSB7XG4gICAgICB0aGlzLmxlZnRBbmNob3IgPSB1cGRhdGVEYXRlKFxuICAgICAgICB0aGlzLmxlZnRBbmNob3IsXG4gICAgICAgIHNvcnRlZERhdGVbMF0sXG4gICAgICAgIERhdGVQaWNrZXJUeXBlLkRheSxcbiAgICAgICk7XG4gICAgICB0aGlzLnJpZ2h0QW5jaG9yID0gdXBkYXRlRGF0ZShcbiAgICAgICAgdGhpcy5sZWZ0QW5jaG9yLFxuICAgICAgICBzb3J0ZWREYXRlWzFdLFxuICAgICAgICBEYXRlUGlja2VyVHlwZS5EYXksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGhvdmVySXRlbShkYXRlOiBEYXlqcykge1xuICAgIGlmICh0aGlzLnJhbmdlVmFsdWUubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLm1hdGNoVmFsdWVzWzFdID0gZGF0ZTtcbiAgICB9XG4gIH1cblxuICBjb25maXJtVmFsdWUodmFsdWU6IERheWpzW10sIGNsb3NlVGhlbiA9IHRydWUpIHtcbiAgICBjb25zdCBzb3J0VmFsdWUgPSB2YWx1ZS5zb3J0KChzdGFydERhdGUsIGVuZERhdGUpID0+XG4gICAgICBzdGFydERhdGUuaXNBZnRlcihlbmREYXRlKSA/IDEgOiAtMSxcbiAgICApO1xuICAgIHRoaXMuZW1pdFZhbHVlKHNvcnRWYWx1ZSk7XG4gICAgY2xvc2VUaGVuICYmIHRoaXMuY29uZmlybS5uZXh0KCk7XG4gIH1cblxuICB0aW1lQ2hhbmdlKHRpbWU6IFRpbWVQaWNrZXJNb2RlbCkge1xuICAgIGlmICghdGltZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN5bmNUaW1lKCk7XG4gICAgaWYgKCF0aGlzLnJhbmdlVmFsdWU/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgZGF0ZSA9IHVwZGF0ZURhdGVCeVRpbWVNb2RlbChkYXlqcygpLCB0aW1lKTtcbiAgICAgIHRoaXMucmFuZ2VWYWx1ZSA9IFtkYXRlLCBkYXRlXTtcbiAgICAgIHRoaXMubWF0Y2hWYWx1ZXMgPSBbLi4udGhpcy5yYW5nZVZhbHVlXTtcbiAgICAgIHRoaXMuc3RhcnRUaW1lID0gdGhpcy5lbmRUaW1lID0gdGltZTtcbiAgICB9XG4gICAgdGhpcy5lbWl0VmFsdWUodGhpcy5yYW5nZVZhbHVlKTtcbiAgfVxuXG4gIHN5bmNUaW1lKCkge1xuICAgIGlmICh0aGlzLnNob3dUaW1lICYmICEhdGhpcy5yYW5nZVZhbHVlPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMucmFuZ2VWYWx1ZVswXVxuICAgICAgICA/IHVwZGF0ZURhdGVCeVRpbWVNb2RlbCh0aGlzLnJhbmdlVmFsdWVbMF0sIHRoaXMuc3RhcnRUaW1lKVxuICAgICAgICA6IG51bGw7XG4gICAgICBjb25zdCBlbmREYXRlID0gdGhpcy5yYW5nZVZhbHVlWzFdXG4gICAgICAgID8gdXBkYXRlRGF0ZUJ5VGltZU1vZGVsKHRoaXMucmFuZ2VWYWx1ZVsxXSwgdGhpcy5lbmRUaW1lKVxuICAgICAgICA6IG51bGw7XG4gICAgICBpZiAoIXRoaXMuc3RhcnRUaW1lICYmIHN0YXJ0RGF0ZSkge1xuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IGdldFRpbWVQaWNrZXJNb2RlbCh0aGlzLnJhbmdlVmFsdWVbMF0pO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmVuZFRpbWUgJiYgZW5kRGF0ZSkge1xuICAgICAgICB0aGlzLmVuZFRpbWUgPSBnZXRUaW1lUGlja2VyTW9kZWwodGhpcy5yYW5nZVZhbHVlWzFdKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmFuZ2VWYWx1ZSA9IFtzdGFydERhdGUsIGVuZERhdGVdLmZpbHRlcihpID0+ICEhaSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29udGFpbmVyJylcIj5cbiAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2hlYWRlcicpXCI+XG4gICAgPGF1aS1jYWxlbmRhci1oZWFkZXJcbiAgICAgIFtkYXRlTmF2UmFuZ2VdPVwibGVmdERhdGVSYW5nZVwiXG4gICAgICBbYW5jaG9yXT1cImxlZnRBbmNob3JcIlxuICAgICAgKG5hdlJhbmdlQ2hhbmdlKT1cImNhbGVuZGFyUmFuZ2VDaGFuZ2UoJGV2ZW50LCBTaWRlLkxlZnQpXCJcbiAgICAgIChhbmNob3JDaGFuZ2UpPVwibGVmdEFuY2hvciA9ICRldmVudFwiXG4gICAgICBbbWF4QXZhaWxdPVwibWF4SGVhZGVyQXZhaWxcIlxuICAgICAgW21pbkF2YWlsXT1cIm1pbkRhdGVcIlxuICAgID48L2F1aS1jYWxlbmRhci1oZWFkZXI+XG4gICAgPGF1aS1jYWxlbmRhci1oZWFkZXJcbiAgICAgIFtkYXRlTmF2UmFuZ2VdPVwicmlnaHREYXRlUmFuZ2VcIlxuICAgICAgW2FuY2hvcl09XCJyaWdodEFuY2hvclwiXG4gICAgICAobmF2UmFuZ2VDaGFuZ2UpPVwiY2FsZW5kYXJSYW5nZUNoYW5nZSgkZXZlbnQsIFNpZGUuUmlnaHQpXCJcbiAgICAgIChhbmNob3JDaGFuZ2UpPVwicmlnaHRBbmNob3IgPSAkZXZlbnRcIlxuICAgICAgW21pbkF2YWlsXT1cIm1pbkhlYWRlckF2YWlsXCJcbiAgICAgIFttYXhBdmFpbF09XCJtYXhEYXRlXCJcbiAgICA+PC9hdWktY2FsZW5kYXItaGVhZGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2JvZHknKVwiPlxuICAgIDxhdWktcGlja2VyLXBhbmVsXG4gICAgICBjbGFzcz1cInBhbmVsX193cmFwcGVyXCJcbiAgICAgIFtuYXZSYW5nZV09XCJsZWZ0RGF0ZVJhbmdlXCJcbiAgICAgIFt0eXBlXT1cIkRhdGVQaWNrZXJUeXBlLkRheVwiXG4gICAgICBbYW5jaG9yXT1cImxlZnRBbmNob3JcIlxuICAgICAgW21hdGNoRGF0ZXNdPVwibWF0Y2hWYWx1ZXNcIlxuICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgIFtkaXNhYmxlZERhdGVdPVwiZ2V0RGF0ZURpc2FibGVkRm4oU2lkZS5MZWZ0LCByaWdodEFuY2hvcilcIlxuICAgICAgW3dlZWtTdGFydERheV09XCJ3ZWVrU3RhcnREYXlcIlxuICAgICAgKGhvdmVyZWQpPVwiaG92ZXJJdGVtKCRldmVudClcIlxuICAgICAgKHNlbGVjdCk9XCJzZWxlY3RQaWNrZXJQYW5lbCgkZXZlbnQsIFNpZGUuTGVmdClcIlxuICAgID48L2F1aS1waWNrZXItcGFuZWw+XG4gICAgPGF1aS1waWNrZXItcGFuZWxcbiAgICAgIGNsYXNzPVwicGFuZWxfX3dyYXBwZXJcIlxuICAgICAgW25hdlJhbmdlXT1cInJpZ2h0RGF0ZVJhbmdlXCJcbiAgICAgIFt0eXBlXT1cIkRhdGVQaWNrZXJUeXBlLkRheVwiXG4gICAgICBbYW5jaG9yXT1cInJpZ2h0QW5jaG9yXCJcbiAgICAgIFt3ZWVrU3RhcnREYXldPVwid2Vla1N0YXJ0RGF5XCJcbiAgICAgIFttYXRjaERhdGVzXT1cIm1hdGNoVmFsdWVzXCJcbiAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICBbZGlzYWJsZWREYXRlXT1cImdldERhdGVEaXNhYmxlZEZuKFNpZGUuUmlnaHQsIGxlZnRBbmNob3IpXCJcbiAgICAgIChob3ZlcmVkKT1cImhvdmVySXRlbSgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3QpPVwic2VsZWN0UGlja2VyUGFuZWwoJGV2ZW50LCBTaWRlLlJpZ2h0KVwiXG4gICAgPjwvYXVpLXBpY2tlci1wYW5lbD5cbiAgPC9kaXY+XG5cbiAgPGF1aS1jYWxlbmRhci1mb290ZXJcbiAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2Zvb3RlcicpXCJcbiAgICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiXG4gICAgW2NsZWFyVGV4dF09XCJjbGVhclRleHRcIlxuICAgIChjbGVhcik9XCJjbGVhci5uZXh0KClcIlxuICAgIChjb25maXJtKT1cImNvbmZpcm1WYWx1ZShyYW5nZVZhbHVlKVwiXG4gICAgKm5nSWY9XCJzaG93Rm9vdGVyICYmIHNob3dUaW1lXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnZm9vdGVyLWNvbnRlbnQnKVwiXG4gICAgICAqbmdJZj1cInNob3dUaW1lXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRhdGVQbGFjZWhvbGRlclwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdzdGFydF9kYXRlJyB8IGF1aUkxOG4sXG4gICAgICAgICAgdmFsdWU6IHJhbmdlVmFsdWVbMF1cbiAgICAgICAgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8YXVpLXRpbWUtcGlja2VyXG4gICAgICAgIFtzaG93SWNvbl09XCJmYWxzZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic3RhcnRUaW1lXCJcbiAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGltZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVIb3Vyc109XCJsZWZ0RGlzYWJsZWRUaW1lRm4ocmFuZ2VWYWx1ZVswXSwgJ2hvdXJzJylcIlxuICAgICAgICBbZGlzYWJsZU1pbnV0ZXNdPVwibGVmdERpc2FibGVkVGltZUZuKHJhbmdlVmFsdWVbMF0sICdtaW51dGVzJylcIlxuICAgICAgICBbZGlzYWJsZVNlY29uZHNdPVwibGVmdERpc2FibGVkVGltZUZuKHJhbmdlVmFsdWVbMF0sICdzZWNvbmRzJylcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlbGVjdF90aW1lJyB8IGF1aUkxOG5cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3Agc3RhcnRcIlxuICAgICAgPjwvYXVpLXRpbWUtcGlja2VyPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cInBsYWNlaG9sZGVyIHNlcGFyYXRvclwiPnt7ICd0bycgfCBhdWlJMThuIH19PC9zcGFuPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkYXRlUGxhY2Vob2xkZXJcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnZW5kX2RhdGUnIHwgYXVpSTE4bixcbiAgICAgICAgICB2YWx1ZTogcmFuZ2VWYWx1ZVsxXVxuICAgICAgICB9XCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxhdWktdGltZS1waWNrZXJcbiAgICAgICAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCJcbiAgICAgICAgW2Rpc2FibGVIb3Vyc109XCJyaWdodERpc2FibGVkVGltZUZuKHJhbmdlVmFsdWVbMV0sICdob3VycycpXCJcbiAgICAgICAgW2Rpc2FibGVNaW51dGVzXT1cInJpZ2h0RGlzYWJsZWRUaW1lRm4ocmFuZ2VWYWx1ZVsxXSwgJ21pbnV0ZXMnKVwiXG4gICAgICAgIFtkaXNhYmxlU2Vjb25kc109XCJyaWdodERpc2FibGVkVGltZUZuKHJhbmdlVmFsdWVbMV0sICdzZWNvbmRzJylcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0aW1lQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlbGVjdF90aW1lJyB8IGF1aUkxOG5cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3Agc3RhcnRcIlxuICAgICAgPjwvYXVpLXRpbWUtcGlja2VyPlxuICAgIDwvZGl2PlxuICA8L2F1aS1jYWxlbmRhci1mb290ZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gICNkYXRlUGxhY2Vob2xkZXJcbiAgbGV0LXBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXJcIlxuICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXG4+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCIhdmFsdWVcIlxuICAgIGNsYXNzPVwicGxhY2Vob2xkZXIgZGF0ZS1ob2xkZXJcIlxuICAgID57eyBwbGFjZWhvbGRlciB9fTwvc3BhblxuICA+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJ2YWx1ZVwiXG4gICAgY2xhc3M9XCJkYXRlLXZhbHVlIGRhdGUtaG9sZGVyXCJcbiAgICA+e3sgdmFsdWUgfCBkYXRlIDogRk9PVEVSX0RBVEVfRk9STUFUIH19PC9zcGFuXG4gID5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { DateNavRange } from '../date-picker.type';
|
|
2
2
|
import { DATE_NAV_RANGES, DATE_TYPES, DAY, DAY_PANEL_COLUMN_COUNT, DAY_PANEL_ROW_COUNT, DatePickerType, MONTH, MONTH_PANEL_COLUMN_COUNT, MONTH_PANEL_ROW_COUNT, YEAR, YEAR_PANEL_COLUMN_COUNT, YEAR_PANEL_ROW_COUNT, } from './constant';
|
|
3
3
|
export class DateCell {
|
|
4
|
-
value;
|
|
5
|
-
label;
|
|
6
|
-
isBackground;
|
|
7
|
-
inRange;
|
|
8
|
-
isRangeStart;
|
|
9
|
-
isRangeEnd;
|
|
10
|
-
isDisabled;
|
|
11
4
|
constructor(value, label) {
|
|
12
5
|
this.value = value;
|
|
13
6
|
this.label = label;
|
|
@@ -149,4 +142,4 @@ export function minDate(a, b, unit = 'date') {
|
|
|
149
142
|
export function maxDate(a, b, unit = 'date') {
|
|
150
143
|
return a ? (b ? (a.isAfter(b, unit) ? a : b) : a) : b;
|
|
151
144
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9jYWxlbmRhci91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxZQUFZLEVBQWtCLE1BQU0scUJBQXFCLENBQUM7QUFFbkUsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsR0FBRyxFQUNILHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLEtBQUssRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsb0JBQW9CLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE1BQU0sT0FBTyxRQUFRO0lBT0E7SUFBcUI7SUFOeEMsWUFBWSxDQUFXO0lBQ3ZCLE9BQU8sQ0FBVztJQUNsQixZQUFZLENBQVc7SUFDdkIsVUFBVSxDQUFXO0lBQ3JCLFVBQVUsQ0FBVztJQUVyQixZQUFtQixLQUFZLEVBQVMsS0FBc0I7UUFBM0MsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFTLFVBQUssR0FBTCxLQUFLLENBQWlCO0lBQUcsQ0FBQztDQUNuRTtBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsSUFBVyxFQUNYLFFBQXNCLEVBQ3RCLFlBQW9CO0lBRXBCLElBQUksU0FBZ0IsQ0FBQztJQUNyQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDZixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BCLFFBQVEsUUFBUSxFQUFFO1FBQ2hCLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0IsU0FBUyxHQUFHLFNB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LENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLENBQVEsRUFBRSxDQUFRLEVBQUUsT0FBaUIsTUFBTTtJQUNqRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERheWpzLCBVbml0VHlwZSB9IGZyb20gJ2RheWpzJztcblxuaW1wb3J0IHsgVGltZVBpY2tlck1vZGVsIH0gZnJvbSAnLi4vLi4vdGltZS1waWNrZXIvdGltZS1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlTmF2UmFuZ2UsIERpc2FibGVkRGF0ZUZuIH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIudHlwZSc7XG5cbmltcG9ydCB7XG4gIERBVEVfTkFWX1JBTkdFUyxcbiAgREFURV9UWVBFUyxcbiAgREFZLFxuICBEQVlfUEFORUxfQ09MVU1OX0NPVU5ULFxuICBEQVlfUEFORUxfUk9XX0NPVU5ULFxuICBEYXRlUGlja2VyVHlwZSxcbiAgTU9OVEgsXG4gIE1PTlRIX1BBTkVMX0NPTFVNTl9DT1VOVCxcbiAgTU9OVEhfUEFORUxfUk9XX0NPVU5ULFxuICBZRUFSLFxuICBZRUFSX1BBTkVMX0NPTFVNTl9DT1VOVCxcbiAgWUVBUl9QQU5FTF9ST1dfQ09VTlQsXG59IGZyb20gJy4vY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgRGF0ZUNlbGwge1xuICBpc0JhY2tncm91bmQ/OiBib29sZWFuOyAvLyDpnaLmnb/kuK3pnZ7mnKzmnIjml6XmnJ9cbiAgaW5SYW5nZT86IGJvb2xlYW47IC8vIOWcqOiMg+WbtOe7hOS7tueahOiMg+WbtOWGhVxuICBpc1JhbmdlU3RhcnQ/OiBib29sZWFuOyAvLyDojIPlm7Tnu4Tku7bnmoTojIPlm7TlvIDlp4vml6XmnJ9cbiAgaXNSYW5nZUVuZD86IGJvb2xlYW47IC8vIOiMg+WbtOe7hOS7tueahOiMg+WbtOe7k+adn+aXpeacn1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IERheWpzLCBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IG51bWJlcikge31cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVQYW5lbEl0ZXJhYmxlKFxuICBkYXRlOiBEYXlqcyxcbiAgbmF2UmFuZ2U6IERhdGVOYXZSYW5nZSxcbiAgd2Vla1N0YXJ0RGF5OiBudW1iZXIsXG4pOiBJdGVyYWJsZTxEYXlqcz4gJiBJdGVyYXRvcjxEYXlqcz4ge1xuICBsZXQgZmlyc3REYXRhOiBEYXlqcztcbiAgbGV0IGNvdW50cyA9IDA7XG4gIGRhdGUgPSBkYXRlLmNsb25lKCk7XG4gIHN3aXRjaCAobmF2UmFuZ2UpIHtcbiAgICBjYXNlIERhdGVOYXZSYW5nZS5Nb250aDoge1xuICAgICAgZmlyc3REYXRhID0gZGF0ZS5kYXRlKC0xKS5kYXkod2Vla1N0YXJ0RGF5KTtcbiAgICAgIGlmIChmaXJzdERhdGEuaXNBZnRlcihkYXRlKSkge1xuICAgICAgICBmaXJzdERhdGEgPSBmaXJzdERhdGEuc3VidHJhY3QoMSwgJ3dlZWsnKTtcbiAgICAgIH1cbiAgICAgIGNvdW50cyA9IERBWV9QQU5FTF9DT0xVTU5fQ09VTlQgKiBEQVlfUEFORUxfUk9XX0NPVU5UO1xuXG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBEYXRlTmF2UmFuZ2UuWWVhcjoge1xuICAgICAgZmlyc3REYXRhID0gZGF0ZS5tb250aCgwKTtcbiAgICAgIGNvdW50cyA9IE1PTlRIX1BBTkVMX0NPTFVNTl9DT1VOVCAqIE1PTlRIX1BBTkVMX1JPV19DT1VOVDtcblxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgRGF0ZU5hdlJhbmdlLkRlY2FkZToge1xuICAgICAgZmlyc3REYXRhID0gZGF0ZS5zdWJ0cmFjdCgxLCBZRUFSKTtcbiAgICAgIGNvdW50cyA9IFlFQVJfUEFORUxfQ09MVU1OX0NPVU5UICogWUVBUl9QQU5FTF9ST1dfQ09VTlQ7XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAvLyBObyBkZWZhdWx0XG4gIH1cbiAgbGV0IGkgPSAwO1xuICByZXR1cm4ge1xuICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBuZXh0OiAoKSA9PiB7XG4gICAgICBpZiAoaSA8IGNvdW50cykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBmaXJzdERhdGEuYWRkKFxuICAgICAgICAgICAgaSsrLFxuICAgICAgICAgICAgbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5Nb250aFxuICAgICAgICAgICAgICA/IERBWVxuICAgICAgICAgICAgICA6IG5hdlJhbmdlID09PSBEYXRlTmF2UmFuZ2UuWWVhclxuICAgICAgICAgICAgICA/IE1PTlRIXG4gICAgICAgICAgICAgIDogWUVBUixcbiAgICAgICAgICApLFxuICAgICAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZG9uZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXRlKHR5cGU6IERhdGVOYXZSYW5nZSwgZGF0ZVZhbHVlOiBEYXlqcywgZGF0ZTogRGF5anMpIHtcbiAgaWYgKCFkYXRlVmFsdWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBsYWJlbCA9XG4gICAgdHlwZSA9PT0gRGF0ZU5hdlJhbmdlLkRlY2FkZVxuICAgICAgPyBkYXRlVmFsdWUueWVhcigpXG4gICAgICA6IHR5cGUgPT09IERhdGVOYXZSYW5nZS5ZZWFyXG4gICAgICA/IGRhdGVWYWx1ZS5tb250aCgpICsgMVxuICAgICAgOiBkYXRlVmFsdWUuZGF0ZSgpO1xuICBjb25zdCBjZWxsID0gbmV3IERhdGVDZWxsKGRhdGVWYWx1ZSwgbGFiZWwpO1xuICBpZiAodHlwZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoICYmIGRhdGUubW9udGgoKSAhPT0gZGF0ZVZhbHVlLm1vbnRoKCkpIHtcbiAgICBjZWxsLmlzQmFja2dyb3VuZCA9IHRydWU7XG4gIH1cbiAgcmV0dXJuIGNlbGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXh0RGF0ZVBpY2tlclR5cGUoXG4gIGN1cnJlbnQ6IERhdGVQaWNrZXJUeXBlLFxuICBndWFyZD86IERhdGVQaWNrZXJUeXBlLFxuKSB7XG4gIGNvbnN0IGd1YXJkSW5kZXggPSBndWFyZCA/IERBVEVfVFlQRVMuaW5kZXhPZihndWFyZCkgOiBEQVRFX1RZUEVTLmxlbmd0aCAtIDE7XG4gIGNvbnN0IGN1cnJlbnRJbmRleCA9IERBVEVfVFlQRVMuaW5kZXhPZihjdXJyZW50KTtcbiAgaWYgKGN1cnJlbnRJbmRleCA8IGd1YXJkSW5kZXgpIHtcbiAgICByZXR1cm4gREFURV9UWVBFU1tjdXJyZW50SW5kZXggKyAxXTtcbiAgfVxuICByZXR1cm4gY3VycmVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5leHROYXZSYW5nZVR5cGUoY3VycmVudDogRGF0ZU5hdlJhbmdlLCBndWFyZD86IERhdGVOYXZSYW5nZSkge1xuICBjb25zdCBndWFyZEluZGV4ID0gZ3VhcmRcbiAgICA/IERBVEVfTkFWX1JBTkdFUy5pbmRleE9mKGd1YXJkKVxuICAgIDogREFURV9OQVZfUkFOR0VTLmxlbmd0aCAtIDE7XG4gIGNvbnN0IGN1cnJlbnRJbmRleCA9IERBVEVfTkFWX1JBTkdFUy5pbmRleE9mKGN1cnJlbnQpO1xuICBpZiAoY3VycmVudEluZGV4IDwgZ3VhcmRJbmRleCkge1xuICAgIHJldHVybiBEQVRFX05BVl9SQU5HRVNbY3VycmVudEluZGV4ICsgMV07XG4gIH1cbiAgcmV0dXJuIGN1cnJlbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVEYXRlKFxuICBzb3VyY2VWYWx1ZTogRGF5anMsXG4gIG5ld1ZhbHVlOiBEYXlqcyxcbiAgdHlwZTogRGF0ZVBpY2tlclR5cGUsXG4pIHtcbiAgY29uc3QgdXBkYXRlVHlwZXMgPSBEQVRFX1RZUEVTLnNsaWNlKDAsIERBVEVfVFlQRVMuaW5kZXhPZih0eXBlKSArIDEpO1xuICByZXR1cm4gdXBkYXRlVHlwZXMucmVkdWNlKFxuICAgIChhY2MsIGN1cnIpID0+IGFjYy5zZXQoY3VyciwgbmV3VmFsdWUuZ2V0KGN1cnIpKSxcbiAgICBzb3VyY2VWYWx1ZS5jbG9uZSgpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY1JhbmdlVmFsdWUodHlwZTogRGF0ZU5hdlJhbmdlLCBkYXRlOiBEYXlqcykge1xuICBkYXRlID0gZGF0ZS5jbG9uZSgpO1xuICByZXR1cm4gW0RhdGVOYXZSYW5nZS5Nb250aCwgRGF0ZVBpY2tlclR5cGUuWWVhcl0uaW5jbHVkZXModHlwZSlcbiAgICA/IHtcbiAgICAgICAgc3RhcnQ6IGRhdGUsXG4gICAgICB9XG4gICAgOiB7XG4gICAgICAgIHN0YXJ0OiBkYXRlLnN1YnRyYWN0KGRhdGUueWVhcigpICUgMTAsIFlFQVIpLFxuICAgICAgICBlbmQ6IGRhdGUuYWRkKDkgLSAoZGF0ZS55ZWFyKCkgJSAxMCksIFlFQVIpLFxuICAgICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnREYXRlcyhkYXRlczogRGF5anNbXSkge1xuICByZXR1cm4gWy4uLihkYXRlcyB8fCBbXSldLnNvcnQoKGEsIGIpID0+XG4gICAgYS5pc0JlZm9yZShiKSA/IC0xIDogYS5pc1NhbWUoYikgPyAwIDogMSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5hdlJhbmdlQnlUeXBlKHR5cGU6IERhdGVQaWNrZXJUeXBlKSB7XG4gIHJldHVybiB7XG4gICAgW0RhdGVQaWNrZXJUeXBlLkRheV06IERhdGVOYXZSYW5nZS5Nb250aCxcbiAgICBbRGF0ZVBpY2tlclR5cGUuTW9udGhdOiBEYXRlTmF2UmFuZ2UuWWVhcixcbiAgICBbRGF0ZVBpY2tlclR5cGUuWWVhcl06IERhdGVOYXZSYW5nZS5EZWNhZGUsXG4gIH1bdHlwZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlQnlOYXZSYW5nZShuYXZSYW5nZTogRGF0ZU5hdlJhbmdlKSB7XG4gIHJldHVybiB7XG4gICAgW0RhdGVOYXZSYW5nZS5Nb250aF06IERhdGVQaWNrZXJUeXBlLkRheSxcbiAgICBbRGF0ZU5hdlJhbmdlLlllYXJdOiBEYXRlUGlja2VyVHlwZS5Nb250aCxcbiAgICBbRGF0ZU5hdlJhbmdlLkRlY2FkZV06IERhdGVQaWNrZXJUeXBlLlllYXIsXG4gIH1bbmF2UmFuZ2VdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZVBpY2tlck1vZGVsKGRhdGU6IERheWpzKTogVGltZVBpY2tlck1vZGVsIHtcbiAgcmV0dXJuIGRhdGVcbiAgICA/IHtcbiAgICAgICAgc2Vjb25kOiBkYXRlLnNlY29uZCgpLFxuICAgICAgICBtaW51dGU6IGRhdGUubWludXRlKCksXG4gICAgICAgIGhvdXI6IGRhdGUuaG91cigpLFxuICAgICAgfVxuICAgIDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZURhdGVCeVRpbWVNb2RlbChkYXRlOiBEYXlqcywgdGltZTogVGltZVBpY2tlck1vZGVsKSB7XG4gIHJldHVybiB0aW1lXG4gICAgPyBkYXRlXG4gICAgICAgIC5zZXQoJ2hvdXInLCB0aW1lLmhvdXIgfHwgMClcbiAgICAgICAgLnNldCgnbWludXRlJywgdGltZS5taW51dGUgfHwgMClcbiAgICAgICAgLnNldCgnc2Vjb25kJywgdGltZS5zZWNvbmQgfHwgMClcbiAgICA6IGRhdGU7XG59XG5cbmV4cG9ydCBjb25zdCBjb21wb3NlRGlzYWJsZWREYXRlRm4gPVxuICAoLi4uZm5zOiBEaXNhYmxlZERhdGVGbltdKSA9PlxuICAoZGF0ZTogRGF5anMsIG5hdlJhbmdlOiBEYXRlTmF2UmFuZ2UpID0+XG4gICAgIWZucy5maWx0ZXIoaSA9PiAhIWkpLmV2ZXJ5KGZuID0+ICFmbihkYXRlLCBuYXZSYW5nZSkpO1xuXG5leHBvcnQgZnVuY3Rpb24gbWluRGF0ZShhOiBEYXlqcywgYjogRGF5anMsIHVuaXQ6IFVuaXRUeXBlID0gJ2RhdGUnKSB7XG4gIHJldHVybiBhID8gKGIgPyAoYS5pc0JlZm9yZShiLCB1bml0KSA/IGEgOiBiKSA6IGEpIDogYjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heERhdGUoYTogRGF5anMsIGI6IERheWpzLCB1bml0OiBVbml0VHlwZSA9ICdkYXRlJykge1xuICByZXR1cm4gYSA/IChiID8gKGEuaXNBZnRlcihiLCB1bml0KSA/IGEgOiBiKSA6IGEpIDogYjtcbn1cbiJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9jYWxlbmRhci91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxZQUFZLEVBQWtCLE1BQU0scUJBQXFCLENBQUM7QUFFbkUsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsR0FBRyxFQUNILHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLEtBQUssRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsb0JBQW9CLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE1BQU0sT0FBTyxRQUFRO0lBT25CLFlBQW1CLEtBQVksRUFBUyxLQUFzQjtRQUEzQyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7SUFBRyxDQUFDO0NBQ25FO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxJQUFXLEVBQ1gsUUFBc0IsRUFDdEIsWUFBb0I7SUFFcEIsSUFBSSxTQUFnQixDQUFDO0lBQ3JCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsUUFBUSxRQUFRLEVBQUU7UUFDaEIsS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDM0M7WUFDRCxNQUFNLEdBQUcsc0JBQXNCLEdBQUcsbUJBQW1CLENBQUM7WUFF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QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsQ0FBUSxFQUFFLENBQVEsRUFBRSxPQUFpQixNQUFNO0lBQ2pFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF5anMsIFVuaXRUeXBlIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyBUaW1lUGlja2VyTW9kZWwgfSBmcm9tICcuLi8uLi90aW1lLXBpY2tlci90aW1lLXBpY2tlci50eXBlJztcbmltcG9ydCB7IERhdGVOYXZSYW5nZSwgRGlzYWJsZWREYXRlRm4gfSBmcm9tICcuLi9kYXRlLXBpY2tlci50eXBlJztcblxuaW1wb3J0IHtcbiAgREFURV9OQVZfUkFOR0VTLFxuICBEQVRFX1RZUEVTLFxuICBEQVksXG4gIERBWV9QQU5FTF9DT0xVTU5fQ09VTlQsXG4gIERBWV9QQU5FTF9ST1dfQ09VTlQsXG4gIERhdGVQaWNrZXJUeXBlLFxuICBNT05USCxcbiAgTU9OVEhfUEFORUxfQ09MVU1OX0NPVU5ULFxuICBNT05USF9QQU5FTF9ST1dfQ09VTlQsXG4gIFlFQVIsXG4gIFlFQVJfUEFORUxfQ09MVU1OX0NPVU5ULFxuICBZRUFSX1BBTkVMX1JPV19DT1VOVCxcbn0gZnJvbSAnLi9jb25zdGFudCc7XG5cbmV4cG9ydCBjbGFzcyBEYXRlQ2VsbCB7XG4gIGlzQmFja2dyb3VuZD86IGJvb2xlYW47IC8vIOmdouadv+S4remdnuacrOaciOaXpeacn1xuICBpblJhbmdlPzogYm9vbGVhbjsgLy8g5Zyo6IyD5Zu057uE5Lu255qE6IyD5Zu05YaFXG4gIGlzUmFuZ2VTdGFydD86IGJvb2xlYW47IC8vIOiMg+WbtOe7hOS7tueahOiMg+WbtOW8gOWni+aXpeacn1xuICBpc1JhbmdlRW5kPzogYm9vbGVhbjsgLy8g6IyD5Zu057uE5Lu255qE6IyD5Zu057uT5p2f5pel5pyfXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWx1ZTogRGF5anMsIHB1YmxpYyBsYWJlbDogc3RyaW5nIHwgbnVtYmVyKSB7fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVBhbmVsSXRlcmFibGUoXG4gIGRhdGU6IERheWpzLFxuICBuYXZSYW5nZTogRGF0ZU5hdlJhbmdlLFxuICB3ZWVrU3RhcnREYXk6IG51bWJlcixcbik6IEl0ZXJhYmxlPERheWpzPiAmIEl0ZXJhdG9yPERheWpzPiB7XG4gIGxldCBmaXJzdERhdGE6IERheWpzO1xuICBsZXQgY291bnRzID0gMDtcbiAgZGF0ZSA9IGRhdGUuY2xvbmUoKTtcbiAgc3dpdGNoIChuYXZSYW5nZSkge1xuICAgIGNhc2UgRGF0ZU5hdlJhbmdlLk1vbnRoOiB7XG4gICAgICBmaXJzdERhdGEgPSBkYXRlLmRhdGUoLTEpLmRheSh3ZWVrU3RhcnREYXkpO1xuICAgICAgaWYgKGZpcnN0RGF0YS5pc0FmdGVyKGRhdGUpKSB7XG4gICAgICAgIGZpcnN0RGF0YSA9IGZpcnN0RGF0YS5zdWJ0cmFjdCgxLCAnd2VlaycpO1xuICAgICAgfVxuICAgICAgY291bnRzID0gREFZX1BBTkVMX0NPTFVNTl9DT1VOVCAqIERBWV9QQU5FTF9ST1dfQ09VTlQ7XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIERhdGVOYXZSYW5nZS5ZZWFyOiB7XG4gICAgICBmaXJzdERhdGEgPSBkYXRlLm1vbnRoKDApO1xuICAgICAgY291bnRzID0gTU9OVEhfUEFORUxfQ09MVU1OX0NPVU5UICogTU9OVEhfUEFORUxfUk9XX0NPVU5UO1xuXG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBEYXRlTmF2UmFuZ2UuRGVjYWRlOiB7XG4gICAgICBmaXJzdERhdGEgPSBkYXRlLnN1YnRyYWN0KDEsIFlFQVIpO1xuICAgICAgY291bnRzID0gWUVBUl9QQU5FTF9DT0xVTU5fQ09VTlQgKiBZRUFSX1BBTkVMX1JPV19DT1VOVDtcblxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIC8vIE5vIGRlZmF1bHRcbiAgfVxuICBsZXQgaSA9IDA7XG4gIHJldHVybiB7XG4gICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIG5leHQ6ICgpID0+IHtcbiAgICAgIGlmIChpIDwgY291bnRzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IGZpcnN0RGF0YS5hZGQoXG4gICAgICAgICAgICBpKyssXG4gICAgICAgICAgICBuYXZSYW5nZSA9PT0gRGF0ZU5hdlJhbmdlLk1vbnRoXG4gICAgICAgICAgICAgID8gREFZXG4gICAgICAgICAgICAgIDogbmF2UmFuZ2UgPT09IERhdGVOYXZSYW5nZS5ZZWFyXG4gICAgICAgICAgICAgID8gTU9OVEhcbiAgICAgICAgICAgICAgOiBZRUFSLFxuICAgICAgICAgICksXG4gICAgICAgICAgZG9uZTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb25lOiB0cnVlLFxuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGUodHlwZTogRGF0ZU5hdlJhbmdlLCBkYXRlVmFsdWU6IERheWpzLCBkYXRlOiBEYXlqcykge1xuICBpZiAoIWRhdGVWYWx1ZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGxhYmVsID1cbiAgICB0eXBlID09PSBEYXRlTmF2UmFuZ2UuRGVjYWRlXG4gICAgICA/IGRhdGVWYWx1ZS55ZWFyKClcbiAgICAgIDogdHlwZSA9PT0gRGF0ZU5hdlJhbmdlLlllYXJcbiAgICAgID8gZGF0ZVZhbHVlLm1vbnRoKCkgKyAxXG4gICAgICA6IGRhdGVWYWx1ZS5kYXRlKCk7XG4gIGNvbnN0IGNlbGwgPSBuZXcgRGF0ZUNlbGwoZGF0ZVZhbHVlLCBsYWJlbCk7XG4gIGlmICh0eXBlID09PSBEYXRlTmF2UmFuZ2UuTW9udGggJiYgZGF0ZS5tb250aCgpICE9PSBkYXRlVmFsdWUubW9udGgoKSkge1xuICAgIGNlbGwuaXNCYWNrZ3JvdW5kID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gY2VsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5leHREYXRlUGlja2VyVHlwZShcbiAgY3VycmVudDogRGF0ZVBpY2tlclR5cGUsXG4gIGd1YXJkPzogRGF0ZVBpY2tlclR5cGUsXG4pIHtcbiAgY29uc3QgZ3VhcmRJbmRleCA9IGd1YXJkID8gREFURV9UWVBFUy5pbmRleE9mKGd1YXJkKSA6IERBVEVfVFlQRVMubGVuZ3RoIC0gMTtcbiAgY29uc3QgY3VycmVudEluZGV4ID0gREFURV9UWVBFUy5pbmRleE9mKGN1cnJlbnQpO1xuICBpZiAoY3VycmVudEluZGV4IDwgZ3VhcmRJbmRleCkge1xuICAgIHJldHVybiBEQVRFX1RZUEVTW2N1cnJlbnRJbmRleCArIDFdO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbmV4dE5hdlJhbmdlVHlwZShjdXJyZW50OiBEYXRlTmF2UmFuZ2UsIGd1YXJkPzogRGF0ZU5hdlJhbmdlKSB7XG4gIGNvbnN0IGd1YXJkSW5kZXggPSBndWFyZFxuICAgID8gREFURV9OQVZfUkFOR0VTLmluZGV4T2YoZ3VhcmQpXG4gICAgOiBEQVRFX05BVl9SQU5HRVMubGVuZ3RoIC0gMTtcbiAgY29uc3QgY3VycmVudEluZGV4ID0gREFURV9OQVZfUkFOR0VTLmluZGV4T2YoY3VycmVudCk7XG4gIGlmIChjdXJyZW50SW5kZXggPCBndWFyZEluZGV4KSB7XG4gICAgcmV0dXJuIERBVEVfTkFWX1JBTkdFU1tjdXJyZW50SW5kZXggKyAxXTtcbiAgfVxuICByZXR1cm4gY3VycmVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZURhdGUoXG4gIHNvdXJjZVZhbHVlOiBEYXlqcyxcbiAgbmV3VmFsdWU6IERheWpzLFxuICB0eXBlOiBEYXRlUGlja2VyVHlwZSxcbikge1xuICBjb25zdCB1cGRhdGVUeXBlcyA9IERBVEVfVFlQRVMuc2xpY2UoMCwgREFURV9UWVBFUy5pbmRleE9mKHR5cGUpICsgMSk7XG4gIHJldHVybiB1cGRhdGVUeXBlcy5yZWR1Y2UoXG4gICAgKGFjYywgY3VycikgPT4gYWNjLnNldChjdXJyLCBuZXdWYWx1ZS5nZXQoY3VycikpLFxuICAgIHNvdXJjZVZhbHVlLmNsb25lKCksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjUmFuZ2VWYWx1ZSh0eXBlOiBEYXRlTmF2UmFuZ2UsIGRhdGU6IERheWpzKSB7XG4gIGRhdGUgPSBkYXRlLmNsb25lKCk7XG4gIHJldHVybiBbRGF0ZU5hdlJhbmdlLk1vbnRoLCBEYXRlUGlja2VyVHlwZS5ZZWFyXS5pbmNsdWRlcyh0eXBlKVxuICAgID8ge1xuICAgICAgICBzdGFydDogZGF0ZSxcbiAgICAgIH1cbiAgICA6IHtcbiAgICAgICAgc3RhcnQ6IGRhdGUuc3VidHJhY3QoZGF0ZS55ZWFyKCkgJSAxMCwgWUVBUiksXG4gICAgICAgIGVuZDogZGF0ZS5hZGQoOSAtIChkYXRlLnllYXIoKSAlIDEwKSwgWUVBUiksXG4gICAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydERhdGVzKGRhdGVzOiBEYXlqc1tdKSB7XG4gIHJldHVybiBbLi4uKGRhdGVzIHx8IFtdKV0uc29ydCgoYSwgYikgPT5cbiAgICBhLmlzQmVmb3JlKGIpID8gLTEgOiBhLmlzU2FtZShiKSA/IDAgOiAxLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmF2UmFuZ2VCeVR5cGUodHlwZTogRGF0ZVBpY2tlclR5cGUpIHtcbiAgcmV0dXJuIHtcbiAgICBbRGF0ZVBpY2tlclR5cGUuRGF5XTogRGF0ZU5hdlJhbmdlLk1vbnRoLFxuICAgIFtEYXRlUGlja2VyVHlwZS5Nb250aF06IERhdGVOYXZSYW5nZS5ZZWFyLFxuICAgIFtEYXRlUGlja2VyVHlwZS5ZZWFyXTogRGF0ZU5hdlJhbmdlLkRlY2FkZSxcbiAgfVt0eXBlXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVCeU5hdlJhbmdlKG5hdlJhbmdlOiBEYXRlTmF2UmFuZ2UpIHtcbiAgcmV0dXJuIHtcbiAgICBbRGF0ZU5hdlJhbmdlLk1vbnRoXTogRGF0ZVBpY2tlclR5cGUuRGF5LFxuICAgIFtEYXRlTmF2UmFuZ2UuWWVhcl06IERhdGVQaWNrZXJUeXBlLk1vbnRoLFxuICAgIFtEYXRlTmF2UmFuZ2UuRGVjYWRlXTogRGF0ZVBpY2tlclR5cGUuWWVhcixcbiAgfVtuYXZSYW5nZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaW1lUGlja2VyTW9kZWwoZGF0ZTogRGF5anMpOiBUaW1lUGlja2VyTW9kZWwge1xuICByZXR1cm4gZGF0ZVxuICAgID8ge1xuICAgICAgICBzZWNvbmQ6IGRhdGUuc2Vjb25kKCksXG4gICAgICAgIG1pbnV0ZTogZGF0ZS5taW51dGUoKSxcbiAgICAgICAgaG91cjogZGF0ZS5ob3VyKCksXG4gICAgICB9XG4gICAgOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlRGF0ZUJ5VGltZU1vZGVsKGRhdGU6IERheWpzLCB0aW1lOiBUaW1lUGlja2VyTW9kZWwpIHtcbiAgcmV0dXJuIHRpbWVcbiAgICA/IGRhdGVcbiAgICAgICAgLnNldCgnaG91cicsIHRpbWUuaG91ciB8fCAwKVxuICAgICAgICAuc2V0KCdtaW51dGUnLCB0aW1lLm1pbnV0ZSB8fCAwKVxuICAgICAgICAuc2V0KCdzZWNvbmQnLCB0aW1lLnNlY29uZCB8fCAwKVxuICAgIDogZGF0ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbXBvc2VEaXNhYmxlZERhdGVGbiA9XG4gICguLi5mbnM6IERpc2FibGVkRGF0ZUZuW10pID0+XG4gIChkYXRlOiBEYXlqcywgbmF2UmFuZ2U6IERhdGVOYXZSYW5nZSkgPT5cbiAgICAhZm5zLmZpbHRlcihpID0+ICEhaSkuZXZlcnkoZm4gPT4gIWZuKGRhdGUsIG5hdlJhbmdlKSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5EYXRlKGE6IERheWpzLCBiOiBEYXlqcywgdW5pdDogVW5pdFR5cGUgPSAnZGF0ZScpIHtcbiAgcmV0dXJuIGEgPyAoYiA/IChhLmlzQmVmb3JlKGIsIHVuaXQpID8gYSA6IGIpIDogYSkgOiBiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF4RGF0ZShhOiBEYXlqcywgYjogRGF5anMsIHVuaXQ6IFVuaXRUeXBlID0gJ2RhdGUnKSB7XG4gIHJldHVybiBhID8gKGIgPyAoYS5pc0FmdGVyKGIsIHVuaXQpID8gYSA6IGIpIDogYSkgOiBiO1xufVxuIl19
|