asksuite-citrus 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,11 +4,11 @@
4
4
  "CUSTOM_PERIOD": "Período customizado",
5
5
  "LAST_30_DAYS": "Últimos 30 dias",
6
6
  "LAST_7_DAYS": "Últimos 7 dias",
7
- "LAST_QUARTER": "Ultimo trimestre",
7
+ "LAST_QUARTER": "Último trimestre",
8
8
  "NO_OPTIONS": "Nenhuma opção",
9
9
  "SEE_LESS": "Ver menos",
10
10
  "SEE_MORE": "Ver mais",
11
11
  "THIS_MONTH": "Este mês",
12
12
  "TODAY": "Hoje",
13
13
  "YESTERDAY": "Ontem"
14
- }
14
+ }
@@ -281,11 +281,11 @@ export class AutocompleteComponent {
281
281
  this.disabled = isDisabled;
282
282
  }
283
283
  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 }); }
284
- 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" }, outputs: { itemCheck: "itemCheck" }, 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 <div askScroll [askScrollThreshold]=\"50\"\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 [value]=\"optionsSelected[option[valueProp]]\" (valueChange)=\"valueChange(option, $event)\">\n {{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </div>\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)}.ask-button{padding:8px 24px;border-radius:6px;border:none;outline:none;height:48px;font-size:1rem;transition:background-color .1s,box-shadow .1s;cursor:pointer;font-weight:500;background:white;color:var(--grey-500)}.ask-button:not(.-primary,.-secondary){box-shadow:0 1px 2px #2a304229}.ask-button:not(.-primary):hover:not(:disabled){box-shadow:0 0 6px #2a304229}.ask-button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}.ask-button:active:not(:disabled){background-color:#f34915}.ask-button:disabled{cursor:not-allowed;background-color:#9aa5b1}.ask-button.-primary{background:#FF5724;color:#fff}.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.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.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: "component", type: i4.ChipsComponent, selector: "ask-chips", inputs: ["appearance", "showAction", "size", "color"], 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 }); }
284
+ 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", iconPropReference: "iconPropReference" }, outputs: { itemCheck: "itemCheck" }, 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 <div askScroll [askScrollThreshold]=\"50\"\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 [value]=\"optionsSelected[option[valueProp]]\" (valueChange)=\"valueChange(option, $event)\">\n <div class=\"checkbox-content\">\n <img class=\"icon\" *ngIf=\"iconPropReference\" [src]=\"option[iconPropReference]\" alt=\"\" loading=\"lazy\">\n {{display(option)}}\n </div>\n </ask-checkbox>\n </div>\n </ng-container>\n </div>\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)}.ask-button{padding:8px 24px;border-radius:6px;border:none;outline:none;height:48px;font-size:1rem;transition:background-color .1s,box-shadow .1s;cursor:pointer;font-weight:500;background:white;color:var(--grey-500)}.ask-button:not(.-primary,.-secondary){box-shadow:0 1px 2px #2a304229}.ask-button:not(.-primary):hover:not(:disabled){box-shadow:0 0 6px #2a304229}.ask-button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}.ask-button:active:not(:disabled){background-color:#f34915}.ask-button:disabled{cursor:not-allowed;background-color:#9aa5b1}.ask-button.-primary{background:#FF5724;color:#fff}.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%}.checkbox-content{display:flex;gap:8px}.checkbox-content>.icon{width:16px;height:16px}.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.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.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: "component", type: i4.ChipsComponent, selector: "ask-chips", inputs: ["appearance", "showAction", "size", "color"], 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 }); }
285
285
  }
286
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutocompleteComponent, decorators: [{
287
287
  type: Component,
288
- 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 <div askScroll [askScrollThreshold]=\"50\"\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 [value]=\"optionsSelected[option[valueProp]]\" (valueChange)=\"valueChange(option, $event)\">\n {{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </div>\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)}.ask-button{padding:8px 24px;border-radius:6px;border:none;outline:none;height:48px;font-size:1rem;transition:background-color .1s,box-shadow .1s;cursor:pointer;font-weight:500;background:white;color:var(--grey-500)}.ask-button:not(.-primary,.-secondary){box-shadow:0 1px 2px #2a304229}.ask-button:not(.-primary):hover:not(:disabled){box-shadow:0 0 6px #2a304229}.ask-button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}.ask-button:active:not(:disabled){background-color:#f34915}.ask-button:disabled{cursor:not-allowed;background-color:#9aa5b1}.ask-button.-primary{background:#FF5724;color:#fff}.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"] }]
288
+ 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 <div askScroll [askScrollThreshold]=\"50\"\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 [value]=\"optionsSelected[option[valueProp]]\" (valueChange)=\"valueChange(option, $event)\">\n <div class=\"checkbox-content\">\n <img class=\"icon\" *ngIf=\"iconPropReference\" [src]=\"option[iconPropReference]\" alt=\"\" loading=\"lazy\">\n {{display(option)}}\n </div>\n </ask-checkbox>\n </div>\n </ng-container>\n </div>\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)}.ask-button{padding:8px 24px;border-radius:6px;border:none;outline:none;height:48px;font-size:1rem;transition:background-color .1s,box-shadow .1s;cursor:pointer;font-weight:500;background:white;color:var(--grey-500)}.ask-button:not(.-primary,.-secondary){box-shadow:0 1px 2px #2a304229}.ask-button:not(.-primary):hover:not(:disabled){box-shadow:0 0 6px #2a304229}.ask-button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}.ask-button:active:not(:disabled){background-color:#f34915}.ask-button:disabled{cursor:not-allowed;background-color:#9aa5b1}.ask-button.-primary{background:#FF5724;color:#fff}.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%}.checkbox-content{display:flex;gap:8px}.checkbox-content>.icon{width:16px;height:16px}.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"] }]
289
289
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
290
290
  type: ViewChild,
291
291
  args: ["autocomplete"]
@@ -316,10 +316,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
316
316
  type: Input
317
317
  }], allOptionsSelectedText: [{
318
318
  type: Input
319
+ }], iconPropReference: [{
320
+ type: Input
319
321
  }], itemCheck: [{
320
322
  type: Output
321
323
  }], handleClick: [{
322
324
  type: HostListener,
323
325
  args: ["window:mousedown", ['$event']]
324
326
  }] } });
