@taiga-ui/legacy 4.9.0 → 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/classes/control.d.ts +1 -1
- package/components/combo-box/combo-box.component.d.ts +2 -1
- package/components/input-phone/input-phone.component.d.ts +2 -1
- package/components/input-phone-international/input-phone-international.component.d.ts +2 -1
- package/components/input-tag/input-tag.component.d.ts +2 -1
- package/components/input-time/input-time.component.d.ts +2 -1
- package/components/multi-select/multi-select.component.d.ts +6 -1
- package/components/select/select.component.d.ts +2 -1
- package/esm2022/classes/control.mjs +5 -5
- package/esm2022/components/arrow/arrow.component.mjs +3 -4
- package/esm2022/components/color-selector/color-edit/color-edit.component.mjs +3 -5
- package/esm2022/components/color-selector/color-picker/color-picker.component.mjs +3 -5
- package/esm2022/components/color-selector/color-selector.component.mjs +3 -5
- package/esm2022/components/color-selector/flat-picker/flat-picker.component.mjs +3 -5
- package/esm2022/components/color-selector/linear-multi-picker/linear-multi-picker.component.mjs +2 -3
- package/esm2022/components/color-selector/linear-picker/linear-picker.component.mjs +3 -5
- package/esm2022/components/color-selector/palette/palette.component.mjs +3 -5
- package/esm2022/components/combo-box/combo-box.component.mjs +11 -13
- package/esm2022/components/input/input.component.mjs +6 -8
- package/esm2022/components/input-color/input-color.component.mjs +3 -4
- package/esm2022/components/input-copy/input-copy.component.mjs +4 -5
- package/esm2022/components/input-date/input-date.component.mjs +4 -5
- package/esm2022/components/input-date-multi/input-date-multi.component.mjs +4 -5
- package/esm2022/components/input-date-range/input-date-range.component.mjs +4 -5
- package/esm2022/components/input-date-time/input-date-time.component.mjs +4 -5
- package/esm2022/components/input-date-time/input-date-time.directive.mjs +2 -2
- package/esm2022/components/input-month/input-month.component.mjs +4 -5
- package/esm2022/components/input-month-range/input-month-range.component.mjs +4 -5
- package/esm2022/components/input-number/input-number.component.mjs +4 -5
- package/esm2022/components/input-password/input-password.component.mjs +4 -5
- package/esm2022/components/input-phone/input-phone.component.mjs +10 -12
- package/esm2022/components/input-phone-international/input-phone-international.component.mjs +11 -12
- package/esm2022/components/input-range/input-range.component.mjs +4 -5
- package/esm2022/components/input-slider/input-slider.component.mjs +4 -5
- package/esm2022/components/input-tag/input-tag.component.mjs +22 -20
- package/esm2022/components/input-time/input-time.component.mjs +14 -15
- package/esm2022/components/input-time/native-time/native-time.component.mjs +2 -3
- package/esm2022/components/input-year/input-year.component.mjs +4 -5
- package/esm2022/components/multi-select/multi-select-group/multi-select-group.component.mjs +2 -3
- package/esm2022/components/multi-select/multi-select.component.mjs +42 -15
- package/esm2022/components/multi-select/native-multi-select/native-multi-select-group.component.mjs +2 -3
- package/esm2022/components/multi-select/native-multi-select/native-multi-select.component.mjs +2 -3
- package/esm2022/components/multi-select-option/multi-select-option.component.mjs +3 -5
- package/esm2022/components/primitive-textfield/primitive-textfield.component.mjs +4 -5
- package/esm2022/components/primitive-textfield/textfield/textfield.component.mjs +2 -3
- package/esm2022/components/primitive-textfield/value-decoration/value-decoration.component.mjs +2 -3
- package/esm2022/components/select/native-select/native-select-group.component.mjs +2 -3
- package/esm2022/components/select/native-select/native-select.component.mjs +2 -3
- package/esm2022/components/select/select.component.mjs +11 -13
- package/esm2022/components/select-option/select-option.component.mjs +3 -5
- package/esm2022/components/sheet/components/sheet/sheet.component.mjs +2 -3
- package/esm2022/components/sheet/components/sheet-bar/sheet-bar.component.mjs +3 -5
- package/esm2022/components/sheet/components/sheet-heading/sheet-heading.component.mjs +3 -5
- package/esm2022/components/sheet/components/sheets-host/sheets-host.component.mjs +3 -5
- package/esm2022/components/svg/svg.component.mjs +3 -5
- package/esm2022/components/table-bar/table-bar.component.mjs +2 -3
- package/esm2022/components/table-bar/table-bars-host.component.mjs +3 -5
- package/esm2022/components/tag/tag.component.mjs +4 -5
- package/esm2022/components/textarea/textarea.component.mjs +4 -5
- package/esm2022/components/tooltip/tooltip.component.mjs +3 -4
- package/esm2022/tokens/is-apple.mjs +3 -3
- package/esm2022/utils/is-apple.mjs +3 -6
- package/fesm2022/taiga-ui-legacy-classes.mjs +4 -4
- package/fesm2022/taiga-ui-legacy-classes.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs +2 -3
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-color-selector.mjs +13 -26
- package/fesm2022/taiga-ui-legacy-components-color-selector.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs +13 -15
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-color.mjs +2 -3
- package/fesm2022/taiga-ui-legacy-components-input-color.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-copy.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-copy.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +4 -5
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-month.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-password.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-password.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs +10 -11
- package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs +12 -14
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +23 -21
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs +18 -21
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-year.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-input-year.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input.mjs +5 -7
- package/fesm2022/taiga-ui-legacy-components-input.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +2 -4
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +51 -27
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +5 -8
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs +2 -4
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-select.mjs +10 -14
- package/fesm2022/taiga-ui-legacy-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-sheet.mjs +7 -14
- package/fesm2022/taiga-ui-legacy-components-sheet.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-svg.mjs +2 -4
- package/fesm2022/taiga-ui-legacy-components-svg.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-table-bar.mjs +3 -6
- package/fesm2022/taiga-ui-legacy-components-table-bar.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-tag.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs +3 -4
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +2 -3
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-tokens.mjs +2 -2
- package/fesm2022/taiga-ui-legacy-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-utils.mjs +2 -5
- package/fesm2022/taiga-ui-legacy-utils.mjs.map +1 -1
- package/package.json +25 -25
- package/styles/mixins/textfield.less +5 -1
- package/utils/icons-path-factory.d.ts +1 -1
- package/utils/is-apple.d.ts +2 -1
|
@@ -153,13 +153,13 @@ class TuiInputDateMultiComponent extends AbstractTuiMultipleControl {
|
|
|
153
153
|
this.updateFocused(focused);
|
|
154
154
|
}
|
|
155
155
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputDateMultiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
156
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputDateMultiComponent, selector: "tui-input-date[multiple]", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", defaultActiveYearMonth: "defaultActiveYearMonth", inputHidden: "inputHidden", editable: "editable", search: "search", placeholder: "placeholder", rows: "rows", tagValidator: "tagValidator" }, host: {
|
|
156
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputDateMultiComponent, selector: "tui-input-date[multiple]", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", defaultActiveYearMonth: "defaultActiveYearMonth", inputHidden: "inputHidden", editable: "editable", search: "search", placeholder: "placeholder", rows: "rows", tagValidator: "tagValidator" }, host: { listeners: { "click": "onClick()" }, properties: { "class._editable": "editable", "attr.data-size": "size" } }, providers: [
|
|
157
157
|
tuiAsFocusableItemAccessor(TuiInputDateMultiComponent),
|
|
158
158
|
tuiAsControl(TuiInputDateMultiComponent),
|
|
159
159
|
tuiAsLegacyControl(TuiInputDateMultiComponent),
|
|
160
160
|
tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
|
|
161
161
|
TUI_MOBILE_CALENDAR_PROVIDER,
|
|
162
|
-
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "inputTag", first: true, predicate: TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-input-tag\n #inputTag\n class=\"t-input\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"editable\"\n [inputHidden]=\"inputHidden\"\n [maskito]=\"maskitoOptions\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"value | tuiMapper: valueMapper\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n (keydown.enter)=\"onEnter(inputTag.search || '')\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-input-tag>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.silent.prevent)=\"(0)\"\n />\n <div\n class=\"t-button\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"done()\"\n >\n {{ doneWord$ | async }}\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small{border:.25rem
|
|
162
|
+
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "inputTag", first: true, predicate: TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-input-tag\n #inputTag\n class=\"t-input\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"editable\"\n [inputHidden]=\"inputHidden\"\n [maskito]=\"maskitoOptions\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"value | tuiMapper: valueMapper\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n (keydown.enter)=\"onEnter(inputTag.search || '')\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-input-tag>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.silent.prevent)=\"(0)\"\n />\n <div\n class=\"t-button\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"done()\"\n >\n {{ doneWord$ | async }}\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small{border-width:.25rem}.t-button{display:flex;block-size:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-border-normal)}.t-button button{flex:1;text-align:center}.t-native-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], dependencies: [{ kind: "directive", type: i1.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i3.TuiCalendar, selector: "tui-calendar", inputs: ["month", "disabledItemHandler", "min", "max", "minViewedMonth", "maxViewedMonth", "hoveredItem", "showAdjacent", "markerHandler", "value", "initialView"], outputs: ["dayClick", "monthChange", "hoveredItemChange"] }, { kind: "directive", type: i4.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "component", type: i5.TuiInputTagComponent, selector: "tui-input-tag", inputs: ["separator", "search", "editable", "tagValidator", "rows", "inputHidden", "uniqueTags", "autoColor", "maxLength", "placeholder", "removable", "pseudoOpen", "disabledItemHandler", "pseudoFocused"], outputs: ["searchChange"] }, { kind: "directive", type: i6.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i6.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i8.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { kind: "directive", type: i8.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "component", type: i9.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "directive", type: i10.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TuiMapperPipe, name: "tuiMapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
163
163
|
}
|
|
164
164
|
export { TuiInputDateMultiComponent };
|
|
165
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputDateMultiComponent, decorators: [{
|
|
@@ -171,11 +171,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
171
171
|
tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
|
|
172
172
|
TUI_MOBILE_CALENDAR_PROVIDER,
|
|
173
173
|
], host: {
|
|
174
|
-
ngSkipHydration: 'true',
|
|
175
174
|
'[class._editable]': 'editable',
|
|
176
175
|
'[attr.data-size]': 'size',
|
|
177
176
|
'(click)': 'onClick()',
|
|
178
|
-
}, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-input-tag\n #inputTag\n class=\"t-input\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"editable\"\n [inputHidden]=\"inputHidden\"\n [maskito]=\"maskitoOptions\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"value | tuiMapper: valueMapper\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n (keydown.enter)=\"onEnter(inputTag.search || '')\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-input-tag>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.silent.prevent)=\"(0)\"\n />\n <div\n class=\"t-button\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"done()\"\n >\n {{ doneWord$ | async }}\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small{border:.25rem
|
|
177
|
+
}, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-input-tag\n #inputTag\n class=\"t-input\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"editable\"\n [inputHidden]=\"inputHidden\"\n [maskito]=\"maskitoOptions\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"value | tuiMapper: valueMapper\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n (keydown.enter)=\"onEnter(inputTag.search || '')\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-input-tag>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.silent.prevent)=\"(0)\"\n />\n <div\n class=\"t-button\"\n (mousedown.silent.prevent)=\"(0)\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"done()\"\n >\n {{ doneWord$ | async }}\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small{border-width:.25rem}.t-button{display:flex;block-size:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-border-normal)}.t-button button{flex:1;text-align:center}.t-native-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"] }]
|
|
179
178
|
}], propDecorators: { textfield: [{
|
|
180
179
|
type: ViewChild,
|
|
181
180
|
args: [TuiPrimitiveTextfieldComponent]
|
|
@@ -205,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
205
204
|
}], tagValidator: [{
|
|
206
205
|
type: Input
|
|
207
206
|
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1tdWx0aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1kYXRlLW11bHRpL2lucHV0LWRhdGUtbXVsdGkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1tdWx0aS9pbnB1dC1kYXRlLW11bHRpLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXpELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRixPQUFPLEVBQUMsZUFBZSxFQUFFLHVCQUF1QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHL0UsT0FBTyxFQUNILGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLDRCQUE0QixH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c0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFtQkMsWUFBWTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB0eXBlIHtNYXNraXRvT3B0aW9uc30gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQge21hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcn0gZnJvbSAnQG1hc2tpdG8va2l0JztcbmltcG9ydCB0eXBlIHtUdWlWYWx1ZVRyYW5zZm9ybWVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHt0dWlBc0NvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9GQUxTRV9IQU5ETEVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge3R1aURhdGVDbGFtcCwgVHVpRGF5LCBUdWlNb250aH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHt0dWlXYXRjaH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtUdWlCb29sZWFuSGFuZGxlciwgVHVpTWFwcGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7Y2hhbmdlRGF0ZVNlcGFyYXRvciwgdHVpSXNTdHJpbmd9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQgdHlwZSB7VHVpTWFya2VySGFuZGxlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9jYWxlbmRhcic7XG5pbXBvcnQge1RVSV9EQVRFX0ZPUk1BVCwgVFVJX0RFRkFVTFRfREFURV9GT1JNQVR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7VHVpSW5wdXREYXRlT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICBUVUlfRE9ORV9XT1JELFxuICAgIFRVSV9JTlBVVF9EQVRFX09QVElPTlMsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSX1BST1ZJREVSLFxuICAgIHR1aURhdGVTdHJlYW1XaXRoVHJhbnNmb3JtZXIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7dHVpVG9nZ2xlRGF5fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlNdWx0aXBsZUNvbnRyb2wsXG4gICAgdHVpQXNDb250cm9sIGFzIHR1aUFzTGVnYWN5Q29udHJvbCxcbiAgICBUdWlTdHJpbmdpZmlhYmxlSXRlbSxcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jbGFzc2VzJztcbmltcG9ydCB7VHVpSW5wdXRUYWdDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC10YWcnO1xuaW1wb3J0IHtUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY29tcG9uZW50cy9wcmltaXRpdmUtdGV4dGZpZWxkJztcbmltcG9ydCB7VFVJX1RFWFRGSUVMRF9TSVpFfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHR5cGUge1R1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS90b2tlbnMnO1xuaW1wb3J0IHt0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS90b2tlbnMnO1xuaW1wb3J0IHR5cGUge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlW211bHRpcGxlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtbXVsdGkudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4uL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0RGF0ZU11bHRpQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0RGF0ZU11bHRpQ29tcG9uZW50IGFzIGFueSksXG4gICAgICAgIHR1aUFzTGVnYWN5Q29udHJvbChUdWlJbnB1dERhdGVNdWx0aUNvbXBvbmVudCksXG4gICAgICAgIHR1aURhdGVTdHJlYW1XaXRoVHJhbnNmb3JtZXIoVFVJX0RBVEVfVkFMVUVfVFJBTlNGT1JNRVIpLFxuICAgICAgICBUVUlfTU9CSUxFX0NBTEVOREFSX1BST1ZJREVSLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy5fZWRpdGFibGVdJzogJ2VkaXRhYmxlJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICcoY2xpY2spJzogJ29uQ2xpY2soKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlTXVsdGlDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTXVsdGlwbGVDb250cm9sPFR1aURheT5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlJbnB1dFRhZ0NvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0VGFnPzogVHVpSW5wdXRUYWdDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIG1vbnRoOiBUdWlNb250aCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXIgPSBpbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUiwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9JTlBVVF9EQVRFX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZSA9IGluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVUZXh0cyQgPSBpbmplY3QoVFVJX0RBVEVfVEVYVFMpO1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyID0gaW5qZWN0PFxuICAgICAgICBUdWlWYWx1ZVRyYW5zZm9ybWVyPHJlYWRvbmx5IFR1aURheVtdPlxuICAgID4oVFVJX0RBVEVfVkFMVUVfVFJBTlNGT1JNRVIsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgcHJvdGVjdGVkIG9wZW4gPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBkYXRlRm9ybWF0ID0gVFVJX0RFRkFVTFRfREFURV9GT1JNQVQ7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTW9iaWxlID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkb25lV29yZCQgPSBpbmplY3QoVFVJX0RPTkVfV09SRCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbGxlciQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZGF0ZVRleHRzJC5waXBlKFxuICAgICAgICBtYXAoKGRhdGVUZXh0cykgPT5cbiAgICAgICAgICAgIGNoYW5nZURhdGVTZXBhcmF0b3IoXG4gICAgICAgICAgICAgICAgZGF0ZVRleHRzW3RoaXMuZGF0ZUZvcm1hdC5tb2RlXSxcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQuc2VwYXJhdG9yLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVGb3JtYXQkID0gaW5qZWN0KFRVSV9EQVRFX0ZPUk1BVClcbiAgICAgICAgLnBpcGUodHVpV2F0Y2godGhpcy5jZHIpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZm9ybWF0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSBmb3JtYXQ7XG4gICAgICAgIH0pO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluOiBUdWlEYXkgfCBudWxsID0gdGhpcy5vcHRpb25zLm1pbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heDogVHVpRGF5IHwgbnVsbCA9IHRoaXMub3B0aW9ucy5tYXg7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gVFVJX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWZhdWx0QWN0aXZlWWVhck1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbnB1dEhpZGRlbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoOiBzdHJpbmcgfCBudWxsID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm93cyA9IDE7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWFza2l0b09wdGlvbnM6IE1hc2tpdG9PcHRpb25zID0gbWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yKHtcbiAgICAgICAgbW9kZTogJ2RkL21tL3l5eXknLFxuICAgICAgICBzZXBhcmF0b3I6ICcuJyxcbiAgICAgICAgbWluOiB0aGlzLm1pbj8udG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICAgICAgbWF4OiB0aGlzLm1heD8udG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICB9KTtcblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQ/LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFnVmFsaWRhdG9yOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gKHRhZzogVHVpRGF5IHwgc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHt5ZWFyLCBtb250aCwgZGF5fSA9IHR1aUlzU3RyaW5nKHRhZylcbiAgICAgICAgICAgID8gVHVpRGF5LnBhcnNlUmF3RGF0ZVN0cmluZyh0YWcpXG4gICAgICAgICAgICA6IHRhZztcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBUdWlEYXkoeWVhciwgbW9udGgsIGRheSk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChUdWlEYXkuaXNWYWxpZERheSh5ZWFyLCBtb250aCwgZGF5KSAmJlxuICAgICAgICAgICAgICAgIHRoaXMubWluPy5kYXlCZWZvcmUoZGF0ZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLm1heD8uZGF5QWZ0ZXIoZGF0ZSkpID8/XG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFNpemUuc2l6ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IG5hdGl2ZURyb3Bkb3duTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgJiYgIXRoaXMuZWRpdGFibGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZE1pbigpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW4gPz8gdGhpcy5vcHRpb25zLm1pbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkTWF4KCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heCA/PyB0aGlzLm9wdGlvbnMubWF4O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNhbGVuZGFySWNvbigpOiBUdWlJbnB1dERhdGVPcHRpb25zWydpY29uJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmljb247XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLm1vbnRoIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlW3RoaXMudmFsdWUubGVuZ3RoIC0gMV0gfHxcbiAgICAgICAgICAgIHR1aURhdGVDbGFtcCh0aGlzLmRlZmF1bHRBY3RpdmVZZWFyTW9udGgsIHRoaXMuY29tcHV0ZWRNaW4sIHRoaXMuY29tcHV0ZWRNYXgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSAmJiB0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uSWNvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSAmJiB0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkSXRlbUhhbmRsZXJXcmFwcGVyOiBUdWlNYXBwZXI8XG4gICAgICAgIFtUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+IHwgVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5Pl0sXG4gICAgICAgIFR1aUJvb2xlYW5IYW5kbGVyPFR1aVN0cmluZ2lmaWFibGVJdGVtPGFueT4gfCBzdHJpbmc+XG4gICAgPiA9IChoYW5kbGVyKSA9PiAoc3RyaW5naWZpYWJsZSkgPT5cbiAgICAgICAgdHVpSXNTdHJpbmcoc3RyaW5naWZpYWJsZSkgfHwgaGFuZGxlcihzdHJpbmdpZmlhYmxlLml0ZW0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZhbHVlTWFwcGVyOiBUdWlNYXBwZXI8XG4gICAgICAgIFtyZWFkb25seSBUdWlEYXlbXV0sXG4gICAgICAgIFJlYWRvbmx5QXJyYXk8VHVpU3RyaW5naWZpYWJsZUl0ZW08VHVpRGF5Pj5cbiAgICA+ID0gKHZhbHVlKSA9PlxuICAgICAgICB2YWx1ZS5tYXAoKGl0ZW0pID0+IG5ldyBUdWlTdHJpbmdpZmlhYmxlSXRlbShpdGVtLCAoaXRlbSkgPT4gU3RyaW5nKGl0ZW0pKSk7XG5cbiAgICBwcm90ZWN0ZWQgb25FbnRlcihzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGFnVmFsaWRhdG9yKHNlYXJjaCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB0dWlUb2dnbGVEYXkodGhpcy52YWx1ZSwgVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKHNlYXJjaCkpO1xuXG4gICAgICAgIGlmICh0aGlzLmlucHV0VGFnKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VGFnLnNlYXJjaCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kb25lKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVmFsdWVDaGFuZ2UodmFsdWU6IFJlYWRvbmx5QXJyYXk8VHVpU3RyaW5naWZpYWJsZUl0ZW08VHVpRGF5Pj4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZS5sZW5ndGggJiYgIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLm1hcCgoe2l0ZW19KSA9PiBpdGVtKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0dWlUb2dnbGVEYXkodGhpcy52YWx1ZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkb25lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIHR1aURyb3Bkb3duT3Blbk1vbml0b3JcbiAgICBjbGFzcz1cInQtaG9zdGVkXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25cIlxuICAgIFt0dWlEcm9wZG93bkVuYWJsZWRdPVwiaW50ZXJhY3RpdmVcIlxuICAgIFt0dWlEcm9wZG93bk9wZW5dPVwib3BlbiAmJiBpbnRlcmFjdGl2ZVwiXG4gICAgKHR1aURyb3Bkb3duT3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4+XG4gICAgPHR1aS1pbnB1dC10YWdcbiAgICAgICAgI2lucHV0VGFnXG4gICAgICAgIGNsYXNzPVwidC1pbnB1dFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtkaXNhYmxlZEl0ZW1IYW5kbGVyXT1cImRpc2FibGVkSXRlbUhhbmRsZXIgfCB0dWlNYXBwZXI6IGRpc2FibGVkSXRlbUhhbmRsZXJXcmFwcGVyXCJcbiAgICAgICAgW2VkaXRhYmxlXT1cImVkaXRhYmxlXCJcbiAgICAgICAgW2lucHV0SGlkZGVuXT1cImlucHV0SGlkZGVuXCJcbiAgICAgICAgW21hc2tpdG9dPVwibWFza2l0b09wdGlvbnNcIlxuICAgICAgICBbbmF0aXZlSWRdPVwibmF0aXZlSWRcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZSB8IHR1aU1hcHBlcjogdmFsdWVNYXBwZXJcIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3BzZXVkb0ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3JlbW92YWJsZV09XCIhbmF0aXZlRHJvcGRvd25Nb2RlXCJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgIFt0YWdWYWxpZGF0b3JdPVwidGFnVmFsaWRhdG9yIHwgdHVpTWFwcGVyOiBkaXNhYmxlZEl0ZW1IYW5kbGVyV3JhcHBlclwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRGaWxsZXJdPVwiKGZpbGxlciQgfCBhc3luYykgfHwgJydcIlxuICAgICAgICBbdHVpVGV4dGZpZWxkSWNvbl09XCJjYWxlbmRhckljb24gJiYgaWNvbkNvbnRlbnRcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyKGlucHV0VGFnLnNlYXJjaCB8fCAnJylcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICAvPlxuICAgIDwvdHVpLWlucHV0LXRhZz5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkNvbnRlbnQ+XG4gICAgICAgIDx0dWktaWNvblxuICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNhbGVuZGFySWNvbiBhcyBzcmM7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XCJcbiAgICAgICAgICAgIHR1aUFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25fc21hbGxdPVwic2l6ZSA9PT0gJ3MnXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25dPVwiIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ljb25dPVwic3JjLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKClcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICAgICAgICA8dHVpLWNhbGVuZGFyXG4gICAgICAgICAgICBbZGlzYWJsZWRJdGVtSGFuZGxlcl09XCJkaXNhYmxlZEl0ZW1IYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXJrZXJIYW5kbGVyXT1cIm1hcmtlckhhbmRsZXJcIlxuICAgICAgICAgICAgW21heF09XCJjb21wdXRlZE1heFwiXG4gICAgICAgICAgICBbbWluXT1cImNvbXB1dGVkTWluXCJcbiAgICAgICAgICAgIFttb250aF09XCJjb21wdXRlZEFjdGl2ZVllYXJNb250aFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgKGRheUNsaWNrKT1cIm9uRGF5Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAobW9udGhDaGFuZ2UpPVwib25Nb250aENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24uc2lsZW50LnByZXZlbnQpPVwiKDApXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgICAgICAobW91c2Vkb3duLnNpbGVudC5wcmV2ZW50KT1cIigwKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvbmUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZG9uZVdvcmQkIHwgYXN5bmMgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1tdWx0aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1kYXRlLW11bHRpL2lucHV0LWRhdGUtbXVsdGkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1tdWx0aS9pbnB1dC1kYXRlLW11bHRpLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXpELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRixPQUFPLEVBQUMsZUFBZSxFQUFFLHVCQUF1QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHL0UsT0FBTyxFQUNILGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLDRCQUE0QixH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QyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBbUJDLFlBQVk7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgdHlwZSB7TWFza2l0b09wdGlvbnN9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHttYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3J9IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQgdHlwZSB7VHVpVmFsdWVUcmFuc2Zvcm1lcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7dHVpQXNDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfRkFMU0VfSEFORExFUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHt0dWlEYXRlQ2xhbXAsIFR1aURheSwgVHVpTW9udGh9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7dHVpV2F0Y2h9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpQm9vbGVhbkhhbmRsZXIsIFR1aU1hcHBlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge2NoYW5nZURhdGVTZXBhcmF0b3IsIHR1aUlzU3RyaW5nfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHR5cGUge1R1aU1hcmtlckhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHtUVUlfREFURV9GT1JNQVQsIFRVSV9ERUZBVUxUX0RBVEVfRk9STUFUfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHR5cGUge1R1aUlucHV0RGF0ZU9wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX0RBVEVfVkFMVUVfVFJBTlNGT1JNRVIsXG4gICAgVFVJX0RPTkVfV09SRCxcbiAgICBUVUlfSU5QVVRfREFURV9PUFRJT05TLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVIsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUl9QUk9WSURFUixcbiAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge3R1aVRvZ2dsZURheX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTXVsdGlwbGVDb250cm9sLFxuICAgIHR1aUFzQ29udHJvbCBhcyB0dWlBc0xlZ2FjeUNvbnRyb2wsXG4gICAgVHVpU3RyaW5naWZpYWJsZUl0ZW0sXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aUlucHV0VGFnQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtdGFnJztcbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NvbXBvbmVudHMvcHJpbWl0aXZlLXRleHRmaWVsZCc7XG5pbXBvcnQge1RVSV9URVhURklFTERfU0laRX0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9kaXJlY3RpdmVzJztcbmltcG9ydCB0eXBlIHtUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB7dHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZVttdWx0aXBsZV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLW11bHRpLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi9pbnB1dC1kYXRlL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dERhdGVNdWx0aUNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dERhdGVNdWx0aUNvbXBvbmVudCBhcyBhbnkpLFxuICAgICAgICB0dWlBc0xlZ2FjeUNvbnRyb2woVHVpSW5wdXREYXRlTXVsdGlDb21wb25lbnQpLFxuICAgICAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyKFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSKSxcbiAgICAgICAgVFVJX01PQklMRV9DQUxFTkRBUl9QUk9WSURFUixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5fZWRpdGFibGVdJzogJ2VkaXRhYmxlJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICcoY2xpY2spJzogJ29uQ2xpY2soKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlTXVsdGlDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTXVsdGlwbGVDb250cm9sPFR1aURheT5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlJbnB1dFRhZ0NvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0VGFnPzogVHVpSW5wdXRUYWdDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIG1vbnRoOiBUdWlNb250aCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXIgPSBpbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUiwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9JTlBVVF9EQVRFX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZSA9IGluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVUZXh0cyQgPSBpbmplY3QoVFVJX0RBVEVfVEVYVFMpO1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyID0gaW5qZWN0PFxuICAgICAgICBUdWlWYWx1ZVRyYW5zZm9ybWVyPHJlYWRvbmx5IFR1aURheVtdPlxuICAgID4oVFVJX0RBVEVfVkFMVUVfVFJBTlNGT1JNRVIsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgcHJvdGVjdGVkIG9wZW4gPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBkYXRlRm9ybWF0ID0gVFVJX0RFRkFVTFRfREFURV9GT1JNQVQ7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTW9iaWxlID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkb25lV29yZCQgPSBpbmplY3QoVFVJX0RPTkVfV09SRCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbGxlciQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZGF0ZVRleHRzJC5waXBlKFxuICAgICAgICBtYXAoKGRhdGVUZXh0cykgPT5cbiAgICAgICAgICAgIGNoYW5nZURhdGVTZXBhcmF0b3IoXG4gICAgICAgICAgICAgICAgZGF0ZVRleHRzW3RoaXMuZGF0ZUZvcm1hdC5tb2RlXSxcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQuc2VwYXJhdG9yLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVGb3JtYXQkID0gaW5qZWN0KFRVSV9EQVRFX0ZPUk1BVClcbiAgICAgICAgLnBpcGUodHVpV2F0Y2godGhpcy5jZHIpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZm9ybWF0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSBmb3JtYXQ7XG4gICAgICAgIH0pO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluOiBUdWlEYXkgfCBudWxsID0gdGhpcy5vcHRpb25zLm1pbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heDogVHVpRGF5IHwgbnVsbCA9IHRoaXMub3B0aW9ucy5tYXg7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gVFVJX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWZhdWx0QWN0aXZlWWVhck1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbnB1dEhpZGRlbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoOiBzdHJpbmcgfCBudWxsID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm93cyA9IDE7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWFza2l0b09wdGlvbnM6IE1hc2tpdG9PcHRpb25zID0gbWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yKHtcbiAgICAgICAgbW9kZTogJ2RkL21tL3l5eXknLFxuICAgICAgICBzZXBhcmF0b3I6ICcuJyxcbiAgICAgICAgbWluOiB0aGlzLm1pbj8udG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICAgICAgbWF4OiB0aGlzLm1heD8udG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICB9KTtcblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQ/LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFnVmFsaWRhdG9yOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gKHRhZzogVHVpRGF5IHwgc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHt5ZWFyLCBtb250aCwgZGF5fSA9IHR1aUlzU3RyaW5nKHRhZylcbiAgICAgICAgICAgID8gVHVpRGF5LnBhcnNlUmF3RGF0ZVN0cmluZyh0YWcpXG4gICAgICAgICAgICA6IHRhZztcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBUdWlEYXkoeWVhciwgbW9udGgsIGRheSk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChUdWlEYXkuaXNWYWxpZERheSh5ZWFyLCBtb250aCwgZGF5KSAmJlxuICAgICAgICAgICAgICAgIHRoaXMubWluPy5kYXlCZWZvcmUoZGF0ZSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLm1heD8uZGF5QWZ0ZXIoZGF0ZSkpID8/XG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFNpemUuc2l6ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IG5hdGl2ZURyb3Bkb3duTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgJiYgIXRoaXMuZWRpdGFibGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZE1pbigpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW4gPz8gdGhpcy5vcHRpb25zLm1pbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkTWF4KCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heCA/PyB0aGlzLm9wdGlvbnMubWF4O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNhbGVuZGFySWNvbigpOiBUdWlJbnB1dERhdGVPcHRpb25zWydpY29uJ10ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmljb247XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLm1vbnRoIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlW3RoaXMudmFsdWUubGVuZ3RoIC0gMV0gfHxcbiAgICAgICAgICAgIHR1aURhdGVDbGFtcCh0aGlzLmRlZmF1bHRBY3RpdmVZZWFyTW9udGgsIHRoaXMuY29tcHV0ZWRNaW4sIHRoaXMuY29tcHV0ZWRNYXgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSAmJiB0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uSWNvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSAmJiB0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkSXRlbUhhbmRsZXJXcmFwcGVyOiBUdWlNYXBwZXI8XG4gICAgICAgIFtUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+IHwgVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5Pl0sXG4gICAgICAgIFR1aUJvb2xlYW5IYW5kbGVyPFR1aVN0cmluZ2lmaWFibGVJdGVtPGFueT4gfCBzdHJpbmc+XG4gICAgPiA9IChoYW5kbGVyKSA9PiAoc3RyaW5naWZpYWJsZSkgPT5cbiAgICAgICAgdHVpSXNTdHJpbmcoc3RyaW5naWZpYWJsZSkgfHwgaGFuZGxlcihzdHJpbmdpZmlhYmxlLml0ZW0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZhbHVlTWFwcGVyOiBUdWlNYXBwZXI8XG4gICAgICAgIFtyZWFkb25seSBUdWlEYXlbXV0sXG4gICAgICAgIFJlYWRvbmx5QXJyYXk8VHVpU3RyaW5naWZpYWJsZUl0ZW08VHVpRGF5Pj5cbiAgICA+ID0gKHZhbHVlKSA9PlxuICAgICAgICB2YWx1ZS5tYXAoKGl0ZW0pID0+IG5ldyBUdWlTdHJpbmdpZmlhYmxlSXRlbShpdGVtLCAoaXRlbSkgPT4gU3RyaW5nKGl0ZW0pKSk7XG5cbiAgICBwcm90ZWN0ZWQgb25FbnRlcihzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGFnVmFsaWRhdG9yKHNlYXJjaCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB0dWlUb2dnbGVEYXkodGhpcy52YWx1ZSwgVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKHNlYXJjaCkpO1xuXG4gICAgICAgIGlmICh0aGlzLmlucHV0VGFnKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VGFnLnNlYXJjaCA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kb25lKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVmFsdWVDaGFuZ2UodmFsdWU6IFJlYWRvbmx5QXJyYXk8VHVpU3RyaW5naWZpYWJsZUl0ZW08VHVpRGF5Pj4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZS5sZW5ndGggJiYgIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLm1hcCgoe2l0ZW19KSA9PiBpdGVtKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0dWlUb2dnbGVEYXkodGhpcy52YWx1ZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkb25lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIHR1aURyb3Bkb3duT3Blbk1vbml0b3JcbiAgICBjbGFzcz1cInQtaG9zdGVkXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25cIlxuICAgIFt0dWlEcm9wZG93bkVuYWJsZWRdPVwiaW50ZXJhY3RpdmVcIlxuICAgIFt0dWlEcm9wZG93bk9wZW5dPVwib3BlbiAmJiBpbnRlcmFjdGl2ZVwiXG4gICAgKHR1aURyb3Bkb3duT3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4+XG4gICAgPHR1aS1pbnB1dC10YWdcbiAgICAgICAgI2lucHV0VGFnXG4gICAgICAgIGNsYXNzPVwidC1pbnB1dFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtkaXNhYmxlZEl0ZW1IYW5kbGVyXT1cImRpc2FibGVkSXRlbUhhbmRsZXIgfCB0dWlNYXBwZXI6IGRpc2FibGVkSXRlbUhhbmRsZXJXcmFwcGVyXCJcbiAgICAgICAgW2VkaXRhYmxlXT1cImVkaXRhYmxlXCJcbiAgICAgICAgW2lucHV0SGlkZGVuXT1cImlucHV0SGlkZGVuXCJcbiAgICAgICAgW21hc2tpdG9dPVwibWFza2l0b09wdGlvbnNcIlxuICAgICAgICBbbmF0aXZlSWRdPVwibmF0aXZlSWRcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZSB8IHR1aU1hcHBlcjogdmFsdWVNYXBwZXJcIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3BzZXVkb0ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3JlbW92YWJsZV09XCIhbmF0aXZlRHJvcGRvd25Nb2RlXCJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgIFt0YWdWYWxpZGF0b3JdPVwidGFnVmFsaWRhdG9yIHwgdHVpTWFwcGVyOiBkaXNhYmxlZEl0ZW1IYW5kbGVyV3JhcHBlclwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRGaWxsZXJdPVwiKGZpbGxlciQgfCBhc3luYykgfHwgJydcIlxuICAgICAgICBbdHVpVGV4dGZpZWxkSWNvbl09XCJjYWxlbmRhckljb24gJiYgaWNvbkNvbnRlbnRcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyKGlucHV0VGFnLnNlYXJjaCB8fCAnJylcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICAvPlxuICAgIDwvdHVpLWlucHV0LXRhZz5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkNvbnRlbnQ+XG4gICAgICAgIDx0dWktaWNvblxuICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNhbGVuZGFySWNvbiBhcyBzcmM7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XCJcbiAgICAgICAgICAgIHR1aUFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25fc21hbGxdPVwic2l6ZSA9PT0gJ3MnXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25dPVwiIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ljb25dPVwic3JjLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKClcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICAgICAgICA8dHVpLWNhbGVuZGFyXG4gICAgICAgICAgICBbZGlzYWJsZWRJdGVtSGFuZGxlcl09XCJkaXNhYmxlZEl0ZW1IYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXJrZXJIYW5kbGVyXT1cIm1hcmtlckhhbmRsZXJcIlxuICAgICAgICAgICAgW21heF09XCJjb21wdXRlZE1heFwiXG4gICAgICAgICAgICBbbWluXT1cImNvbXB1dGVkTWluXCJcbiAgICAgICAgICAgIFttb250aF09XCJjb21wdXRlZEFjdGl2ZVllYXJNb250aFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgKGRheUNsaWNrKT1cIm9uRGF5Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAobW9udGhDaGFuZ2UpPVwib25Nb250aENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24uc2lsZW50LnByZXZlbnQpPVwiKDApXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgICAgICAobW91c2Vkb3duLnNpbGVudC5wcmV2ZW50KT1cIigwKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvbmUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZG9uZVdvcmQkIHwgYXN5bmMgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -200,14 +200,14 @@ class TuiInputDateRangeComponent extends AbstractTuiNullableControl {
|
|
|
200
200
|
return `${dateFiller}${RANGE_SEPARATOR_CHAR}${dateFiller}`;
|
|
201
201
|
}
|
|
202
202
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputDateRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
203
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputDateRangeComponent, selector: "tui-input-date-range", inputs: { disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", defaultViewedMonth: "defaultViewedMonth", items: "items", min: "min", max: "max", minLength: "minLength", maxLength: "maxLength" }, host: {
|
|
203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputDateRangeComponent, selector: "tui-input-date-range", inputs: { disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", defaultViewedMonth: "defaultViewedMonth", items: "items", min: "min", max: "max", minLength: "minLength", maxLength: "maxLength" }, host: { listeners: { "click": "onClick()" }, properties: { "attr.data-size": "size" } }, providers: [
|
|
204
204
|
tuiAsFocusableItemAccessor(TuiInputDateRangeComponent),
|
|
205
205
|
tuiAsControl(TuiInputDateRangeComponent),
|
|
206
206
|
tuiAsLegacyControl(TuiInputDateRangeComponent),
|
|
207
207
|
tuiDateStreamWithTransformer(TUI_DATE_RANGE_VALUE_TRANSFORMER),
|
|
208
208
|
tuiAsDataListHost(TuiInputDateRangeComponent),
|
|
209
209
|
TUI_MOBILE_CALENDAR_PROVIDER,
|
|
210
|
-
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"computedMask\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"getComputedRangeFiller(dateFiller || '')\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <div\n *ngIf=\"showValueTemplate\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <ng-container *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n automation-id=\"tui-input-date-range__icon\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [markerHandler]=\"markerHandler\"\n [max]=\"max\"\n [maxLength]=\"maxLength\"\n [min]=\"min\"\n [minLength]=\"minLength\"\n [value]=\"value\"\n [(item)]=\"selectedActivePeriod\"\n (valueChange)=\"onRangeChange($event)\"\n />\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host._disabled{pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small{border:.25rem
|
|
210
|
+
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"computedMask\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"getComputedRangeFiller(dateFiller || '')\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <div\n *ngIf=\"showValueTemplate\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <ng-container *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n automation-id=\"tui-input-date-range__icon\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [markerHandler]=\"markerHandler\"\n [max]=\"max\"\n [maxLength]=\"maxLength\"\n [min]=\"min\"\n [minLength]=\"minLength\"\n [value]=\"value\"\n [(item)]=\"selectedActivePeriod\"\n (valueChange)=\"onRangeChange($event)\"\n />\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host._disabled,:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small{border-width:.25rem}.t-value{display:flex;inline-size:100%;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i3.TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: i4.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i5.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "iconCleaner", "readOnly", "invalid", "disabled", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i5.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { kind: "directive", type: i6.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i6.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { kind: "component", type: i7.TuiCalendarRange, selector: "tui-calendar-range", inputs: ["defaultViewedMonth", "disabledItemHandler", "markerHandler", "items", "min", "max", "minLength", "maxLength", "value", "item"], outputs: ["valueChange", "itemChange"] }, { kind: "directive", type: i6.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { kind: "directive", type: i6.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "component", type: i8.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "directive", type: i9.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "directive", type: i10.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i10.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
211
211
|
}
|
|
212
212
|
__decorate([
|
|
213
213
|
tuiPure
|
|
@@ -223,10 +223,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
223
223
|
tuiAsDataListHost(TuiInputDateRangeComponent),
|
|
224
224
|
TUI_MOBILE_CALENDAR_PROVIDER,
|
|
225
225
|
], host: {
|
|
226
|
-
ngSkipHydration: 'true',
|
|
227
226
|
'[attr.data-size]': 'size',
|
|
228
227
|
'(click)': 'onClick()',
|
|
229
|
-
}, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"computedMask\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"getComputedRangeFiller(dateFiller || '')\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <div\n *ngIf=\"showValueTemplate\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <ng-container *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n automation-id=\"tui-input-date-range__icon\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [markerHandler]=\"markerHandler\"\n [max]=\"max\"\n [maxLength]=\"maxLength\"\n [min]=\"min\"\n [minLength]=\"minLength\"\n [value]=\"value\"\n [(item)]=\"selectedActivePeriod\"\n (valueChange)=\"onRangeChange($event)\"\n />\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host._disabled{pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small{border:.25rem
|
|
228
|
+
}, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"computedMask\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"getComputedRangeFiller(dateFiller || '')\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <div\n *ngIf=\"showValueTemplate\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <ng-container *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n automation-id=\"tui-input-date-range__icon\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [markerHandler]=\"markerHandler\"\n [max]=\"max\"\n [maxLength]=\"maxLength\"\n [min]=\"min\"\n [minLength]=\"minLength\"\n [value]=\"value\"\n [(item)]=\"selectedActivePeriod\"\n (valueChange)=\"onRangeChange($event)\"\n />\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host._disabled,:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small{border-width:.25rem}.t-value{display:flex;inline-size:100%;align-items:center}\n"] }]
|
|
230
229
|
}], propDecorators: { textfield: [{
|
|
231
230
|
type: ViewChild,
|
|
232
231
|
args: [TuiPrimitiveTextfieldComponent]
|
|
@@ -247,4 +246,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
247
246
|
}], maxLength: [{
|
|
248
247
|
type: Input
|
|
249
248
|
}], calculateMask: [] } });
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1kYXRlLXJhbmdlL2lucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS9pbnB1dC1kYXRlLXJhbmdlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTFELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEdBQ1gsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLGVBQWUsRUFDZixPQUFPLEdBQ1YsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FB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QUExQiwwQkFBMEIsNllBZHhCO1lBQ1AsMEJBQTBCLENBQUMsMEJBQTBCLENBQUM7WUFDdEQsWUFBWSxDQUFDLDBCQUFpQyxDQUFDO1lBQy9DLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDO1lBQzlDLDRCQUE0QixDQUFDLGdDQUFnQyxDQUFDO1lBQzlELGlCQUFpQixDQUFDLDBCQUEwQixDQUFDO1lBQzdDLDRCQUE0QjtTQUMvQixxRUFXVSw4QkFBOEIsdUVDbEY3QyxnOEVBd0VBOztBRHlQWTtJQURQLE9BQU87K0RBaUJQO1NBblFRLDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQXBCdEMsU0FBUztpQ0FDTSxLQUFLLFlBQ1Asc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1AsMEJBQTBCLDRCQUE0Qjt3QkFDdEQsWUFBWSxDQUFDLDBCQUFpQyxDQUFDO3dCQUMvQyxrQkFBa0IsNEJBQTRCO3dCQUM5Qyw0QkFBNEIsQ0FBQyxnQ0FBZ0MsQ0FBQzt3QkFDOUQsaUJBQWlCLDRCQUE0Qjt3QkFDN0MsNEJBQTRCO3FCQUMvQixRQUNLO3dCQUNGLGVBQWUsRUFBRSxNQUFNO3dCQUN2QixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQixTQUFTLEVBQUUsV0FBVztxQkFDekI7OEJBT2dCLFNBQVM7c0JBRHpCLFNBQVM7dUJBQUMsOEJBQThCO2dCQWlDbEMsbUJBQW1CO3NCQUR6QixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxHQUFHO3NCQURULEtBQUs7Z0JBSUMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBMExFLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgdHlwZSB7TWFza2l0b09wdGlvbnN9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHtNQVNLSVRPX0RFRkFVTFRfT1BUSU9OU30gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQge21hc2tpdG9EYXRlUmFuZ2VPcHRpb25zR2VuZXJhdG9yfSBmcm9tICdAbWFza2l0by9raXQnO1xuaW1wb3J0IHt0dWlBc0NvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9GQUxTRV9IQU5ETEVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7VHVpRGF0ZU1vZGUsIFR1aURheSwgVHVpRGF5TGlrZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtcbiAgICBEQVRFX0ZJTExFUl9MRU5HVEgsXG4gICAgREFURV9SQU5HRV9GSUxMRVJfTEVOR1RILFxuICAgIFJBTkdFX1NFUEFSQVRPUl9DSEFSLFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aURheVJhbmdlLFxuICAgIFR1aU1vbnRoLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge3R1aVdhdGNofSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7VFVJX0lTX01PQklMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHR5cGUge1R1aUJvb2xlYW5IYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7XG4gICAgY2hhbmdlRGF0ZVNlcGFyYXRvcixcbiAgICB0dWlJc1ByZXNlbnQsXG4gICAgdHVpTnVsbGFibGVTYW1lLFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQgdHlwZSB7VHVpTWFya2VySGFuZGxlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9jYWxlbmRhcic7XG5pbXBvcnQge3R1aUFzRGF0YUxpc3RIb3N0fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge1RVSV9EQVRFX0ZPUk1BVCwgVFVJX0RFRkFVTFRfREFURV9GT1JNQVR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7VHVpRGF5UmFuZ2VQZXJpb2R9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9jYWxlbmRhci1yYW5nZSc7XG5pbXBvcnQgdHlwZSB7VHVpSW5wdXREYXRlT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfREFURV9SQU5HRV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfSU5QVVRfREFURV9PUFRJT05TLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVIsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUl9QUk9WSURFUixcbiAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIHR1aUFzQ29udHJvbCBhcyB0dWlBc0xlZ2FjeUNvbnRyb2wsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQnO1xuaW1wb3J0IHtUVUlfVEVYVEZJRUxEX1NJWkV9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvZGlyZWN0aXZlcyc7XG5pbXBvcnQgdHlwZSB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3Rva2Vucyc7XG5pbXBvcnQge3R1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3Rva2Vucyc7XG5pbXBvcnQge1RVSV9EQVRFX01PREVfTUFTS0lUT19BREFQVEVSfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3V0aWxzJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZS1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50IGFzIGFueSksXG4gICAgICAgIHR1aUFzTGVnYWN5Q29udHJvbChUdWlJbnB1dERhdGVSYW5nZUNvbXBvbmVudCksXG4gICAgICAgIHR1aURhdGVTdHJlYW1XaXRoVHJhbnNmb3JtZXIoVFVJX0RBVEVfUkFOR0VfVkFMVUVfVFJBTlNGT1JNRVIpLFxuICAgICAgICB0dWlBc0RhdGFMaXN0SG9zdChUdWlJbnB1dERhdGVSYW5nZUNvbXBvbmVudCksXG4gICAgICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVJfUFJPVklERVIsXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplJyxcbiAgICAgICAgJyhjbGljayknOiAnb25DbGljaygpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5UmFuZ2U+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhciA9IGluamVjdChUVUlfTU9CSUxFX0NBTEVOREFSLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0lOUFVUX0RBVEVfT1BUSU9OUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplID0gaW5qZWN0KFRVSV9URVhURklFTERfU0laRSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZVRleHRzJCA9IGluamVjdChUVUlfREFURV9URVhUUyk7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IHZhbHVlVHJhbnNmb3JtZXIgPSBpbmplY3QoXG4gICAgICAgIFRVSV9EQVRFX1JBTkdFX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgICAgICB7b3B0aW9uYWw6IHRydWV9LFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZUZpbGxlciQgPSB0aGlzLmRhdGVUZXh0cyQucGlwZShcbiAgICAgICAgbWFwKChkYXRlVGV4dHMpID0+XG4gICAgICAgICAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yKFxuICAgICAgICAgICAgICAgIGRhdGVUZXh0c1t0aGlzLmRhdGVGb3JtYXQubW9kZV0sXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0LnNlcGFyYXRvcixcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCBkYXRlRm9ybWF0ID0gVFVJX0RFRkFVTFRfREFURV9GT1JNQVQ7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVGb3JtYXQkID0gaW5qZWN0KFRVSV9EQVRFX0ZPUk1BVClcbiAgICAgICAgLnBpcGUodHVpV2F0Y2godGhpcy5jZHIpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZm9ybWF0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSBmb3JtYXQ7XG4gICAgICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkQWN0aXZlUGVyaW9kOiBUdWlEYXlSYW5nZVBlcmlvZCB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiA9IFRVSV9GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWFya2VySGFuZGxlcjogVHVpTWFya2VySGFuZGxlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVmYXVsdFZpZXdlZE1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtczogcmVhZG9ubHkgVHVpRGF5UmFuZ2VQZXJpb2RbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluOiBUdWlEYXkgfCBudWxsID0gdGhpcy5vcHRpb25zLm1pbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heDogVHVpRGF5IHwgbnVsbCA9IHRoaXMub3B0aW9ucy5tYXg7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW5MZW5ndGg6IFR1aURheUxpa2UgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heExlbmd0aDogVHVpRGF5TGlrZSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIG9wZW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/PyBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQ/LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb21wdXRlZEV4YW1wbGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmxlbmd0aFxuICAgICAgICAgICAgPyB0aGlzLnRleHRmaWVsZD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8ucGxhY2Vob2xkZXIgfHwgJydcbiAgICAgICAgICAgIDogJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIGFjdGl2ZVBlcmlvZH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChhY3RpdmVQZXJpb2QpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYWN0aXZlUGVyaW9kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgPyB2YWx1ZS5nZXRGb3JtYXR0ZWREYXlSYW5nZSh0aGlzLmRhdGVGb3JtYXQubW9kZSwgdGhpcy5kYXRlRm9ybWF0LnNlcGFyYXRvcilcbiAgICAgICAgICAgIDogbmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGRTaXplLnNpemU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSAmJiB0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSAmJiAhdGhpcy5tb2JpbGVDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCA9PT0gREFURV9SQU5HRV9GSUxMRVJfTEVOR1RIXG4gICAgICAgICAgICAgICAgPyBUdWlEYXlSYW5nZS5ub3JtYWxpemVQYXJzZSh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0Lm1vZGUpXG4gICAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEFjdGl2ZVBlcmlvZCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25SYW5nZUNoYW5nZShyYW5nZTogVHVpRGF5UmFuZ2UgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuXG4gICAgICAgIGlmICghcmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSByYW5nZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpRGF5UmFuZ2UgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdmFsdWUgPyB0aGlzLmNvbXB1dGVkVmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSAmJiAhIXRoaXMubW9iaWxlQ2FsZW5kYXI7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjYWxlbmRhckljb24oKTogVHVpSW5wdXREYXRlT3B0aW9uc1snaWNvbiddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRNYXNrKCk6IE1hc2tpdG9PcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kXG4gICAgICAgICAgICA/IE1BU0tJVE9fREVGQVVMVF9PUFRJT05TXG4gICAgICAgICAgICA6IHRoaXMuY2FsY3VsYXRlTWFzayhcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdC5tb2RlLFxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0LnNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgIHRoaXMubWluLFxuICAgICAgICAgICAgICAgICAgdGhpcy5tYXgsXG4gICAgICAgICAgICAgICAgICB0aGlzLm1pbkxlbmd0aCxcbiAgICAgICAgICAgICAgICAgIHRoaXMubWF4TGVuZ3RoLFxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgYWN0aXZlUGVyaW9kKCk6IFR1aURheVJhbmdlUGVyaW9kIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQWN0aXZlUGVyaW9kID8/XG4gICAgICAgICAgICAodGhpcy5pdGVtcy5maW5kKChpdGVtKSA9PlxuICAgICAgICAgICAgICAgIHR1aU51bGxhYmxlU2FtZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5yYW5nZSxcbiAgICAgICAgICAgICAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBhLmZyb20uZGF5U2FtZShiLmZyb20uZGF5TGltaXQodGhpcy5taW4sIHRoaXMubWF4KSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGEudG8uZGF5U2FtZShiLnRvLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgICAgbnVsbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNob3dWYWx1ZVRlbXBsYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNQcmVzZW50KHRoaXMudmFsdWUpICYmICF0aGlzLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZENvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVBlcmlvZD8uY29udGVudCB8fCB0aGlzLmNvbXB1dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpbm5lclBzZXVkb0ZvY3VzZWQoKTogYm9vbGVhbiB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5wc2V1ZG9Gb2N1cyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gfHwgdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py52YWx1ZSB8fCAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q29tcHV0ZWRSYW5nZUZpbGxlcihkYXRlRmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQZXJpb2QgPyAnJyA6IHRoaXMuZ2V0RGF0ZVJhbmdlRmlsbGVyKGRhdGVGaWxsZXIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkljb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgdGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25BY3RpdmVab25lKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFmb2N1c2VkICYmXG4gICAgICAgICAgICAhdGhpcy5pdGVtU2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICh0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA9PT0gREFURV9GSUxMRVJfTEVOR1RIIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggPT09XG4gICAgICAgICAgICAgICAgICAgIERBVEVfRklMTEVSX0xFTkdUSCArIFJBTkdFX1NFUEFSQVRPUl9DSEFSLmxlbmd0aClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gVHVpRGF5UmFuZ2Uubm9ybWFsaXplUGFyc2UoXG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSxcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQubW9kZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsdWVJZGVudGljYWxDb21wYXJhdG9yKFxuICAgICAgICBvbGRWYWx1ZTogVHVpRGF5UmFuZ2UgfCBudWxsLFxuICAgICAgICBuZXdWYWx1ZTogVHVpRGF5UmFuZ2UgfCBudWxsLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpTnVsbGFibGVTYW1lKG9sZFZhbHVlLCBuZXdWYWx1ZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXRlbVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+IFN0cmluZyhpdGVtKSA9PT0gdGhpcy5uYXRpdmVWYWx1ZSkgIT09IC0xO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNYXNrKFxuICAgICAgICBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgZGF0ZVNlcGFyYXRvcjogc3RyaW5nLFxuICAgICAgICBtaW46IFR1aURheSB8IG51bGwsXG4gICAgICAgIG1heDogVHVpRGF5IHwgbnVsbCxcbiAgICAgICAgbWluTGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCxcbiAgICAgICAgbWF4TGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCxcbiAgICApOiBNYXNraXRvT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiBtYXNraXRvRGF0ZVJhbmdlT3B0aW9uc0dlbmVyYXRvcih7XG4gICAgICAgICAgICBkYXRlU2VwYXJhdG9yLFxuICAgICAgICAgICAgbW9kZTogVFVJX0RBVEVfTU9ERV9NQVNLSVRPX0FEQVBURVJbZGF0ZUZvcm1hdF0sXG4gICAgICAgICAgICBtaW46IChtaW4gfHwgVFVJX0ZJUlNUX0RBWSkudG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICAgICAgICAgIG1heDogKG1heCB8fCBUVUlfTEFTVF9EQVkpLnRvTG9jYWxOYXRpdmVEYXRlKCksXG4gICAgICAgICAgICBtaW5MZW5ndGg6IG1pbkxlbmd0aCB8fCB7fSxcbiAgICAgICAgICAgIG1heExlbmd0aDogbWF4TGVuZ3RoIHx8IHt9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQocHJldmVudFNjcm9sbCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRlUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2RhdGVGaWxsZXJ9JHtSQU5HRV9TRVBBUkFUT1JfQ0hBUn0ke2RhdGVGaWxsZXJ9YDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgdHVpRHJvcGRvd25PcGVuTW9uaXRvclxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFt0dWlEcm9wZG93bl09XCJkcm9wZG93blwiXG4gICAgW3R1aURyb3Bkb3duRW5hYmxlZF09XCJpbnRlcmFjdGl2ZVwiXG4gICAgW3R1aURyb3Bkb3duT3Blbl09XCJvcGVuICYmIGludGVyYWN0aXZlXCJcbiAgICAodHVpQWN0aXZlWm9uZUNoYW5nZSk9XCJvbkFjdGl2ZVpvbmUoJGV2ZW50KVwiXG4gICAgKHR1aURyb3Bkb3duT3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4+XG4gICAgPHR1aS1wcmltaXRpdmUtdGV4dGZpZWxkXG4gICAgICAgICp0dWlMZXQ9XCJkYXRlRmlsbGVyJCB8IGFzeW5jIGFzIGRhdGVGaWxsZXJcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWRhdGUtcmFuZ2VfX3RleHRmaWVsZFwiXG4gICAgICAgIHR1aVZhbHVlQWNjZXNzb3JcbiAgICAgICAgY2xhc3M9XCJ0LXRleHRmaWVsZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW21hc2tpdG9dPVwiY29tcHV0ZWRNYXNrXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3BzZXVkb0FjdGl2ZV09XCJwc2V1ZG9BY3RpdmVcIlxuICAgICAgICBbcHNldWRvRm9jdXNdPVwiaW5uZXJQc2V1ZG9Gb2N1c2VkXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEZpbGxlcl09XCJnZXRDb21wdXRlZFJhbmdlRmlsbGVyKGRhdGVGaWxsZXIgfHwgJycpXCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiY2FsZW5kYXJJY29uICYmIGljb25Db250ZW50XCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cImlucHV0XCJcbiAgICAgICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgLz5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInNob3dWYWx1ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwidHVpQ29udGVudFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtdmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb21wdXRlZENvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogdmFsdWV9XCI+XG4gICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ljb25Db250ZW50PlxuICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjYWxlbmRhckljb24gYXMgc3JjOyBjb250ZXh0OiB7JGltcGxpY2l0OiBzaXplfVwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWRhdGUtcmFuZ2VfX2ljb25cIlxuICAgICAgICAgICAgdHVpQXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgW2NsYXNzLnQtaWNvbl9zbWFsbF09XCJzaXplID09PSAncydcIlxuICAgICAgICAgICAgW2NsYXNzLnQtaWNvbl09XCIhY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgICAgICBbaWNvbl09XCJzcmMudG9TdHJpbmcoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25JY29uQ2xpY2soKVwiXG4gICAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd24+XG4gICAgICAgIDx0dWktY2FsZW5kYXItcmFuZ2VcbiAgICAgICAgICAgIFtkZWZhdWx0Vmlld2VkTW9udGhdPVwiZGVmYXVsdFZpZXdlZE1vbnRoXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZEl0ZW1IYW5kbGVyXT1cImRpc2FibGVkSXRlbUhhbmRsZXJcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICAgICAgICAgIFttYXJrZXJIYW5kbGVyXT1cIm1hcmtlckhhbmRsZXJcIlxuICAgICAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICAgICAgW21heExlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICAgICAgW21pbkxlbmd0aF09XCJtaW5MZW5ndGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgIFsoaXRlbSldPVwic2VsZWN0ZWRBY3RpdmVQZXJpb2RcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUmFuZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1kYXRlLXJhbmdlL2lucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS9pbnB1dC1kYXRlLXJhbmdlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTFELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEdBQ1gsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLGVBQWUsRUFDZixPQUFPLEdBQ1YsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FB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QUExQiwwQkFBMEIsa1dBYnhCO1lBQ1AsMEJBQTBCLENBQUMsMEJBQTBCLENBQUM7WUFDdEQsWUFBWSxDQUFDLDBCQUFpQyxDQUFDO1lBQy9DLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDO1lBQzlDLDRCQUE0QixDQUFDLGdDQUFnQyxDQUFDO1lBQzlELGlCQUFpQixDQUFDLDBCQUEwQixDQUFDO1lBQzdDLDRCQUE0QjtTQUMvQixxRUFVVSw4QkFBOEIsdUVDakY3QyxnOEVBd0VBOztBRHdQWTtJQURQLE9BQU87K0RBaUJQO1NBblFRLDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQW5CdEMsU0FBUztpQ0FDTSxLQUFLLFlBQ1Asc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1AsMEJBQTBCLDRCQUE0Qjt3QkFDdEQsWUFBWSxDQUFDLDBCQUFpQyxDQUFDO3dCQUMvQyxrQkFBa0IsNEJBQTRCO3dCQUM5Qyw0QkFBNEIsQ0FBQyxnQ0FBZ0MsQ0FBQzt3QkFDOUQsaUJBQWlCLDRCQUE0Qjt3QkFDN0MsNEJBQTRCO3FCQUMvQixRQUNLO3dCQUNGLGtCQUFrQixFQUFFLE1BQU07d0JBQzFCLFNBQVMsRUFBRSxXQUFXO3FCQUN6Qjs4QkFPZ0IsU0FBUztzQkFEekIsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBaUNsQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxHQUFHO3NCQURULEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkEwTEUsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB0eXBlIHtNYXNraXRvT3B0aW9uc30gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQge01BU0tJVE9fREVGQVVMVF9PUFRJT05TfSBmcm9tICdAbWFza2l0by9jb3JlJztcbmltcG9ydCB7bWFza2l0b0RhdGVSYW5nZU9wdGlvbnNHZW5lcmF0b3J9IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQge3R1aUFzQ29udHJvbH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VFVJX0ZBTFNFX0hBTkRMRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtUdWlEYXRlTW9kZSwgVHVpRGF5LCBUdWlEYXlMaWtlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQge1xuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBEQVRFX1JBTkdFX0ZJTExFUl9MRU5HVEgsXG4gICAgUkFOR0VfU0VQQVJBVE9SX0NIQVIsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpRGF5UmFuZ2UsXG4gICAgVHVpTW9udGgsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7dHVpV2F0Y2h9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpQm9vbGVhbkhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHtcbiAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yLFxuICAgIHR1aUlzUHJlc2VudCxcbiAgICB0dWlOdWxsYWJsZVNhbWUsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB0eXBlIHtUdWlNYXJrZXJIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2NhbGVuZGFyJztcbmltcG9ydCB7dHVpQXNEYXRhTGlzdEhvc3R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7VFVJX0RBVEVfRk9STUFULCBUVUlfREVGQVVMVF9EQVRFX0ZPUk1BVH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB0eXBlIHtUdWlEYXlSYW5nZVBlcmlvZH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NhbGVuZGFyLXJhbmdlJztcbmltcG9ydCB0eXBlIHtUdWlJbnB1dERhdGVPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1xuICAgIFRVSV9EQVRFX1JBTkdFX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9JTlBVVF9EQVRFX09QVElPTlMsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSX1BST1ZJREVSLFxuICAgIHR1aURhdGVTdHJlYW1XaXRoVHJhbnNmb3JtZXIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgdHVpQXNDb250cm9sIGFzIHR1aUFzTGVnYWN5Q29udHJvbCxcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jbGFzc2VzJztcbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NvbXBvbmVudHMvcHJpbWl0aXZlLXRleHRmaWVsZCc7XG5pbXBvcnQge1RVSV9URVhURklFTERfU0laRX0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9kaXJlY3RpdmVzJztcbmltcG9ydCB0eXBlIHtUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB7dHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB7VFVJX0RBVEVfTU9ERV9NQVNLSVRPX0FEQVBURVJ9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdXRpbHMnO1xuaW1wb3J0IHR5cGUge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlLXJhbmdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS1yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLXJhbmdlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnQgYXMgYW55KSxcbiAgICAgICAgdHVpQXNMZWdhY3lDb250cm9sKFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgdHVpRGF0ZVN0cmVhbVdpdGhUcmFuc2Zvcm1lcihUVUlfREFURV9SQU5HRV9WQUxVRV9UUkFOU0ZPUk1FUiksXG4gICAgICAgIHR1aUFzRGF0YUxpc3RIb3N0KFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgVFVJX01PQklMRV9DQUxFTkRBUl9QUk9WSURFUixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICcoY2xpY2spJzogJ29uQ2xpY2soKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aURheVJhbmdlPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXIgPSBpbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUiwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9JTlBVVF9EQVRFX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZSA9IGluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVUZXh0cyQgPSBpbmplY3QoVFVJX0RBVEVfVEVYVFMpO1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyID0gaW5qZWN0KFxuICAgICAgICBUVUlfREFURV9SQU5HRV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICAgICAge29wdGlvbmFsOiB0cnVlfSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVGaWxsZXIkID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUoXG4gICAgICAgIG1hcCgoZGF0ZVRleHRzKSA9PlxuICAgICAgICAgICAgY2hhbmdlRGF0ZVNlcGFyYXRvcihcbiAgICAgICAgICAgICAgICBkYXRlVGV4dHNbdGhpcy5kYXRlRm9ybWF0Lm1vZGVdLFxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdC5zZXBhcmF0b3IsXG4gICAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgZGF0ZUZvcm1hdCA9IFRVSV9ERUZBVUxUX0RBVEVfRk9STUFUO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkYXRlRm9ybWF0JCA9IGluamVjdChUVUlfREFURV9GT1JNQVQpXG4gICAgICAgIC5waXBlKHR1aVdhdGNoKHRoaXMuY2RyKSwgdGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGZvcm1hdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gZm9ybWF0O1xuICAgICAgICB9KTtcblxuICAgIHByb3RlY3RlZCBzZWxlY3RlZEFjdGl2ZVBlcmlvZDogVHVpRGF5UmFuZ2VQZXJpb2QgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBUVUlfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlZmF1bHRWaWV3ZWRNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXRlbXM6IHJlYWRvbmx5IFR1aURheVJhbmdlUGVyaW9kW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pbjogVHVpRGF5IHwgbnVsbCA9IHRoaXMub3B0aW9ucy5taW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXg6IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWF4O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluTGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXhMZW5ndGg6IFR1aURheUxpa2UgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBvcGVuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQ/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkPy5mb2N1c2VkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcHV0ZWRFeGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGhcbiAgICAgICAgICAgID8gdGhpcy50ZXh0ZmllbGQ/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LnBsYWNlaG9sZGVyIHx8ICcnXG4gICAgICAgICAgICA6ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7dmFsdWUsIG5hdGl2ZVZhbHVlLCBhY3RpdmVQZXJpb2R9ID0gdGhpcztcblxuICAgICAgICBpZiAoYWN0aXZlUGVyaW9kKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKGFjdGl2ZVBlcmlvZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgID8gdmFsdWUuZ2V0Rm9ybWF0dGVkRGF5UmFuZ2UodGhpcy5kYXRlRm9ybWF0Lm1vZGUsIHRoaXMuZGF0ZUZvcm1hdC5zZXBhcmF0b3IpXG4gICAgICAgICAgICA6IG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUgJiYgdGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWUgJiYgIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9XG4gICAgICAgICAgICB2YWx1ZS5sZW5ndGggPT09IERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSFxuICAgICAgICAgICAgICAgID8gVHVpRGF5UmFuZ2Uubm9ybWFsaXplUGFyc2UodmFsdWUsIHRoaXMuZGF0ZUZvcm1hdC5tb2RlKVxuICAgICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBY3RpdmVQZXJpb2QgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmFuZ2VDaGFuZ2UocmFuZ2U6IFR1aURheVJhbmdlIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcblxuICAgICAgICBpZiAoIXJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID0gcmFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFR1aURheVJhbmdlIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZE1vYmlsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgJiYgISF0aGlzLm1vYmlsZUNhbGVuZGFyO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY2FsZW5kYXJJY29uKCk6IFR1aUlucHV0RGF0ZU9wdGlvbnNbJ2ljb24nXSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaWNvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkTWFzaygpOiBNYXNraXRvT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVBlcmlvZFxuICAgICAgICAgICAgPyBNQVNLSVRPX0RFRkFVTFRfT1BUSU9OU1xuICAgICAgICAgICAgOiB0aGlzLmNhbGN1bGF0ZU1hc2soXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQubW9kZSxcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdC5zZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgICB0aGlzLm1pbixcbiAgICAgICAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICAgICAgICAgICAgdGhpcy5taW5MZW5ndGgsXG4gICAgICAgICAgICAgICAgICB0aGlzLm1heExlbmd0aCxcbiAgICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGFjdGl2ZVBlcmlvZCgpOiBUdWlEYXlSYW5nZVBlcmlvZCB8IG51bGwge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEFjdGl2ZVBlcmlvZCA/P1xuICAgICAgICAgICAgKHRoaXMuaXRlbXMuZmluZCgoaXRlbSkgPT5cbiAgICAgICAgICAgICAgICB0dWlOdWxsYWJsZVNhbWUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYS5mcm9tLmRheVNhbWUoYi5mcm9tLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhLnRvLmRheVNhbWUoYi50by5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgICAgIG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBzaG93VmFsdWVUZW1wbGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzUHJlc2VudCh0aGlzLnZhbHVlKSAmJiAhdGhpcy5mb2N1c2VkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRDb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQZXJpb2Q/LmNvbnRlbnQgfHwgdGhpcy5jb21wdXRlZFZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaW5uZXJQc2V1ZG9Gb2N1c2VkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucHNldWRvRm9jdXMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcGVuIHx8IHRoaXMuY29tcHV0ZWRGb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8udmFsdWUgfHwgJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldENvbXB1dGVkUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kID8gJycgOiB0aGlzLmdldERhdGVSYW5nZUZpbGxlcihkYXRlRmlsbGVyKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JY29uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlICYmIHRoaXMuaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQWN0aXZlWm9uZShmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhZm9jdXNlZCAmJlxuICAgICAgICAgICAgIXRoaXMuaXRlbVNlbGVjdGVkICYmXG4gICAgICAgICAgICAodGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggPT09IERBVEVfRklMTEVSX0xFTkdUSCB8fFxuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUubGVuZ3RoID09PVxuICAgICAgICAgICAgICAgICAgICBEQVRFX0ZJTExFUl9MRU5HVEggKyBSQU5HRV9TRVBBUkFUT1JfQ0hBUi5sZW5ndGgpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IFR1aURheVJhbmdlLm5vcm1hbGl6ZVBhcnNlKFxuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUsXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0Lm1vZGUsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFR1aURheVJhbmdlIHwgbnVsbCxcbiAgICAgICAgbmV3VmFsdWU6IFR1aURheVJhbmdlIHwgbnVsbCxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aU51bGxhYmxlU2FtZShvbGRWYWx1ZSwgbmV3VmFsdWUsIChhLCBiKSA9PiBhLmRheVNhbWUoYikpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiBTdHJpbmcoaXRlbSkgPT09IHRoaXMubmF0aXZlVmFsdWUpICE9PSAtMTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlTWFzayhcbiAgICAgICAgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIGRhdGVTZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgbWluOiBUdWlEYXkgfCBudWxsLFxuICAgICAgICBtYXg6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG1pbkxlbmd0aDogVHVpRGF5TGlrZSB8IG51bGwsXG4gICAgICAgIG1heExlbmd0aDogVHVpRGF5TGlrZSB8IG51bGwsXG4gICAgKTogTWFza2l0b09wdGlvbnMge1xuICAgICAgICByZXR1cm4gbWFza2l0b0RhdGVSYW5nZU9wdGlvbnNHZW5lcmF0b3Ioe1xuICAgICAgICAgICAgZGF0ZVNlcGFyYXRvcixcbiAgICAgICAgICAgIG1vZGU6IFRVSV9EQVRFX01PREVfTUFTS0lUT19BREFQVEVSW2RhdGVGb3JtYXRdLFxuICAgICAgICAgICAgbWluOiAobWluIHx8IFRVSV9GSVJTVF9EQVkpLnRvTG9jYWxOYXRpdmVEYXRlKCksXG4gICAgICAgICAgICBtYXg6IChtYXggfHwgVFVJX0xBU1RfREFZKS50b0xvY2FsTmF0aXZlRGF0ZSgpLFxuICAgICAgICAgICAgbWluTGVuZ3RoOiBtaW5MZW5ndGggfHwge30sXG4gICAgICAgICAgICBtYXhMZW5ndGg6IG1heExlbmd0aCB8fCB7fSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGwgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGx9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZVJhbmdlRmlsbGVyKGRhdGVGaWxsZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtkYXRlRmlsbGVyfSR7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9JHtkYXRlRmlsbGVyfWA7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIHR1aURyb3Bkb3duT3Blbk1vbml0b3JcbiAgICBjbGFzcz1cInQtaG9zdGVkXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25cIlxuICAgIFt0dWlEcm9wZG93bkVuYWJsZWRdPVwiaW50ZXJhY3RpdmVcIlxuICAgIFt0dWlEcm9wZG93bk9wZW5dPVwib3BlbiAmJiBpbnRlcmFjdGl2ZVwiXG4gICAgKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIlxuICAgICh0dWlEcm9wZG93bk9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICAqdHVpTGV0PVwiZGF0ZUZpbGxlciQgfCBhc3luYyBhcyBkYXRlRmlsbGVyXCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1kYXRlLXJhbmdlX190ZXh0ZmllbGRcIlxuICAgICAgICB0dWlWYWx1ZUFjY2Vzc29yXG4gICAgICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgIFtpbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFttYXNraXRvXT1cImNvbXB1dGVkTWFza1wiXG4gICAgICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgICAgIFtwc2V1ZG9BY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cImlubmVyUHNldWRvRm9jdXNlZFwiXG4gICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRGaWxsZXJdPVwiZ2V0Q29tcHV0ZWRSYW5nZUZpbGxlcihkYXRlRmlsbGVyIHx8ICcnKVwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRJY29uXT1cImNhbGVuZGFySWNvbiAmJiBpY29uQ29udGVudFwiXG4gICAgICAgIFt2YWx1ZV09XCJjb21wdXRlZFZhbHVlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJpbnB1dFwiXG4gICAgICAgICAgICBzZWxlY3Q9XCJpbnB1dFwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93VmFsdWVUZW1wbGF0ZVwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cInR1aUNvbnRlbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29tcHV0ZWRDb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHZhbHVlfVwiPlxuICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpY29uQ29udGVudD5cbiAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY2FsZW5kYXJJY29uIGFzIHNyYzsgY29udGV4dDogeyRpbXBsaWNpdDogc2l6ZX1cIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1kYXRlLXJhbmdlX19pY29uXCJcbiAgICAgICAgICAgIHR1aUFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25fc21hbGxdPVwic2l6ZSA9PT0gJ3MnXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25dPVwiIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ljb25dPVwic3JjLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKClcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICAgICAgICA8dHVpLWNhbGVuZGFyLXJhbmdlXG4gICAgICAgICAgICBbZGVmYXVsdFZpZXdlZE1vbnRoXT1cImRlZmF1bHRWaWV3ZWRNb250aFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRJdGVtSGFuZGxlcl09XCJkaXNhYmxlZEl0ZW1IYW5kbGVyXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgICAgICBbbWFya2VySGFuZGxlcl09XCJtYXJrZXJIYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICAgICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgICAgIFttaW5MZW5ndGhdPVwibWluTGVuZ3RoXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbKGl0ZW0pXT1cInNlbGVjdGVkQWN0aXZlUGVyaW9kXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblJhbmdlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|