asksuite-citrus 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +22 -4
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +21 -23
- package/esm2022/lib/directives/ask-dropdown.directive.mjs +5 -2
- package/fesm2022/asksuite-citrus.mjs +45 -26
- package/fesm2022/asksuite-citrus.mjs.map +1 -1
- package/lib/components/autocomplete/autocomplete.component.d.ts +1 -0
- package/lib/components/date-picker/date-picker.component.d.ts +3 -3
- package/lib/directives/ask-dropdown.directive.d.ts +2 -1
- package/package.json +1 -1
@@ -218,7 +218,10 @@ export class AutocompleteComponent {
|
|
218
218
|
return this.displayFn && this.displayFn(option);
|
219
219
|
}
|
220
220
|
getMoreItems() {
|
221
|
-
const
|
221
|
+
const sortedFilteredOptions = [...this.filteredOptions];
|
222
|
+
this.sortSelectedFirst(sortedFilteredOptions, this.selection, this.valueProp);
|
223
|
+
const nextPageItems = sortedFilteredOptions
|
224
|
+
.slice(this.ITEMS_PER_PAGE * (this._pageNumber - 1), this.ITEMS_PER_PAGE * this._pageNumber);
|
222
225
|
if (nextPageItems.length) {
|
223
226
|
this.updateFormControls(nextPageItems, this.selectionForm, this.formBuilder, this.valueProp, this.checkAllValue);
|
224
227
|
this.selectionForm.updateValueAndValidity();
|
@@ -231,6 +234,21 @@ export class AutocompleteComponent {
|
|
231
234
|
this.updateValidation();
|
232
235
|
this.change.detectChanges();
|
233
236
|
}
|
237
|
+
sortSelectedFirst(items, selectedItems, prop) {
|
238
|
+
items.sort((a, b) => {
|
239
|
+
const aIsSelected = selectedItems.some(item => item[prop] === a[prop]);
|
240
|
+
const bIsSelected = selectedItems.some(item => item[prop] === b[prop]);
|
241
|
+
if (aIsSelected && !bIsSelected) {
|
242
|
+
return -1;
|
243
|
+
}
|
244
|
+
else if (!aIsSelected && bIsSelected) {
|
245
|
+
return 1;
|
246
|
+
}
|
247
|
+
else {
|
248
|
+
return 0;
|
249
|
+
}
|
250
|
+
});
|
251
|
+
}
|
234
252
|
updateFormControls(items, form, fb, propValue, checked) {
|
235
253
|
items.forEach(item => {
|
236
254
|
if (form.value[item[propValue]] === undefined) {
|
@@ -278,11 +296,11 @@ export class AutocompleteComponent {
|
|
278
296
|
this.disabled = isDisabled;
|
279
297
|
}
|
280
298
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i1.FormBuilder }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
281
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutocompleteComponent, selector: "ask-autocomplete", inputs: { filterFn: "filterFn", displayFn: "displayFn", multiple: "multiple", valueProp: "valueProp", options: "options", placeholder: "placeholder", emptyMessage: "emptyMessage", selectAll: "selectAll", allOptionsSelectedText: "allOptionsSelectedText" }, host: { listeners: { "window:mousedown": "handleClick($event)" } }, providers: [valueAccessor], viewQueries: [{ propertyName: "input", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n (click)=\"handleAutocompleteClick()\"\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n askAutofocus\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n (click)=\"$event.stopPropagation()\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"showChips\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\"\n [ngClass]=\"chipsContainerClasses\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '85%' : '95%'\"\n [showAction]=\"true\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"showAllSelectionBtn\"\n (click)=\"handleChipsListActionClick($event)\">\n +{{selection.length - 1}}\n </span>\n </div>\n </ng-container>\n <span class=\"empty-placeholder\" data-testid=\"placeholder\" *ngIf=\"showPlaceholder\">\n {{(checkAllValue && allOptionsSelectedText) ? allOptionsSelectedText : placeholder}}\n </span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n *ngIf=\"chipsCollapsed\">\n {{closed ? \"expand_more\" : \"expand_less\"}}\n </span>\n </div>\n <div class=\"actions\" *ngIf=\"showExpandedSelectionActions\">\n <span class=\"see-more\" data-testid=\"see-less\"\n (click)=\"handleChipsListActionClick($event)\">\n {{'SEE_LESS' | translate}}\n </span>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\">\n {{closed ? \"expand_more\" : \"expand_less\"}}\n </span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <div class=\"list\" askScroll [askScrollThreshold]=\"50\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"showSelectAllCheckbox\">\n <ask-checkbox (valueChange)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form askScroll [askScrollThreshold]=\"50\"\n *ngIf=\"selectionForm.controls\"\n [formGroup]=\"selectionForm\"\n (scrollEnd)=\"getMoreItems()\"\n data-testid=\"options-form\"\n class=\"options-form\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage | translate}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scale-in-center{animation:scale-in-center .3s ease-in-out both}@keyframes scale-in-center{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:1}}.scale-out-center{animation:scale-out-center .3s ease-in-out both}@keyframes scale-out-center{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:1}}.ask-tooltip{background-color:#7b8794;color:#fff;padding:4px;border-radius:8px;position:relative}.ask-tooltip>div{text-align:center!important}.ask-tooltip:after{position:absolute;content:\"\";width:10px;height:10px;background-color:inherit}.ask-tooltip.-above{margin-bottom:4px}.ask-tooltip.-above:after{bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-below{margin-top:4px}.ask-tooltip.-below:after{top:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-after,.ask-tooltip.-right{margin-left:4px}.ask-tooltip.-after:after,.ask-tooltip.-right:after{left:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.ask-tooltip.-before,.ask-tooltip.-left{margin-right:4px}.ask-tooltip.-before:after,.ask-tooltip.-left:after{right:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.ask-badge{position:relative}.ask-badge>.badge{position:absolute;display:flex;justify-content:center;align-items:center;background-color:var(--bg-color);color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-radius:50%;box-shadow:0 2px 6px -1px #00000080}.ask-badge>.badge.-primary{--bg-color: var(--asksuite-orange)}.ask-badge>.badge.-secondary{--bg-color: var(--grey-800)}.ask-badge>.badge.-top{top:-10px}.ask-badge>.badge.-bottom{bottom:-10px}.ask-badge>.badge.-left{left:-10px}.ask-badge>.badge.-right{right:-10px}.ask-badge>.badge.-small{width:18px;height:18px;font-size:10px}.ask-badge>.badge.-regular{width:22px;height:22px;font-size:11px}.ask-badge>.badge.-large{width:28px;height:28px;font-size:12px}.ask-dropdown-top-right{margin-left:8px}.ask-dropdown-top-left{margin-right:8px}.ask-dropdown-bottom-right,.ask-dropdown-bottom-left{margin-top:8px}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper:hover{cursor:pointer}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.autocomplete-wrapper>.actions{width:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:1rem;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.see-more,.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:.875rem;font-weight:500}.see-more:hover,.chip-list>.expand:hover{cursor:pointer}.chip-list{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1;max-height:155px;transition:all ease-in-out .3s;max-width:100%}.chip-list.-collapsed{height:31px;overflow:hidden;transition:none}.chip-list.-two{height:62px}.chip-list.-three{height:93px}.chip-list.-four{height:124px}.chip-list.-many{overflow-y:auto;height:155px}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.empty-placeholder{font-size:.875rem}.empty-placeholder:hover{cursor:pointer}.list-box,.menu-container>.list,.options-form{min-height:1rem;overflow-y:scroll;max-height:100%}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.ChipsComponent, selector: "ask-chips", inputs: ["appearance", "showAction", "size"], outputs: ["action"] }, { kind: "component", type: i5.CheckboxComponent, selector: "ask-checkbox", inputs: ["value", "disabled"], outputs: ["valueChange", "change", "click", "focus"] }, { kind: "directive", type: i6.AutofocusDirective, selector: "[askAutofocus]" }, { kind: "directive", type: i7.ScrollDirective, selector: "[askScroll]", inputs: ["askScrollThreshold"], outputs: ["scrollEnd"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
299
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutocompleteComponent, selector: "ask-autocomplete", inputs: { filterFn: "filterFn", displayFn: "displayFn", multiple: "multiple", valueProp: "valueProp", options: "options", placeholder: "placeholder", emptyMessage: "emptyMessage", selectAll: "selectAll", allOptionsSelectedText: "allOptionsSelectedText" }, host: { listeners: { "window:mousedown": "handleClick($event)" } }, providers: [valueAccessor], viewQueries: [{ propertyName: "input", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n (click)=\"handleAutocompleteClick()\"\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n askAutofocus\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n (click)=\"$event.stopPropagation()\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"showChips\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\"\n [ngClass]=\"chipsContainerClasses\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '85%' : '95%'\"\n [showAction]=\"true\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"showAllSelectionBtn\"\n (click)=\"handleChipsListActionClick($event)\">\n +{{selection.length - 1}}\n </span>\n </div>\n </ng-container>\n <span class=\"empty-placeholder\" data-testid=\"placeholder\" *ngIf=\"showPlaceholder\">\n {{(checkAllValue && allOptionsSelectedText) ? allOptionsSelectedText : placeholder}}\n </span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n *ngIf=\"chipsCollapsed\">\n {{closed ? \"expand_more\" : \"expand_less\"}}\n </span>\n </div>\n <div class=\"actions\" *ngIf=\"showExpandedSelectionActions\">\n <span class=\"see-more\" data-testid=\"see-less\"\n (click)=\"handleChipsListActionClick($event)\">\n {{'SEE_LESS' | translate}}\n </span>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\">\n {{closed ? \"expand_more\" : \"expand_less\"}}\n </span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <div class=\"list\" askScroll [askScrollThreshold]=\"50\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"showSelectAllCheckbox\">\n <ask-checkbox (valueChange)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form askScroll [askScrollThreshold]=\"50\"\n *ngIf=\"selectionForm.controls\"\n [formGroup]=\"selectionForm\"\n (scrollEnd)=\"getMoreItems()\"\n data-testid=\"options-form\"\n class=\"options-form\"\n [class.-select-all]=\"showSelectAllCheckbox\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage | translate}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scale-in-center{animation:scale-in-center .3s ease-in-out both}@keyframes scale-in-center{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:1}}.scale-out-center{animation:scale-out-center .3s ease-in-out both}@keyframes scale-out-center{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:1}}.ask-tooltip{background-color:#7b8794;color:#fff;padding:4px;border-radius:8px;position:relative}.ask-tooltip>div{text-align:center!important}.ask-tooltip:after{position:absolute;content:\"\";width:10px;height:10px;background-color:inherit}.ask-tooltip.-above{margin-bottom:4px}.ask-tooltip.-above:after{bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-below{margin-top:4px}.ask-tooltip.-below:after{top:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-after,.ask-tooltip.-right{margin-left:4px}.ask-tooltip.-after:after,.ask-tooltip.-right:after{left:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.ask-tooltip.-before,.ask-tooltip.-left{margin-right:4px}.ask-tooltip.-before:after,.ask-tooltip.-left:after{right:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.ask-badge{position:relative}.ask-badge>.badge{position:absolute;display:flex;justify-content:center;align-items:center;background-color:var(--bg-color);color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-radius:50%;box-shadow:0 2px 6px -1px #00000080}.ask-badge>.badge.-primary{--bg-color: var(--asksuite-orange)}.ask-badge>.badge.-secondary{--bg-color: var(--grey-800)}.ask-badge>.badge.-top{top:-10px}.ask-badge>.badge.-bottom{bottom:-10px}.ask-badge>.badge.-left{left:-10px}.ask-badge>.badge.-right{right:-10px}.ask-badge>.badge.-small{width:18px;height:18px;font-size:10px}.ask-badge>.badge.-regular{width:22px;height:22px;font-size:11px}.ask-badge>.badge.-large{width:28px;height:28px;font-size:12px}.ask-dropdown-top-right{margin-left:8px}.ask-dropdown-top-left{margin-right:8px}.ask-dropdown-bottom-right,.ask-dropdown-bottom-left{margin-top:8px}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper:hover{cursor:pointer}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.autocomplete-wrapper>.actions{width:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:1rem;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.see-more,.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:.875rem;font-weight:500}.see-more:hover,.chip-list>.expand:hover{cursor:pointer}.chip-list{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1;max-height:155px;transition:all ease-in-out .3s;max-width:100%}.chip-list.-collapsed{height:31px;overflow:hidden;transition:none}.chip-list.-two{height:62px}.chip-list.-three{height:93px}.chip-list.-four{height:124px}.chip-list.-many{overflow-y:auto;height:155px}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.empty-placeholder{font-size:.875rem}.empty-placeholder:hover{cursor:pointer}.list-box,.menu-container>.list,.options-form{min-height:1rem;overflow-y:scroll;max-height:100%}.list-box.-select-all,.menu-container>.-select-all.list,.-select-all.options-form{max-height:80%}.menu-container{width:100%;background:white;max-height:165px;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:228px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.ChipsComponent, selector: "ask-chips", inputs: ["appearance", "showAction", "size"], outputs: ["action"] }, { kind: "component", type: i5.CheckboxComponent, selector: "ask-checkbox", inputs: ["value", "disabled"], outputs: ["valueChange", "change", "click", "focus"] }, { kind: "directive", type: i6.AutofocusDirective, selector: "[askAutofocus]" }, { kind: "directive", type: i7.ScrollDirective, selector: "[askScroll]", inputs: ["askScrollThreshold"], outputs: ["scrollEnd"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
282
300
|
}
|
283
301
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
284
302
|
type: Component,
|
285
|
-
args: [{ selector: 'ask-autocomplete', providers: [valueAccessor], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n (click)=\"handleAutocompleteClick()\"\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n askAutofocus\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n (click)=\"$event.stopPropagation()\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"showChips\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\"\n [ngClass]=\"chipsContainerClasses\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '85%' : '95%'\"\n [showAction]=\"true\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"showAllSelectionBtn\"\n (click)=\"handleChipsListActionClick($event)\">\n +{{selection.length - 1}}\n </span>\n </div>\n </ng-container>\n <span class=\"empty-placeholder\" data-testid=\"placeholder\" *ngIf=\"showPlaceholder\">\n {{(checkAllValue && allOptionsSelectedText) ? allOptionsSelectedText : placeholder}}\n </span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n *ngIf=\"chipsCollapsed\">\n {{closed ? \"expand_more\" : \"expand_less\"}}\n </span>\n </div>\n <div class=\"actions\" *ngIf=\"showExpandedSelectionActions\">\n <span class=\"see-more\" data-testid=\"see-less\"\n (click)=\"handleChipsListActionClick($event)\">\n {{'SEE_LESS' | translate}}\n </span>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\">\n {{closed ? \"expand_more\" : \"expand_less\"}}\n </span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <div class=\"list\" askScroll [askScrollThreshold]=\"50\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"showSelectAllCheckbox\">\n <ask-checkbox (valueChange)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form askScroll [askScrollThreshold]=\"50\"\n *ngIf=\"selectionForm.controls\"\n [formGroup]=\"selectionForm\"\n (scrollEnd)=\"getMoreItems()\"\n data-testid=\"options-form\"\n class=\"options-form\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage | translate}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scale-in-center{animation:scale-in-center .3s ease-in-out both}@keyframes scale-in-center{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:1}}.scale-out-center{animation:scale-out-center .3s ease-in-out both}@keyframes scale-out-center{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:1}}.ask-tooltip{background-color:#7b8794;color:#fff;padding:4px;border-radius:8px;position:relative}.ask-tooltip>div{text-align:center!important}.ask-tooltip:after{position:absolute;content:\"\";width:10px;height:10px;background-color:inherit}.ask-tooltip.-above{margin-bottom:4px}.ask-tooltip.-above:after{bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-below{margin-top:4px}.ask-tooltip.-below:after{top:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-after,.ask-tooltip.-right{margin-left:4px}.ask-tooltip.-after:after,.ask-tooltip.-right:after{left:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.ask-tooltip.-before,.ask-tooltip.-left{margin-right:4px}.ask-tooltip.-before:after,.ask-tooltip.-left:after{right:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.ask-badge{position:relative}.ask-badge>.badge{position:absolute;display:flex;justify-content:center;align-items:center;background-color:var(--bg-color);color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-radius:50%;box-shadow:0 2px 6px -1px #00000080}.ask-badge>.badge.-primary{--bg-color: var(--asksuite-orange)}.ask-badge>.badge.-secondary{--bg-color: var(--grey-800)}.ask-badge>.badge.-top{top:-10px}.ask-badge>.badge.-bottom{bottom:-10px}.ask-badge>.badge.-left{left:-10px}.ask-badge>.badge.-right{right:-10px}.ask-badge>.badge.-small{width:18px;height:18px;font-size:10px}.ask-badge>.badge.-regular{width:22px;height:22px;font-size:11px}.ask-badge>.badge.-large{width:28px;height:28px;font-size:12px}.ask-dropdown-top-right{margin-left:8px}.ask-dropdown-top-left{margin-right:8px}.ask-dropdown-bottom-right,.ask-dropdown-bottom-left{margin-top:8px}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper:hover{cursor:pointer}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.autocomplete-wrapper>.actions{width:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:1rem;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.see-more,.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:.875rem;font-weight:500}.see-more:hover,.chip-list>.expand:hover{cursor:pointer}.chip-list{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1;max-height:155px;transition:all ease-in-out .3s;max-width:100%}.chip-list.-collapsed{height:31px;overflow:hidden;transition:none}.chip-list.-two{height:62px}.chip-list.-three{height:93px}.chip-list.-four{height:124px}.chip-list.-many{overflow-y:auto;height:155px}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.empty-placeholder{font-size:.875rem}.empty-placeholder:hover{cursor:pointer}.list-box,.menu-container>.list,.options-form{min-height:1rem;overflow-y:scroll;max-height:100%}.menu-container{width:100%;background:white;max-height:165px;
|
303
|
+
args: [{ selector: 'ask-autocomplete', providers: [valueAccessor], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n (click)=\"handleAutocompleteClick()\"\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n askAutofocus\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n (click)=\"$event.stopPropagation()\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"showChips\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\"\n [ngClass]=\"chipsContainerClasses\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '85%' : '95%'\"\n [showAction]=\"true\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"showAllSelectionBtn\"\n (click)=\"handleChipsListActionClick($event)\">\n +{{selection.length - 1}}\n </span>\n </div>\n </ng-container>\n <span class=\"empty-placeholder\" data-testid=\"placeholder\" *ngIf=\"showPlaceholder\">\n {{(checkAllValue && allOptionsSelectedText) ? allOptionsSelectedText : placeholder}}\n </span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n *ngIf=\"chipsCollapsed\">\n {{closed ? \"expand_more\" : \"expand_less\"}}\n </span>\n </div>\n <div class=\"actions\" *ngIf=\"showExpandedSelectionActions\">\n <span class=\"see-more\" data-testid=\"see-less\"\n (click)=\"handleChipsListActionClick($event)\">\n {{'SEE_LESS' | translate}}\n </span>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\">\n {{closed ? \"expand_more\" : \"expand_less\"}}\n </span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <div class=\"list\" askScroll [askScrollThreshold]=\"50\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"showSelectAllCheckbox\">\n <ask-checkbox (valueChange)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form askScroll [askScrollThreshold]=\"50\"\n *ngIf=\"selectionForm.controls\"\n [formGroup]=\"selectionForm\"\n (scrollEnd)=\"getMoreItems()\"\n data-testid=\"options-form\"\n class=\"options-form\"\n [class.-select-all]=\"showSelectAllCheckbox\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage | translate}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scale-in-center{animation:scale-in-center .3s ease-in-out both}@keyframes scale-in-center{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:1}}.scale-out-center{animation:scale-out-center .3s ease-in-out both}@keyframes scale-out-center{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:1}}.ask-tooltip{background-color:#7b8794;color:#fff;padding:4px;border-radius:8px;position:relative}.ask-tooltip>div{text-align:center!important}.ask-tooltip:after{position:absolute;content:\"\";width:10px;height:10px;background-color:inherit}.ask-tooltip.-above{margin-bottom:4px}.ask-tooltip.-above:after{bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-below{margin-top:4px}.ask-tooltip.-below:after{top:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-after,.ask-tooltip.-right{margin-left:4px}.ask-tooltip.-after:after,.ask-tooltip.-right:after{left:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.ask-tooltip.-before,.ask-tooltip.-left{margin-right:4px}.ask-tooltip.-before:after,.ask-tooltip.-left:after{right:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.ask-badge{position:relative}.ask-badge>.badge{position:absolute;display:flex;justify-content:center;align-items:center;background-color:var(--bg-color);color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-radius:50%;box-shadow:0 2px 6px -1px #00000080}.ask-badge>.badge.-primary{--bg-color: var(--asksuite-orange)}.ask-badge>.badge.-secondary{--bg-color: var(--grey-800)}.ask-badge>.badge.-top{top:-10px}.ask-badge>.badge.-bottom{bottom:-10px}.ask-badge>.badge.-left{left:-10px}.ask-badge>.badge.-right{right:-10px}.ask-badge>.badge.-small{width:18px;height:18px;font-size:10px}.ask-badge>.badge.-regular{width:22px;height:22px;font-size:11px}.ask-badge>.badge.-large{width:28px;height:28px;font-size:12px}.ask-dropdown-top-right{margin-left:8px}.ask-dropdown-top-left{margin-right:8px}.ask-dropdown-bottom-right,.ask-dropdown-bottom-left{margin-top:8px}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper:hover{cursor:pointer}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.autocomplete-wrapper>.actions{width:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:1rem;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.see-more,.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:.875rem;font-weight:500}.see-more:hover,.chip-list>.expand:hover{cursor:pointer}.chip-list{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1;max-height:155px;transition:all ease-in-out .3s;max-width:100%}.chip-list.-collapsed{height:31px;overflow:hidden;transition:none}.chip-list.-two{height:62px}.chip-list.-three{height:93px}.chip-list.-four{height:124px}.chip-list.-many{overflow-y:auto;height:155px}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.empty-placeholder{font-size:.875rem}.empty-placeholder:hover{cursor:pointer}.list-box,.menu-container>.list,.options-form{min-height:1rem;overflow-y:scroll;max-height:100%}.list-box.-select-all,.menu-container>.-select-all.list,.-select-all.options-form{max-height:80%}.menu-container{width:100%;background:white;max-height:165px;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:228px}\n"] }]
|
286
304
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
|
287
305
|
type: ViewChild,
|
288
306
|
args: ["autocomplete"]
|
@@ -317,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
317
335
|
type: HostListener,
|
318
336
|
args: ["window:mousedown", ['$event']]
|
319
337
|
}] } });
|
320
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQUMsWUFBWSxFQUFhLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWxFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7OztBQUU5RCxNQUFNLGFBQWEsR0FBYTtJQUM5QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztDQUNyRCxDQUFBO0FBU0QsTUFBTSxPQUFPLHFCQUFxQjtJQWlFaEMsWUFBb0IsV0FBd0IsRUFDeEIsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLE1BQXlCO1FBSHpCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENB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RHBEYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0Usa0JBQWtCLGFBR2pCLENBQUMsYUFBYSxDQUFDLG1CQUNULHVCQUF1QixDQUFDLE1BQU07dUxBSXBCLEtBQUs7c0JBQS9CLFNBQVM7dUJBQUMsY0FBYztnQkFDTixJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ0ssT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNTLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQWtDM0IsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBcUpOLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsIE9uQ2hhbmdlcyxcbiAgUHJvdmlkZXIsIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGZyb21FdmVudCwgbWFwLCBzdGFydFdpdGgsIHRhcH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7T3ZlcmxheSwgT3ZlcmxheVJlZn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQge1RlbXBsYXRlUG9ydGFsfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuXG5jb25zdCB2YWx1ZUFjY2Vzc29yOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt2YWx1ZUFjY2Vzc29yXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcyB7XG5cbiAgQFZpZXdDaGlsZChcImF1dG9jb21wbGV0ZVwiKSBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKFwibGlzdFwiKSBsaXN0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoXCJ3cmFwcGVyXCIpIHdyYXBwZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZCgnb3ZlcmxheUNvbnRlbnQnKSBvdmVybGF5Q29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIHByb3RlY3RlZCBpbnB1dENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woXCJcIilcbiAgcHJvdGVjdGVkIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHJvdGVjdGVkIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uPzogYW55O1xuICBwcm90ZWN0ZWQgc2VsZWN0aW9uOiBhbnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgY2xvc2VkID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIHNlbGVjdGlvbkZvcm06IEZvcm1Hcm91cFxuICBwcm90ZWN0ZWQgY2hpcHNDb2xsYXBzZWQgPSB0cnVlXG4gIHByb3RlY3RlZCBjaGVja0FsbFZhbHVlID0gZmFsc2VcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93Q2hpcHMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dBbGxTZWxlY3Rpb25CdG4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dQbGFjZWhvbGRlciA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd0V4cGFuZGVkU2VsZWN0aW9uQWN0aW9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd1NlbGVjdEFsbENoZWNrYm94ID0gZmFsc2U7XG4gIHByb3RlY3RlZCBjaGlwc0NvbnRhaW5lckNsYXNzZXMgPSB7XG4gICAgXCItdHdvXCI6IGZhbHNlLFxuICAgIFwiLXRocmVlXCI6IGZhbHNlLFxuICAgIFwiLWZvdXJcIjogZmFsc2UsXG4gICAgXCItbWFueVwiOiBmYWxzZVxuICB9O1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3BvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKVxuICBwcml2YXRlIHJlYWRvbmx5IElURU1TX1BFUl9QQUdFID0gNDBcbiAgcHJpdmF0ZSBfcGFnZU51bWJlciA9IDFcbiAgcHJpdmF0ZSBfcmVhY2hlZEVuZCA9IGZhbHNlO1xuXG5cblxuICBASW5wdXQoKVxuICBmaWx0ZXJGbj86IChpdGVtOiBzdHJpbmcpID0+IGFueVtdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc3BsYXlGbj86IChpdGVtOiBhbnkpID0+IHN0cmluZztcblxuICBASW5wdXQoKVxuICBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHZhbHVlUHJvcDogc3RyaW5nID0gJydcblxuICBASW5wdXQoKVxuICBvcHRpb25zOiBhbnlbXSA9IFtdXG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnJ1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5TWVzc2FnZSA9ICdOT19PUFRJT05TJztcblxuICBASW5wdXQoKVxuICBzZWxlY3RBbGwgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIGFsbE9wdGlvbnNTZWxlY3RlZFRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2U6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Gb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe30pXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jaGVja0FsbFZhbHVlID0gT2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlKS5sZW5ndGggPT09IHRoaXMub3B0aW9ucy5sZW5ndGhcbiAgICAgICYmIHRoaXMub3B0aW9ucy5ldmVyeSh2YWx1ZSA9PlxuICAgICAgICB0aGlzLnNlbGVjdGlvbkZvcm0udmFsdWVbdmFsdWVbdGhpcy52YWx1ZVByb3BdXSlcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5TZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICB0aGlzLl9wYWdlTnVtYmVyID0gMVxuICAgICAgdGhpcy5fcmVhY2hlZEVuZCA9IGZhbHNlXG4gICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdXG5cbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZVxuICAgICAgdGhpcy5nZXRNb3JlSXRlbXMoKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLl9wYWdlTnVtYmVyID0gMVxuICAgICAgICB0aGlzLl9yZWFjaGVkRW5kID0gZmFsc2VcbiAgICAgICAgdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbXVxuICAgICAgfSksXG4gICAgICBtYXAodmFsdWUgPT4gdGhpcy5maWx0ZXJGbiA/IHRoaXMuZmlsdGVyRm4odmFsdWUgfHwgJycpIDogW10pXG4gICAgKS5zdWJzY3JpYmUoaXRlbXMgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBpdGVtc1xuICAgICAgdGhpcy5nZXRNb3JlSXRlbXMoKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGxpc3RlblNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdGhpcy5vcHRpb25zLmZpbHRlcihvcHRpb24gPT4gdGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlW29wdGlvblt0aGlzLnZhbHVlUHJvcF1dKVxuICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgICAgdGhpcy5zZWxlY3Rpb25Gb3JtXG4gICAgICAudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZXM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufSkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSBPYmplY3Qua2V5cyh2YWx1ZXMpLmV2ZXJ5KHZhbHVlID0+IHZhbHVlc1t2YWx1ZV0pXG4gICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbHVlcylcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGlvbilcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbHVlczoge1trZXk6IHN0cmluZ106IGJvb2xlYW59KSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSB0aGlzLm9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiB2YWx1ZXNbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0pXG5cbiAgICBpZiAoIXRoaXMuY2hpcHNDb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPCAyXG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKSB7XG4gICAgdGhpcy5jaGlwc0NvbnRhaW5lckNsYXNzZXMgPSB7XG4gICAgICBcIi10d29cIjogdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAyLFxuICAgICAgXCItdGhyZWVcIjogdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAzLFxuICAgICAgXCItZm91clwiOiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDQsXG4gICAgICBcIi1tYW55XCI6IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+PSA1XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT3B0aW9uU2VsZWN0ZWQoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IGl0ZW07XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkT3B0aW9uKVxuICAgIHRoaXMuaGlkZU9wdGlvbnMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKGV2ZW50PzogRXZlbnQpIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5jbG9zZWRcbiAgICAgICAgPyB0aGlzLnNob3dPcHRpb25zKClcbiAgICAgICAgOiB0aGlzLmhpZGVPcHRpb25zKClcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy51cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNoaXBzTGlzdEFjdGlvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgdGhpcy5jaGlwc0NvbGxhcHNlZCA9ICF0aGlzLmNoaXBzQ29sbGFwc2VkO1xuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpXG4gICAgdGhpcy51cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgc2hvd09wdGlvbnMoKSB7XG4gICAgdGhpcy5jbG9zZWQgPSBmYWxzZVxuICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZiAmJiB0aGlzLndyYXBwZXIpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLmdldE92ZXJsYXlDb25maWcodGhpcy53cmFwcGVyKVxuXG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5Q29udGVudCEsIHRoaXMudmlld0NvbnRhaW5lclJlZilcbiAgICB9XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcblxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIGlmICh0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPT09IDApIHRoaXMuZ2V0TW9yZUl0ZW1zKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZyh3cmFwcGVyOiBFbGVtZW50UmVmKSB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgd2lkdGg6IHdyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHdyYXBwZXIubmF0aXZlRWxlbWVudClcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoW3tcbiAgICAgICAgICBvcmlnaW5YOiBcInN0YXJ0XCIsXG4gICAgICAgICAgb3JpZ2luWTogXCJib3R0b21cIixcbiAgICAgICAgICBvdmVybGF5WDogXCJzdGFydFwiLFxuICAgICAgICAgIG92ZXJsYXlZOiBcInRvcFwiXG4gICAgICAgIH1dKVxuICAgIH0pO1xuICB9XG5cbiAgaGlkZU9wdGlvbnMoKSB7XG4gICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSB0cnVlO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy5fcGFnZU51bWJlciA9IDE7XG4gICAgdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6bW91c2Vkb3duXCIsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuY2xvc2VkXG4gICAgICAmJiAhdGhpcy53cmFwcGVyPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICYmICF0aGlzLmxpc3Q/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgfVxuXG4gIGdldCBzZWxlY3RlZE9wdGlvbnMoKTogYW55W10ge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyBbdGhpcy5zZWxlY3RlZE9wdGlvbl0gOiBbXVxuXG4gICAgcmV0dXJuIHRoaXMuY2hpcHNDb2xsYXBzZWRcbiAgICAgID8gdGhpcy5zZWxlY3Rpb24uc2xpY2UoMCwgMSlcbiAgICAgIDogdGhpcy5zZWxlY3Rpb247XG4gIH1cblxuICBoYW5kbGVTZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbikge1xuICAgIHRoaXMuc2VsZWN0QWxsT3B0aW9ucyhjaGVja2VkKTtcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbHModGhpcy5vcHRpb25zLCB0aGlzLnNlbGVjdGlvbkZvcm0sIHRoaXMuZm9ybUJ1aWxkZXIsIHRoaXMudmFsdWVQcm9wLCBzZWxlY3RlZClcblxuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0aW9uRm9ybS5jb250cm9scylcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICBhY2NbY3Vycl0gPSBzZWxlY3RlZFxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30gYXMge1trZXk6IHN0cmluZ106IGJvb2xlYW59KVxuXG5cbiAgICB0aGlzLnNlbGVjdGlvbkZvcm0ucGF0Y2hWYWx1ZShuZXdWYWx1ZXMpXG4gICAgdGhpcy5zZWxlY3Rpb25Gb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIGhhbmRsZUNoaXBBY3Rpb24ob3B0aW9uOiBhbnkpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Gb3JtLmdldChvcHRpb25bdGhpcy52YWx1ZVByb3BdKT8uc2V0VmFsdWUoZmFsc2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKClcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBkaXNwbGF5KG9wdGlvbjogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUZuICYmIHRoaXMuZGlzcGxheUZuKG9wdGlvbilcbiAgfVxuXG4gIGdldE1vcmVJdGVtcygpIHtcbiAgICBjb25zdCBuZXh0UGFnZUl0ZW1zID0gdGhpcy5maWx0ZXJlZE9wdGlvbnMuc2xpY2UoXG4gICAgICB0aGlzLklURU1TX1BFUl9QQUdFICogKHRoaXMuX3BhZ2VOdW1iZXIgLSAxKSxcbiAgICAgIHRoaXMuSVRFTVNfUEVSX1BBR0UgKiB0aGlzLl9wYWdlTnVtYmVyKTtcbiAgICBpZiAobmV4dFBhZ2VJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xzKG5leHRQYWdlSXRlbXMsIHRoaXMuc2VsZWN0aW9uRm9ybSwgdGhpcy5mb3JtQnVpbGRlciwgdGhpcy52YWx1ZVByb3AsIHRoaXMuY2hlY2tBbGxWYWx1ZSk7XG4gICAgICB0aGlzLnNlbGVjdGlvbkZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXG4gICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFsuLi50aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucywgLi4ubmV4dFBhZ2VJdGVtc107XG4gICAgICB0aGlzLl9wYWdlTnVtYmVyICs9IDFcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcmVhY2hlZEVuZCA9IHRydWVcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZvcm1Db250cm9scyhpdGVtczogYW55W10sIGZvcm06IEZvcm1Hcm91cCwgZmI6IEZvcm1CdWlsZGVyLCBwcm9wVmFsdWU6IHN0cmluZywgY2hlY2tlZDogYm9vbGVhbikge1xuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAoZm9ybS52YWx1ZVtpdGVtW3Byb3BWYWx1ZV1dID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgIGl0ZW1bcHJvcFZhbHVlXSxcbiAgICAgICAgICBmYi5jb250cm9sKGNoZWNrZWQpLFxuICAgICAgICAgIHtlbWl0RXZlbnQ6IGZhbHNlfVxuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKCFmb3JtLnZhbHVlW2l0ZW1bcHJvcFZhbHVlXV0pIHtcbiAgICAgICAgZm9ybS5nZXQoaXRlbVtwcm9wVmFsdWVdKT8uc2V0VmFsdWUoY2hlY2tlZCwge2VtaXRFdmVudDogZmFsc2V9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlVmFsaWRhdGlvbigpIHtcbiAgICB0aGlzLnNob3dDaGlwcyA9IEJvb2xlYW4odGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSAmJiB0aGlzLmNsb3NlZCAmJiAoXG4gICAgICAhdGhpcy5tdWx0aXBsZSB8fCAhdGhpcy5jaGVja0FsbFZhbHVlIHx8ICh0aGlzLmNoZWNrQWxsVmFsdWUgJiYgIUJvb2xlYW4odGhpcy5hbGxPcHRpb25zU2VsZWN0ZWRUZXh0KSlcbiAgICApO1xuICAgIHRoaXMuc2hvd0FsbFNlbGVjdGlvbkJ0biA9IHRoaXMubXVsdGlwbGUgJiYgQm9vbGVhbih0aGlzLnNlbGVjdGlvbi5sZW5ndGggPiAxKSAmJiB0aGlzLmNoaXBzQ29sbGFwc2VkO1xuICAgIHRoaXMuc2hvd1BsYWNlaG9sZGVyID0gdGhpcy5jbG9zZWQgJiYgKFxuICAgICAgIXRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCB8fCAodGhpcy5jaGVja0FsbFZhbHVlICYmIEJvb2xlYW4odGhpcy5hbGxPcHRpb25zU2VsZWN0ZWRUZXh0KSAmJiB0aGlzLm11bHRpcGxlKVxuICAgICk7XG4gICAgdGhpcy5zaG93RXhwYW5kZWRTZWxlY3Rpb25BY3Rpb25zID0gdGhpcy5tdWx0aXBsZSAmJiAhdGhpcy5jaGlwc0NvbGxhcHNlZDtcbiAgICB0aGlzLnNob3dTZWxlY3RBbGxDaGVja2JveCA9IEJvb2xlYW4odGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSAmJiB0aGlzLnNlbGVjdEFsbDtcbiAgfVxuXG4gIC8vIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcblxuICB3cml0ZVZhbHVlKG9iajogYW55W10gfCBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgIGlmICgoIW9iaiB8fCAoQXJyYXkuaXNBcnJheShvYmopICYmICFvYmoubGVuZ3RoKSkgJiYgdGhpcy5zZWxlY3RBbGwpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsT3B0aW9ucyh0aGlzLnNlbGVjdEFsbClcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS5yZXNldCh7fSwge2VtaXRFdmVudDogZmFsc2V9KVxuICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbHMob2JqLCB0aGlzLnNlbGVjdGlvbkZvcm0sIHRoaXMuZm9ybUJ1aWxkZXIsIHRoaXMudmFsdWVQcm9wLCB0cnVlKVxuICAgICAgdGhpcy5zZWxlY3Rpb25Gb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9ialxuICAgIH1cblxuICAgIGlmICh0aGlzLm11bHRpcGxlICYmICF0aGlzLnNlbGVjdGlvbi5sZW5ndGgpIHtcbiAgICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHRoaXMuc2VsZWN0aW9uRm9ybS52YWx1ZSlcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4ge31cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXJcIlxuICAgICBbY2xhc3MuLWNsb3NlZF09XCJjbG9zZWRcIlxuICAgICBbY2xhc3MuLW9wZW5lZF09XCIhY2xvc2VkXCJcbiAgICAgI3dyYXBwZXJcbiAgICAgKGNsaWNrKT1cImhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKClcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlXCIgI2F1dG9jb21wbGV0ZT5cbiAgICA8aW5wdXQgY2xhc3M9XCJzZWFyY2gtZmllbGRcIlxuICAgICAgICAgICBhc2tBdXRvZm9jdXNcbiAgICAgICAgICAgKm5nSWY9XCIhY2xvc2VkOyBlbHNlIHNlbGVjdGlvbk9yUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImlucHV0Q29udHJvbFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiLz5cbiAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGlvbk9yUGxhY2Vob2xkZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0NoaXBzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWxpc3RcIiBbY2xhc3MuLWNvbGxhcHNlZF09XCJjaGlwc0NvbGxhcHNlZFwiXG4gICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hpcHNDb250YWluZXJDbGFzc2VzXCI+XG4gICAgICAgICAgPGFzay1jaGlwcyBbc3R5bGUubWF4LXdpZHRoXT1cImNoaXBzQ29sbGFwc2VkID8gJzg1JScgOiAnOTUlJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbc2hvd0FjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiaGFuZGxlQ2hpcEFjdGlvbihvcHRpb24pXCI+XG4gICAgICAgICAgICB7e2Rpc3BsYXkob3B0aW9uKX19XG4gICAgICAgICAgPC9hc2stY2hpcHM+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBhbmRcIiBkYXRhLXRlc3RpZD1cInNlZS1tb3JlXCIgKm5nSWY9XCJzaG93QWxsU2VsZWN0aW9uQnRuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2hpcHNMaXN0QWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgK3t7c2VsZWN0aW9uLmxlbmd0aCAtIDF9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZW1wdHktcGxhY2Vob2xkZXJcIiBkYXRhLXRlc3RpZD1cInBsYWNlaG9sZGVyXCIgKm5nSWY9XCJzaG93UGxhY2Vob2xkZXJcIj5cbiAgICAgICAge3soY2hlY2tBbGxWYWx1ZSAmJiBhbGxPcHRpb25zU2VsZWN0ZWRUZXh0KSA/IGFsbE9wdGlvbnNTZWxlY3RlZFRleHQgOiBwbGFjZWhvbGRlcn19XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8c3BhbiBjbGFzcz1cImJ0bi1leHBhbmQgbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiYnRuLWV4cGFuZFwiXG4gICAgICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKm5nSWY9XCJjaGlwc0NvbGxhcHNlZFwiPlxuICAgICAge3tjbG9zZWQgPyBcImV4cGFuZF9tb3JlXCIgOiBcImV4cGFuZF9sZXNzXCJ9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgKm5nSWY9XCJzaG93RXhwYW5kZWRTZWxlY3Rpb25BY3Rpb25zXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJzZWUtbW9yZVwiIGRhdGEtdGVzdGlkPVwic2VlLWxlc3NcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDaGlwc0xpc3RBY3Rpb25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIHt7J1NFRV9MRVNTJyB8IHRyYW5zbGF0ZX19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYnRuLWV4cGFuZCBtYXRlcmlhbC1pY29uc1wiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJidG4tZXhwYW5kXCJcbiAgICAgICAgICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICB7e2Nsb3NlZCA/IFwiZXhwYW5kX21vcmVcIiA6IFwiZXhwYW5kX2xlc3NcIn19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlDb250ZW50PlxuICA8ZGl2ICNsaXN0IGNsYXNzPVwibWVudS1jb250YWluZXJcIiBbY2xhc3MuLW11bHRpcGxlXT1cIm11bHRpcGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgZWxzZSBtdWx0aXBsZVNlbGVjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RcIiBhc2tTY3JvbGwgW2Fza1Njcm9sbFRocmVzaG9sZF09XCI1MFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgIFtjbGFzcy4taGlnaGxpZ2h0ZWRdPVwic2VsZWN0ZWRPcHRpb24gJiYgc2VsZWN0ZWRPcHRpb25bdmFsdWVQcm9wXSA9PT0gb3B0aW9uW3ZhbHVlUHJvcF1cIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9wdGlvblNlbGVjdGVkKG9wdGlvbilcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dFwiPnt7ZGlzcGxheShvcHRpb24pfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZVNlbGVjdGlvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiICpuZ0lmPVwic2hvd1NlbGVjdEFsbENoZWNrYm94XCI+XG4gICAgICAgIDxhc2stY2hlY2tib3ggKHZhbHVlQ2hhbmdlKT1cImhhbmRsZVNlbGVjdEFsbCgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJjaGVja0FsbFZhbHVlXCI+U2VsZWNpb25hciB0b2RhczwvYXNrLWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG4gICAgICA8Zm9ybSBhc2tTY3JvbGwgW2Fza1Njcm9sbFRocmVzaG9sZF09XCI1MFwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvbkZvcm0uY29udHJvbHNcIlxuICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJzZWxlY3Rpb25Gb3JtXCJcbiAgICAgICAgICAgIChzY3JvbGxFbmQpPVwiZ2V0TW9yZUl0ZW1zKClcIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJvcHRpb25zLWZvcm1cIlxuICAgICAgICAgICAgY2xhc3M9XCJvcHRpb25zLWZvcm1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGFzay1jaGVja2JveCBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvblt2YWx1ZVByb3BdXCI+e3tkaXNwbGF5KG9wdGlvbil9fTwvYXNrLWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8c3BhbiBjbGFzcz1cImVtcHR5XCIgKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zLmxlbmd0aFwiPnt7ZW1wdHlNZXNzYWdlIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQUMsWUFBWSxFQUFhLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWxFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7OztBQUU5RCxNQUFNLGFBQWEsR0FBYTtJQUM5QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztDQUNyRCxDQUFBO0FBU0QsTUFBTSxPQUFPLHFCQUFxQjtJQWlFaEMsWUFBb0IsV0FBd0IsRUFDeEIsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLE1BQXlCO1FBSHpCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENB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QUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBcUpOLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsIE9uQ2hhbmdlcyxcbiAgUHJvdmlkZXIsIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGZyb21FdmVudCwgbWFwLCBzdGFydFdpdGgsIHRhcH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7T3ZlcmxheSwgT3ZlcmxheVJlZn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQge1RlbXBsYXRlUG9ydGFsfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuXG5jb25zdCB2YWx1ZUFjY2Vzc29yOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt2YWx1ZUFjY2Vzc29yXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcyB7XG5cbiAgQFZpZXdDaGlsZChcImF1dG9jb21wbGV0ZVwiKSBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKFwibGlzdFwiKSBsaXN0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoXCJ3cmFwcGVyXCIpIHdyYXBwZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZCgnb3ZlcmxheUNvbnRlbnQnKSBvdmVybGF5Q29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIHByb3RlY3RlZCBpbnB1dENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woXCJcIilcbiAgcHJvdGVjdGVkIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHJvdGVjdGVkIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uPzogYW55O1xuICBwcm90ZWN0ZWQgc2VsZWN0aW9uOiBhbnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgY2xvc2VkID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIHNlbGVjdGlvbkZvcm06IEZvcm1Hcm91cFxuICBwcm90ZWN0ZWQgY2hpcHNDb2xsYXBzZWQgPSB0cnVlXG4gIHByb3RlY3RlZCBjaGVja0FsbFZhbHVlID0gZmFsc2VcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93Q2hpcHMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dBbGxTZWxlY3Rpb25CdG4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dQbGFjZWhvbGRlciA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd0V4cGFuZGVkU2VsZWN0aW9uQWN0aW9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd1NlbGVjdEFsbENoZWNrYm94ID0gZmFsc2U7XG4gIHByb3RlY3RlZCBjaGlwc0NvbnRhaW5lckNsYXNzZXMgPSB7XG4gICAgXCItdHdvXCI6IGZhbHNlLFxuICAgIFwiLXRocmVlXCI6IGZhbHNlLFxuICAgIFwiLWZvdXJcIjogZmFsc2UsXG4gICAgXCItbWFueVwiOiBmYWxzZVxuICB9O1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3BvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKVxuICBwcml2YXRlIHJlYWRvbmx5IElURU1TX1BFUl9QQUdFID0gNDBcbiAgcHJpdmF0ZSBfcGFnZU51bWJlciA9IDFcbiAgcHJpdmF0ZSBfcmVhY2hlZEVuZCA9IGZhbHNlO1xuXG5cblxuICBASW5wdXQoKVxuICBmaWx0ZXJGbj86IChpdGVtOiBzdHJpbmcpID0+IGFueVtdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc3BsYXlGbj86IChpdGVtOiBhbnkpID0+IHN0cmluZztcblxuICBASW5wdXQoKVxuICBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHZhbHVlUHJvcDogc3RyaW5nID0gJydcblxuICBASW5wdXQoKVxuICBvcHRpb25zOiBhbnlbXSA9IFtdXG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnJ1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5TWVzc2FnZSA9ICdOT19PUFRJT05TJztcblxuICBASW5wdXQoKVxuICBzZWxlY3RBbGwgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIGFsbE9wdGlvbnNTZWxlY3RlZFRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2U6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Gb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe30pXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jaGVja0FsbFZhbHVlID0gT2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlKS5sZW5ndGggPT09IHRoaXMub3B0aW9ucy5sZW5ndGhcbiAgICAgICYmIHRoaXMub3B0aW9ucy5ldmVyeSh2YWx1ZSA9PlxuICAgICAgICB0aGlzLnNlbGVjdGlvbkZvcm0udmFsdWVbdmFsdWVbdGhpcy52YWx1ZVByb3BdXSlcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5TZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICB0aGlzLl9wYWdlTnVtYmVyID0gMVxuICAgICAgdGhpcy5fcmVhY2hlZEVuZCA9IGZhbHNlXG4gICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdXG5cbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZVxuICAgICAgdGhpcy5nZXRNb3JlSXRlbXMoKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLl9wYWdlTnVtYmVyID0gMVxuICAgICAgICB0aGlzLl9yZWFjaGVkRW5kID0gZmFsc2VcbiAgICAgICAgdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbXVxuICAgICAgfSksXG4gICAgICBtYXAodmFsdWUgPT4gdGhpcy5maWx0ZXJGbiA/IHRoaXMuZmlsdGVyRm4odmFsdWUgfHwgJycpIDogW10pXG4gICAgKS5zdWJzY3JpYmUoaXRlbXMgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBpdGVtc1xuICAgICAgdGhpcy5nZXRNb3JlSXRlbXMoKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGxpc3RlblNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdGhpcy5vcHRpb25zLmZpbHRlcihvcHRpb24gPT4gdGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlW29wdGlvblt0aGlzLnZhbHVlUHJvcF1dKVxuICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgICAgdGhpcy5zZWxlY3Rpb25Gb3JtXG4gICAgICAudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZXM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufSkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSBPYmplY3Qua2V5cyh2YWx1ZXMpLmV2ZXJ5KHZhbHVlID0+IHZhbHVlc1t2YWx1ZV0pXG4gICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbHVlcylcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGlvbilcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbHVlczoge1trZXk6IHN0cmluZ106IGJvb2xlYW59KSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSB0aGlzLm9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiB2YWx1ZXNbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0pXG5cbiAgICBpZiAoIXRoaXMuY2hpcHNDb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPCAyXG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKSB7XG4gICAgdGhpcy5jaGlwc0NvbnRhaW5lckNsYXNzZXMgPSB7XG4gICAgICBcIi10d29cIjogdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAyLFxuICAgICAgXCItdGhyZWVcIjogdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAzLFxuICAgICAgXCItZm91clwiOiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDQsXG4gICAgICBcIi1tYW55XCI6IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+PSA1XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT3B0aW9uU2VsZWN0ZWQoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IGl0ZW07XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkT3B0aW9uKVxuICAgIHRoaXMuaGlkZU9wdGlvbnMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKGV2ZW50PzogRXZlbnQpIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5jbG9zZWRcbiAgICAgICAgPyB0aGlzLnNob3dPcHRpb25zKClcbiAgICAgICAgOiB0aGlzLmhpZGVPcHRpb25zKClcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy51cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNoaXBzTGlzdEFjdGlvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgdGhpcy5jaGlwc0NvbGxhcHNlZCA9ICF0aGlzLmNoaXBzQ29sbGFwc2VkO1xuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpXG4gICAgdGhpcy51cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgc2hvd09wdGlvbnMoKSB7XG4gICAgdGhpcy5jbG9zZWQgPSBmYWxzZVxuICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZiAmJiB0aGlzLndyYXBwZXIpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLmdldE92ZXJsYXlDb25maWcodGhpcy53cmFwcGVyKVxuXG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5Q29udGVudCEsIHRoaXMudmlld0NvbnRhaW5lclJlZilcbiAgICB9XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcblxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIGlmICh0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPT09IDApIHRoaXMuZ2V0TW9yZUl0ZW1zKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZyh3cmFwcGVyOiBFbGVtZW50UmVmKSB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgd2lkdGg6IHdyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHdyYXBwZXIubmF0aXZlRWxlbWVudClcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoW3tcbiAgICAgICAgICBvcmlnaW5YOiBcInN0YXJ0XCIsXG4gICAgICAgICAgb3JpZ2luWTogXCJib3R0b21cIixcbiAgICAgICAgICBvdmVybGF5WDogXCJzdGFydFwiLFxuICAgICAgICAgIG92ZXJsYXlZOiBcInRvcFwiXG4gICAgICAgIH1dKVxuICAgIH0pO1xuICB9XG5cbiAgaGlkZU9wdGlvbnMoKSB7XG4gICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSB0cnVlO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy5fcGFnZU51bWJlciA9IDE7XG4gICAgdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6bW91c2Vkb3duXCIsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuY2xvc2VkXG4gICAgICAmJiAhdGhpcy53cmFwcGVyPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICYmICF0aGlzLmxpc3Q/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgfVxuXG4gIGdldCBzZWxlY3RlZE9wdGlvbnMoKTogYW55W10ge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyBbdGhpcy5zZWxlY3RlZE9wdGlvbl0gOiBbXVxuXG4gICAgcmV0dXJuIHRoaXMuY2hpcHNDb2xsYXBzZWRcbiAgICAgID8gdGhpcy5zZWxlY3Rpb24uc2xpY2UoMCwgMSlcbiAgICAgIDogdGhpcy5zZWxlY3Rpb247XG4gIH1cblxuICBoYW5kbGVTZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbikge1xuICAgIHRoaXMuc2VsZWN0QWxsT3B0aW9ucyhjaGVja2VkKTtcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbHModGhpcy5vcHRpb25zLCB0aGlzLnNlbGVjdGlvbkZvcm0sIHRoaXMuZm9ybUJ1aWxkZXIsIHRoaXMudmFsdWVQcm9wLCBzZWxlY3RlZClcblxuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0aW9uRm9ybS5jb250cm9scylcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICBhY2NbY3Vycl0gPSBzZWxlY3RlZFxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30gYXMge1trZXk6IHN0cmluZ106IGJvb2xlYW59KVxuXG5cbiAgICB0aGlzLnNlbGVjdGlvbkZvcm0ucGF0Y2hWYWx1ZShuZXdWYWx1ZXMpXG4gICAgdGhpcy5zZWxlY3Rpb25Gb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIGhhbmRsZUNoaXBBY3Rpb24ob3B0aW9uOiBhbnkpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Gb3JtLmdldChvcHRpb25bdGhpcy52YWx1ZVByb3BdKT8uc2V0VmFsdWUoZmFsc2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKClcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBkaXNwbGF5KG9wdGlvbjogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUZuICYmIHRoaXMuZGlzcGxheUZuKG9wdGlvbilcbiAgfVxuXG4gIGdldE1vcmVJdGVtcygpIHtcbiAgICBjb25zdCBzb3J0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbLi4udGhpcy5maWx0ZXJlZE9wdGlvbnNdO1xuXG4gICAgdGhpcy5zb3J0U2VsZWN0ZWRGaXJzdChzb3J0ZWRGaWx0ZXJlZE9wdGlvbnMsIHRoaXMuc2VsZWN0aW9uLCB0aGlzLnZhbHVlUHJvcClcbiAgICBjb25zdCBuZXh0UGFnZUl0ZW1zID0gc29ydGVkRmlsdGVyZWRPcHRpb25zXG4gICAgICAuc2xpY2UoXG4gICAgICAgIHRoaXMuSVRFTVNfUEVSX1BBR0UgKiAodGhpcy5fcGFnZU51bWJlciAtIDEpLFxuICAgICAgICB0aGlzLklURU1TX1BFUl9QQUdFICogdGhpcy5fcGFnZU51bWJlclxuICAgICAgKTtcblxuICAgIGlmIChuZXh0UGFnZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbHMobmV4dFBhZ2VJdGVtcywgdGhpcy5zZWxlY3Rpb25Gb3JtLCB0aGlzLmZvcm1CdWlsZGVyLCB0aGlzLnZhbHVlUHJvcCwgdGhpcy5jaGVja0FsbFZhbHVlKTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcbiAgICAgIHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zID0gWy4uLnRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zLCAuLi5uZXh0UGFnZUl0ZW1zXTtcbiAgICAgIHRoaXMuX3BhZ2VOdW1iZXIgKz0gMVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZWFjaGVkRW5kID0gdHJ1ZVxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHNvcnRTZWxlY3RlZEZpcnN0KGl0ZW1zOiBBcnJheTxhbnk+LCBzZWxlY3RlZEl0ZW1zOiBBcnJheTxhbnk+LCBwcm9wOiBzdHJpbmcpIHtcbiAgICBpdGVtcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCBhSXNTZWxlY3RlZCA9IHNlbGVjdGVkSXRlbXMuc29tZShpdGVtID0+IGl0ZW1bcHJvcF0gPT09IGFbcHJvcF0pO1xuICAgICAgY29uc3QgYklzU2VsZWN0ZWQgPSBzZWxlY3RlZEl0ZW1zLnNvbWUoaXRlbSA9PiBpdGVtW3Byb3BdID09PSBiW3Byb3BdKTtcblxuICAgICAgaWYgKGFJc1NlbGVjdGVkICYmICFiSXNTZWxlY3RlZCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9IGVsc2UgaWYgKCFhSXNTZWxlY3RlZCAmJiBiSXNTZWxlY3RlZCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtQ29udHJvbHMoaXRlbXM6IGFueVtdLCBmb3JtOiBGb3JtR3JvdXAsIGZiOiBGb3JtQnVpbGRlciwgcHJvcFZhbHVlOiBzdHJpbmcsIGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGZvcm0udmFsdWVbaXRlbVtwcm9wVmFsdWVdXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICBpdGVtW3Byb3BWYWx1ZV0sXG4gICAgICAgICAgZmIuY29udHJvbChjaGVja2VkKSxcbiAgICAgICAgICB7ZW1pdEV2ZW50OiBmYWxzZX1cbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmICghZm9ybS52YWx1ZVtpdGVtW3Byb3BWYWx1ZV1dKSB7XG4gICAgICAgIGZvcm0uZ2V0KGl0ZW1bcHJvcFZhbHVlXSk/LnNldFZhbHVlKGNoZWNrZWQsIHtlbWl0RXZlbnQ6IGZhbHNlfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVZhbGlkYXRpb24oKSB7XG4gICAgdGhpcy5zaG93Q2hpcHMgPSBCb29sZWFuKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCkgJiYgdGhpcy5jbG9zZWQgJiYgKFxuICAgICAgIXRoaXMubXVsdGlwbGUgfHwgIXRoaXMuY2hlY2tBbGxWYWx1ZSB8fCAodGhpcy5jaGVja0FsbFZhbHVlICYmICFCb29sZWFuKHRoaXMuYWxsT3B0aW9uc1NlbGVjdGVkVGV4dCkpXG4gICAgKTtcbiAgICB0aGlzLnNob3dBbGxTZWxlY3Rpb25CdG4gPSB0aGlzLm11bHRpcGxlICYmIEJvb2xlYW4odGhpcy5zZWxlY3Rpb24ubGVuZ3RoID4gMSkgJiYgdGhpcy5jaGlwc0NvbGxhcHNlZDtcbiAgICB0aGlzLnNob3dQbGFjZWhvbGRlciA9IHRoaXMuY2xvc2VkICYmIChcbiAgICAgICF0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggfHwgKHRoaXMuY2hlY2tBbGxWYWx1ZSAmJiBCb29sZWFuKHRoaXMuYWxsT3B0aW9uc1NlbGVjdGVkVGV4dCkgJiYgdGhpcy5tdWx0aXBsZSlcbiAgICApO1xuICAgIHRoaXMuc2hvd0V4cGFuZGVkU2VsZWN0aW9uQWN0aW9ucyA9IHRoaXMubXVsdGlwbGUgJiYgIXRoaXMuY2hpcHNDb2xsYXBzZWQ7XG4gICAgdGhpcy5zaG93U2VsZWN0QWxsQ2hlY2tib3ggPSBCb29sZWFuKHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zLmxlbmd0aCkgJiYgdGhpcy5zZWxlY3RBbGw7XG4gIH1cblxuICAvLyBDb250cm9sIFZhbHVlIEFjY2Vzc29yXG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueVtdIHwgYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICBpZiAoKCFvYmogfHwgKEFycmF5LmlzQXJyYXkob2JqKSAmJiAhb2JqLmxlbmd0aCkpICYmIHRoaXMuc2VsZWN0QWxsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbE9wdGlvbnModGhpcy5zZWxlY3RBbGwpXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkZvcm0ucmVzZXQoe30sIHtlbWl0RXZlbnQ6IGZhbHNlfSlcbiAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xzKG9iaiwgdGhpcy5zZWxlY3Rpb25Gb3JtLCB0aGlzLmZvcm1CdWlsZGVyLCB0aGlzLnZhbHVlUHJvcCwgdHJ1ZSlcbiAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvYmpcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiAhdGhpcy5zZWxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSh0aGlzLnNlbGVjdGlvbkZvcm0udmFsdWUpXG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyXCJcbiAgICAgW2NsYXNzLi1jbG9zZWRdPVwiY2xvc2VkXCJcbiAgICAgW2NsYXNzLi1vcGVuZWRdPVwiIWNsb3NlZFwiXG4gICAgICN3cmFwcGVyXG4gICAgIChjbGljayk9XCJoYW5kbGVBdXRvY29tcGxldGVDbGljaygpXCJcbj5cbiAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZVwiICNhdXRvY29tcGxldGU+XG4gICAgPGlucHV0IGNsYXNzPVwic2VhcmNoLWZpZWxkXCJcbiAgICAgICAgICAgYXNrQXV0b2ZvY3VzXG4gICAgICAgICAgICpuZ0lmPVwiIWNsb3NlZDsgZWxzZSBzZWxlY3Rpb25PclBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJpbnB1dENvbnRyb2xcIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIi8+XG4gICAgPG5nLXRlbXBsYXRlICNzZWxlY3Rpb25PclBsYWNlaG9sZGVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDaGlwc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1saXN0XCIgW2NsYXNzLi1jb2xsYXBzZWRdPVwiY2hpcHNDb2xsYXBzZWRcIlxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNoaXBzQ29udGFpbmVyQ2xhc3Nlc1wiPlxuICAgICAgICAgIDxhc2stY2hpcHMgW3N0eWxlLm1heC13aWR0aF09XCJjaGlwc0NvbGxhcHNlZCA/ICc4NSUnIDogJzk1JSdcIlxuICAgICAgICAgICAgICAgICAgICAgW3Nob3dBY3Rpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNlbGVjdGVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAoYWN0aW9uKT1cImhhbmRsZUNoaXBBY3Rpb24ob3B0aW9uKVwiPlxuICAgICAgICAgICAge3tkaXNwbGF5KG9wdGlvbil9fVxuICAgICAgICAgIDwvYXNrLWNoaXBzPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXhwYW5kXCIgZGF0YS10ZXN0aWQ9XCJzZWUtbW9yZVwiICpuZ0lmPVwic2hvd0FsbFNlbGVjdGlvbkJ0blwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNoaXBzTGlzdEFjdGlvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICt7e3NlbGVjdGlvbi5sZW5ndGggLSAxfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVtcHR5LXBsYWNlaG9sZGVyXCIgZGF0YS10ZXN0aWQ9XCJwbGFjZWhvbGRlclwiICpuZ0lmPVwic2hvd1BsYWNlaG9sZGVyXCI+XG4gICAgICAgIHt7KGNoZWNrQWxsVmFsdWUgJiYgYWxsT3B0aW9uc1NlbGVjdGVkVGV4dCkgPyBhbGxPcHRpb25zU2VsZWN0ZWRUZXh0IDogcGxhY2Vob2xkZXJ9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJidG4tZXhwYW5kIG1hdGVyaWFsLWljb25zXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImJ0bi1leHBhbmRcIlxuICAgICAgICAgIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICpuZ0lmPVwiY2hpcHNDb2xsYXBzZWRcIj5cbiAgICAgIHt7Y2xvc2VkID8gXCJleHBhbmRfbW9yZVwiIDogXCJleHBhbmRfbGVzc1wifX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiICpuZ0lmPVwic2hvd0V4cGFuZGVkU2VsZWN0aW9uQWN0aW9uc1wiPlxuICAgIDxzcGFuIGNsYXNzPVwic2VlLW1vcmVcIiBkYXRhLXRlc3RpZD1cInNlZS1sZXNzXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2hpcHNMaXN0QWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICB7eydTRUVfTEVTUycgfCB0cmFuc2xhdGV9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImJ0bi1leHBhbmQgbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiYnRuLWV4cGFuZFwiXG4gICAgICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAge3tjbG9zZWQgPyBcImV4cGFuZF9tb3JlXCIgOiBcImV4cGFuZF9sZXNzXCJ9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5Q29udGVudD5cbiAgPGRpdiAjbGlzdCBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCIgW2NsYXNzLi1tdWx0aXBsZV09XCJtdWx0aXBsZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlwbGU7IGVsc2UgbXVsdGlwbGVTZWxlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0XCIgYXNrU2Nyb2xsIFthc2tTY3JvbGxUaHJlc2hvbGRdPVwiNTBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuLWhpZ2hsaWdodGVkXT1cInNlbGVjdGVkT3B0aW9uICYmIHNlbGVjdGVkT3B0aW9uW3ZhbHVlUHJvcF0gPT09IG9wdGlvblt2YWx1ZVByb3BdXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZChvcHRpb24pXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHRcIj57e2Rpc3BsYXkob3B0aW9uKX19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVTZWxlY3Rpb24+XG4gICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIiAqbmdJZj1cInNob3dTZWxlY3RBbGxDaGVja2JveFwiPlxuICAgICAgICA8YXNrLWNoZWNrYm94ICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGwoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiY2hlY2tBbGxWYWx1ZVwiPlNlbGVjaW9uYXIgdG9kYXM8L2Fzay1jaGVja2JveD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGZvcm0gYXNrU2Nyb2xsIFthc2tTY3JvbGxUaHJlc2hvbGRdPVwiNTBcIlxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb25Gb3JtLmNvbnRyb2xzXCJcbiAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwic2VsZWN0aW9uRm9ybVwiXG4gICAgICAgICAgICAoc2Nyb2xsRW5kKT1cImdldE1vcmVJdGVtcygpXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwib3B0aW9ucy1mb3JtXCJcbiAgICAgICAgICAgIGNsYXNzPVwib3B0aW9ucy1mb3JtXCJcbiAgICAgICAgICAgIFtjbGFzcy4tc2VsZWN0LWFsbF09XCJzaG93U2VsZWN0QWxsQ2hlY2tib3hcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGFzay1jaGVja2JveCBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvblt2YWx1ZVByb3BdXCI+e3tkaXNwbGF5KG9wdGlvbil9fTwvYXNrLWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8c3BhbiBjbGFzcz1cImVtcHR5XCIgKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zLmxlbmd0aFwiPnt7ZW1wdHlNZXNzYWdlIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
@@ -14,15 +14,6 @@ const VALUE_ACCESSOR = {
|
|
14
14
|
};
|
15
15
|
export class DatePickerComponent {
|
16
16
|
constructor() {
|
17
|
-
this.periods = [
|
18
|
-
{ label: PeriodLabel.TODAY, getRange: () => ({ from: formatFrom(moment()), to: formatTo(moment()) }), selected: false },
|
19
|
-
{ label: PeriodLabel.YESTERDAY, getRange: () => ({ from: formatFrom(moment().subtract(1, 'day')), to: formatTo(moment().subtract(1, 'day')) }), selected: false },
|
20
|
-
{ label: PeriodLabel.LAST_7_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(1, 'week')), to: formatTo(moment()) }), selected: false },
|
21
|
-
{ label: PeriodLabel.LAST_30_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(30, 'days')), to: formatTo(moment()) }), selected: false },
|
22
|
-
{ label: PeriodLabel.THIS_MONTH, getRange: () => ({ from: formatFrom(moment().startOf('month')), to: formatTo(moment().endOf('month')) }), selected: false },
|
23
|
-
{ label: PeriodLabel.LAST_QUARTER, getRange: () => ({ from: formatFrom(moment().subtract(3, 'months')), to: formatTo(moment().endOf('month')) }), selected: false },
|
24
|
-
{ label: PeriodLabel.CUSTOM_PERIOD, getRange: () => ({}), isCustomRange: true, selected: false },
|
25
|
-
];
|
26
17
|
this.date = moment().format();
|
27
18
|
this.isRange = false;
|
28
19
|
this.periodsFilter = [];
|
@@ -32,11 +23,20 @@ export class DatePickerComponent {
|
|
32
23
|
this.onChange = (value) => { };
|
33
24
|
this.onTouch = () => { };
|
34
25
|
}
|
26
|
+
static { this.PERIODS = [
|
27
|
+
{ label: PeriodLabel.TODAY, getRange: () => ({ from: formatFrom(moment()), to: formatTo(moment()) }) },
|
28
|
+
{ label: PeriodLabel.YESTERDAY, getRange: () => ({ from: formatFrom(moment().subtract(1, 'day')), to: formatTo(moment().subtract(1, 'day')) }) },
|
29
|
+
{ label: PeriodLabel.LAST_7_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(1, 'week')), to: formatTo(moment()) }) },
|
30
|
+
{ label: PeriodLabel.LAST_30_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(30, 'days')), to: formatTo(moment()) }) },
|
31
|
+
{ label: PeriodLabel.THIS_MONTH, getRange: () => ({ from: formatFrom(moment().startOf('month')), to: formatTo(moment().endOf('month')) }) },
|
32
|
+
{ label: PeriodLabel.LAST_QUARTER, getRange: () => ({ from: formatFrom(moment().subtract(3, 'months')), to: formatTo(moment().endOf('month')) }) },
|
33
|
+
{ label: PeriodLabel.CUSTOM_PERIOD, getRange: () => ({}), isCustomRange: true },
|
34
|
+
]; }
|
35
35
|
get filteredPeriods() {
|
36
36
|
if (!this.periodsFilter?.length) {
|
37
|
-
return
|
37
|
+
return DatePickerComponent.PERIODS;
|
38
38
|
}
|
39
|
-
return
|
39
|
+
return DatePickerComponent.PERIODS.filter(p => this.periodsFilter.includes(p.label));
|
40
40
|
}
|
41
41
|
get from() {
|
42
42
|
if (!this.isRange) {
|
@@ -58,14 +58,13 @@ export class DatePickerComponent {
|
|
58
58
|
ngOnInit() {
|
59
59
|
}
|
60
60
|
selectPeriod(period) {
|
61
|
-
this.
|
61
|
+
this.selectedPeriod = period;
|
62
62
|
this.date = {
|
63
63
|
...this.date,
|
64
64
|
...period.getRange()
|
65
65
|
};
|
66
66
|
this.date.label = period.label;
|
67
67
|
this.isCustomRange = period.isCustomRange || false;
|
68
|
-
period.selected = true;
|
69
68
|
if (!this.isCustomRange) {
|
70
69
|
this.emitValue();
|
71
70
|
}
|
@@ -87,27 +86,26 @@ export class DatePickerComponent {
|
|
87
86
|
handleCancelClick() {
|
88
87
|
this.close.emit();
|
89
88
|
}
|
90
|
-
getPeriodOrDefault(periodName, defaultPeriodName = PeriodLabel.TODAY) {
|
91
|
-
return
|
92
|
-
|
89
|
+
static getPeriodOrDefault(periodName, defaultPeriodName = PeriodLabel.TODAY) {
|
90
|
+
return DatePickerComponent.PERIODS.find(p => p.label === periodName) ||
|
91
|
+
DatePickerComponent.PERIODS.find(p => p.label === defaultPeriodName);
|
93
92
|
}
|
94
93
|
checkPeriodShouldBeSelectedByValue() {
|
95
94
|
if (!this.isRange) {
|
96
95
|
return;
|
97
96
|
}
|
98
|
-
|
99
|
-
const period = this.periods.find(p => p.label === this.date?.label);
|
97
|
+
const period = DatePickerComponent.PERIODS.find(p => p.label === this.date?.label);
|
100
98
|
if (!period) {
|
101
99
|
return;
|
102
100
|
}
|
103
|
-
|
101
|
+
this.selectedPeriod = period;
|
104
102
|
this.isCustomRange = period.isCustomRange || false;
|
105
103
|
}
|
106
104
|
writeValue(value) {
|
107
105
|
if (this.isRange) {
|
108
106
|
const valueRange = value;
|
109
107
|
if (valueRange.label && valueRange.label !== PeriodLabel.CUSTOM_PERIOD) {
|
110
|
-
const period =
|
108
|
+
const period = DatePickerComponent.getPeriodOrDefault(valueRange.label)?.getRange() || {};
|
111
109
|
this.date = { ...period, label: valueRange.label };
|
112
110
|
}
|
113
111
|
else if (valueRange.from && valueRange.to) {
|
@@ -126,11 +124,11 @@ export class DatePickerComponent {
|
|
126
124
|
this.onTouch = fn;
|
127
125
|
}
|
128
126
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DatePickerComponent, selector: "ask-date-picker", inputs: { date: "date", isRange: "isRange", periodsFilter: "periodsFilter" }, outputs: { dateChange: "dateChange", close: "close" }, providers: [VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"date-picker-container\">\n <main class=\"main-content\">\n <div\n class=\"periods-list\"\n *ngIf=\"isRange\"\n [ngClass]=\"{ 'show-divider': isCustomRange }\"\n >\n <button\n *ngFor=\"let period of filteredPeriods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.
|
127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DatePickerComponent, selector: "ask-date-picker", inputs: { date: "date", isRange: "isRange", periodsFilter: "periodsFilter" }, outputs: { dateChange: "dateChange", close: "close" }, providers: [VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"date-picker-container\">\n <main class=\"main-content\">\n <div\n class=\"periods-list\"\n *ngIf=\"isRange\"\n [ngClass]=\"{ 'show-divider': isCustomRange }\"\n >\n <button\n *ngFor=\"let period of filteredPeriods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.label === selectedPeriod?.label }\"\n (click)=\"selectPeriod(period)\"\n >\n {{ period.label.toString() | translate }}\n </button>\n </div>\n\n <ask-date-picker-calendar\n *ngIf=\"!isRange || (isRange && isCustomRange)\"\n [date]=\"date\"\n (dateChange)=\"handleDateChange($event)\"\n [isRange]=\"isRange\"\n ></ask-date-picker-calendar>\n </main>\n\n <footer class=\"footer\" *ngIf=\"isCustomRange && isRange\">\n <div class=\"date-display\">{{ dateDisplay }}</div>\n\n <div class=\"button-tray\">\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'secondary'\"\n (click)=\"handleCancelClick()\"\n >\n {{ 'CANCEL' | translate }}\n </ask-button>\n\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'primary'\"\n (click)=\"emitValue()\"\n >\n {{ 'APPLY' | translate }}\n </ask-button>\n </div>\n </footer>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scale-in-center{animation:scale-in-center .3s ease-in-out both}@keyframes scale-in-center{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:1}}.scale-out-center{animation:scale-out-center .3s ease-in-out both}@keyframes scale-out-center{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:1}}.ask-tooltip{background-color:#7b8794;color:#fff;padding:4px;border-radius:8px;position:relative}.ask-tooltip>div{text-align:center!important}.ask-tooltip:after{position:absolute;content:\"\";width:10px;height:10px;background-color:inherit}.ask-tooltip.-above{margin-bottom:4px}.ask-tooltip.-above:after{bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-below{margin-top:4px}.ask-tooltip.-below:after{top:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-after,.ask-tooltip.-right{margin-left:4px}.ask-tooltip.-after:after,.ask-tooltip.-right:after{left:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.ask-tooltip.-before,.ask-tooltip.-left{margin-right:4px}.ask-tooltip.-before:after,.ask-tooltip.-left:after{right:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.ask-badge{position:relative}.ask-badge>.badge{position:absolute;display:flex;justify-content:center;align-items:center;background-color:var(--bg-color);color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-radius:50%;box-shadow:0 2px 6px -1px #00000080}.ask-badge>.badge.-primary{--bg-color: var(--asksuite-orange)}.ask-badge>.badge.-secondary{--bg-color: var(--grey-800)}.ask-badge>.badge.-top{top:-10px}.ask-badge>.badge.-bottom{bottom:-10px}.ask-badge>.badge.-left{left:-10px}.ask-badge>.badge.-right{right:-10px}.ask-badge>.badge.-small{width:18px;height:18px;font-size:10px}.ask-badge>.badge.-regular{width:22px;height:22px;font-size:11px}.ask-badge>.badge.-large{width:28px;height:28px;font-size:12px}.ask-dropdown-top-right{margin-left:8px}.ask-dropdown-top-left{margin-right:8px}.ask-dropdown-bottom-right,.ask-dropdown-bottom-left{margin-top:8px}.date-picker-container{display:flex;flex-direction:column}.main-content{display:flex}.periods-list{display:flex;flex-direction:column;justify-content:start;gap:4px;padding:8px 0}.periods-list.show-divider{border-right:1px solid var(--divider-background)}.periods-list>.period{padding:8px 16px;color:var(--font-color-200);background:none;border:none;outline:none;cursor:pointer;transition:color .2s,background-color .2s;text-align:start}.periods-list>.period:hover,.periods-list>.period.selected{background-color:var(--hover-background)}.periods-list>.period:active,.periods-list>.period.selected{color:#ff5724}.footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--divider-background)}.footer>.button-tray{display:flex;gap:16px}.date-display{display:flex;font-size:.875rem;color:var(--font-color-200);gap:4px}.date-display>.date{width:79px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "ask-button", inputs: ["label", "size", "type", "rounded", "disabled", "labelSide", "loading"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i3.DatePickerCalendarComponent, selector: "ask-date-picker-calendar", inputs: ["isRange", "date"], outputs: ["dateChange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
130
128
|
}
|
131
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DatePickerComponent, decorators: [{
|
132
130
|
type: Component,
|
133
|
-
args: [{ selector: 'ask-date-picker', providers: [VALUE_ACCESSOR], template: "<div class=\"date-picker-container\">\n <main class=\"main-content\">\n <div\n class=\"periods-list\"\n *ngIf=\"isRange\"\n [ngClass]=\"{ 'show-divider': isCustomRange }\"\n >\n <button\n *ngFor=\"let period of filteredPeriods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.
|
131
|
+
args: [{ selector: 'ask-date-picker', providers: [VALUE_ACCESSOR], template: "<div class=\"date-picker-container\">\n <main class=\"main-content\">\n <div\n class=\"periods-list\"\n *ngIf=\"isRange\"\n [ngClass]=\"{ 'show-divider': isCustomRange }\"\n >\n <button\n *ngFor=\"let period of filteredPeriods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.label === selectedPeriod?.label }\"\n (click)=\"selectPeriod(period)\"\n >\n {{ period.label.toString() | translate }}\n </button>\n </div>\n\n <ask-date-picker-calendar\n *ngIf=\"!isRange || (isRange && isCustomRange)\"\n [date]=\"date\"\n (dateChange)=\"handleDateChange($event)\"\n [isRange]=\"isRange\"\n ></ask-date-picker-calendar>\n </main>\n\n <footer class=\"footer\" *ngIf=\"isCustomRange && isRange\">\n <div class=\"date-display\">{{ dateDisplay }}</div>\n\n <div class=\"button-tray\">\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'secondary'\"\n (click)=\"handleCancelClick()\"\n >\n {{ 'CANCEL' | translate }}\n </ask-button>\n\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'primary'\"\n (click)=\"emitValue()\"\n >\n {{ 'APPLY' | translate }}\n </ask-button>\n </div>\n </footer>\n</div>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scale-in-center{animation:scale-in-center .3s ease-in-out both}@keyframes scale-in-center{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:1}}.scale-out-center{animation:scale-out-center .3s ease-in-out both}@keyframes scale-out-center{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:1}}.ask-tooltip{background-color:#7b8794;color:#fff;padding:4px;border-radius:8px;position:relative}.ask-tooltip>div{text-align:center!important}.ask-tooltip:after{position:absolute;content:\"\";width:10px;height:10px;background-color:inherit}.ask-tooltip.-above{margin-bottom:4px}.ask-tooltip.-above:after{bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-below{margin-top:4px}.ask-tooltip.-below:after{top:-5px;left:50%;transform:translate(-50%) rotate(45deg)}.ask-tooltip.-after,.ask-tooltip.-right{margin-left:4px}.ask-tooltip.-after:after,.ask-tooltip.-right:after{left:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.ask-tooltip.-before,.ask-tooltip.-left{margin-right:4px}.ask-tooltip.-before:after,.ask-tooltip.-left:after{right:-5px;top:50%;transform:translateY(-50%) rotate(45deg)}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.ask-badge{position:relative}.ask-badge>.badge{position:absolute;display:flex;justify-content:center;align-items:center;background-color:var(--bg-color);color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-radius:50%;box-shadow:0 2px 6px -1px #00000080}.ask-badge>.badge.-primary{--bg-color: var(--asksuite-orange)}.ask-badge>.badge.-secondary{--bg-color: var(--grey-800)}.ask-badge>.badge.-top{top:-10px}.ask-badge>.badge.-bottom{bottom:-10px}.ask-badge>.badge.-left{left:-10px}.ask-badge>.badge.-right{right:-10px}.ask-badge>.badge.-small{width:18px;height:18px;font-size:10px}.ask-badge>.badge.-regular{width:22px;height:22px;font-size:11px}.ask-badge>.badge.-large{width:28px;height:28px;font-size:12px}.ask-dropdown-top-right{margin-left:8px}.ask-dropdown-top-left{margin-right:8px}.ask-dropdown-bottom-right,.ask-dropdown-bottom-left{margin-top:8px}.date-picker-container{display:flex;flex-direction:column}.main-content{display:flex}.periods-list{display:flex;flex-direction:column;justify-content:start;gap:4px;padding:8px 0}.periods-list.show-divider{border-right:1px solid var(--divider-background)}.periods-list>.period{padding:8px 16px;color:var(--font-color-200);background:none;border:none;outline:none;cursor:pointer;transition:color .2s,background-color .2s;text-align:start}.periods-list>.period:hover,.periods-list>.period.selected{background-color:var(--hover-background)}.periods-list>.period:active,.periods-list>.period.selected{color:#ff5724}.footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--divider-background)}.footer>.button-tray{display:flex;gap:16px}.date-display{display:flex;font-size:.875rem;color:var(--font-color-200);gap:4px}.date-display>.date{width:79px}\n"] }]
|
134
132
|
}], propDecorators: { date: [{
|
135
133
|
type: Input
|
136
134
|
}], isRange: [{
|
@@ -142,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
142
140
|
}], close: [{
|
143
141
|
type: Output
|
144
142
|
}] } });
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNrc3VpdGUtY2l0cnVzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQTZCLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDcEksT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFTdkUsTUFBTSxjQUFjLEdBQWE7SUFDL0IsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7Q0FDbkQsQ0FBQTtBQVVELE1BQU0sT0FBTyxtQkFBbUI7SUFOaEM7UUFRRSxZQUFPLEdBQWtCO1lBQ3ZCLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ3ZILEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNqSyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ2pKLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDbkosRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUs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QUFDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDNUY7WUFFRCxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztTQUMzQzthQUVJO1lBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBb0M7UUFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUlELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs4R0EvSVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsK0tBRm5CLENBQUUsY0FBYyxDQUFFLDBCQ3hCL0IsOHdDQWdEQTs7MkZEdEJhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsYUFHaEIsQ0FBRSxjQUFjLENBQUU7OEJBY3BCLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtEYXRlUGlja2VyVmFsdWUsIERhdGVSYW5nZSwgUGVyaW9kTGFiZWwsIGZvcm1hdEZyb20sIGZvcm1hdFRvfSBmcm9tIFwiLi9kYXRlLXBpY2tlci1jYWxlbmRhci9kYXRlLXBpY2tlci1jYWxlbmRhci5jb21wb25lbnRcIjtcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW50ZXJmYWNlIFBlcmlvZCB7XG4gIGxhYmVsOiBQZXJpb2RMYWJlbDtcbiAgZ2V0UmFuZ2U6ICgpID0+IERhdGVSYW5nZTtcbiAgaXNDdXN0b21SYW5nZT86IGJvb2xlYW47XG4gIHNlbGVjdGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBWQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlckNvbXBvbmVudCksXG59XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stZGF0ZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFsgVkFMVUVfQUNDRVNTT1IgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIHBlcmlvZHM6IEFycmF5PFBlcmlvZD4gPSBbXG4gICAgeyBsYWJlbDogUGVyaW9kTGFiZWwuVE9EQVksIGdldFJhbmdlOiAoKSA9PiAoeyBmcm9tOiBmb3JtYXRGcm9tKG1vbWVudCgpKSwgdG86IGZvcm1hdFRvKG1vbWVudCgpKSB9KSwgc2VsZWN0ZWQ6IGZhbHNlIH0sXG4gICAgeyBsYWJlbDogUGVyaW9kTGFiZWwuWUVTVEVSREFZLCBnZXRSYW5nZTogKCkgPT4gKHsgZnJvbTogZm9ybWF0RnJvbShtb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5JykpLCB0bzogZm9ybWF0VG8obW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheScpKSB9KSwgc2VsZWN0ZWQ6IGZhbHNlIH0sXG4gICAgeyBsYWJlbDogUGVyaW9kTGFiZWwuTEFTVF83X0RBWVMsIGdldFJhbmdlOiAoKSA9PiAoeyBmcm9tOiBmb3JtYXRGcm9tKG1vbWVudCgpLnN1YnRyYWN0KDEsICd3ZWVrJykpLCB0bzogZm9ybWF0VG8obW9tZW50KCkpIH0pLCBzZWxlY3RlZDogZmFsc2UgfSxcbiAgICB7IGxhYmVsOiBQZXJpb2RMYWJlbC5MQVNUXzMwX0RBWVMsIGdldFJhbmdlOiAoKSA9PiAoeyBmcm9tOiBmb3JtYXRGcm9tKG1vbWVudCgpLnN1YnRyYWN0KDMwLCAnZGF5cycpKSwgdG86IGZvcm1hdFRvKG1vbWVudCgpKSB9KSwgc2VsZWN0ZWQ6IGZhbHNlIH0sXG4gICAgeyBsYWJlbDogUGVyaW9kTGFiZWwuVEhJU19NT05USCwgZ2V0UmFuZ2U6ICgpID0+ICh7IGZyb206IGZvcm1hdEZyb20obW9tZW50KCkuc3RhcnRPZignbW9udGgnKSksIHRvOiBmb3JtYXRUbyhtb21lbnQoKS5lbmRPZignbW9udGgnKSkgfSksIHNlbGVjdGVkOiBmYWxzZSB9LFxuICAgIHsgbGFiZWw6IFBlcmlvZExhYmVsLkxBU1RfUVVBUlRFUiwgZ2V0UmFuZ2U6ICgpID0+ICh7IGZyb206IGZvcm1hdEZyb20obW9tZW50KCkuc3VidHJhY3QoMywgJ21vbnRocycpKSwgdG86IGZvcm1hdFRvKG1vbWVudCgpLmVuZE9mKCdtb250aCcpKSB9KSwgc2VsZWN0ZWQ6IGZhbHNlIH0sXG4gICAgeyBsYWJlbDogUGVyaW9kTGFiZWwuQ1VTVE9NX1BFUklPRCwgZ2V0UmFuZ2U6ICgpID0+ICh7fSksIGlzQ3VzdG9tUmFuZ2U6IHRydWUsIHNlbGVjdGVkOiBmYWxzZSB9LFxuICBdO1xuXG4gIEBJbnB1dCgpIGRhdGU6IERhdGVQaWNrZXJWYWx1ZSA9IG1vbWVudCgpLmZvcm1hdCgpO1xuICBASW5wdXQoKSBpc1JhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBlcmlvZHNGaWx0ZXI6IFBlcmlvZExhYmVsW10gPSBbXTtcblxuICBAT3V0cHV0KCkgZGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVBpY2tlclZhbHVlPigpO1xuICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgaXNDdXN0b21SYW5nZSA9IGZhbHNlO1xuXG4gIGdldCBmaWx0ZXJlZFBlcmlvZHMoKSB7XG4gICAgaWYgKCF0aGlzLnBlcmlvZHNGaWx0ZXI/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMucGVyaW9kcztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wZXJpb2RzLmZpbHRlcihwID0+IHRoaXMucGVyaW9kc0ZpbHRlci5pbmNsdWRlcyhwLmxhYmVsKSk7XG4gIH1cblxuICBnZXQgZnJvbSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5pc1JhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlKS5mcm9tO1xuICB9XG5cbiAgZ2V0IHRvKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuZGF0ZSBhcyBEYXRlUmFuZ2UpLnRvO1xuICB9XG5cbiAgZ2V0IGRhdGVEaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgZnJvbSA9IHRoaXMuZnJvbSA/IG1vbWVudCh0aGlzLmZyb20pLmZvcm1hdCgnTCcpIDogJyc7XG4gICAgY29uc3QgdG8gPSB0aGlzLnRvID8gbW9tZW50KHRoaXMudG8pLmZvcm1hdCgnTCcpIDogJyc7XG5cbiAgICByZXR1cm4gYCR7ZnJvbX0gJHsgdG8gPyAnLSAnICsgdG8gOiAnJyB9YDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgc2VsZWN0UGVyaW9kKHBlcmlvZDogUGVyaW9kKSB7XG4gICAgdGhpcy5wZXJpb2RzLmZvckVhY2goKHBlcmlvZDogUGVyaW9kKSA9PiBwZXJpb2Quc2VsZWN0ZWQgPSBmYWxzZSk7XG5cbiAgICB0aGlzLmRhdGUgPSB7XG4gICAgICAuLi4odGhpcy5kYXRlIGFzIERhdGVSYW5nZSksXG4gICAgICAuLi5wZXJpb2QuZ2V0UmFuZ2UoKVxuICAgIH07XG4gICAgdGhpcy5kYXRlLmxhYmVsID0gcGVyaW9kLmxhYmVsO1xuICAgIHRoaXMuaXNDdXN0b21SYW5nZSA9IHBlcmlvZC5pc0N1c3RvbVJhbmdlIHx8IGZhbHNlO1xuICAgIHBlcmlvZC5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICBpZiAoIXRoaXMuaXNDdXN0b21SYW5nZSkge1xuICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVEYXRlQ2hhbmdlKHZhbHVlOiBEYXRlUGlja2VyVmFsdWUpIHtcbiAgICB0aGlzLmRhdGUgPSB2YWx1ZTtcblxuICAgIGlmICghdGhpcy5pc1JhbmdlKSB7XG4gICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGVtaXRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5pc0N1c3RvbVJhbmdlICYmICEodGhpcy5kYXRlIGFzIERhdGVSYW5nZSkudG8pIHtcbiAgICAgICh0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlKS50byA9ICh0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlKS5mcm9tO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHRoaXMuZGF0ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRhdGUpO1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgaGFuZGxlQ2FuY2VsQ2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldFBlcmlvZE9yRGVmYXVsdChwZXJpb2ROYW1lOiBQZXJpb2RMYWJlbCwgZGVmYXVsdFBlcmlvZE5hbWU6IFBlcmlvZExhYmVsID0gUGVyaW9kTGFiZWwuVE9EQVkpIHtcbiAgICByZXR1cm4gdGhpcy5wZXJpb2RzLmZpbmQocCA9PiBwLmxhYmVsID09PSBwZXJpb2ROYW1lKSB8fFxuICAgICAgdGhpcy5wZXJpb2RzLmZpbmQocCA9PiBwLmxhYmVsID09PSBkZWZhdWx0UGVyaW9kTmFtZSk7XG4gIH1cblxuICBjaGVja1BlcmlvZFNob3VsZEJlU2VsZWN0ZWRCeVZhbHVlKCkge1xuICAgIGlmICghdGhpcy5pc1JhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wZXJpb2RzLmZvckVhY2goKHBlcmlvZDogUGVyaW9kKSA9PiBwZXJpb2Quc2VsZWN0ZWQgPSBmYWxzZSk7XG4gICAgY29uc3QgcGVyaW9kID0gdGhpcy5wZXJpb2RzLmZpbmQocCA9PiBwLmxhYmVsID09PSAodGhpcy5kYXRlIGFzIERhdGVSYW5nZSk/LmxhYmVsKTtcblxuICAgIGlmICghcGVyaW9kKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGVyaW9kLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICB0aGlzLmlzQ3VzdG9tUmFuZ2UgPSBwZXJpb2QuaXNDdXN0b21SYW5nZSB8fCBmYWxzZTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IERhdGVQaWNrZXJWYWx1ZSkge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIGNvbnN0IHZhbHVlUmFuZ2UgPSB2YWx1ZSBhcyBEYXRlUmFuZ2U7XG5cbiAgICAgIGlmICh2YWx1ZVJhbmdlLmxhYmVsICYmIHZhbHVlUmFuZ2UubGFiZWwgIT09IFBlcmlvZExhYmVsLkNVU1RPTV9QRVJJT0QpIHtcbiAgICAgICAgY29uc3QgcGVyaW9kID0gdGhpcy5nZXRQZXJpb2RPckRlZmF1bHQodmFsdWVSYW5nZS5sYWJlbCk/LmdldFJhbmdlKCkgfHwge307XG4gICAgICAgIHRoaXMuZGF0ZSA9IHsgLi4ucGVyaW9kLCBsYWJlbDogdmFsdWVSYW5nZS5sYWJlbCB9O1xuICAgICAgfVxuXG4gICAgICBlbHNlIGlmICh2YWx1ZVJhbmdlLmZyb20gJiYgdmFsdWVSYW5nZS50bykge1xuICAgICAgICB0aGlzLmRhdGUgPSB7IGZyb206IHZhbHVlUmFuZ2UuZnJvbSwgdG86IHZhbHVlUmFuZ2UudG8sIGxhYmVsOiBQZXJpb2RMYWJlbC5DVVNUT01fUEVSSU9EIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hlY2tQZXJpb2RTaG91bGRCZVNlbGVjdGVkQnlWYWx1ZSgpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5kYXRlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBEYXRlUGlja2VyVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBvbkNoYW5nZSA9ICh2YWx1ZTogRGF0ZVBpY2tlclZhbHVlKSA9PiB7fTtcblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBvblRvdWNoID0gKCkgPT4ge307XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY29udGFpbmVyXCI+XG4gIDxtYWluIGNsYXNzPVwibWFpbi1jb250ZW50XCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJwZXJpb2RzLWxpc3RcIlxuICAgICAgKm5nSWY9XCJpc1JhbmdlXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3Nob3ctZGl2aWRlcic6IGlzQ3VzdG9tUmFuZ2UgfVwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdGb3I9XCJsZXQgcGVyaW9kIG9mIGZpbHRlcmVkUGVyaW9kc1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInBlcmlvZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkJzogcGVyaW9kLnNlbGVjdGVkIH1cIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0UGVyaW9kKHBlcmlvZClcIlxuICAgICAgPlxuICAgICAgICB7eyBwZXJpb2QubGFiZWwudG9TdHJpbmcoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8YXNrLWRhdGUtcGlja2VyLWNhbGVuZGFyXG4gICAgICAqbmdJZj1cIiFpc1JhbmdlIHx8IChpc1JhbmdlICYmIGlzQ3VzdG9tUmFuZ2UpXCJcbiAgICAgIFtkYXRlXT1cImRhdGVcIlxuICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtpc1JhbmdlXT1cImlzUmFuZ2VcIlxuICAgID48L2Fzay1kYXRlLXBpY2tlci1jYWxlbmRhcj5cbiAgPC9tYWluPlxuXG4gIDxmb290ZXIgY2xhc3M9XCJmb290ZXJcIiAqbmdJZj1cImlzQ3VzdG9tUmFuZ2UgJiYgaXNSYW5nZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlLWRpc3BsYXlcIj57eyBkYXRlRGlzcGxheSB9fTwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi10cmF5XCI+XG4gICAgICA8YXNrLWJ1dHRvblxuICAgICAgICBbc2l6ZV09XCIneHNtYWxsJ1wiXG4gICAgICAgIFt0eXBlXT1cIidzZWNvbmRhcnknXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNhbmNlbENsaWNrKClcIlxuICAgICAgPlxuICAgICAgICB7eyAnQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9hc2stYnV0dG9uPlxuXG4gICAgICA8YXNrLWJ1dHRvblxuICAgICAgICBbc2l6ZV09XCIneHNtYWxsJ1wiXG4gICAgICAgIFt0eXBlXT1cIidwcmltYXJ5J1wiXG4gICAgICAgIChjbGljayk9XCJlbWl0VmFsdWUoKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdBUFBMWScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXNrLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9mb290ZXI+XG48L2Rpdj5cbiJdfQ==
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNrc3VpdGUtY2l0cnVzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQTZCLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDcEksT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFRdkUsTUFBTSxjQUFjLEdBQWE7SUFDL0IsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7Q0FDbkQsQ0FBQTtBQVVELE1BQU0sT0FBTyxtQkFBbUI7SUFOaEM7UUFrQlcsU0FBSSxHQUFvQixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztRQUVqQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDakQsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHckMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFzSHRCLGFBQVEsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQU0xQyxZQUFPLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBQ3BCO2FBL0lpQixZQUFPLEdBQWtCO1FBQ3ZDLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUN0RyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ2hKLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ2hJLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FB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Q3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7OEdBOUlVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLCtLQUZuQixDQUFFLGNBQWMsQ0FBRSwwQkN2Qi9CLHF5Q0FnREE7OzJGRHZCYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsaUJBQWlCLGFBR2hCLENBQUUsY0FBYyxDQUFFOzhCQWNwQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0ZVBpY2tlclZhbHVlLCBEYXRlUmFuZ2UsIFBlcmlvZExhYmVsLCBmb3JtYXRGcm9tLCBmb3JtYXRUb30gZnJvbSBcIi4vZGF0ZS1waWNrZXItY2FsZW5kYXIvZGF0ZS1waWNrZXItY2FsZW5kYXIuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmludGVyZmFjZSBQZXJpb2Qge1xuICBsYWJlbDogUGVyaW9kTGFiZWw7XG4gIGdldFJhbmdlOiAoKSA9PiBEYXRlUmFuZ2U7XG4gIGlzQ3VzdG9tUmFuZ2U/OiBib29sZWFuO1xufVxuXG5jb25zdCBWQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlckNvbXBvbmVudCksXG59XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stZGF0ZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFsgVkFMVUVfQUNDRVNTT1IgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIHN0YXRpYyByZWFkb25seSBQRVJJT0RTOiBBcnJheTxQZXJpb2Q+ID0gW1xuICAgIHsgbGFiZWw6IFBlcmlvZExhYmVsLlRPREFZLCBnZXRSYW5nZTogKCkgPT4gKHsgZnJvbTogZm9ybWF0RnJvbShtb21lbnQoKSksIHRvOiBmb3JtYXRUbyhtb21lbnQoKSkgfSkgfSxcbiAgICB7IGxhYmVsOiBQZXJpb2RMYWJlbC5ZRVNURVJEQVksIGdldFJhbmdlOiAoKSA9PiAoeyBmcm9tOiBmb3JtYXRGcm9tKG1vbWVudCgpLnN1YnRyYWN0KDEsICdkYXknKSksIHRvOiBmb3JtYXRUbyhtb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5JykpIH0pIH0sXG4gICAgeyBsYWJlbDogUGVyaW9kTGFiZWwuTEFTVF83X0RBWVMsIGdldFJhbmdlOiAoKSA9PiAoeyBmcm9tOiBmb3JtYXRGcm9tKG1vbWVudCgpLnN1YnRyYWN0KDEsICd3ZWVrJykpLCB0bzogZm9ybWF0VG8obW9tZW50KCkpIH0pIH0sXG4gICAgeyBsYWJlbDogUGVyaW9kTGFiZWwuTEFTVF8zMF9EQVlTLCBnZXRSYW5nZTogKCkgPT4gKHsgZnJvbTogZm9ybWF0RnJvbShtb21lbnQoKS5zdWJ0cmFjdCgzMCwgJ2RheXMnKSksIHRvOiBmb3JtYXRUbyhtb21lbnQoKSkgfSkgfSxcbiAgICB7IGxhYmVsOiBQZXJpb2RMYWJlbC5USElTX01PTlRILCBnZXRSYW5nZTogKCkgPT4gKHsgZnJvbTogZm9ybWF0RnJvbShtb21lbnQoKS5zdGFydE9mKCdtb250aCcpKSwgdG86IGZvcm1hdFRvKG1vbWVudCgpLmVuZE9mKCdtb250aCcpKSB9KSB9LFxuICAgIHsgbGFiZWw6IFBlcmlvZExhYmVsLkxBU1RfUVVBUlRFUiwgZ2V0UmFuZ2U6ICgpID0+ICh7IGZyb206IGZvcm1hdEZyb20obW9tZW50KCkuc3VidHJhY3QoMywgJ21vbnRocycpKSwgdG86IGZvcm1hdFRvKG1vbWVudCgpLmVuZE9mKCdtb250aCcpKSB9KSB9LFxuICAgIHsgbGFiZWw6IFBlcmlvZExhYmVsLkNVU1RPTV9QRVJJT0QsIGdldFJhbmdlOiAoKSA9PiAoe30pLCBpc0N1c3RvbVJhbmdlOiB0cnVlIH0sXG4gIF07XG5cbiAgQElucHV0KCkgZGF0ZTogRGF0ZVBpY2tlclZhbHVlID0gbW9tZW50KCkuZm9ybWF0KCk7XG4gIEBJbnB1dCgpIGlzUmFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcGVyaW9kc0ZpbHRlcjogUGVyaW9kTGFiZWxbXSA9IFtdO1xuXG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlUGlja2VyVmFsdWU+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBzZWxlY3RlZFBlcmlvZD86IFBlcmlvZDtcbiAgaXNDdXN0b21SYW5nZSA9IGZhbHNlO1xuXG4gIGdldCBmaWx0ZXJlZFBlcmlvZHMoKSB7XG4gICAgaWYgKCF0aGlzLnBlcmlvZHNGaWx0ZXI/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIERhdGVQaWNrZXJDb21wb25lbnQuUEVSSU9EUztcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZVBpY2tlckNvbXBvbmVudC5QRVJJT0RTLmZpbHRlcihwID0+IHRoaXMucGVyaW9kc0ZpbHRlci5pbmNsdWRlcyhwLmxhYmVsKSk7XG4gIH1cblxuICBnZXQgZnJvbSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5pc1JhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlKS5mcm9tO1xuICB9XG5cbiAgZ2V0IHRvKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuZGF0ZSBhcyBEYXRlUmFuZ2UpLnRvO1xuICB9XG5cbiAgZ2V0IGRhdGVEaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgZnJvbSA9IHRoaXMuZnJvbSA/IG1vbWVudCh0aGlzLmZyb20pLmZvcm1hdCgnTCcpIDogJyc7XG4gICAgY29uc3QgdG8gPSB0aGlzLnRvID8gbW9tZW50KHRoaXMudG8pLmZvcm1hdCgnTCcpIDogJyc7XG5cbiAgICByZXR1cm4gYCR7ZnJvbX0gJHsgdG8gPyAnLSAnICsgdG8gOiAnJyB9YDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgc2VsZWN0UGVyaW9kKHBlcmlvZDogUGVyaW9kKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9IHBlcmlvZDtcblxuICAgIHRoaXMuZGF0ZSA9IHtcbiAgICAgIC4uLih0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlKSxcbiAgICAgIC4uLnBlcmlvZC5nZXRSYW5nZSgpXG4gICAgfTtcbiAgICB0aGlzLmRhdGUubGFiZWwgPSBwZXJpb2QubGFiZWw7XG4gICAgdGhpcy5pc0N1c3RvbVJhbmdlID0gcGVyaW9kLmlzQ3VzdG9tUmFuZ2UgfHwgZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMuaXNDdXN0b21SYW5nZSkge1xuICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVEYXRlQ2hhbmdlKHZhbHVlOiBEYXRlUGlja2VyVmFsdWUpIHtcbiAgICB0aGlzLmRhdGUgPSB2YWx1ZTtcblxuICAgIGlmICghdGhpcy5pc1JhbmdlKSB7XG4gICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGVtaXRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5pc0N1c3RvbVJhbmdlICYmICEodGhpcy5kYXRlIGFzIERhdGVSYW5nZSkudG8pIHtcbiAgICAgICh0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlKS50byA9ICh0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlKS5mcm9tO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHRoaXMuZGF0ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRhdGUpO1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgaGFuZGxlQ2FuY2VsQ2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFBlcmlvZE9yRGVmYXVsdChwZXJpb2ROYW1lOiBQZXJpb2RMYWJlbCwgZGVmYXVsdFBlcmlvZE5hbWU6IFBlcmlvZExhYmVsID0gUGVyaW9kTGFiZWwuVE9EQVkpIHtcbiAgICByZXR1cm4gRGF0ZVBpY2tlckNvbXBvbmVudC5QRVJJT0RTLmZpbmQocCA9PiBwLmxhYmVsID09PSBwZXJpb2ROYW1lKSB8fFxuICAgICAgRGF0ZVBpY2tlckNvbXBvbmVudC5QRVJJT0RTLmZpbmQocCA9PiBwLmxhYmVsID09PSBkZWZhdWx0UGVyaW9kTmFtZSk7XG4gIH1cblxuICBjaGVja1BlcmlvZFNob3VsZEJlU2VsZWN0ZWRCeVZhbHVlKCkge1xuICAgIGlmICghdGhpcy5pc1JhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGVyaW9kID0gRGF0ZVBpY2tlckNvbXBvbmVudC5QRVJJT0RTLmZpbmQocCA9PiBwLmxhYmVsID09PSAodGhpcy5kYXRlIGFzIERhdGVSYW5nZSk/LmxhYmVsKTtcblxuICAgIGlmICghcGVyaW9kKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9IHBlcmlvZDtcbiAgICB0aGlzLmlzQ3VzdG9tUmFuZ2UgPSBwZXJpb2QuaXNDdXN0b21SYW5nZSB8fCBmYWxzZTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IERhdGVQaWNrZXJWYWx1ZSkge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIGNvbnN0IHZhbHVlUmFuZ2UgPSB2YWx1ZSBhcyBEYXRlUmFuZ2U7XG5cbiAgICAgIGlmICh2YWx1ZVJhbmdlLmxhYmVsICYmIHZhbHVlUmFuZ2UubGFiZWwgIT09IFBlcmlvZExhYmVsLkNVU1RPTV9QRVJJT0QpIHtcbiAgICAgICAgY29uc3QgcGVyaW9kID0gRGF0ZVBpY2tlckNvbXBvbmVudC5nZXRQZXJpb2RPckRlZmF1bHQodmFsdWVSYW5nZS5sYWJlbCk/LmdldFJhbmdlKCkgfHwge307XG4gICAgICAgIHRoaXMuZGF0ZSA9IHsgLi4ucGVyaW9kLCBsYWJlbDogdmFsdWVSYW5nZS5sYWJlbCB9O1xuICAgICAgfVxuXG4gICAgICBlbHNlIGlmICh2YWx1ZVJhbmdlLmZyb20gJiYgdmFsdWVSYW5nZS50bykge1xuICAgICAgICB0aGlzLmRhdGUgPSB7IGZyb206IHZhbHVlUmFuZ2UuZnJvbSwgdG86IHZhbHVlUmFuZ2UudG8sIGxhYmVsOiBQZXJpb2RMYWJlbC5DVVNUT01fUEVSSU9EIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hlY2tQZXJpb2RTaG91bGRCZVNlbGVjdGVkQnlWYWx1ZSgpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5kYXRlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBEYXRlUGlja2VyVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBvbkNoYW5nZSA9ICh2YWx1ZTogRGF0ZVBpY2tlclZhbHVlKSA9PiB7fTtcblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBvblRvdWNoID0gKCkgPT4ge307XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY29udGFpbmVyXCI+XG4gIDxtYWluIGNsYXNzPVwibWFpbi1jb250ZW50XCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJwZXJpb2RzLWxpc3RcIlxuICAgICAgKm5nSWY9XCJpc1JhbmdlXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3Nob3ctZGl2aWRlcic6IGlzQ3VzdG9tUmFuZ2UgfVwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdGb3I9XCJsZXQgcGVyaW9kIG9mIGZpbHRlcmVkUGVyaW9kc1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInBlcmlvZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkJzogcGVyaW9kLmxhYmVsID09PSBzZWxlY3RlZFBlcmlvZD8ubGFiZWwgfVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RQZXJpb2QocGVyaW9kKVwiXG4gICAgICA+XG4gICAgICAgIHt7IHBlcmlvZC5sYWJlbC50b1N0cmluZygpIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxhc2stZGF0ZS1waWNrZXItY2FsZW5kYXJcbiAgICAgICpuZ0lmPVwiIWlzUmFuZ2UgfHwgKGlzUmFuZ2UgJiYgaXNDdXN0b21SYW5nZSlcIlxuICAgICAgW2RhdGVdPVwiZGF0ZVwiXG4gICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgW2lzUmFuZ2VdPVwiaXNSYW5nZVwiXG4gICAgPjwvYXNrLWRhdGUtcGlja2VyLWNhbGVuZGFyPlxuICA8L21haW4+XG5cbiAgPGZvb3RlciBjbGFzcz1cImZvb3RlclwiICpuZ0lmPVwiaXNDdXN0b21SYW5nZSAmJiBpc1JhbmdlXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhdGUtZGlzcGxheVwiPnt7IGRhdGVEaXNwbGF5IH19PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRyYXlcIj5cbiAgICAgIDxhc2stYnV0dG9uXG4gICAgICAgIFtzaXplXT1cIid4c21hbGwnXCJcbiAgICAgICAgW3R5cGVdPVwiJ3NlY29uZGFyeSdcIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2FuY2VsQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdDQU5DRUwnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Fzay1idXR0b24+XG5cbiAgICAgIDxhc2stYnV0dG9uXG4gICAgICAgIFtzaXplXT1cIid4c21hbGwnXCJcbiAgICAgICAgW3R5cGVdPVwiJ3ByaW1hcnknXCJcbiAgICAgICAgKGNsaWNrKT1cImVtaXRWYWx1ZSgpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ0FQUExZJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9hc2stYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Zvb3Rlcj5cbjwvZGl2PlxuIl19
|