325
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUlOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW9DLFdBQVcsRUFBYSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7QUFFOUQsTUFBTSxhQUFhLEdBQWE7SUFDOUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Q0FDckQsQ0FBQTtBQVNELE1BQU0sT0FBTyxxQkFBcUI7SUFvRWhDLFlBQW9CLFdBQXdCLEVBQ3hCLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxNQUF5QjtRQUh6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFoRW5DLGlCQUFZLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbEMsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFDNUIsNkJBQXdCLEdBQVUsRUFBRSxDQUFDO1FBRXJDLGNBQVMsR0FBVSxFQUFFLENBQUM7UUFDdEIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLG1CQUFjLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLGtCQUFhLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QiwwQkFBcUIsR0FBRztZQUNoQyxNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7UUFDUSxvQkFBZSxHQUFzQyxFQUFFLENBQUE7UUFJekQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQUM1QixnQkFBVyxHQUFHLENBQUMsQ0FBQTtRQUNmLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBVzVCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsY0FBUyxHQUFXLEVBQUUsQ0FBQTtRQUd0QixZQUFPLEdBQVUsRUFBRSxDQUFBO1FBR25CLGdCQUFXLEdBQUcsRUFBRSxDQUFBO1FBR2hCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBRzVCLGNBQVMsR0FBRyxLQUFLLENBQUE7UUFHakIsMkJBQXNCLEdBQWtCLElBQUksQ0FBQztRQUc3QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQTJRL0IsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUE7UUFNekIsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQTtJQTNRcEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQTtRQUM5QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQTtJQUN0RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFBO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO1lBQ3hCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUE7WUFFbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFBO1lBQ3RELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1NBQ3hCO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2pDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDakMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUE7WUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7WUFDeEIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQTtRQUNwQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQzlELENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFBO1lBQzVCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNyQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxNQUFhO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFBO1FBRTlDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1NBQ2hEO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRU8sMkJBQTJCO1FBQ2pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRztZQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUMxQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQztTQUMxQyxDQUFBO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDbEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQWE7UUFDbkMsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNO2dCQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRVMsMEJBQTBCLENBQUMsS0FBWTtRQUMvQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBRXRELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtTQUMvRTtRQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNyRSxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBbUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUN6QixLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXO1lBQ3hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2lCQUN0QyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO2lCQUMxQyxhQUFhLENBQUMsQ0FBQztvQkFDZCxPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLFFBQVE7b0JBQ2pCLFFBQVEsRUFBRSxPQUFPO29CQUNqQixRQUFRLEVBQUUsS0FBSztpQkFDaEIsQ0FBQyxDQUFDO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFHRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFDRSxDQUFDLElBQUksQ0FBQyxNQUFNO2VBQ1QsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztlQUNuRCxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUE7U0FDNUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUUzRSxPQUFPLElBQUksQ0FBQyxjQUFjO1lBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZ0I7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFXLEVBQUUsS0FBYztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUE7UUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQTtRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFaEIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWlCO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDaEMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFBO1lBQ3BDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQWdDLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBVztRQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFBO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FDdEQsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7WUFDNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7U0FDOUI7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7U0FDbEI7UUFFRCxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQTtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBVztRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDN0UsTUFBTSxhQUFhLEdBQUcscUJBQXFCO2FBQ3hDLEtBQUssQ0FDSixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUN2QyxDQUFDO1FBRUosSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQ3hCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUE7U0FDdEI7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBaUIsRUFBRSxhQUF5QixFQUFFLElBQVk7UUFDMUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFdkUsSUFBSSxXQUFXLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQy9CLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDWDtpQkFBTSxJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsRUFBRTtnQkFDdEMsT0FBTyxDQUFDLENBQUM7YUFDVjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsQ0FBQzthQUNWO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFBO1FBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUN0RSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUN2RyxDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDdEcsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQ3BDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQzlHLENBQUM7UUFDRixJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDMUUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMvRixDQUFDO0lBRUQseUJBQXlCO0lBRXpCLFVBQVUsQ0FBQyxHQUFnQjtRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQTtZQUN6QixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7U0FDM0U7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFBO1NBQzFCO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtTQUNoQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUlELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUlELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7OEdBM1ZVLHFCQUFxQjtrR0FBckIscUJBQXFCLG9aQUhyQixDQUFDLGFBQWEsQ0FBQyw2WkNwQzVCLGtxSEFzRkE7OzJGRC9DYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0Usa0JBQWtCLGFBR2pCLENBQUMsYUFBYSxDQUFDLG1CQUNULHVCQUF1QixDQUFDLE1BQU07dUxBSXBCLEtBQUs7c0JBQS9CLFNBQVM7dUJBQUMsY0FBYztnQkFDTixJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ0ssT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNTLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQWtDM0IsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixNQUFNO2dCQXFJUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBQcm92aWRlcixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCB0YXB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcblxuY29uc3QgdmFsdWVBY2Nlc3NvcjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXNrLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbdmFsdWVBY2Nlc3Nvcl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMge1xuXG4gIEBWaWV3Q2hpbGQoXCJhdXRvY29tcGxldGVcIikgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChcImxpc3RcIikgbGlzdDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKFwid3JhcHBlclwiKSB3cmFwcGVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250ZW50Jykgb3ZlcmxheUNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBwcm90ZWN0ZWQgaW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKFwiXCIpXG4gIHByb3RlY3RlZCBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvbj86IGFueTtcbiAgcHJvdGVjdGVkIHNlbGVjdGlvbjogYW55W10gPSBbXTtcbiAgcHJvdGVjdGVkIGNsb3NlZCA9IHRydWU7XG4gIHByb3RlY3RlZCBjaGlwc0NvbGxhcHNlZCA9IHRydWVcbiAgcHJvdGVjdGVkIGNoZWNrQWxsVmFsdWUgPSBmYWxzZVxuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dDaGlwcyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd0FsbFNlbGVjdGlvbkJ0biA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd1BsYWNlaG9sZGVyID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93RXhwYW5kZWRTZWxlY3Rpb25BY3Rpb25zID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93U2VsZWN0QWxsQ2hlY2tib3ggPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGNoaXBzQ29udGFpbmVyQ2xhc3NlcyA9IHtcbiAgICBcIi10d29cIjogZmFsc2UsXG4gICAgXCItdGhyZWVcIjogZmFsc2UsXG4gICAgXCItZm91clwiOiBmYWxzZSxcbiAgICBcIi1tYW55XCI6IGZhbHNlXG4gIH07XG4gIHByb3RlY3RlZCBvcHRpb25zU2VsZWN0ZWQ6IHtba2V5OiBzdHJpbmcgfCBudW1iZXJdOiBib29sZWFufSA9IHt9XG5cbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfcG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDxhbnk+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9kZXN0cm95ID0gaW5qZWN0KERlc3Ryb3lSZWYpXG4gIHByaXZhdGUgcmVhZG9ubHkgSVRFTVNfUEVSX1BBR0UgPSA0MFxuICBwcml2YXRlIF9wYWdlTnVtYmVyID0gMVxuICBwcml2YXRlIF9yZWFjaGVkRW5kID0gZmFsc2U7XG5cblxuXG4gIEBJbnB1dCgpXG4gIGZpbHRlckZuPzogKGl0ZW06IHN0cmluZykgPT4gYW55W107XG5cbiAgQElucHV0KClcbiAgZGlzcGxheUZuPzogKGl0ZW06IGFueSkgPT4gc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdmFsdWVQcm9wOiBzdHJpbmcgPSAnJ1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbnM6IGFueVtdID0gW11cblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICcnXG5cbiAgQElucHV0KClcbiAgZW1wdHlNZXNzYWdlID0gJ05PX09QVElPTlMnO1xuXG4gIEBJbnB1dCgpXG4gIHNlbGVjdEFsbCA9IGZhbHNlXG5cbiAgQElucHV0KClcbiAgYWxsT3B0aW9uc1NlbGVjdGVkVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpXG4gIGl0ZW1DaGVjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2hlY2tBbGxWYWx1ZSA9IHRoaXMuaXNBbGxPcHRpb25zU2VsZWN0ZWRcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKCk7XG4gIH1cblxuICBnZXQgaXNBbGxPcHRpb25zU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gdGhpcy5vcHRpb25zLmxlbmd0aFxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydvcHRpb25zJ10pIHtcbiAgICAgIHRoaXMuX3BhZ2VOdW1iZXIgPSAxXG4gICAgICB0aGlzLl9yZWFjaGVkRW5kID0gZmFsc2VcbiAgICAgIHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zID0gW11cblxuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBjaGFuZ2VzWydvcHRpb25zJ10uY3VycmVudFZhbHVlXG4gICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3BhZ2VOdW1iZXIgPSAxXG4gICAgICAgIHRoaXMuX3JlYWNoZWRFbmQgPSBmYWxzZVxuICAgICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdXG4gICAgICB9KSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLmZpbHRlckZuID8gdGhpcy5maWx0ZXJGbih2YWx1ZSB8fCAnJykgOiBbXSlcbiAgICApLnN1YnNjcmliZShpdGVtcyA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGl0ZW1zXG4gICAgICB0aGlzLmdldE1vcmVJdGVtcygpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbHVlczogYW55W10pIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IHZhbHVlc1xuICAgIHRoaXMuY2hlY2tBbGxWYWx1ZSA9IHRoaXMuaXNBbGxPcHRpb25zU2VsZWN0ZWRcblxuICAgIGlmICghdGhpcy5jaGlwc0NvbGxhcHNlZCkge1xuICAgICAgdGhpcy5jaGlwc0NvbGxhcHNlZCA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA8IDJcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKCkge1xuICAgIHRoaXMuY2hpcHNDb250YWluZXJDbGFzc2VzID0ge1xuICAgICAgXCItdHdvXCI6IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMixcbiAgICAgIFwiLXRocmVlXCI6IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMyxcbiAgICAgIFwiLWZvdXJcIjogdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSA0LFxuICAgICAgXCItbWFueVwiOiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPj0gNVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU9wdGlvblNlbGVjdGVkKGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBpdGVtO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZE9wdGlvbilcbiAgICB0aGlzLmhpZGVPcHRpb25zKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBoYW5kbGVBdXRvY29tcGxldGVDbGljayhldmVudD86IEV2ZW50KSB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2xvc2VkXG4gICAgICAgID8gdGhpcy5zaG93T3B0aW9ucygpXG4gICAgICAgIDogdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIHRoaXMudXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDaGlwc0xpc3RBY3Rpb25DbGljayhldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSAhdGhpcy5jaGlwc0NvbGxhcHNlZDtcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKVxuICAgIHRoaXMudXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHNob3dPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gZmFsc2VcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy53cmFwcGVyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5nZXRPdmVybGF5Q29uZmlnKHRoaXMud3JhcHBlcilcblxuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheUNvbnRlbnQhLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG5cbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICBpZiAodGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB0aGlzLmdldE1vcmVJdGVtcygpXG4gIH1cblxuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcod3JhcHBlcjogRWxlbWVudFJlZikge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHdpZHRoOiB3cmFwcGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh3cmFwcGVyLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFt7XG4gICAgICAgICAgb3JpZ2luWDogXCJzdGFydFwiLFxuICAgICAgICAgIG9yaWdpblk6IFwiYm90dG9tXCIsXG4gICAgICAgICAgb3ZlcmxheVg6IFwic3RhcnRcIixcbiAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIlxuICAgICAgICB9XSlcbiAgICB9KTtcbiAgfVxuXG4gIGhpZGVPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICAgIHRoaXMuX3BhZ2VOdW1iZXIgPSAxO1xuICAgIHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zID0gW107XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwid2luZG93Om1vdXNlZG93blwiLCBbJyRldmVudCddKVxuICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmNsb3NlZFxuICAgICAgJiYgIXRoaXMud3JhcHBlcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgICAmJiAhdGhpcy5saXN0Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuaGlkZU9wdGlvbnMoKVxuICAgICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpOiBhbnlbXSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IFt0aGlzLnNlbGVjdGVkT3B0aW9uXSA6IFtdXG5cbiAgICByZXR1cm4gdGhpcy5jaGlwc0NvbGxhcHNlZFxuICAgICAgPyB0aGlzLnNlbGVjdGlvbi5zbGljZSgwLCAxKVxuICAgICAgOiB0aGlzLnNlbGVjdGlvbjtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdEFsbChjaGVja2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZWxlY3RBbGxPcHRpb25zKGNoZWNrZWQpO1xuICAgIHRoaXMuc2VsZWN0aW9uID0gY2hlY2tlZCA/IHRoaXMub3B0aW9ucyA6IFtdXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGlvbilcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICAgIHRoaXMuaXRlbUNoZWNrLmVtaXQodGhpcy5zZWxlY3Rpb24pO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2Uob3B0aW9uOiBhbnksIHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zU2VsZWN0ZWRbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0gPSB2YWx1ZVxuICAgIHRoaXMuc2VsZWN0aW9uID0gdGhpcy5vcHRpb25zLmZpbHRlcihvID0+IHRoaXMub3B0aW9uc1NlbGVjdGVkW29bdGhpcy52YWx1ZVByb3BdXSlcbiAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IHRoaXMub3B0aW9ucy5sZW5ndGhcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0aW9uKVxuICAgIHRoaXMub25Ub3VjaGVkKClcblxuICAgIHRoaXMudXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKClcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5pdGVtQ2hlY2suZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zU2VsZWN0ZWQgPSB0aGlzLm9wdGlvbnNcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICBhY2NbY3Vyclt0aGlzLnZhbHVlUHJvcF1dID0gc2VsZWN0ZWRcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9KVxuICB9XG5cbiAgaGFuZGxlQ2hpcEFjdGlvbihvcHRpb246IGFueSkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLm9wdGlvbnNTZWxlY3RlZFtvcHRpb25bdGhpcy52YWx1ZVByb3BdXSA9IGZhbHNlXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uLmZpbHRlcihzZWxlY3RlZE9wdGlvbiA9PlxuICAgICAgICBzZWxlY3RlZE9wdGlvblt0aGlzLnZhbHVlUHJvcF0gIT09IG9wdGlvblt0aGlzLnZhbHVlUHJvcF0pXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0aW9uKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gbnVsbDtcbiAgICAgIHRoaXMub25DaGFuZ2UoW10pXG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVDaGlwc0NvbnRhaW5lckNsYXNzZXMoKVxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGRpc3BsYXkob3B0aW9uOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5Rm4gJiYgdGhpcy5kaXNwbGF5Rm4ob3B0aW9uKVxuICB9XG5cbiAgZ2V0TW9yZUl0ZW1zKCkge1xuICAgIGNvbnN0IHNvcnRlZEZpbHRlcmVkT3B0aW9ucyA9IFsuLi50aGlzLmZpbHRlcmVkT3B0aW9uc107XG5cbiAgICB0aGlzLnNvcnRTZWxlY3RlZEZpcnN0KHNvcnRlZEZpbHRlcmVkT3B0aW9ucywgdGhpcy5zZWxlY3Rpb24sIHRoaXMudmFsdWVQcm9wKVxuICAgIGNvbnN0IG5leHRQYWdlSXRlbXMgPSBzb3J0ZWRGaWx0ZXJlZE9wdGlvbnNcbiAgICAgIC5zbGljZShcbiAgICAgICAgdGhpcy5JVEVNU19QRVJfUEFHRSAqICh0aGlzLl9wYWdlTnVtYmVyIC0gMSksXG4gICAgICAgIHRoaXMuSVRFTVNfUEVSX1BBR0UgKiB0aGlzLl9wYWdlTnVtYmVyXG4gICAgICApO1xuXG4gICAgaWYgKG5leHRQYWdlSXRlbXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFsuLi50aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucywgLi4ubmV4dFBhZ2VJdGVtc107XG4gICAgICB0aGlzLl9wYWdlTnVtYmVyICs9IDFcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcmVhY2hlZEVuZCA9IHRydWVcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBzb3J0U2VsZWN0ZWRGaXJzdChpdGVtczogQXJyYXk8YW55Piwgc2VsZWN0ZWRJdGVtczogQXJyYXk8YW55PiwgcHJvcDogc3RyaW5nKSB7XG4gICAgaXRlbXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgY29uc3QgYUlzU2VsZWN0ZWQgPSBzZWxlY3RlZEl0ZW1zLnNvbWUoaXRlbSA9PiBpdGVtW3Byb3BdID09PSBhW3Byb3BdKTtcbiAgICAgIGNvbnN0IGJJc1NlbGVjdGVkID0gc2VsZWN0ZWRJdGVtcy5zb21lKGl0ZW0gPT4gaXRlbVtwcm9wXSA9PT0gYltwcm9wXSk7XG5cbiAgICAgIGlmIChhSXNTZWxlY3RlZCAmJiAhYklzU2VsZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmICghYUlzU2VsZWN0ZWQgJiYgYklzU2VsZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVWYWxpZGF0aW9uKCkge1xuICAgIHRoaXMuY2hlY2tBbGxWYWx1ZSA9IHRoaXMuaXNBbGxPcHRpb25zU2VsZWN0ZWRcbiAgICB0aGlzLnNob3dDaGlwcyA9IEJvb2xlYW4odGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSAmJiB0aGlzLmNsb3NlZCAmJiAoXG4gICAgICAhdGhpcy5tdWx0aXBsZSB8fCAhdGhpcy5jaGVja0FsbFZhbHVlIHx8ICh0aGlzLmNoZWNrQWxsVmFsdWUgJiYgIUJvb2xlYW4odGhpcy5hbGxPcHRpb25zU2VsZWN0ZWRUZXh0KSlcbiAgICApO1xuICAgIHRoaXMuc2hvd0FsbFNlbGVjdGlvbkJ0biA9IHRoaXMubXVsdGlwbGUgJiYgQm9vbGVhbih0aGlzLnNlbGVjdGlvbi5sZW5ndGggPiAxKSAmJiB0aGlzLmNoaXBzQ29sbGFwc2VkO1xuICAgIHRoaXMuc2hvd1BsYWNlaG9sZGVyID0gdGhpcy5jbG9zZWQgJiYgKFxuICAgICAgIXRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCB8fCAodGhpcy5jaGVja0FsbFZhbHVlICYmIEJvb2xlYW4odGhpcy5hbGxPcHRpb25zU2VsZWN0ZWRUZXh0KSAmJiB0aGlzLm11bHRpcGxlKVxuICAgICk7XG4gICAgdGhpcy5zaG93RXhwYW5kZWRTZWxlY3Rpb25BY3Rpb25zID0gdGhpcy5tdWx0aXBsZSAmJiAhdGhpcy5jaGlwc0NvbGxhcHNlZDtcbiAgICB0aGlzLnNob3dTZWxlY3RBbGxDaGVja2JveCA9IEJvb2xlYW4odGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSAmJiB0aGlzLnNlbGVjdEFsbDtcbiAgfVxuXG4gIC8vIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcblxuICB3cml0ZVZhbHVlKG9iajogYW55W10gfCBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICB0aGlzLm9wdGlvbnNTZWxlY3RlZCA9IHt9XG4gICAgICBvYmouZm9yRWFjaChvcHRpb24gPT4gdGhpcy5vcHRpb25zU2VsZWN0ZWRbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0gPSB0cnVlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb2JqXG4gICAgfVxuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKG9iailcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4ge31cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXJcIlxuICAgICBbY2xhc3MuLWNsb3NlZF09XCJjbG9zZWRcIlxuICAgICBbY2xhc3MuLW9wZW5lZF09XCIhY2xvc2VkXCJcbiAgICAgI3dyYXBwZXJcbiAgICAgKGNsaWNrKT1cImhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKClcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlXCIgI2F1dG9jb21wbGV0ZT5cbiAgICA8aW5wdXQgY2xhc3M9XCJzZWFyY2gtZmllbGRcIlxuICAgICAgICAgICBhc2tBdXRvZm9jdXNcbiAgICAgICAgICAgKm5nSWY9XCIhY2xvc2VkOyBlbHNlIHNlbGVjdGlvbk9yUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImlucHV0Q29udHJvbFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiLz5cbiAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGlvbk9yUGxhY2Vob2xkZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0NoaXBzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWxpc3RcIiBbY2xhc3MuLWNvbGxhcHNlZF09XCJjaGlwc0NvbGxhcHNlZFwiXG4gICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hpcHNDb250YWluZXJDbGFzc2VzXCI+XG4gICAgICAgICAgPGFzay1jaGlwcyBbc3R5bGUubWF4LXdpZHRoXT1cImNoaXBzQ29sbGFwc2VkID8gJzg1JScgOiAnOTUlJ1wiXG4gICAgICAgICAgICAgICAgICAgICBbc2hvd0FjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiaGFuZGxlQ2hpcEFjdGlvbihvcHRpb24pXCI+XG4gICAgICAgICAgICB7e2Rpc3BsYXkob3B0aW9uKX19XG4gICAgICAgICAgPC9hc2stY2hpcHM+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBhbmRcIiBkYXRhLXRlc3RpZD1cInNlZS1tb3JlXCIgKm5nSWY9XCJzaG93QWxsU2VsZWN0aW9uQnRuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2hpcHNMaXN0QWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgK3t7c2VsZWN0aW9uLmxlbmd0aCAtIDF9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZW1wdHktcGxhY2Vob2xkZXJcIiBkYXRhLXRlc3RpZD1cInBsYWNlaG9sZGVyXCIgKm5nSWY9XCJzaG93UGxhY2Vob2xkZXJcIj5cbiAgICAgICAge3soY2hlY2tBbGxWYWx1ZSAmJiBhbGxPcHRpb25zU2VsZWN0ZWRUZXh0KSA/IGFsbE9wdGlvbnNTZWxlY3RlZFRleHQgOiBwbGFjZWhvbGRlcn19XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8c3BhbiBjbGFzcz1cImJ0bi1leHBhbmQgbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiYnRuLWV4cGFuZFwiXG4gICAgICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKm5nSWY9XCJjaGlwc0NvbGxhcHNlZFwiPlxuICAgICAge3tjbG9zZWQgPyBcImV4cGFuZF9tb3JlXCIgOiBcImV4cGFuZF9sZXNzXCJ9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgKm5nSWY9XCJzaG93RXhwYW5kZWRTZWxlY3Rpb25BY3Rpb25zXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJzZWUtbW9yZVwiIGRhdGEtdGVzdGlkPVwic2VlLWxlc3NcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDaGlwc0xpc3RBY3Rpb25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgIHt7J1NFRV9MRVNTJyB8IHRyYW5zbGF0ZX19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYnRuLWV4cGFuZCBtYXRlcmlhbC1pY29uc1wiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJidG4tZXhwYW5kXCJcbiAgICAgICAgICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICB7e2Nsb3NlZCA/IFwiZXhwYW5kX21vcmVcIiA6IFwiZXhwYW5kX2xlc3NcIn19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlDb250ZW50PlxuICA8ZGl2ICNsaXN0IGNsYXNzPVwibWVudS1jb250YWluZXJcIiBbY2xhc3MuLW11bHRpcGxlXT1cIm11bHRpcGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgZWxzZSBtdWx0aXBsZVNlbGVjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RcIiBhc2tTY3JvbGwgW2Fza1Njcm9sbFRocmVzaG9sZF09XCI1MFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgIFtjbGFzcy4taGlnaGxpZ2h0ZWRdPVwic2VsZWN0ZWRPcHRpb24gJiYgc2VsZWN0ZWRPcHRpb25bdmFsdWVQcm9wXSA9PT0gb3B0aW9uW3ZhbHVlUHJvcF1cIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9wdGlvblNlbGVjdGVkKG9wdGlvbilcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dFwiPnt7ZGlzcGxheShvcHRpb24pfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZVNlbGVjdGlvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiICpuZ0lmPVwic2hvd1NlbGVjdEFsbENoZWNrYm94XCI+XG4gICAgICAgIDxhc2stY2hlY2tib3ggKHZhbHVlQ2hhbmdlKT1cImhhbmRsZVNlbGVjdEFsbCgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJjaGVja0FsbFZhbHVlXCI+U2VsZWNpb25hciB0b2RhczwvYXNrLWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGFza1Njcm9sbCBbYXNrU2Nyb2xsVGhyZXNob2xkXT1cIjUwXCJcbiAgICAgICAgICAoc2Nyb2xsRW5kKT1cImdldE1vcmVJdGVtcygpXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm9wdGlvbnMtZm9ybVwiXG4gICAgICAgICAgY2xhc3M9XCJvcHRpb25zLWZvcm1cIlxuICAgICAgICAgIFtjbGFzcy4tc2VsZWN0LWFsbF09XCJzaG93U2VsZWN0QWxsQ2hlY2tib3hcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGFzay1jaGVja2JveCBbdmFsdWVdPVwib3B0aW9uc1NlbGVjdGVkW29wdGlvblt2YWx1ZVByb3BdXVwiICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZShvcHRpb24sICRldmVudClcIj5cbiAgICAgICAgICAgICAgICB7e2Rpc3BsYXkob3B0aW9uKX19PC9hc2stY2hlY2tib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJlbXB0eVwiICpuZ0lmPVwiIWZpbHRlcmVkT3B0aW9ucy5sZW5ndGhcIj57e2VtcHR5TWVzc2FnZSB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUlOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW9DLFdBQVcsRUFBYSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7QUFFOUQsTUFBTSxhQUFhLEdBQWE7SUFDOUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Q0FDckQsQ0FBQTtBQVNELE1BQU0sT0FBTyxxQkFBcUI7SUF1RWhDLFlBQW9CLFdBQXdCLEVBQ3hCLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxNQUF5QjtRQUh6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdB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LEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsTUFBTTtnQkFxSVAsV0FBVztzQkFEVixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUHJvdmlkZXIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcCwgdGFwfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtPdmVybGF5LCBPdmVybGF5UmVmfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7VGVtcGxhdGVQb3J0YWx9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5cbmNvbnN0IHZhbHVlQWNjZXNzb3I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgbXVsdGk6IHRydWUsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF1dG9jb21wbGV0ZUNvbXBvbmVudCksXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fzay1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3ZhbHVlQWNjZXNzb3JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcblxuICBAVmlld0NoaWxkKFwiYXV0b2NvbXBsZXRlXCIpIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoXCJsaXN0XCIpIGxpc3Q6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChcIndyYXBwZXJcIikgd3JhcHBlcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGVudCcpIG92ZXJsYXlDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgcHJvdGVjdGVkIGlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChcIlwiKVxuICBwcm90ZWN0ZWQgZmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgcGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcHRpb24/OiBhbnk7XG4gIHByb3RlY3RlZCBzZWxlY3Rpb246IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBjbG9zZWQgPSB0cnVlO1xuICBwcm90ZWN0ZWQgY2hpcHNDb2xsYXBzZWQgPSB0cnVlXG4gIHByb3RlY3RlZCBjaGVja0FsbFZhbHVlID0gZmFsc2VcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzaG93Q2hpcHMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dBbGxTZWxlY3Rpb25CdG4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNob3dQbGFjZWhvbGRlciA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd0V4cGFuZGVkU2VsZWN0aW9uQWN0aW9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2hvd1NlbGVjdEFsbENoZWNrYm94ID0gZmFsc2U7XG4gIHByb3RlY3RlZCBjaGlwc0NvbnRhaW5lckNsYXNzZXMgPSB7XG4gICAgXCItdHdvXCI6IGZhbHNlLFxuICAgIFwiLXRocmVlXCI6IGZhbHNlLFxuICAgIFwiLWZvdXJcIjogZmFsc2UsXG4gICAgXCItbWFueVwiOiBmYWxzZVxuICB9O1xuICBwcm90ZWN0ZWQgb3B0aW9uc1NlbGVjdGVkOiB7W2tleTogc3RyaW5nIHwgbnVtYmVyXTogYm9vbGVhbn0gPSB7fVxuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3BvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKVxuICBwcml2YXRlIHJlYWRvbmx5IElURU1TX1BFUl9QQUdFID0gNDBcbiAgcHJpdmF0ZSBfcGFnZU51bWJlciA9IDFcbiAgcHJpdmF0ZSBfcmVhY2hlZEVuZCA9IGZhbHNlO1xuXG5cblxuICBASW5wdXQoKVxuICBmaWx0ZXJGbj86IChpdGVtOiBzdHJpbmcpID0+IGFueVtdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc3BsYXlGbj86IChpdGVtOiBhbnkpID0+IHN0cmluZztcblxuICBASW5wdXQoKVxuICBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHZhbHVlUHJvcDogc3RyaW5nID0gJydcblxuICBASW5wdXQoKVxuICBvcHRpb25zOiBhbnlbXSA9IFtdXG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnJ1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5TWVzc2FnZSA9ICdOT19PUFRJT05TJztcblxuICBASW5wdXQoKVxuICBzZWxlY3RBbGwgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIGFsbE9wdGlvbnNTZWxlY3RlZFRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIGljb25Qcm9wUmVmZXJlbmNlPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBpdGVtQ2hlY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGNoYW5nZTogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSB0aGlzLmlzQWxsT3B0aW9uc1NlbGVjdGVkXG4gICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZSgpO1xuICB9XG5cbiAgZ2V0IGlzQWxsT3B0aW9uc1NlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IHRoaXMub3B0aW9ucy5sZW5ndGhcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICB0aGlzLl9wYWdlTnVtYmVyID0gMVxuICAgICAgdGhpcy5fcmVhY2hlZEVuZCA9IGZhbHNlXG4gICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdXG5cbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZVxuICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlKCkge1xuICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3kpLFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLl9wYWdlTnVtYmVyID0gMVxuICAgICAgICB0aGlzLl9yZWFjaGVkRW5kID0gZmFsc2VcbiAgICAgICAgdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbXVxuICAgICAgfSksXG4gICAgICBtYXAodmFsdWUgPT4gdGhpcy5maWx0ZXJGbiA/IHRoaXMuZmlsdGVyRm4odmFsdWUgfHwgJycpIDogW10pXG4gICAgKS5zdWJzY3JpYmUoaXRlbXMgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBpdGVtc1xuICAgICAgdGhpcy5nZXRNb3JlSXRlbXMoKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSh2YWx1ZXM6IGFueVtdKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSB2YWx1ZXNcbiAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSB0aGlzLmlzQWxsT3B0aW9uc1NlbGVjdGVkXG5cbiAgICBpZiAoIXRoaXMuY2hpcHNDb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuY2hpcHNDb2xsYXBzZWQgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPCAyXG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNoaXBzQ29udGFpbmVyQ2xhc3NlcygpIHtcbiAgICB0aGlzLmNoaXBzQ29udGFpbmVyQ2xhc3NlcyA9IHtcbiAgICAgIFwiLXR3b1wiOiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDIsXG4gICAgICBcIi10aHJlZVwiOiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDMsXG4gICAgICBcIi1mb3VyXCI6IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gNCxcbiAgICAgIFwiLW1hbnlcIjogdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID49IDVcbiAgICB9XG4gIH1cblxuICBoYW5kbGVPcHRpb25TZWxlY3RlZChpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gaXRlbTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRPcHRpb24pXG4gICAgdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaGFuZGxlQXV0b2NvbXBsZXRlQ2xpY2soZXZlbnQ/OiBFdmVudCkge1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jaGlwc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgICB0aGlzLmNsb3NlZFxuICAgICAgICA/IHRoaXMuc2hvd09wdGlvbnMoKVxuICAgICAgICA6IHRoaXMuaGlkZU9wdGlvbnMoKVxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLnVwZGF0ZUNoaXBzQ29udGFpbmVyQ2xhc3NlcygpXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2hpcHNMaXN0QWN0aW9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gIXRoaXMuY2hpcHNDb2xsYXBzZWQ7XG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKClcbiAgICB0aGlzLnVwZGF0ZUNoaXBzQ29udGFpbmVyQ2xhc3NlcygpXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBzaG93T3B0aW9ucygpIHtcbiAgICB0aGlzLmNsb3NlZCA9IGZhbHNlXG4gICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmICYmIHRoaXMud3JhcHBlcikge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuZ2V0T3ZlcmxheUNvbmZpZyh0aGlzLndyYXBwZXIpXG5cbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm92ZXJsYXlDb250ZW50ISwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWY/LmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuXG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgaWYgKHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkgdGhpcy5nZXRNb3JlSXRlbXMoKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKHdyYXBwZXI6IEVsZW1lbnRSZWYpIHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICB3aWR0aDogd3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8od3JhcHBlci5uYXRpdmVFbGVtZW50KVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhbe1xuICAgICAgICAgIG9yaWdpblg6IFwic3RhcnRcIixcbiAgICAgICAgICBvcmlnaW5ZOiBcImJvdHRvbVwiLFxuICAgICAgICAgIG92ZXJsYXlYOiBcInN0YXJ0XCIsXG4gICAgICAgICAgb3ZlcmxheVk6IFwidG9wXCJcbiAgICAgICAgfV0pXG4gICAgfSk7XG4gIH1cblxuICBoaWRlT3B0aW9ucygpIHtcbiAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgdGhpcy5jaGlwc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgICB0aGlzLl9wYWdlTnVtYmVyID0gMTtcbiAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdO1xuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzptb3VzZWRvd25cIiwgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5jbG9zZWRcbiAgICAgICYmICF0aGlzLndyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgJiYgIXRoaXMubGlzdD8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICB0aGlzLmhpZGVPcHRpb25zKClcbiAgICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgfVxuXG4gIGdldCBzZWxlY3RlZE9wdGlvbnMoKTogYW55W10ge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyBbdGhpcy5zZWxlY3RlZE9wdGlvbl0gOiBbXVxuXG4gICAgcmV0dXJuIHRoaXMuY2hpcHNDb2xsYXBzZWRcbiAgICAgID8gdGhpcy5zZWxlY3Rpb24uc2xpY2UoMCwgMSlcbiAgICAgIDogdGhpcy5zZWxlY3Rpb247XG4gIH1cblxuICBoYW5kbGVTZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbikge1xuICAgIHRoaXMuc2VsZWN0QWxsT3B0aW9ucyhjaGVja2VkKTtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IGNoZWNrZWQgPyB0aGlzLm9wdGlvbnMgOiBbXVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3Rpb24pXG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgICB0aGlzLml0ZW1DaGVjay5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgfVxuXG4gIHZhbHVlQ2hhbmdlKG9wdGlvbjogYW55LCB2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9uc1NlbGVjdGVkW29wdGlvblt0aGlzLnZhbHVlUHJvcF1dID0gdmFsdWVcbiAgICB0aGlzLnNlbGVjdGlvbiA9IHRoaXMub3B0aW9ucy5maWx0ZXIobyA9PiB0aGlzLm9wdGlvbnNTZWxlY3RlZFtvW3RoaXMudmFsdWVQcm9wXV0pXG4gICAgdGhpcy5jaGVja0FsbFZhbHVlID0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSB0aGlzLm9wdGlvbnMubGVuZ3RoXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGlvbilcbiAgICB0aGlzLm9uVG91Y2hlZCgpXG5cbiAgICB0aGlzLnVwZGF0ZUNoaXBzQ29udGFpbmVyQ2xhc3NlcygpXG4gICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuaXRlbUNoZWNrLmVtaXQodGhpcy5zZWxlY3Rpb24pO1xuICB9XG5cbiAgc2VsZWN0QWxsT3B0aW9ucyhzZWxlY3RlZDogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9uc1NlbGVjdGVkID0gdGhpcy5vcHRpb25zXG4gICAgICAucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgYWNjW2N1cnJbdGhpcy52YWx1ZVByb3BdXSA9IHNlbGVjdGVkXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSBhcyB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSlcbiAgfVxuXG4gIGhhbmRsZUNoaXBBY3Rpb24ob3B0aW9uOiBhbnkpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5vcHRpb25zU2VsZWN0ZWRbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0gPSBmYWxzZVxuICAgICAgdGhpcy5zZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbi5maWx0ZXIoc2VsZWN0ZWRPcHRpb24gPT5cbiAgICAgICAgc2VsZWN0ZWRPcHRpb25bdGhpcy52YWx1ZVByb3BdICE9PSBvcHRpb25bdGhpcy52YWx1ZVByb3BdKVxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGlvbilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG51bGw7XG4gICAgICB0aGlzLm9uQ2hhbmdlKFtdKVxuICAgIH1cblxuICAgIHRoaXMudXBkYXRlQ2hpcHNDb250YWluZXJDbGFzc2VzKClcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBkaXNwbGF5KG9wdGlvbjogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUZuICYmIHRoaXMuZGlzcGxheUZuKG9wdGlvbilcbiAgfVxuXG4gIGdldE1vcmVJdGVtcygpIHtcbiAgICBjb25zdCBzb3J0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbLi4udGhpcy5maWx0ZXJlZE9wdGlvbnNdO1xuXG4gICAgdGhpcy5zb3J0U2VsZWN0ZWRGaXJzdChzb3J0ZWRGaWx0ZXJlZE9wdGlvbnMsIHRoaXMuc2VsZWN0aW9uLCB0aGlzLnZhbHVlUHJvcClcbiAgICBjb25zdCBuZXh0UGFnZUl0ZW1zID0gc29ydGVkRmlsdGVyZWRPcHRpb25zXG4gICAgICAuc2xpY2UoXG4gICAgICAgIHRoaXMuSVRFTVNfUEVSX1BBR0UgKiAodGhpcy5fcGFnZU51bWJlciAtIDEpLFxuICAgICAgICB0aGlzLklURU1TX1BFUl9QQUdFICogdGhpcy5fcGFnZU51bWJlclxuICAgICAgKTtcblxuICAgIGlmIChuZXh0UGFnZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBbLi4udGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMsIC4uLm5leHRQYWdlSXRlbXNdO1xuICAgICAgdGhpcy5fcGFnZU51bWJlciArPSAxXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JlYWNoZWRFbmQgPSB0cnVlXG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsaWRhdGlvbigpO1xuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgc29ydFNlbGVjdGVkRmlyc3QoaXRlbXM6IEFycmF5PGFueT4sIHNlbGVjdGVkSXRlbXM6IEFycmF5PGFueT4sIHByb3A6IHN0cmluZykge1xuICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IGFJc1NlbGVjdGVkID0gc2VsZWN0ZWRJdGVtcy5zb21lKGl0ZW0gPT4gaXRlbVtwcm9wXSA9PT0gYVtwcm9wXSk7XG4gICAgICBjb25zdCBiSXNTZWxlY3RlZCA9IHNlbGVjdGVkSXRlbXMuc29tZShpdGVtID0+IGl0ZW1bcHJvcF0gPT09IGJbcHJvcF0pO1xuXG4gICAgICBpZiAoYUlzU2VsZWN0ZWQgJiYgIWJJc1NlbGVjdGVkKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoIWFJc1NlbGVjdGVkICYmIGJJc1NlbGVjdGVkKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlVmFsaWRhdGlvbigpIHtcbiAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSB0aGlzLmlzQWxsT3B0aW9uc1NlbGVjdGVkXG4gICAgdGhpcy5zaG93Q2hpcHMgPSBCb29sZWFuKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCkgJiYgdGhpcy5jbG9zZWQgJiYgKFxuICAgICAgIXRoaXMubXVsdGlwbGUgfHwgIXRoaXMuY2hlY2tBbGxWYWx1ZSB8fCAodGhpcy5jaGVja0FsbFZhbHVlICYmICFCb29sZWFuKHRoaXMuYWxsT3B0aW9uc1NlbGVjdGVkVGV4dCkpXG4gICAgKTtcbiAgICB0aGlzLnNob3dBbGxTZWxlY3Rpb25CdG4gPSB0aGlzLm11bHRpcGxlICYmIEJvb2xlYW4odGhpcy5zZWxlY3Rpb24ubGVuZ3RoID4gMSkgJiYgdGhpcy5jaGlwc0NvbGxhcHNlZDtcbiAgICB0aGlzLnNob3dQbGFjZWhvbGRlciA9IHRoaXMuY2xvc2VkICYmIChcbiAgICAgICF0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggfHwgKHRoaXMuY2hlY2tBbGxWYWx1ZSAmJiBCb29sZWFuKHRoaXMuYWxsT3B0aW9uc1NlbGVjdGVkVGV4dCkgJiYgdGhpcy5tdWx0aXBsZSlcbiAgICApO1xuICAgIHRoaXMuc2hvd0V4cGFuZGVkU2VsZWN0aW9uQWN0aW9ucyA9IHRoaXMubXVsdGlwbGUgJiYgIXRoaXMuY2hpcHNDb2xsYXBzZWQ7XG4gICAgdGhpcy5zaG93U2VsZWN0QWxsQ2hlY2tib3ggPSBCb29sZWFuKHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zLmxlbmd0aCkgJiYgdGhpcy5zZWxlY3RBbGw7XG4gIH1cblxuICAvLyBDb250cm9sIFZhbHVlIEFjY2Vzc29yXG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueVtdIHwgYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcblxuICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgdGhpcy5vcHRpb25zU2VsZWN0ZWQgPSB7fVxuICAgICAgb2JqLmZvckVhY2gob3B0aW9uID0+IHRoaXMub3B0aW9uc1NlbGVjdGVkW29wdGlvblt0aGlzLnZhbHVlUHJvcF1dID0gdHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9ialxuICAgIH1cblxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZShvYmopXG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyXCJcbiAgICAgW2NsYXNzLi1jbG9zZWRdPVwiY2xvc2VkXCJcbiAgICAgW2NsYXNzLi1vcGVuZWRdPVwiIWNsb3NlZFwiXG4gICAgICN3cmFwcGVyXG4gICAgIChjbGljayk9XCJoYW5kbGVBdXRvY29tcGxldGVDbGljaygpXCJcbj5cbiAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZVwiICNhdXRvY29tcGxldGU+XG4gICAgPGlucHV0IGNsYXNzPVwic2VhcmNoLWZpZWxkXCJcbiAgICAgICAgICAgYXNrQXV0b2ZvY3VzXG4gICAgICAgICAgICpuZ0lmPVwiIWNsb3NlZDsgZWxzZSBzZWxlY3Rpb25PclBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJpbnB1dENvbnRyb2xcIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIi8+XG4gICAgPG5nLXRlbXBsYXRlICNzZWxlY3Rpb25PclBsYWNlaG9sZGVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDaGlwc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1saXN0XCIgW2NsYXNzLi1jb2xsYXBzZWRdPVwiY2hpcHNDb2xsYXBzZWRcIlxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNoaXBzQ29udGFpbmVyQ2xhc3Nlc1wiPlxuICAgICAgICAgIDxhc2stY2hpcHMgW3N0eWxlLm1heC13aWR0aF09XCJjaGlwc0NvbGxhcHNlZCA/ICc4NSUnIDogJzk1JSdcIlxuICAgICAgICAgICAgICAgICAgICAgW3Nob3dBY3Rpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNlbGVjdGVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAoYWN0aW9uKT1cImhhbmRsZUNoaXBBY3Rpb24ob3B0aW9uKVwiPlxuICAgICAgICAgICAge3tkaXNwbGF5KG9wdGlvbil9fVxuICAgICAgICAgIDwvYXNrLWNoaXBzPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXhwYW5kXCIgZGF0YS10ZXN0aWQ9XCJzZWUtbW9yZVwiICpuZ0lmPVwic2hvd0FsbFNlbGVjdGlvbkJ0blwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNoaXBzTGlzdEFjdGlvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICt7e3NlbGVjdGlvbi5sZW5ndGggLSAxfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVtcHR5LXBsYWNlaG9sZGVyXCIgZGF0YS10ZXN0aWQ9XCJwbGFjZWhvbGRlclwiICpuZ0lmPVwic2hvd1BsYWNlaG9sZGVyXCI+XG4gICAgICAgIHt7KGNoZWNrQWxsVmFsdWUgJiYgYWxsT3B0aW9uc1NlbGVjdGVkVGV4dCkgPyBhbGxPcHRpb25zU2VsZWN0ZWRUZXh0IDogcGxhY2Vob2xkZXJ9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJidG4tZXhwYW5kIG1hdGVyaWFsLWljb25zXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImJ0bi1leHBhbmRcIlxuICAgICAgICAgIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICpuZ0lmPVwiY2hpcHNDb2xsYXBzZWRcIj5cbiAgICAgIHt7Y2xvc2VkID8gXCJleHBhbmRfbW9yZVwiIDogXCJleHBhbmRfbGVzc1wifX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiICpuZ0lmPVwic2hvd0V4cGFuZGVkU2VsZWN0aW9uQWN0aW9uc1wiPlxuICAgIDxzcGFuIGNsYXNzPVwic2VlLW1vcmVcIiBkYXRhLXRlc3RpZD1cInNlZS1sZXNzXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2hpcHNMaXN0QWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICB7eydTRUVfTEVTUycgfCB0cmFuc2xhdGV9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImJ0bi1leHBhbmQgbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiYnRuLWV4cGFuZFwiXG4gICAgICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAge3tjbG9zZWQgPyBcImV4cGFuZF9tb3JlXCIgOiBcImV4cGFuZF9sZXNzXCJ9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5Q29udGVudD5cbiAgPGRpdiAjbGlzdCBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCIgW2NsYXNzLi1tdWx0aXBsZV09XCJtdWx0aXBsZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlwbGU7IGVsc2UgbXVsdGlwbGVTZWxlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0XCIgYXNrU2Nyb2xsIFthc2tTY3JvbGxUaHJlc2hvbGRdPVwiNTBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuLWhpZ2hsaWdodGVkXT1cInNlbGVjdGVkT3B0aW9uICYmIHNlbGVjdGVkT3B0aW9uW3ZhbHVlUHJvcF0gPT09IG9wdGlvblt2YWx1ZVByb3BdXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZChvcHRpb24pXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHRcIj57e2Rpc3BsYXkob3B0aW9uKX19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVTZWxlY3Rpb24+XG4gICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIiAqbmdJZj1cInNob3dTZWxlY3RBbGxDaGVja2JveFwiPlxuICAgICAgICA8YXNrLWNoZWNrYm94ICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGwoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiY2hlY2tBbGxWYWx1ZVwiPlNlbGVjaW9uYXIgdG9kYXM8L2Fzay1jaGVja2JveD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBhc2tTY3JvbGwgW2Fza1Njcm9sbFRocmVzaG9sZF09XCI1MFwiXG4gICAgICAgICAgKHNjcm9sbEVuZCk9XCJnZXRNb3JlSXRlbXMoKVwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJvcHRpb25zLWZvcm1cIlxuICAgICAgICAgIGNsYXNzPVwib3B0aW9ucy1mb3JtXCJcbiAgICAgICAgICBbY2xhc3MuLXNlbGVjdC1hbGxdPVwic2hvd1NlbGVjdEFsbENoZWNrYm94XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgIDxhc2stY2hlY2tib3ggW3ZhbHVlXT1cIm9wdGlvbnNTZWxlY3RlZFtvcHRpb25bdmFsdWVQcm9wXV1cIiAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2Uob3B0aW9uLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpY29uXCIgKm5nSWY9XCJpY29uUHJvcFJlZmVyZW5jZVwiIFtzcmNdPVwib3B0aW9uW2ljb25Qcm9wUmVmZXJlbmNlXVwiIGFsdD1cIlwiIGxvYWRpbmc9XCJsYXp5XCI+XG4gICAgICAgICAgICAgICAgICB7e2Rpc3BsYXkob3B0aW9uKX19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYXNrLWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxzcGFuIGNsYXNzPVwiZW1wdHlcIiAqbmdJZj1cIiFmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoXCI+e3tlbXB0eU1lc3NhZ2UgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -18,10 +18,14 @@ export const formatTo = (from) => from.endOf('day').format(DEFAULT_DATE_FORMAT);
18
18
  export class DatePickerCalendarComponent {
19
19
  constructor() {
20
20
  this.isRange = false;
21
+ this.disableFutureDate = false;
21
22
  this.dateChange = new EventEmitter();
22
23
  this._weekDays = [];
23
24
  this._days = [];
24
25
  }
26
+ get shouldDisableNextMonth() {
27
+ return this.isFutureDate(this.displayDate.clone().add(1, 'month').unix());
28
+ }
25
29
  get days() {
26
30
  return this._days;
27
31
  }
@@ -156,6 +160,7 @@ export class DatePickerCalendarComponent {
156
160
  month: day.month(),
157
161
  weekDay: day.day(),
158
162
  formatted: day.format(DEFAULT_DATE_FORMAT),
163
+ isFuture: this.isFutureDate(day.unix())
159
164
  };
160
165
  }
161
166
  getDayFromString(date) {
@@ -217,17 +222,26 @@ export class DatePickerCalendarComponent {
217
222
  this.innerDate = this.getDayFromMoment(momentDate);
218
223
  this.dateChange.emit(momentDate.format(DEFAULT_DATE_FORMAT));
219
224
  }
225
+ isFutureDate(timestamp) {
226
+ if (!this.disableFutureDate)
227
+ return false;
228
+ const date = moment.unix(timestamp);
229
+ const now = moment();
230
+ return date.isAfter(now);
231
+ }
220
232
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DatePickerCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
221
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DatePickerCalendarComponent, selector: "ask-date-picker-calendar", inputs: { isRange: "isRange", date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(1)\">\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <span\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </span>\n </div>\n </main>\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)}.ask-button{padding:8px 24px;border-radius:6px;border:none;outline:none;height:48px;font-size:1rem;transition:background-color .1s,box-shadow .1s;cursor:pointer;font-weight:500;background:white;color:var(--grey-500)}.ask-button:not(.-primary,.-secondary){box-shadow:0 1px 2px #2a304229}.ask-button:not(.-primary):hover:not(:disabled){box-shadow:0 0 6px #2a304229}.ask-button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}.ask-button:active:not(:disabled){background-color:#f34915}.ask-button:disabled{cursor:not-allowed;background-color:#9aa5b1}.ask-button.-primary{background:#FF5724;color:#fff}.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-calendar-container{display:flex;flex-direction:column;padding:16px;width:320px;-webkit-user-select:none;user-select:none}.month-selector{display:flex;align-items:center;justify-content:space-between;padding:4px;background-color:var(--secondary-background);border-radius:4px;text-transform:capitalize}.month-selector>.month-year-display{font-size:.75rem;color:var(--font-color-100);font-weight:500}.selector-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:var(--primary-background);box-shadow:0 1px 2px #2a304229;outline:none;border:none;border-radius:4px;cursor:pointer}.selector-button>.icon{color:var(--font-color-100);font-size:18px}.calendar{display:flex;flex-direction:column;padding:16px 32px}.week-days-header{display:grid;grid-template-rows:auto;grid-template-columns:repeat(7,auto);place-items:center;padding-bottom:8px;border-bottom:1px solid #E4E7EB}.week-days-header>.week-day{display:flex;align-items:center;justify-content:center;font-size:.75rem;line-height:1rem;width:100%;color:var(--font-color-100)}.days-block{display:grid;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(7,auto);place-items:center;row-gap:4px;color:var(--font-color-200);padding-top:4px}.days-block>.day{display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;line-height:1rem;width:100%;height:31px;border-radius:99999px;transition:.2s background-color,.2s color,.2s font-weight}.days-block>.day.another-month{color:var(--font-color-300)}.days-block>.day.selected,.days-block>.day:hover{color:#ff5724;background-color:#ff57241a;cursor:pointer}.days-block>.day.selected{border-radius:0;font-weight:500}.days-block>.day.selected.first{border-top-left-radius:99999px;border-bottom-left-radius:99999px}.days-block>.day.selected.last{border-top-right-radius:99999px;border-bottom-right-radius:99999px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
233
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DatePickerCalendarComponent, selector: "ask-date-picker-calendar", inputs: { isRange: "isRange", disableFutureDate: "disableFutureDate", date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button\n type=\"button\"\n class=\"selector-button\"\n [disabled]=\"shouldDisableNextMonth\"\n (click)=\"incrementMonth(1)\"\n >\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <button\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [disabled]=\"day.isFuture\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </button>\n </div>\n </main>\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)}.ask-button{padding:8px 24px;border-radius:6px;border:none;outline:none;height:48px;font-size:1rem;transition:background-color .1s,box-shadow .1s;cursor:pointer;font-weight:500;background:white;color:var(--grey-500)}.ask-button:not(.-primary,.-secondary){box-shadow:0 1px 2px #2a304229}.ask-button:not(.-primary):hover:not(:disabled){box-shadow:0 0 6px #2a304229}.ask-button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}.ask-button:active:not(:disabled){background-color:#f34915}.ask-button:disabled{cursor:not-allowed;background-color:#9aa5b1}.ask-button.-primary{background:#FF5724;color:#fff}.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-calendar-container{display:flex;flex-direction:column;padding:16px;width:320px;-webkit-user-select:none;user-select:none}.month-selector{display:flex;align-items:center;justify-content:space-between;padding:4px;background-color:var(--secondary-background);border-radius:4px;text-transform:capitalize}.month-selector>.month-year-display{font-size:.75rem;color:var(--font-color-100);font-weight:500}.selector-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:var(--primary-background);box-shadow:0 1px 2px #2a304229;outline:none;border:none;border-radius:4px;cursor:pointer}.selector-button:disabled{cursor:default;opacity:0}.selector-button>.icon{color:var(--font-color-100);font-size:18px}.calendar{display:flex;flex-direction:column;padding:16px 32px}.week-days-header{display:grid;grid-template-rows:auto;grid-template-columns:repeat(7,auto);place-items:center;padding-bottom:8px;border-bottom:1px solid #E4E7EB}.week-days-header>.week-day{display:flex;align-items:center;justify-content:center;font-size:.75rem;line-height:1rem;width:100%;color:var(--font-color-100)}.days-block{display:grid;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(7,auto);place-items:center;row-gap:4px;color:var(--font-color-200);padding-top:4px}.days-block>.day{display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;line-height:1rem;width:100%;height:31px;border:none;color:var(--font-color-200);background:none;border-radius:99999px;transition:.2s background-color,.2s color,.2s font-weight}.days-block>.day:disabled{text-decoration:line-through;color:var(--font-color-300)}.days-block>.day:disabled:hover{color:var(--font-color-300);background:none;cursor:not-allowed}.days-block>.day.another-month{color:var(--font-color-300)}.days-block>.day.selected,.days-block>.day:hover{color:#ff5724;background-color:#ff57241a;cursor:pointer}.days-block>.day.selected{border-radius:0;font-weight:500}.days-block>.day.selected.first{border-top-left-radius:99999px;border-bottom-left-radius:99999px}.days-block>.day.selected.last{border-top-right-radius:99999px;border-bottom-right-radius:99999px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
222
234
  }
223
235
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DatePickerCalendarComponent, decorators: [{
224
236
  type: Component,
225
- args: [{ selector: 'ask-date-picker-calendar', template: "<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(1)\">\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <span\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </span>\n </div>\n </main>\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)}.ask-button{padding:8px 24px;border-radius:6px;border:none;outline:none;height:48px;font-size:1rem;transition:background-color .1s,box-shadow .1s;cursor:pointer;font-weight:500;background:white;color:var(--grey-500)}.ask-button:not(.-primary,.-secondary){box-shadow:0 1px 2px #2a304229}.ask-button:not(.-primary):hover:not(:disabled){box-shadow:0 0 6px #2a304229}.ask-button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}.ask-button:active:not(:disabled){background-color:#f34915}.ask-button:disabled{cursor:not-allowed;background-color:#9aa5b1}.ask-button.-primary{background:#FF5724;color:#fff}.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-calendar-container{display:flex;flex-direction:column;padding:16px;width:320px;-webkit-user-select:none;user-select:none}.month-selector{display:flex;align-items:center;justify-content:space-between;padding:4px;background-color:var(--secondary-background);border-radius:4px;text-transform:capitalize}.month-selector>.month-year-display{font-size:.75rem;color:var(--font-color-100);font-weight:500}.selector-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:var(--primary-background);box-shadow:0 1px 2px #2a304229;outline:none;border:none;border-radius:4px;cursor:pointer}.selector-button>.icon{color:var(--font-color-100);font-size:18px}.calendar{display:flex;flex-direction:column;padding:16px 32px}.week-days-header{display:grid;grid-template-rows:auto;grid-template-columns:repeat(7,auto);place-items:center;padding-bottom:8px;border-bottom:1px solid #E4E7EB}.week-days-header>.week-day{display:flex;align-items:center;justify-content:center;font-size:.75rem;line-height:1rem;width:100%;color:var(--font-color-100)}.days-block{display:grid;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(7,auto);place-items:center;row-gap:4px;color:var(--font-color-200);padding-top:4px}.days-block>.day{display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;line-height:1rem;width:100%;height:31px;border-radius:99999px;transition:.2s background-color,.2s color,.2s font-weight}.days-block>.day.another-month{color:var(--font-color-300)}.days-block>.day.selected,.days-block>.day:hover{color:#ff5724;background-color:#ff57241a;cursor:pointer}.days-block>.day.selected{border-radius:0;font-weight:500}.days-block>.day.selected.first{border-top-left-radius:99999px;border-bottom-left-radius:99999px}.days-block>.day.selected.last{border-top-right-radius:99999px;border-bottom-right-radius:99999px}\n"] }]
237
+ args: [{ selector: 'ask-date-picker-calendar', template: "<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button\n type=\"button\"\n class=\"selector-button\"\n [disabled]=\"shouldDisableNextMonth\"\n (click)=\"incrementMonth(1)\"\n >\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <button\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [disabled]=\"day.isFuture\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </button>\n </div>\n </main>\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)}.ask-button{padding:8px 24px;border-radius:6px;border:none;outline:none;height:48px;font-size:1rem;transition:background-color .1s,box-shadow .1s;cursor:pointer;font-weight:500;background:white;color:var(--grey-500)}.ask-button:not(.-primary,.-secondary){box-shadow:0 1px 2px #2a304229}.ask-button:not(.-primary):hover:not(:disabled){box-shadow:0 0 6px #2a304229}.ask-button:hover:not(:disabled){box-shadow:0 0 6px #ff572466}.ask-button:active:not(:disabled){background-color:#f34915}.ask-button:disabled{cursor:not-allowed;background-color:#9aa5b1}.ask-button.-primary{background:#FF5724;color:#fff}.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-calendar-container{display:flex;flex-direction:column;padding:16px;width:320px;-webkit-user-select:none;user-select:none}.month-selector{display:flex;align-items:center;justify-content:space-between;padding:4px;background-color:var(--secondary-background);border-radius:4px;text-transform:capitalize}.month-selector>.month-year-display{font-size:.75rem;color:var(--font-color-100);font-weight:500}.selector-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:var(--primary-background);box-shadow:0 1px 2px #2a304229;outline:none;border:none;border-radius:4px;cursor:pointer}.selector-button:disabled{cursor:default;opacity:0}.selector-button>.icon{color:var(--font-color-100);font-size:18px}.calendar{display:flex;flex-direction:column;padding:16px 32px}.week-days-header{display:grid;grid-template-rows:auto;grid-template-columns:repeat(7,auto);place-items:center;padding-bottom:8px;border-bottom:1px solid #E4E7EB}.week-days-header>.week-day{display:flex;align-items:center;justify-content:center;font-size:.75rem;line-height:1rem;width:100%;color:var(--font-color-100)}.days-block{display:grid;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(7,auto);place-items:center;row-gap:4px;color:var(--font-color-200);padding-top:4px}.days-block>.day{display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;line-height:1rem;width:100%;height:31px;border:none;color:var(--font-color-200);background:none;border-radius:99999px;transition:.2s background-color,.2s color,.2s font-weight}.days-block>.day:disabled{text-decoration:line-through;color:var(--font-color-300)}.days-block>.day:disabled:hover{color:var(--font-color-300);background:none;cursor:not-allowed}.days-block>.day.another-month{color:var(--font-color-300)}.days-block>.day.selected,.days-block>.day:hover{color:#ff5724;background-color:#ff57241a;cursor:pointer}.days-block>.day.selected{border-radius:0;font-weight:500}.days-block>.day.selected.first{border-top-left-radius:99999px;border-bottom-left-radius:99999px}.days-block>.day.selected.last{border-top-right-radius:99999px;border-bottom-right-radius:99999px}\n"] }]
226
238
  }], propDecorators: { isRange: [{
227
239
  type: Input
240
+ }], disableFutureDate: [{
241
+ type: Input
228
242
  }], date: [{
229
243
  type: Input
230
244
  }], dateChange: [{
231
245
  type: Output
232
246
  }] } });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNrc3VpdGUtY2l0cnVzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1jYWxlbmRhci9kYXRlLXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLWNhbGVuZGFyL2RhdGUtcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFFNUIsTUFBTSxDQUFOLElBQVksV0FRWDtBQVJELFdBQVksV0FBVztJQUNyQiw4QkFBZSxDQUFBO0lBQ2Ysc0NBQXVCLENBQUE7SUFDdkIsMENBQTJCLENBQUE7SUFDM0IsNENBQTZCLENBQUE7SUFDN0Isd0NBQXlCLENBQUE7SUFDekIsNENBQTZCLENBQUE7SUFDN0IsOENBQStCLENBQUE7QUFDakMsQ0FBQyxFQVJXLFdBQVcsS0FBWCxXQUFXLFFBUXRCO0FBc0JELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7QUFDbEcsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBbUIsRUFBRSxFQUFFLENB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QUM7WUFDckQsU0FBUyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBZTtRQUMvQixNQUFNLFFBQVEsR0FBYyxFQUFFLENBQUM7UUFDL0IsUUFBUSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBRTNDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNkLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEQsSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFBRSxRQUFRLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUN2RTtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxVQUF5QjtRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDOzhHQWhRVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixxSkMxQ3hDLHlxQ0FtQ0E7OzJGRE9hLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7OEJBSzNCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBlbnVtIFBlcmlvZExhYmVsIHtcbiAgVE9EQVkgPSAnVE9EQVknLFxuICBZRVNURVJEQVkgPSAnWUVTVEVSREFZJyxcbiAgTEFTVF83X0RBWVMgPSAnTEFTVF83X0RBWVMnLFxuICBMQVNUXzMwX0RBWVMgPSAnTEFTVF8zMF9EQVlTJyxcbiAgVEhJU19NT05USCA9ICdUSElTX01PTlRIJyxcbiAgTEFTVF9RVUFSVEVSID0gJ0xBU1RfUVVBUlRFUicsXG4gIENVU1RPTV9QRVJJT0QgPSAnQ1VTVE9NX1BFUklPRCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF5IHtcbiAgdGltZXN0YW1wOiBudW1iZXI7XG4gIGRheTogc3RyaW5nO1xuICBtb250aDogbnVtYmVyO1xuICB3ZWVrRGF5OiBudW1iZXI7XG4gIGZvcm1hdHRlZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlZWtEYXkge1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgZnJvbT86IHN0cmluZzsgdG8/OiBzdHJpbmc7IGxhYmVsPzogUGVyaW9kTGFiZWw7IH07XG5cbmV4cG9ydCB0eXBlIERhdGVQaWNrZXJWYWx1ZSA9IHN0cmluZyB8IERhdGVSYW5nZTtcblxudHlwZSBEYXlSYW5nZSA9IHsgZnJvbT86IERheTsgdG8/OiBEYXk7IGxhYmVsPzogc3RyaW5nOyB9O1xuXG50eXBlIERhdGVQaWNrZXJJbm5lclZhbHVlID0gRGF5IHwgRGF5UmFuZ2U7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RBVEVfRk9STUFUID0gJ1lZWVktTU0tRERUSEg6bW06c3NaJztcbmV4cG9ydCBjb25zdCBmb3JtYXRGcm9tID0gKGZyb206IG1vbWVudC5Nb21lbnQpID0+IGZyb20uc3RhcnRPZignZGF5JykuZm9ybWF0KERFRkFVTFRfREFURV9GT1JNQVQpXG5leHBvcnQgY29uc3QgZm9ybWF0VG8gPSAoZnJvbTogbW9tZW50Lk1vbWVudCkgPT4gZnJvbS5lbmRPZignZGF5JykuZm9ybWF0KERFRkFVTFRfREFURV9GT1JNQVQpXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fzay1kYXRlLXBpY2tlci1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgaXNSYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkYXRlITogRGF0ZVBpY2tlclZhbHVlO1xuICBAT3V0cHV0KCkgZGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVQaWNrZXJWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVQaWNrZXJWYWx1ZT4oKTtcblxuICBwcml2YXRlIGlubmVyRGF0ZSE6IERhdGVQaWNrZXJJbm5lclZhbHVlO1xuICBwcml2YXRlIGRpc3BsYXlEYXRlITogbW9tZW50Lk1vbWVudDtcbiAgcHJpdmF0ZSBmaXJzdERheU9mV2VlayE6IG51bWJlcjtcbiAgcHJpdmF0ZSBfd2Vla0RheXM6IEFycmF5PFdlZWtEYXk+ID0gW107XG4gIHByaXZhdGUgX2RheXM6IEFycmF5PERheT4gPSBbXTtcblxuICBnZXQgZGF5cygpOiBBcnJheTxEYXk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF5c1xuICB9XG5cbiAgZ2V0IG1vbnRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheURhdGUuZm9ybWF0KCdNTU1NJyk7XG4gIH1cblxuICBnZXQgbW9udGhOdW1iZXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RGF0ZS5tb250aCgpO1xuICB9XG5cbiAgZ2V0IHllYXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RGF0ZS5mb3JtYXQoJ1lZWVknKTtcbiAgfVxuXG4gIGdldCB3ZWVrRGF5cygpOiBBcnJheTxXZWVrRGF5PiB7XG4gICAgcmV0dXJuIHRoaXMuX3dlZWtEYXlzO1xuICB9XG5cbiAgaXNEYXlTZWxlY3RlZChkYXk6IERheSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcblxuICAgICAgY29uc3QgZnJvbSA9ICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkuZnJvbT8udGltZXN0YW1wO1xuICAgICAgY29uc3QgdG8gPSAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLnRvPy50aW1lc3RhbXA7XG5cbiAgICAgIGlmICghZnJvbSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICghdG8pIHtcbiAgICAgICAgcmV0dXJuIGRheS50aW1lc3RhbXAgPT09IGZyb207XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXkudGltZXN0YW1wID49IGZyb20gJiYgZGF5LnRpbWVzdGFtcCA8PSB0bztcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuaW5uZXJEYXRlIGFzIERheSk/LnRpbWVzdGFtcCA9PT0gZGF5LnRpbWVzdGFtcDtcbiAgfVxuXG4gIGlzRmlyc3RTZWxlY3RlZERheShkYXk6IERheSkge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHJldHVybiBkYXkuZm9ybWF0dGVkID09PSAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LmZvcm1hdHRlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuaW5uZXJEYXRlIGFzIERheSkuZm9ybWF0dGVkID09PSBkYXkuZm9ybWF0dGVkO1xuICB9XG5cbiAgaXNMYXN0U2VsZWN0ZWREYXkoZGF5OiBEYXkpIHtcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICByZXR1cm4gZGF5LmZvcm1hdHRlZCA9PT0gKCh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkudG8/LmZvcm1hdHRlZCB8fCAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LmZvcm1hdHRlZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmlubmVyRGF0ZSBhcyBEYXkpLmZvcm1hdHRlZCA9PT0gZGF5LmZvcm1hdHRlZDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXNzaWduSW5pdGlhbFZhbHVlcygpO1xuICAgIHRoaXMucmVmcmVzaERpc3BsYXkoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduSW5pdGlhbFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICBjb25zdCByZWNlaXZlZERhdGUgPSB0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlO1xuICAgICAgaWYgKHJlY2VpdmVkRGF0ZS5mcm9tICYmIHJlY2VpdmVkRGF0ZS50bykge1xuICAgICAgICAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpID0ge1xuICAgICAgICAgIGZyb206IHRoaXMuZ2V0RGF5RnJvbVN0cmluZyhyZWNlaXZlZERhdGUuZnJvbSksXG4gICAgICAgICAgdG86IHRoaXMuZ2V0RGF5RnJvbVN0cmluZyhyZWNlaXZlZERhdGUudG8pLFxuICAgICAgICAgIGxhYmVsOiBQZXJpb2RMYWJlbFtyZWNlaXZlZERhdGUubGFiZWwgfHwgJ0NVU1RPTV9QRVJJT0QnXS50b1N0cmluZygpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpID0ge1xuICAgICAgICAgIGxhYmVsOiAnQ1VTVE9NX1BFUklPRCdcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzcGxheURhdGUgPSBtb21lbnQudW5peCgodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LnRpbWVzdGFtcCB8fCAoRGF0ZS5ub3coKSAvIDEwMDApKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmlubmVyRGF0ZSA9IHRoaXMuZ2V0RGF5RnJvbVN0cmluZyh0aGlzLmRhdGUgYXMgc3RyaW5nKTtcbiAgICAgIHRoaXMuZGlzcGxheURhdGUgPSBtb21lbnQudW5peCh0aGlzLmlubmVyRGF0ZS50aW1lc3RhbXApO1xuICAgIH1cblxuICAgIHRoaXMuZmlyc3REYXlPZldlZWsgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuc3RhcnRPZignd2VlaycpLmRheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoRGlzcGxheSgpIHtcbiAgICB0aGlzLmJ1aWxkV2Vla0RheXMoKTtcbiAgICB0aGlzLmJ1aWxkRGF5cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFdlZWtEYXlzKCkge1xuICAgIGNvbnN0IHN0YXJ0T2ZXZWVrID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ3dlZWsnKTtcbiAgICBjb25zdCBlbmRPZldlZWsgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuZW5kT2YoJ3dlZWsnKTtcbiAgICB0aGlzLl93ZWVrRGF5cyA9IFtdO1xuXG4gICAgZG8ge1xuICAgICAgdGhpcy5fd2Vla0RheXMucHVzaCh7XG4gICAgICAgIG5hbWU6IHN0YXJ0T2ZXZWVrLmZvcm1hdCgnZGRkJylcbiAgICAgIH0pO1xuXG4gICAgICBzdGFydE9mV2Vlay5hZGQoMSwgJ2RheScpO1xuICAgIH1cbiAgICB3aGlsZSAoc3RhcnRPZldlZWsuaXNCZWZvcmUoZW5kT2ZXZWVrKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRGF5cygpIHtcbiAgICBsZXQgc3RhcnREYXkgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuc3RhcnRPZignbW9udGgnKTtcbiAgICBsZXQgZW5kRGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLmVuZE9mKCdtb250aCcpO1xuXG4gICAgbGV0IGRheXNPZlBhc3RNb250aDogQXJyYXk8RGF5PiA9IFtdO1xuICAgIGxldCBkYXlzT2ZUaGlzTW9udGg6IEFycmF5PERheT4gPSBbXTtcbiAgICBsZXQgZGF5c09mTmV4dE1vbnRoOiBBcnJheTxEYXk+ID0gW107XG5cbiAgICAvLyBCdWlsZHMgdGhpcyBtb250aCBkYXlzXG4gICAgZGF5c09mVGhpc01vbnRoID0gdGhpcy5nZXREYXlzQmV0d2VlbihzdGFydERheSwgZW5kRGF5KTtcblxuICAgIC8vIEJ1aWxkcyBwYXN0IG1vbnRoIGRheXNcbiAgICBpZiAoZGF5c09mVGhpc01vbnRoWzBdLndlZWtEYXkgIT09IHRoaXMuZmlyc3REYXlPZldlZWspIHtcbiAgICAgIHN0YXJ0RGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ21vbnRoJykuc3RhcnRPZignd2VlaycpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHN0YXJ0RGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLnN1YnRyYWN0KDEsICdtb250aCcpLmVuZE9mKCdtb250aCcpLnN0YXJ0T2YoJ3dlZWsnKTtcbiAgICB9XG4gICAgZW5kRGF5ID0gc3RhcnREYXkuY2xvbmUoKS5lbmRPZignbW9udGgnKTtcbiAgICBkYXlzT2ZQYXN0TW9udGggPSB0aGlzLmdldERheXNCZXR3ZWVuKHN0YXJ0RGF5LCBlbmREYXkpO1xuXG4gICAgLy8gQnVpbGRzIG5leHQgbW9udGggZGF5c1xuICAgIHN0YXJ0RGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLmFkZCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpO1xuICAgIGVuZERheSA9IHN0YXJ0RGF5LmNsb25lKCkuZW5kT2YoJ3dlZWsnKTtcbiAgICBkYXlzT2ZOZXh0TW9udGggPSB0aGlzLmdldERheXNCZXR3ZWVuKHN0YXJ0RGF5LCBlbmREYXkpO1xuXG4gICAgdGhpcy5fZGF5cyA9IFtcbiAgICAgIC4uLmRheXNPZlBhc3RNb250aCxcbiAgICAgIC4uLmRheXNPZlRoaXNNb250aCxcbiAgICAgIC4uLmRheXNPZk5leHRNb250aCxcbiAgICBdO1xuXG4gICAgLy8gSWYgY2FsZW5kYXIgaXNuJ3QgY29tcGxldGUgeWV0IChhbGwgNyBjb2x1bW5zIGFuZCA2IHJvd3MgYXJlIGZ1bGwpLCBhZGRzIGFub3RoZXIgd2VlayB0byBjb21wbGV0ZSB0aGUgY2FsZW5kYXJcbiAgICBpZiAodGhpcy5fZGF5cy5sZW5ndGggPCA0Mikge1xuICAgICAgZW5kRGF5ID0gZW5kRGF5LmNsb25lKCkuYWRkKDEsICdkYXknKS5lbmRPZignd2VlaycpO1xuICAgICAgc3RhcnREYXkgPSBlbmREYXkuY2xvbmUoKS5zdGFydE9mKCd3ZWVrJyk7XG4gICAgICB0aGlzLl9kYXlzLnB1c2goLi4udGhpcy5nZXREYXlzQmV0d2VlbihzdGFydERheSwgZW5kRGF5KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXlzQmV0d2VlbihzdGFydDogbW9tZW50Lk1vbWVudCwgZW5kOiBtb21lbnQuTW9tZW50KTogQXJyYXk8RGF5PiB7XG4gICAgc3RhcnQgPSBzdGFydC5jbG9uZSgpO1xuICAgIGVuZCA9IGVuZC5jbG9uZSgpO1xuXG4gICAgY29uc3QgZGF5cyA9IFtdO1xuICAgIGRvIHtcbiAgICAgIGRheXMucHVzaCh0aGlzLmdldERheUZyb21Nb21lbnQoc3RhcnQpKTtcblxuICAgICAgc3RhcnQuYWRkKDEsICdkYXknKTtcbiAgICB9XG4gICAgd2hpbGUgKHN0YXJ0LmlzQmVmb3JlKGVuZCkpO1xuXG4gICAgcmV0dXJuIGRheXM7XG4gIH1cblxuICBnZXREYXlGcm9tTW9tZW50KGRheTogbW9tZW50Lk1vbWVudCk6IERheSB7XG4gICAgZGF5ID0gZGF5LmNsb25lKCkuc3RhcnRPZignZGF5Jyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGltZXN0YW1wOiBkYXkudW5peCgpLFxuICAgICAgZGF5OiBkYXkuZm9ybWF0KCdEJyksXG4gICAgICBtb250aDogZGF5Lm1vbnRoKCksXG4gICAgICB3ZWVrRGF5OiBkYXkuZGF5KCksXG4gICAgICBmb3JtYXR0ZWQ6IGRheS5mb3JtYXQoREVGQVVMVF9EQVRFX0ZPUk1BVCksXG4gICAgfVxuICB9XG5cbiAgZ2V0RGF5RnJvbVN0cmluZyhkYXRlOiBzdHJpbmcpOiBEYXkge1xuICAgIHJldHVybiB0aGlzLmdldERheUZyb21Nb21lbnQobW9tZW50KGRhdGUpKTtcbiAgfVxuXG4gIGdldERhdGVGcm9tRGF5KGRheTogRGF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbW9tZW50LnVuaXgoZGF5LnRpbWVzdGFtcCkuc3RhcnRPZignZGF5JykuZm9ybWF0KERFRkFVTFRfREFURV9GT1JNQVQpO1xuICB9XG5cbiAgaW5jcmVtZW50TW9udGgoYW1vdW50OiBudW1iZXIpIHtcbiAgICB0aGlzLmRpc3BsYXlEYXRlLmFkZChhbW91bnQsICdtb250aCcpO1xuICAgIHRoaXMucmVmcmVzaERpc3BsYXkoKTtcbiAgfVxuXG4gIHNlbGVjdERhdGUodGltZXN0YW1wOiBudW1iZXIpIHtcbiAgICBjb25zdCBtb21lbnREYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcblxuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHRoaXMuaGFuZGxlUmFuZ2VTZWxlY3QobW9tZW50RGF0ZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVTaW5nbGVTZWxlY3QobW9tZW50RGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVSYW5nZVNlbGVjdChzZWxlY3RlZERhdGU6IG1vbWVudC5Nb21lbnQpIHtcbiAgICBjb25zdCBpbm5lckRhdGUgPSAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpO1xuXG4gICAgLy8gRmlyc3Qgc2VsZWN0aW9uXG4gICAgaWYgKCFpbm5lckRhdGUuZnJvbSkge1xuICAgICAgaW5uZXJEYXRlLmZyb20gPSB0aGlzLmdldERheUZyb21Nb21lbnQoc2VsZWN0ZWREYXRlKTtcbiAgICB9XG5cbiAgICAvLyBTZWNvbmQgc2VsZWN0aW9uXG4gICAgZWxzZSBpZiAoIWlubmVyRGF0ZS50bykge1xuICAgICAgY29uc3QgYWN0dWFsRnJvbSA9IG1vbWVudC51bml4KGlubmVyRGF0ZS5mcm9tLnRpbWVzdGFtcCk7XG5cbiAgICAgIC8vIFNlbGVjdGVkIGRhdGUgaXMgcGFzdCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgZGF0ZVxuICAgICAgaWYgKHNlbGVjdGVkRGF0ZS5pc0JlZm9yZShhY3R1YWxGcm9tLCAnZGF5JykpIHtcbiAgICAgICAgaW5uZXJEYXRlLnRvID0gaW5uZXJEYXRlLmZyb207XG4gICAgICAgIGlubmVyRGF0ZS5mcm9tID0gdGhpcy5nZXREYXlGcm9tTW9tZW50KHNlbGVjdGVkRGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlbGVjdGVkIGRhdGUgaXMgZnV0dXJlIG9mIHRoZSBwcmV2aW91cyBzZWxlY3RlZCBkYXRlXG4gICAgICBlbHNlIHtcbiAgICAgICAgaW5uZXJEYXRlLnRvID0gdGhpcy5nZXREYXlGcm9tTW9tZW50KHNlbGVjdGVkRGF0ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VsZWN0aW9uIHdoZW4gYm90aCBmcm9tIGFuZCB0byBhcmUgYWxyZWFkeSBzZWxlY3RlZFxuICAgIGVsc2Uge1xuICAgICAgaW5uZXJEYXRlLmZyb20gPSB0aGlzLmdldERheUZyb21Nb21lbnQoc2VsZWN0ZWREYXRlKTtcbiAgICAgIGlubmVyRGF0ZS50byA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRSYW5nZShpbm5lckRhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmFuZ2UocmFuZ2U6IERheVJhbmdlKSB7XG4gICAgY29uc3QgbmV3UmFuZ2U6IERhdGVSYW5nZSA9IHt9O1xuICAgIG5ld1JhbmdlLmxhYmVsID0gUGVyaW9kTGFiZWwuQ1VTVE9NX1BFUklPRDtcblxuICAgIGlmIChyYW5nZS5mcm9tKSB7XG4gICAgICBuZXdSYW5nZS5mcm9tID0gdGhpcy5nZXREYXRlRnJvbURheShyYW5nZS5mcm9tKTtcblxuICAgICAgaWYgKHJhbmdlLnRvKSBuZXdSYW5nZS50byA9IGZvcm1hdFRvKG1vbWVudC51bml4KHJhbmdlLnRvLnRpbWVzdGFtcCkpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KG5ld1JhbmdlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2luZ2xlU2VsZWN0KG1vbWVudERhdGU6IG1vbWVudC5Nb21lbnQpIHtcbiAgICB0aGlzLmlubmVyRGF0ZSA9IHRoaXMuZ2V0RGF5RnJvbU1vbWVudChtb21lbnREYXRlKTtcbiAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChtb21lbnREYXRlLmZvcm1hdChERUZBVUxUX0RBVEVfRk9STUFUKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1jYWxlbmRhci1jb250YWluZXJcIj5cbiAgPGhlYWRlciBjbGFzcz1cIm1vbnRoLXNlbGVjdG9yXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZWxlY3Rvci1idXR0b25cIiAoY2xpY2spPVwiaW5jcmVtZW50TW9udGgoLTEpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGljb25cIj5jaGV2cm9uX2xlZnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8c3BhbiBjbGFzcz1cIm1vbnRoLXllYXItZGlzcGxheVwiIGRhdGEtdGVzdGlkPVwibW9udGgteWVhci1kaXNwbGF5XCI+e3sgbW9udGggfX0ge3sgeWVhciB9fTwvc3Bhbj5cblxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2VsZWN0b3ItYnV0dG9uXCIgKGNsaWNrKT1cImluY3JlbWVudE1vbnRoKDEpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGljb25cIj5jaGV2cm9uX3JpZ2h0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2hlYWRlcj5cblxuICA8bWFpbiBjbGFzcz1cImNhbGVuZGFyXCI+XG4gICAgPGRpdiBjbGFzcz1cIndlZWstZGF5cy1oZWFkZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwid2Vlay1kYXlcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5c1wiPnt7IHdlZWtEYXkubmFtZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkYXlzLWJsb2NrXCIgZGF0YS10ZXN0aWQ9XCJkYXlzLWJsb2NrXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIGRheXNcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShkYXkudGltZXN0YW1wKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnZGF5JzogdHJ1ZSxcbiAgICAgICAgICAnYW5vdGhlci1tb250aCc6IG1vbnRoTnVtYmVyICE9IGRheS5tb250aCxcbiAgICAgICAgICAnc2VsZWN0ZWQnOiBpc0RheVNlbGVjdGVkKGRheSksXG4gICAgICAgICAgJ2ZpcnN0JzogaXNGaXJzdFNlbGVjdGVkRGF5KGRheSksXG4gICAgICAgICAgJ2xhc3QnOiBpc0xhc3RTZWxlY3RlZERheShkYXkpLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAge3sgZGF5LmRheSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L21haW4+XG48L2Rpdj5cbiJdfQ==
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNrc3VpdGUtY2l0cnVzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1jYWxlbmRhci9kYXRlLXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLWNhbGVuZGFyL2RhdGUtcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFFNUIsTUFBTSxDQUFOLElBQVksV0FRWDtBQVJELFdBQVksV0FBVztJQUNyQiw4QkFBZSxDQUFBO0lBQ2Ysc0NBQXVCLENBQUE7SUFDdkIsMENBQTJCLENBQUE7SUFDM0IsNENBQTZCLENBQUE7SUFDN0Isd0NBQXlCLENBQUE7SUFDekIsNENBQTZCLENBQUE7SUFDN0IsOENBQStCLENBQUE7QUFDakMsQ0FBQyxFQVJXLFdBQVcsS0FBWCxXQUFXLFFBUXRCO0FBdUJELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7QUFDbEcsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBbUIsRUFBRSxFQUFFLENB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LFlBQVksQ0FBQyxTQUFpQjtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTFDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBL1FVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDZMQzNDeEMsMHhDQXlDQTs7MkZERWEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQjs4QkFLM0IsT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBlbnVtIFBlcmlvZExhYmVsIHtcbiAgVE9EQVkgPSAnVE9EQVknLFxuICBZRVNURVJEQVkgPSAnWUVTVEVSREFZJyxcbiAgTEFTVF83X0RBWVMgPSAnTEFTVF83X0RBWVMnLFxuICBMQVNUXzMwX0RBWVMgPSAnTEFTVF8zMF9EQVlTJyxcbiAgVEhJU19NT05USCA9ICdUSElTX01PTlRIJyxcbiAgTEFTVF9RVUFSVEVSID0gJ0xBU1RfUVVBUlRFUicsXG4gIENVU1RPTV9QRVJJT0QgPSAnQ1VTVE9NX1BFUklPRCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF5IHtcbiAgdGltZXN0YW1wOiBudW1iZXI7XG4gIGRheTogc3RyaW5nO1xuICBtb250aDogbnVtYmVyO1xuICB3ZWVrRGF5OiBudW1iZXI7XG4gIGZvcm1hdHRlZDogc3RyaW5nO1xuICBpc0Z1dHVyZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWVrRGF5IHtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEYXRlUmFuZ2UgPSB7IGZyb20/OiBzdHJpbmc7IHRvPzogc3RyaW5nOyBsYWJlbD86IFBlcmlvZExhYmVsOyB9O1xuXG5leHBvcnQgdHlwZSBEYXRlUGlja2VyVmFsdWUgPSBzdHJpbmcgfCBEYXRlUmFuZ2U7XG5cbnR5cGUgRGF5UmFuZ2UgPSB7IGZyb20/OiBEYXk7IHRvPzogRGF5OyBsYWJlbD86IHN0cmluZzsgfTtcblxudHlwZSBEYXRlUGlja2VySW5uZXJWYWx1ZSA9IERheSB8IERheVJhbmdlO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREVEhIOm1tOnNzWic7XG5leHBvcnQgY29uc3QgZm9ybWF0RnJvbSA9IChmcm9tOiBtb21lbnQuTW9tZW50KSA9PiBmcm9tLnN0YXJ0T2YoJ2RheScpLmZvcm1hdChERUZBVUxUX0RBVEVfRk9STUFUKVxuZXhwb3J0IGNvbnN0IGZvcm1hdFRvID0gKGZyb206IG1vbWVudC5Nb21lbnQpID0+IGZyb20uZW5kT2YoJ2RheScpLmZvcm1hdChERUZBVUxUX0RBVEVfRk9STUFUKVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stZGF0ZS1waWNrZXItY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXItY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlzUmFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZUZ1dHVyZURhdGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGF0ZSE6IERhdGVQaWNrZXJWYWx1ZTtcbiAgQE91dHB1dCgpIGRhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlUGlja2VyVmFsdWU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlUGlja2VyVmFsdWU+KCk7XG5cbiAgcHJpdmF0ZSBpbm5lckRhdGUhOiBEYXRlUGlja2VySW5uZXJWYWx1ZTtcbiAgcHJpdmF0ZSBkaXNwbGF5RGF0ZSE6IG1vbWVudC5Nb21lbnQ7XG4gIHByaXZhdGUgZmlyc3REYXlPZldlZWshOiBudW1iZXI7XG4gIHByaXZhdGUgX3dlZWtEYXlzOiBBcnJheTxXZWVrRGF5PiA9IFtdO1xuICBwcml2YXRlIF9kYXlzOiBBcnJheTxEYXk+ID0gW107XG5cbiAgZ2V0IHNob3VsZERpc2FibGVOZXh0TW9udGggKCkge1xuICAgIHJldHVybiB0aGlzLmlzRnV0dXJlRGF0ZSh0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuYWRkKDEsICdtb250aCcpLnVuaXgoKSk7XG4gIH1cblxuICBnZXQgZGF5cygpOiBBcnJheTxEYXk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF5c1xuICB9XG5cbiAgZ2V0IG1vbnRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheURhdGUuZm9ybWF0KCdNTU1NJyk7XG4gIH1cblxuICBnZXQgbW9udGhOdW1iZXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RGF0ZS5tb250aCgpO1xuICB9XG5cbiAgZ2V0IHllYXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RGF0ZS5mb3JtYXQoJ1lZWVknKTtcbiAgfVxuXG4gIGdldCB3ZWVrRGF5cygpOiBBcnJheTxXZWVrRGF5PiB7XG4gICAgcmV0dXJuIHRoaXMuX3dlZWtEYXlzO1xuICB9XG5cbiAgaXNEYXlTZWxlY3RlZChkYXk6IERheSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcblxuICAgICAgY29uc3QgZnJvbSA9ICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkuZnJvbT8udGltZXN0YW1wO1xuICAgICAgY29uc3QgdG8gPSAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLnRvPy50aW1lc3RhbXA7XG5cbiAgICAgIGlmICghZnJvbSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICghdG8pIHtcbiAgICAgICAgcmV0dXJuIGRheS50aW1lc3RhbXAgPT09IGZyb207XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXkudGltZXN0YW1wID49IGZyb20gJiYgZGF5LnRpbWVzdGFtcCA8PSB0bztcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuaW5uZXJEYXRlIGFzIERheSk/LnRpbWVzdGFtcCA9PT0gZGF5LnRpbWVzdGFtcDtcbiAgfVxuXG4gIGlzRmlyc3RTZWxlY3RlZERheShkYXk6IERheSkge1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHJldHVybiBkYXkuZm9ybWF0dGVkID09PSAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LmZvcm1hdHRlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuaW5uZXJEYXRlIGFzIERheSkuZm9ybWF0dGVkID09PSBkYXkuZm9ybWF0dGVkO1xuICB9XG5cbiAgaXNMYXN0U2VsZWN0ZWREYXkoZGF5OiBEYXkpIHtcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICByZXR1cm4gZGF5LmZvcm1hdHRlZCA9PT0gKCh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSkudG8/LmZvcm1hdHRlZCB8fCAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LmZvcm1hdHRlZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmlubmVyRGF0ZSBhcyBEYXkpLmZvcm1hdHRlZCA9PT0gZGF5LmZvcm1hdHRlZDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXNzaWduSW5pdGlhbFZhbHVlcygpO1xuICAgIHRoaXMucmVmcmVzaERpc3BsYXkoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduSW5pdGlhbFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICBjb25zdCByZWNlaXZlZERhdGUgPSB0aGlzLmRhdGUgYXMgRGF0ZVJhbmdlO1xuICAgICAgaWYgKHJlY2VpdmVkRGF0ZS5mcm9tICYmIHJlY2VpdmVkRGF0ZS50bykge1xuICAgICAgICAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpID0ge1xuICAgICAgICAgIGZyb206IHRoaXMuZ2V0RGF5RnJvbVN0cmluZyhyZWNlaXZlZERhdGUuZnJvbSksXG4gICAgICAgICAgdG86IHRoaXMuZ2V0RGF5RnJvbVN0cmluZyhyZWNlaXZlZERhdGUudG8pLFxuICAgICAgICAgIGxhYmVsOiBQZXJpb2RMYWJlbFtyZWNlaXZlZERhdGUubGFiZWwgfHwgJ0NVU1RPTV9QRVJJT0QnXS50b1N0cmluZygpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpID0ge1xuICAgICAgICAgIGxhYmVsOiAnQ1VTVE9NX1BFUklPRCdcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzcGxheURhdGUgPSBtb21lbnQudW5peCgodGhpcy5pbm5lckRhdGUgYXMgRGF5UmFuZ2UpLmZyb20/LnRpbWVzdGFtcCB8fCAoRGF0ZS5ub3coKSAvIDEwMDApKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmlubmVyRGF0ZSA9IHRoaXMuZ2V0RGF5RnJvbVN0cmluZyh0aGlzLmRhdGUgYXMgc3RyaW5nKTtcbiAgICAgIHRoaXMuZGlzcGxheURhdGUgPSBtb21lbnQudW5peCh0aGlzLmlubmVyRGF0ZS50aW1lc3RhbXApO1xuICAgIH1cblxuICAgIHRoaXMuZmlyc3REYXlPZldlZWsgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuc3RhcnRPZignd2VlaycpLmRheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoRGlzcGxheSgpIHtcbiAgICB0aGlzLmJ1aWxkV2Vla0RheXMoKTtcbiAgICB0aGlzLmJ1aWxkRGF5cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFdlZWtEYXlzKCkge1xuICAgIGNvbnN0IHN0YXJ0T2ZXZWVrID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ3dlZWsnKTtcbiAgICBjb25zdCBlbmRPZldlZWsgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuZW5kT2YoJ3dlZWsnKTtcbiAgICB0aGlzLl93ZWVrRGF5cyA9IFtdO1xuXG4gICAgZG8ge1xuICAgICAgdGhpcy5fd2Vla0RheXMucHVzaCh7XG4gICAgICAgIG5hbWU6IHN0YXJ0T2ZXZWVrLmZvcm1hdCgnZGRkJylcbiAgICAgIH0pO1xuXG4gICAgICBzdGFydE9mV2Vlay5hZGQoMSwgJ2RheScpO1xuICAgIH1cbiAgICB3aGlsZSAoc3RhcnRPZldlZWsuaXNCZWZvcmUoZW5kT2ZXZWVrKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRGF5cygpIHtcbiAgICBsZXQgc3RhcnREYXkgPSB0aGlzLmRpc3BsYXlEYXRlLmNsb25lKCkuc3RhcnRPZignbW9udGgnKTtcbiAgICBsZXQgZW5kRGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLmVuZE9mKCdtb250aCcpO1xuXG4gICAgbGV0IGRheXNPZlBhc3RNb250aDogQXJyYXk8RGF5PiA9IFtdO1xuICAgIGxldCBkYXlzT2ZUaGlzTW9udGg6IEFycmF5PERheT4gPSBbXTtcbiAgICBsZXQgZGF5c09mTmV4dE1vbnRoOiBBcnJheTxEYXk+ID0gW107XG5cbiAgICAvLyBCdWlsZHMgdGhpcyBtb250aCBkYXlzXG4gICAgZGF5c09mVGhpc01vbnRoID0gdGhpcy5nZXREYXlzQmV0d2VlbihzdGFydERheSwgZW5kRGF5KTtcblxuICAgIC8vIEJ1aWxkcyBwYXN0IG1vbnRoIGRheXNcbiAgICBpZiAoZGF5c09mVGhpc01vbnRoWzBdLndlZWtEYXkgIT09IHRoaXMuZmlyc3REYXlPZldlZWspIHtcbiAgICAgIHN0YXJ0RGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ21vbnRoJykuc3RhcnRPZignd2VlaycpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHN0YXJ0RGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLnN1YnRyYWN0KDEsICdtb250aCcpLmVuZE9mKCdtb250aCcpLnN0YXJ0T2YoJ3dlZWsnKTtcbiAgICB9XG4gICAgZW5kRGF5ID0gc3RhcnREYXkuY2xvbmUoKS5lbmRPZignbW9udGgnKTtcbiAgICBkYXlzT2ZQYXN0TW9udGggPSB0aGlzLmdldERheXNCZXR3ZWVuKHN0YXJ0RGF5LCBlbmREYXkpO1xuXG4gICAgLy8gQnVpbGRzIG5leHQgbW9udGggZGF5c1xuICAgIHN0YXJ0RGF5ID0gdGhpcy5kaXNwbGF5RGF0ZS5jbG9uZSgpLmFkZCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpO1xuICAgIGVuZERheSA9IHN0YXJ0RGF5LmNsb25lKCkuZW5kT2YoJ3dlZWsnKTtcbiAgICBkYXlzT2ZOZXh0TW9udGggPSB0aGlzLmdldERheXNCZXR3ZWVuKHN0YXJ0RGF5LCBlbmREYXkpO1xuXG4gICAgdGhpcy5fZGF5cyA9IFtcbiAgICAgIC4uLmRheXNPZlBhc3RNb250aCxcbiAgICAgIC4uLmRheXNPZlRoaXNNb250aCxcbiAgICAgIC4uLmRheXNPZk5leHRNb250aCxcbiAgICBdO1xuXG4gICAgLy8gSWYgY2FsZW5kYXIgaXNuJ3QgY29tcGxldGUgeWV0IChhbGwgNyBjb2x1bW5zIGFuZCA2IHJvd3MgYXJlIGZ1bGwpLCBhZGRzIGFub3RoZXIgd2VlayB0byBjb21wbGV0ZSB0aGUgY2FsZW5kYXJcbiAgICBpZiAodGhpcy5fZGF5cy5sZW5ndGggPCA0Mikge1xuICAgICAgZW5kRGF5ID0gZW5kRGF5LmNsb25lKCkuYWRkKDEsICdkYXknKS5lbmRPZignd2VlaycpO1xuICAgICAgc3RhcnREYXkgPSBlbmREYXkuY2xvbmUoKS5zdGFydE9mKCd3ZWVrJyk7XG4gICAgICB0aGlzLl9kYXlzLnB1c2goLi4udGhpcy5nZXREYXlzQmV0d2VlbihzdGFydERheSwgZW5kRGF5KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXlzQmV0d2VlbihzdGFydDogbW9tZW50Lk1vbWVudCwgZW5kOiBtb21lbnQuTW9tZW50KTogQXJyYXk8RGF5PiB7XG4gICAgc3RhcnQgPSBzdGFydC5jbG9uZSgpO1xuICAgIGVuZCA9IGVuZC5jbG9uZSgpO1xuXG4gICAgY29uc3QgZGF5cyA9IFtdO1xuICAgIGRvIHtcbiAgICAgIGRheXMucHVzaCh0aGlzLmdldERheUZyb21Nb21lbnQoc3RhcnQpKTtcblxuICAgICAgc3RhcnQuYWRkKDEsICdkYXknKTtcbiAgICB9XG4gICAgd2hpbGUgKHN0YXJ0LmlzQmVmb3JlKGVuZCkpO1xuXG4gICAgcmV0dXJuIGRheXM7XG4gIH1cblxuICBnZXREYXlGcm9tTW9tZW50KGRheTogbW9tZW50Lk1vbWVudCk6IERheSB7XG4gICAgZGF5ID0gZGF5LmNsb25lKCkuc3RhcnRPZignZGF5Jyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGltZXN0YW1wOiBkYXkudW5peCgpLFxuICAgICAgZGF5OiBkYXkuZm9ybWF0KCdEJyksXG4gICAgICBtb250aDogZGF5Lm1vbnRoKCksXG4gICAgICB3ZWVrRGF5OiBkYXkuZGF5KCksXG4gICAgICBmb3JtYXR0ZWQ6IGRheS5mb3JtYXQoREVGQVVMVF9EQVRFX0ZPUk1BVCksXG4gICAgICBpc0Z1dHVyZTogdGhpcy5pc0Z1dHVyZURhdGUoZGF5LnVuaXgoKSlcbiAgICB9XG4gIH1cblxuICBnZXREYXlGcm9tU3RyaW5nKGRhdGU6IHN0cmluZyk6IERheSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF5RnJvbU1vbWVudChtb21lbnQoZGF0ZSkpO1xuICB9XG5cbiAgZ2V0RGF0ZUZyb21EYXkoZGF5OiBEYXkpOiBzdHJpbmcge1xuICAgIHJldHVybiBtb21lbnQudW5peChkYXkudGltZXN0YW1wKS5zdGFydE9mKCdkYXknKS5mb3JtYXQoREVGQVVMVF9EQVRFX0ZPUk1BVCk7XG4gIH1cblxuICBpbmNyZW1lbnRNb250aChhbW91bnQ6IG51bWJlcikge1xuICAgIHRoaXMuZGlzcGxheURhdGUuYWRkKGFtb3VudCwgJ21vbnRoJyk7XG4gICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICB9XG5cbiAgc2VsZWN0RGF0ZSh0aW1lc3RhbXA6IG51bWJlcikge1xuICAgIGNvbnN0IG1vbWVudERhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuXG4gICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgdGhpcy5oYW5kbGVSYW5nZVNlbGVjdChtb21lbnREYXRlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmhhbmRsZVNpbmdsZVNlbGVjdChtb21lbnREYXRlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJhbmdlU2VsZWN0KHNlbGVjdGVkRGF0ZTogbW9tZW50Lk1vbWVudCkge1xuICAgIGNvbnN0IGlubmVyRGF0ZSA9ICh0aGlzLmlubmVyRGF0ZSBhcyBEYXlSYW5nZSk7XG5cbiAgICAvLyBGaXJzdCBzZWxlY3Rpb25cbiAgICBpZiAoIWlubmVyRGF0ZS5mcm9tKSB7XG4gICAgICBpbm5lckRhdGUuZnJvbSA9IHRoaXMuZ2V0RGF5RnJvbU1vbWVudChzZWxlY3RlZERhdGUpO1xuICAgIH1cblxuICAgIC8vIFNlY29uZCBzZWxlY3Rpb25cbiAgICBlbHNlIGlmICghaW5uZXJEYXRlLnRvKSB7XG4gICAgICBjb25zdCBhY3R1YWxGcm9tID0gbW9tZW50LnVuaXgoaW5uZXJEYXRlLmZyb20udGltZXN0YW1wKTtcblxuICAgICAgLy8gU2VsZWN0ZWQgZGF0ZSBpcyBwYXN0IHRoZSBwcmV2aW91cyBzZWxlY3RlZCBkYXRlXG4gICAgICBpZiAoc2VsZWN0ZWREYXRlLmlzQmVmb3JlKGFjdHVhbEZyb20sICdkYXknKSkge1xuICAgICAgICBpbm5lckRhdGUudG8gPSBpbm5lckRhdGUuZnJvbTtcbiAgICAgICAgaW5uZXJEYXRlLmZyb20gPSB0aGlzLmdldERheUZyb21Nb21lbnQoc2VsZWN0ZWREYXRlKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VsZWN0ZWQgZGF0ZSBpcyBmdXR1cmUgb2YgdGhlIHByZXZpb3VzIHNlbGVjdGVkIGRhdGVcbiAgICAgIGVsc2Uge1xuICAgICAgICBpbm5lckRhdGUudG8gPSB0aGlzLmdldERheUZyb21Nb21lbnQoc2VsZWN0ZWREYXRlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZWxlY3Rpb24gd2hlbiBib3RoIGZyb20gYW5kIHRvIGFyZSBhbHJlYWR5IHNlbGVjdGVkXG4gICAgZWxzZSB7XG4gICAgICBpbm5lckRhdGUuZnJvbSA9IHRoaXMuZ2V0RGF5RnJvbU1vbWVudChzZWxlY3RlZERhdGUpO1xuICAgICAgaW5uZXJEYXRlLnRvID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdFJhbmdlKGlubmVyRGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRSYW5nZShyYW5nZTogRGF5UmFuZ2UpIHtcbiAgICBjb25zdCBuZXdSYW5nZTogRGF0ZVJhbmdlID0ge307XG4gICAgbmV3UmFuZ2UubGFiZWwgPSBQZXJpb2RMYWJlbC5DVVNUT01fUEVSSU9EO1xuXG4gICAgaWYgKHJhbmdlLmZyb20pIHtcbiAgICAgIG5ld1JhbmdlLmZyb20gPSB0aGlzLmdldERhdGVGcm9tRGF5KHJhbmdlLmZyb20pO1xuXG4gICAgICBpZiAocmFuZ2UudG8pIG5ld1JhbmdlLnRvID0gZm9ybWF0VG8obW9tZW50LnVuaXgocmFuZ2UudG8udGltZXN0YW1wKSk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQobmV3UmFuZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTaW5nbGVTZWxlY3QobW9tZW50RGF0ZTogbW9tZW50Lk1vbWVudCkge1xuICAgIHRoaXMuaW5uZXJEYXRlID0gdGhpcy5nZXREYXlGcm9tTW9tZW50KG1vbWVudERhdGUpO1xuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KG1vbWVudERhdGUuZm9ybWF0KERFRkFVTFRfREFURV9GT1JNQVQpKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0Z1dHVyZURhdGUodGltZXN0YW1wOiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZUZ1dHVyZURhdGUpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuICAgIGNvbnN0IG5vdyA9IG1vbWVudCgpO1xuXG4gICAgcmV0dXJuIGRhdGUuaXNBZnRlcihub3cpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY2FsZW5kYXItY29udGFpbmVyXCI+XG4gIDxoZWFkZXIgY2xhc3M9XCJtb250aC1zZWxlY3RvclwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2VsZWN0b3ItYnV0dG9uXCIgKGNsaWNrKT1cImluY3JlbWVudE1vbnRoKC0xKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBpY29uXCI+Y2hldnJvbl9sZWZ0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJtb250aC15ZWFyLWRpc3BsYXlcIiBkYXRhLXRlc3RpZD1cIm1vbnRoLXllYXItZGlzcGxheVwiPnt7IG1vbnRoIH19IHt7IHllYXIgfX08L3NwYW4+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2VsZWN0b3ItYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzaG91bGREaXNhYmxlTmV4dE1vbnRoXCJcbiAgICAgIChjbGljayk9XCJpbmNyZW1lbnRNb250aCgxKVwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBpY29uXCI+Y2hldnJvbl9yaWdodDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9oZWFkZXI+XG5cbiAgPG1haW4gY2xhc3M9XCJjYWxlbmRhclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLWRheXMtaGVhZGVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIndlZWstZGF5XCIgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheXNcIj57eyB3ZWVrRGF5Lm5hbWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGF5cy1ibG9ja1wiIGRhdGEtdGVzdGlkPVwiZGF5cy1ibG9ja1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIGRheXNcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShkYXkudGltZXN0YW1wKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkYXkuaXNGdXR1cmVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2RheSc6IHRydWUsXG4gICAgICAgICAgJ2Fub3RoZXItbW9udGgnOiBtb250aE51bWJlciAhPSBkYXkubW9udGgsXG4gICAgICAgICAgJ3NlbGVjdGVkJzogaXNEYXlTZWxlY3RlZChkYXkpLFxuICAgICAgICAgICdmaXJzdCc6IGlzRmlyc3RTZWxlY3RlZERheShkYXkpLFxuICAgICAgICAgICdsYXN0JzogaXNMYXN0U2VsZWN0ZWREYXkoZGF5KSxcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIHt7IGRheS5kYXkgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L21haW4+XG48L2Rpdj5cbiJdfQ==