@alauda/ui 7.3.3-beta.3 → 7.3.3-beta.30

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.
@@ -83,7 +83,7 @@ export class SelectComponent extends BaseSelect {
83
83
  provide: BaseSelect,
84
84
  useExisting: SelectComponent,
85
85
  },
86
- ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n [class.aui-select__input-inaction]=\"inaction\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"readonly\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.readonly]=\"readonly ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-option-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-select{display:inline-block;position:relative;width:100%}.aui-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-select__icon-container .aui-icon{margin:0!important}.aui-select.isDisabled .aui-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-select__indicator{display:flex}.aui-select__clear{display:none}.aui-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-select.isClearable:not(.isDisabled):hover .aui-select__indicator{display:none}.aui-select.isClearable:not(.isDisabled):hover .aui-select__clear{display:flex;pointer-events:auto}.aui-select__label-container.aui-input{position:absolute;top:0;left:0;display:inline-flex;align-items:center;pointer-events:none;background-color:transparent;border-color:transparent}.aui-select.isFilterable.isOpened .aui-select__label-container.aui-input{color:rgb(var(--aui-color-n-4))}.aui-select__label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-select__input-inaction{background-color:rgb(var(--aui-color-main-bg));border-color:rgb(var(--aui-color-n-7))!important;cursor:text}.aui-select__input-inaction:focus{border-color:rgb(var(--aui-color-primary))}.aui-select__input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))}.aui-select__label-container.aui-input[readonly]{color:rgb(var(--aui-color-main-text))}aui-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiTooltipAnimType"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "component", type: InputGroupComponent, selector: "aui-input-group" }, { kind: "component", type: InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }, { kind: "directive", type: InputSuffixDirective, selector: "[auiInputSuffix]" }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OptionComponent, selector: "aui-option", inputs: ["label", "labelContext", "value", "disabled"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
86
+ ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n [class.aui-select__input-inaction]=\"inaction\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"readonly\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.readonly]=\"readonly ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-option-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-select{display:inline-block;position:relative;width:100%}.aui-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-select__icon-container .aui-icon{margin:0!important}.aui-select.isDisabled .aui-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-select__indicator{display:flex}.aui-select__clear{display:none}.aui-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-select.isClearable:not(.isDisabled):hover .aui-select__indicator{display:none}.aui-select.isClearable:not(.isDisabled):hover .aui-select__clear{display:flex;pointer-events:auto}.aui-select__label-container.aui-input{position:absolute;top:0;left:0;display:inline-flex;align-items:center;pointer-events:none;background-color:transparent;border-color:transparent}.aui-select__label-container.aui-input[readonly]{pointer-events:auto}.aui-select.isFilterable.isOpened .aui-select__label-container.aui-input{color:rgb(var(--aui-color-n-4))}.aui-select__label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-select__input-inaction{background-color:rgb(var(--aui-color-main-bg));border-color:rgb(var(--aui-color-n-7))!important;cursor:text}.aui-select__input-inaction:focus{border-color:rgb(var(--aui-color-primary))}.aui-select__input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))}aui-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[auiTooltip]", inputs: ["auiTooltip", "auiTooltipContext", "auiTooltipClass", "auiTooltipType", "auiTooltipPosition", "auiTooltipTrigger", "auiTooltipDisabled", "auiTooltipHideOnClick", "auiTooltipAnimType"], outputs: ["auiTooltipVisibleChange"], exportAs: ["auiTooltip"] }, { kind: "component", type: InputGroupComponent, selector: "aui-input-group" }, { kind: "component", type: InputComponent, selector: "input[aui-input],textarea[aui-input]", inputs: ["size", "disabled"] }, { kind: "directive", type: InputSuffixDirective, selector: "[auiInputSuffix]" }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OptionComponent, selector: "aui-option", inputs: ["label", "labelContext", "value", "disabled"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
87
87
  }
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SelectComponent, decorators: [{
89
89
  type: Component,
@@ -108,9 +108,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
108
108
  OptionComponent,
109
109
  NgFor,
110
110
  AsyncPipe,
111
- ], template: "<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n [class.aui-select__input-inaction]=\"inaction\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"readonly\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.readonly]=\"readonly ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-option-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-select{display:inline-block;position:relative;width:100%}.aui-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-select__icon-container .aui-icon{margin:0!important}.aui-select.isDisabled .aui-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-select__indicator{display:flex}.aui-select__clear{display:none}.aui-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-select.isClearable:not(.isDisabled):hover .aui-select__indicator{display:none}.aui-select.isClearable:not(.isDisabled):hover .aui-select__clear{display:flex;pointer-events:auto}.aui-select__label-container.aui-input{position:absolute;top:0;left:0;display:inline-flex;align-items:center;pointer-events:none;background-color:transparent;border-color:transparent}.aui-select.isFilterable.isOpened .aui-select__label-container.aui-input{color:rgb(var(--aui-color-n-4))}.aui-select__label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-select__input-inaction{background-color:rgb(var(--aui-color-main-bg));border-color:rgb(var(--aui-color-n-7))!important;cursor:text}.aui-select__input-inaction:focus{border-color:rgb(var(--aui-color-primary))}.aui-select__input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))}.aui-select__label-container.aui-input[readonly]{color:rgb(var(--aui-color-main-text))}aui-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"] }]
111
+ ], template: "<div\n [class]=\"rootClass\"\n [class.isDisabled]=\"disabled\"\n [class.isClearable]=\"isClearable(hasSelected$ | async)\"\n [class.isFilterable]=\"filterable\"\n [class.isOpened]=\"opened\"\n #selectRef\n #tooltipRef=\"auiTooltip\"\n [auiTooltip]=\"templateRef\"\n auiTooltipAnimType=\"scaleY\"\n [auiTooltipDisabled]=\"disabled\"\n auiTooltipTrigger=\"click\"\n auiTooltipPosition=\"bottom start\"\n auiTooltipType=\"plain\"\n (auiTooltipVisibleChange)=\"onVisibleOptions($event)\"\n>\n <aui-input-group>\n <input\n #inputRef\n class=\"aui-select__input\"\n [class.aui-select__input-inaction]=\"inaction\"\n autocomplete=\"off\"\n aui-input\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"readonly\"\n [placeholder]=\"!(hasSelected$ | async) ? placeholder : ''\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"closeOption()\"\n />\n <span\n auiInputSuffix\n class=\"aui-select__icon-container\"\n >\n <aui-icon\n class=\"aui-select__indicator\"\n [icon]=\"loading ? 'spinner' : 'caret_down_s'\"\n ></aui-icon>\n <aui-icon\n class=\"aui-select__clear\"\n icon=\"xmark_small\"\n (click)=\"clearValue($event)\"\n ></aui-icon>\n </span>\n <div\n *ngIf=\"(selectedOption$ | async) && !filterString\"\n class=\"aui-select__label-container aui-input aui-input--{{ size }}\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.readonly]=\"readonly ? true : null\"\n >\n <div class=\"aui-select__label\">\n <ng-container *ngIf=\"(selectedOption$ | async).label as optionLabel\">\n <ng-container\n *ngIf=\"isTemplateRef(optionLabel); else label\"\n [ngTemplateOutlet]=\"optionLabel\"\n [ngTemplateOutletContext]=\"(selectedOption$ | async).labelContext\"\n ></ng-container>\n <ng-template #label>{{ optionLabel }}</ng-template>\n </ng-container>\n </div>\n </div>\n </aui-input-group>\n</div>\n\n<ng-template #templateRef>\n <div\n [class]=\"containerClass\"\n [style.minWidth]=\"containerWidth\"\n (mousedown)=\"$event.preventDefault()\"\n >\n <div\n #optionListRef\n class=\"aui-option-container__content\"\n >\n <aui-option\n #inputtingOption\n *ngIf=\"allowCreate && filterString && !(hasMatchedOption$ | async)\"\n [value]=\"filterString\"\n >\n {{ filterString }}\n </aui-option>\n <ng-container *ngIf=\"allowCreate\">\n <aui-option\n *ngFor=\"let option of customCreatedOptions$ | async\"\n [label]=\"option.label\"\n [value]=\"option.value\"\n >\n {{ option.label }}\n </aui-option>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"\n !(\n (hasVisibleOption$ | async) ||\n (allowCreate && (customCreatedOptions$ | async).length) ||\n (allowCreate && filterString)\n )\n \"\n class=\"aui-option-container__placeholder\"\n >\n <ng-content select=\"aui-option-placeholder\"></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".aui-option-container{padding:8px 0;border-radius:var(--aui-border-radius-m);background-color:rgb(var(--aui-color-popper-bg))}:root .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-option-container{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-option-container__content{max-height:calc(var(--aui-inline-height-m) * 10);position:relative;overflow:auto}.aui-option-container__content::-webkit-scrollbar{width:4px;height:4px}.aui-option-container__content::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-option-container__content::-webkit-scrollbar-corner{background-color:transparent}.aui-option-container__placeholder{color:rgb(var(--aui-color-n-4));font-size:var(--aui-font-size-m);text-align:center}.aui-option-container--small .aui-option-container__content{max-height:calc(var(--aui-inline-height-s) * 10)}.aui-option-container--small .aui-option-container__placeholder{font-size:var(--aui-font-size-s)}.aui-select{display:inline-block;position:relative;width:100%}.aui-select__icon-container{display:block;position:relative;pointer-events:none!important}.aui-select__icon-container .aui-icon{margin:0!important}.aui-select.isDisabled .aui-select__icon-container{color:rgb(var(--aui-color-n-4))}.aui-select__indicator{display:flex}.aui-select__clear{display:none}.aui-select__clear .aui-icon{border-radius:50%;color:rgb(var(--aui-color-help-text));cursor:pointer;transition:all .3s ease}.aui-select__clear .aui-icon:hover{color:rgb(var(--aui-color-main-bg));background-color:rgb(var(--aui-color-help-text))}.aui-select.isClearable:not(.isDisabled):hover .aui-select__indicator{display:none}.aui-select.isClearable:not(.isDisabled):hover .aui-select__clear{display:flex;pointer-events:auto}.aui-select__label-container.aui-input{position:absolute;top:0;left:0;display:inline-flex;align-items:center;pointer-events:none;background-color:transparent;border-color:transparent}.aui-select__label-container.aui-input[readonly]{pointer-events:auto}.aui-select.isFilterable.isOpened .aui-select__label-container.aui-input{color:rgb(var(--aui-color-n-4))}.aui-select__label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aui-select__input-inaction{background-color:rgb(var(--aui-color-main-bg));border-color:rgb(var(--aui-color-n-7))!important;cursor:text}.aui-select__input-inaction:focus{border-color:rgb(var(--aui-color-primary))}.aui-select__input[disabled]{background-color:rgb(var(--aui-color-n-8));border-color:rgb(var(--aui-color-n-7))}aui-select.ng-invalid.ng-dirty .aui-input,.ng-submitted aui-select.ng-invalid .aui-input{border-color:rgb(var(--aui-color-red))!important}:root aui-select.ng-invalid.ng-dirty .aui-input:focus,:root aui-select.ng-invalid.ng-dirty .aui-input.isFocused,:root .ng-submitted aui-select.ng-invalid .aui-input:focus,:root .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=light] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=light] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=system] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=system] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}}html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input:focus,html[aui-theme-mode=dark] aui-select.ng-invalid.ng-dirty .aui-input.isFocused,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input:focus,html[aui-theme-mode=dark] .ng-submitted aui-select.ng-invalid .aui-input.isFocused{box-shadow:0 0 0 2px rgba(var(--aui-color-red),.3)}\n"] }]
112
112
  }], propDecorators: { inputRef: [{
113
113
  type: ViewChild,
114
114
  args: ['inputRef', { static: true }]
115
115
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxhQUFhLEVBQ2IsRUFBRSxFQUNGLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEMsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsbUJBQW1CLEdBQ3BCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFtQzVELE1BQU0sT0FBTyxlQUNYLFNBQVEsVUFBYTtJQUlyQixRQUFRLENBQWlCO0lBRXpCLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUs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QUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxVQUFVOzRCQUNuQixXQUFXLGlCQUFpQjt5QkFDN0I7cUJBQ0YsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLElBQUk7d0JBQ0osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsU0FBUztxQkFDVjs4QkFPRCxRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIE5nRm9yLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgb2YsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24nO1xuaW1wb3J0IHtcbiAgSW5wdXRDb21wb25lbnQsXG4gIElucHV0U3VmZml4RGlyZWN0aXZlLFxuICBJbnB1dEdyb3VwQ29tcG9uZW50LFxufSBmcm9tICcuLi9pbnB1dCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5pbXBvcnQgeyBjb2VyY2VTdHJpbmcsIHB1Ymxpc2hSZWYgfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7IEJhc2VTZWxlY3QgfSBmcm9tICcuL2Jhc2Utc2VsZWN0JztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9zZWxlY3QudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQmFzZVNlbGVjdCxcbiAgICAgIHVzZUV4aXN0aW5nOiBTZWxlY3RDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgSW5wdXRHcm91cENvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBJbnB1dFN1ZmZpeERpcmVjdGl2ZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBPcHRpb25Db21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQ8VCA9IHVua25vd24+XG4gIGV4dGVuZHMgQmFzZVNlbGVjdDxUPlxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXRcbntcbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBpbnB1dFJlZjogSW5wdXRDb21wb25lbnQ7XG5cbiAgdmFsdWVzJCA9IHRoaXMubW9kZWwkLmFzT2JzZXJ2YWJsZSgpLnBpcGUobWFwKHZhbCA9PiBbdmFsXSkpO1xuXG4gIHNlbGVjdGVkT3B0aW9uJDogT2JzZXJ2YWJsZTxTZWxlY3RPcHRpb24+O1xuXG4gIGhhc1NlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBnZXQgcm9vdENsYXNzKCkge1xuICAgIHJldHVybiBgYXVpLXNlbGVjdCBhdWktc2VsZWN0LS0ke3RoaXMuc2l6ZX1gO1xuICB9XG5cbiAgZ2V0IGNvbnRhaW5lckNsYXNzKCkge1xuICAgIHJldHVybiBgYXVpLW9wdGlvbi1jb250YWluZXIgYXVpLW9wdGlvbi1jb250YWluZXItLSR7dGhpcy5zaXplfWA7XG4gIH1cblxuICBpc0NsZWFyYWJsZSA9IChoYXNTZWxlY3RlZDogYm9vbGVhbikgPT5cbiAgICAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmNsZWFyYWJsZSAmJiBoYXNTZWxlY3RlZDtcblxuICBvdmVycmlkZSBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgKFxuICAgICAgICB0aGlzLmNvbnRlbnRPcHRpb25zLmNoYW5nZXMgYXMgT2JzZXJ2YWJsZTxRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+Pj5cbiAgICAgICkucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuY29udGVudE9wdGlvbnMpLFxuICAgICAgICBzd2l0Y2hNYXAob3B0aW9ucyA9PlxuICAgICAgICAgIGNvbWJpbmVMYXRlc3Qob3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi5zZWxlY3RlZCQpKS5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwgYXMgdm9pZCksXG4gICAgICAgICAgICBtYXAoKCkgPT4gb3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24uc2VsZWN0ZWQpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBzd2l0Y2hNYXAob3B0aW9uID0+XG4gICAgICAgICAgICAgIG9wdGlvblxuICAgICAgICAgICAgICAgID8gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZSQsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbCQsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbENvbnRleHQkLFxuICAgICAgICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChbdmFsdWUsIGxhYmVsLCBsYWJlbENvbnRleHRdKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsQ29udGV4dCxcbiAgICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogb2YobnVsbCBhcyB2b2lkKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICB0aGlzLm1vZGVsJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbb3B0aW9uLCB2YWx1ZV0pID0+XG4gICAgICAgIG9wdGlvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBsYWJlbDpcbiAgICAgICAgICAgICAgICBvcHRpb24ubGFiZWwgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsRm4/LihvcHRpb24udmFsdWUpIHx8XG4gICAgICAgICAgICAgICAgY29lcmNlU3RyaW5nKHRoaXMudHJhY2tGbihvcHRpb24udmFsdWUpKSxcbiAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjQ1MTVcbiAgICAgICAgICAgICAgbGFiZWxDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgLi4uKG9wdGlvbi5sYWJlbENvbnRleHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5sYWJlbEZuPy4odmFsdWUpIHx8IGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4odmFsdWUpKSxcbiAgICAgICAgICAgIH0sXG4gICAgICApLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICB0aGlzLmhhc1NlbGVjdGVkJCA9IHRoaXMuc2VsZWN0ZWRPcHRpb24kLnBpcGUoXG4gICAgICBtYXAoKHsgbGFiZWwgfSkgPT4gISFsYWJlbCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIG9uVmlzaWJsZU9wdGlvbnModmlzaWJsZTogYm9vbGVhbikge1xuICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICBzdXBlci5vblNob3dPcHRpb25zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLm9uSGlkZU9wdGlvbnMoKTtcbiAgICAgIHRoaXMuaW5wdXRSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlSW4odjogVCk6IFQge1xuICAgIHRoaXMuY2xvc2VPcHRpb24oKTtcbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIHNlbGVjdE9wdGlvbihvcHRpb246IE9wdGlvbkNvbXBvbmVudDxUPikge1xuICAgIHRoaXMuZW1pdFZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICB9XG5cbiAgY2xlYXJWYWx1ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmVtaXRWYWx1ZShudWxsKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtjbGFzc109XCJyb290Q2xhc3NcIlxuICBbY2xhc3MuaXNEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5pc0NsZWFyYWJsZV09XCJpc0NsZWFyYWJsZShoYXNTZWxlY3RlZCQgfCBhc3luYylcIlxuICBbY2xhc3MuaXNGaWx0ZXJhYmxlXT1cImZpbHRlcmFibGVcIlxuICBbY2xhc3MuaXNPcGVuZWRdPVwib3BlbmVkXCJcbiAgI3NlbGVjdFJlZlxuICAjdG9vbHRpcFJlZj1cImF1aVRvb2x0aXBcIlxuICBbYXVpVG9vbHRpcF09XCJ0ZW1wbGF0ZVJlZlwiXG4gIGF1aVRvb2x0aXBBbmltVHlwZT1cInNjYWxlWVwiXG4gIFthdWlUb29sdGlwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBhdWlUb29sdGlwVHJpZ2dlcj1cImNsaWNrXCJcbiAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tIHN0YXJ0XCJcbiAgYXVpVG9vbHRpcFR5cGU9XCJwbGFpblwiXG4gIChhdWlUb29sdGlwVmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVPcHRpb25zKCRldmVudClcIlxuPlxuICA8YXVpLWlucHV0LWdyb3VwPlxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0UmVmXG4gICAgICBjbGFzcz1cImF1aS1zZWxlY3RfX2lucHV0XCJcbiAgICAgIFtjbGFzcy5hdWktc2VsZWN0X19pbnB1dC1pbmFjdGlvbl09XCJpbmFjdGlvblwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgYXVpLWlucHV0XG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIiEoaGFzU2VsZWN0ZWQkIHwgYXN5bmMpID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cImNsb3NlT3B0aW9uKClcIlxuICAgIC8+XG4gICAgPHNwYW5cbiAgICAgIGF1aUlucHV0U3VmZml4XG4gICAgICBjbGFzcz1cImF1aS1zZWxlY3RfX2ljb24tY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktc2VsZWN0X19pbmRpY2F0b3JcIlxuICAgICAgICBbaWNvbl09XCJsb2FkaW5nID8gJ3NwaW5uZXInIDogJ2NhcmV0X2Rvd25fcydcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktc2VsZWN0X19jbGVhclwiXG4gICAgICAgIGljb249XCJ4bWFya19zbWFsbFwiXG4gICAgICAgIChjbGljayk9XCJjbGVhclZhbHVlKCRldmVudClcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9zcGFuPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiKHNlbGVjdGVkT3B0aW9uJCB8IGFzeW5jKSAmJiAhZmlsdGVyU3RyaW5nXCJcbiAgICAgIGNsYXNzPVwiYXVpLXNlbGVjdF9fbGFiZWwtY29udGFpbmVyIGF1aS1pbnB1dCBhdWktaW5wdXQtLXt7IHNpemUgfX1cIlxuICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSA/IHRydWUgOiBudWxsXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXVpLXNlbGVjdF9fbGFiZWxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihzZWxlY3RlZE9wdGlvbiQgfCBhc3luYykubGFiZWwgYXMgb3B0aW9uTGFiZWxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cImlzVGVtcGxhdGVSZWYob3B0aW9uTGFiZWwpOyBlbHNlIGxhYmVsXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbkxhYmVsXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCIoc2VsZWN0ZWRPcHRpb24kIHwgYXN5bmMpLmxhYmVsQ29udGV4dFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWw+e3sgb3B0aW9uTGFiZWwgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2F1aS1pbnB1dC1ncm91cD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlUmVmPlxuICA8ZGl2XG4gICAgW2NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCJcbiAgICBbc3R5bGUubWluV2lkdGhdPVwiY29udGFpbmVyV2lkdGhcIlxuICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgI29wdGlvbkxpc3RSZWZcbiAgICAgIGNsYXNzPVwiYXVpLW9wdGlvbi1jb250YWluZXJfX2NvbnRlbnRcIlxuICAgID5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICNpbnB1dHRpbmdPcHRpb25cbiAgICAgICAgKm5nSWY9XCJhbGxvd0NyZWF0ZSAmJiBmaWx0ZXJTdHJpbmcgJiYgIShoYXNNYXRjaGVkT3B0aW9uJCB8IGFzeW5jKVwiXG4gICAgICAgIFt2YWx1ZV09XCJmaWx0ZXJTdHJpbmdcIlxuICAgICAgPlxuICAgICAgICB7eyBmaWx0ZXJTdHJpbmcgfX1cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbGxvd0NyZWF0ZVwiPlxuICAgICAgICA8YXVpLW9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgY3VzdG9tQ3JlYXRlZE9wdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgICEoXG4gICAgICAgICAgKGhhc1Zpc2libGVPcHRpb24kIHwgYXN5bmMpIHx8XG4gICAgICAgICAgKGFsbG93Q3JlYXRlICYmIChjdXN0b21DcmVhdGVkT3B0aW9ucyQgfCBhc3luYykubGVuZ3RoKSB8fFxuICAgICAgICAgIChhbGxvd0NyZWF0ZSAmJiBmaWx0ZXJTdHJpbmcpXG4gICAgICAgIClcbiAgICAgIFwiXG4gICAgICBjbGFzcz1cImF1aS1vcHRpb24tY29udGFpbmVyX19wbGFjZWhvbGRlclwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXVpLW9wdGlvbi1wbGFjZWhvbGRlclwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxhQUFhLEVBQ2IsRUFBRSxFQUNGLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEMsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsbUJBQW1CLEdBQ3BCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFtQzVELE1BQU0sT0FBTyxlQUNYLFNBQVEsVUFBYTtJQUlyQixRQUFRLENBQWlCO0lBRXpCLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUs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QUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxVQUFVOzRCQUNuQixXQUFXLGlCQUFpQjt5QkFDN0I7cUJBQ0YsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLElBQUk7d0JBQ0osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsU0FBUztxQkFDVjs4QkFPRCxRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIE5nRm9yLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgb2YsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24nO1xuaW1wb3J0IHtcbiAgSW5wdXRDb21wb25lbnQsXG4gIElucHV0U3VmZml4RGlyZWN0aXZlLFxuICBJbnB1dEdyb3VwQ29tcG9uZW50LFxufSBmcm9tICcuLi9pbnB1dCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5pbXBvcnQgeyBjb2VyY2VTdHJpbmcsIHB1Ymxpc2hSZWYgfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7IEJhc2VTZWxlY3QgfSBmcm9tICcuL2Jhc2Utc2VsZWN0JztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9zZWxlY3QudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQmFzZVNlbGVjdCxcbiAgICAgIHVzZUV4aXN0aW5nOiBTZWxlY3RDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgSW5wdXRHcm91cENvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBJbnB1dFN1ZmZpeERpcmVjdGl2ZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBPcHRpb25Db21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQ8VCA9IHVua25vd24+XG4gIGV4dGVuZHMgQmFzZVNlbGVjdDxUPlxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXRcbntcbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBpbnB1dFJlZjogSW5wdXRDb21wb25lbnQ7XG5cbiAgdmFsdWVzJCA9IHRoaXMubW9kZWwkLmFzT2JzZXJ2YWJsZSgpLnBpcGUobWFwKHZhbCA9PiBbdmFsXSkpO1xuXG4gIHNlbGVjdGVkT3B0aW9uJDogT2JzZXJ2YWJsZTxTZWxlY3RPcHRpb24+O1xuXG4gIGhhc1NlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBnZXQgcm9vdENsYXNzKCkge1xuICAgIHJldHVybiBgYXVpLXNlbGVjdCBhdWktc2VsZWN0LS0ke3RoaXMuc2l6ZX1gO1xuICB9XG5cbiAgZ2V0IGNvbnRhaW5lckNsYXNzKCkge1xuICAgIHJldHVybiBgYXVpLW9wdGlvbi1jb250YWluZXIgYXVpLW9wdGlvbi1jb250YWluZXItLSR7dGhpcy5zaXplfWA7XG4gIH1cblxuICBpc0NsZWFyYWJsZSA9IChoYXNTZWxlY3RlZDogYm9vbGVhbikgPT5cbiAgICAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmNsZWFyYWJsZSAmJiBoYXNTZWxlY3RlZDtcblxuICBvdmVycmlkZSBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgKFxuICAgICAgICB0aGlzLmNvbnRlbnRPcHRpb25zLmNoYW5nZXMgYXMgT2JzZXJ2YWJsZTxRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+Pj5cbiAgICAgICkucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuY29udGVudE9wdGlvbnMpLFxuICAgICAgICBzd2l0Y2hNYXAob3B0aW9ucyA9PlxuICAgICAgICAgIGNvbWJpbmVMYXRlc3Qob3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi5zZWxlY3RlZCQpKS5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwgYXMgdm9pZCksXG4gICAgICAgICAgICBtYXAoKCkgPT4gb3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24uc2VsZWN0ZWQpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBzd2l0Y2hNYXAob3B0aW9uID0+XG4gICAgICAgICAgICAgIG9wdGlvblxuICAgICAgICAgICAgICAgID8gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZSQsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbCQsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbENvbnRleHQkLFxuICAgICAgICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChbdmFsdWUsIGxhYmVsLCBsYWJlbENvbnRleHRdKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsQ29udGV4dCxcbiAgICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogb2YobnVsbCBhcyB2b2lkKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICB0aGlzLm1vZGVsJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbb3B0aW9uLCB2YWx1ZV0pID0+XG4gICAgICAgIG9wdGlvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBsYWJlbDpcbiAgICAgICAgICAgICAgICBvcHRpb24ubGFiZWwgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsRm4/LihvcHRpb24udmFsdWUpIHx8XG4gICAgICAgICAgICAgICAgY29lcmNlU3RyaW5nKHRoaXMudHJhY2tGbihvcHRpb24udmFsdWUpKSxcbiAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjQ1MTVcbiAgICAgICAgICAgICAgbGFiZWxDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgLi4uKG9wdGlvbi5sYWJlbENvbnRleHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5sYWJlbEZuPy4odmFsdWUpIHx8IGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4odmFsdWUpKSxcbiAgICAgICAgICAgIH0sXG4gICAgICApLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICB0aGlzLmhhc1NlbGVjdGVkJCA9IHRoaXMuc2VsZWN0ZWRPcHRpb24kLnBpcGUoXG4gICAgICBtYXAoKHsgbGFiZWwgfSkgPT4gISFsYWJlbCksXG4gICAgICBwdWJsaXNoUmVmKCksXG4gICAgKTtcbiAgfVxuXG4gIG9uVmlzaWJsZU9wdGlvbnModmlzaWJsZTogYm9vbGVhbikge1xuICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICBzdXBlci5vblNob3dPcHRpb25zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLm9uSGlkZU9wdGlvbnMoKTtcbiAgICAgIHRoaXMuaW5wdXRSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlSW4odjogVCk6IFQge1xuICAgIHRoaXMuY2xvc2VPcHRpb24oKTtcbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIHNlbGVjdE9wdGlvbihvcHRpb246IE9wdGlvbkNvbXBvbmVudDxUPikge1xuICAgIHRoaXMuZW1pdFZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgdGhpcy5jbG9zZU9wdGlvbigpO1xuICB9XG5cbiAgY2xlYXJWYWx1ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmVtaXRWYWx1ZShudWxsKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtjbGFzc109XCJyb290Q2xhc3NcIlxuICBbY2xhc3MuaXNEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5pc0NsZWFyYWJsZV09XCJpc0NsZWFyYWJsZShoYXNTZWxlY3RlZCQgfCBhc3luYylcIlxuICBbY2xhc3MuaXNGaWx0ZXJhYmxlXT1cImZpbHRlcmFibGVcIlxuICBbY2xhc3MuaXNPcGVuZWRdPVwib3BlbmVkXCJcbiAgI3NlbGVjdFJlZlxuICAjdG9vbHRpcFJlZj1cImF1aVRvb2x0aXBcIlxuICBbYXVpVG9vbHRpcF09XCJ0ZW1wbGF0ZVJlZlwiXG4gIGF1aVRvb2x0aXBBbmltVHlwZT1cInNjYWxlWVwiXG4gIFthdWlUb29sdGlwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBhdWlUb29sdGlwVHJpZ2dlcj1cImNsaWNrXCJcbiAgYXVpVG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tIHN0YXJ0XCJcbiAgYXVpVG9vbHRpcFR5cGU9XCJwbGFpblwiXG4gIChhdWlUb29sdGlwVmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVPcHRpb25zKCRldmVudClcIlxuPlxuICA8YXVpLWlucHV0LWdyb3VwPlxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0UmVmXG4gICAgICBjbGFzcz1cImF1aS1zZWxlY3RfX2lucHV0XCJcbiAgICAgIFtjbGFzcy5hdWktc2VsZWN0X19pbnB1dC1pbmFjdGlvbl09XCJpbmFjdGlvblwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgYXVpLWlucHV0XG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIiEoaGFzU2VsZWN0ZWQkIHwgYXN5bmMpID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cImNsb3NlT3B0aW9uKClcIlxuICAgIC8+XG4gICAgPHNwYW5cbiAgICAgIGF1aUlucHV0U3VmZml4XG4gICAgICBjbGFzcz1cImF1aS1zZWxlY3RfX2ljb24tY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktc2VsZWN0X19pbmRpY2F0b3JcIlxuICAgICAgICBbaWNvbl09XCJsb2FkaW5nID8gJ3NwaW5uZXInIDogJ2NhcmV0X2Rvd25fcydcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgY2xhc3M9XCJhdWktc2VsZWN0X19jbGVhclwiXG4gICAgICAgIGljb249XCJ4bWFya19zbWFsbFwiXG4gICAgICAgIChjbGljayk9XCJjbGVhclZhbHVlKCRldmVudClcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9zcGFuPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiKHNlbGVjdGVkT3B0aW9uJCB8IGFzeW5jKSAmJiAhZmlsdGVyU3RyaW5nXCJcbiAgICAgIGNsYXNzPVwiYXVpLXNlbGVjdF9fbGFiZWwtY29udGFpbmVyIGF1aS1pbnB1dCBhdWktaW5wdXQtLXt7IHNpemUgfX1cIlxuICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSA/IHRydWUgOiBudWxsXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXVpLXNlbGVjdF9fbGFiZWxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihzZWxlY3RlZE9wdGlvbiQgfCBhc3luYykubGFiZWwgYXMgb3B0aW9uTGFiZWxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cImlzVGVtcGxhdGVSZWYob3B0aW9uTGFiZWwpOyBlbHNlIGxhYmVsXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbkxhYmVsXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCIoc2VsZWN0ZWRPcHRpb24kIHwgYXN5bmMpLmxhYmVsQ29udGV4dFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWw+e3sgb3B0aW9uTGFiZWwgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2F1aS1pbnB1dC1ncm91cD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlUmVmPlxuICA8ZGl2XG4gICAgW2NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCJcbiAgICBbc3R5bGUubWluV2lkdGhdPVwiY29udGFpbmVyV2lkdGhcIlxuICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgI29wdGlvbkxpc3RSZWZcbiAgICAgIGNsYXNzPVwiYXVpLW9wdGlvbi1jb250YWluZXJfX2NvbnRlbnRcIlxuICAgID5cbiAgICAgIDxhdWktb3B0aW9uXG4gICAgICAgICNpbnB1dHRpbmdPcHRpb25cbiAgICAgICAgKm5nSWY9XCJhbGxvd0NyZWF0ZSAmJiBmaWx0ZXJTdHJpbmcgJiYgIShoYXNNYXRjaGVkT3B0aW9uJCB8IGFzeW5jKVwiXG4gICAgICAgIFt2YWx1ZV09XCJmaWx0ZXJTdHJpbmdcIlxuICAgICAgPlxuICAgICAgICB7eyBmaWx0ZXJTdHJpbmcgfX1cbiAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbGxvd0NyZWF0ZVwiPlxuICAgICAgICA8YXVpLW9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgY3VzdG9tQ3JlYXRlZE9wdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgIDwvYXVpLW9wdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgICEoXG4gICAgICAgICAgKGhhc1Zpc2libGVPcHRpb24kIHwgYXN5bmMpIHx8XG4gICAgICAgICAgKGFsbG93Q3JlYXRlICYmIChjdXN0b21DcmVhdGVkT3B0aW9ucyQgfCBhc3luYykubGVuZ3RoKSB8fFxuICAgICAgICAgIChhbGxvd0NyZWF0ZSAmJiBmaWx0ZXJTdHJpbmcpXG4gICAgICAgIClcbiAgICAgIFwiXG4gICAgICBjbGFzcz1cImF1aS1vcHRpb24tY29udGFpbmVyX19wbGFjZWhvbGRlclwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXVpLW9wdGlvbi1wbGFjZWhvbGRlclwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -3,6 +3,7 @@ export * from './table.module';
3
3
  export * from './table-cell.component';
4
4
  export * from './table-cell.directive';
5
5
  export * from './table-cell-def.directive';
6
+ export * from './table-column-resizable.directive';
6
7
  export * from './table-column-def.directive';
7
8
  export * from './table-header-cell.directive';
8
9
  export * from './table-header-cell-def.directive';
@@ -12,4 +13,4 @@ export * from './table-placeholder.directive';
12
13
  export * from './table-row.component';
13
14
  export * from './table-row-def.directive';
14
15
  export * from './table-scroll.directive';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWNlbGwuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtY2VsbC1kZWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtY29sdW1uLWRlZi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1oZWFkZXItY2VsbC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1oZWFkZXItY2VsbC1kZWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1oZWFkZXItcm93LWRlZi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1wbGFjZWhvbGRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1yb3cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtcm93LWRlZi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1zY3JvbGwuZGlyZWN0aXZlJztcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWNlbGwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtY2VsbC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1jZWxsLWRlZi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1jb2x1bW4tcmVzaXphYmxlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWNvbHVtbi1kZWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtaGVhZGVyLWNlbGwuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtaGVhZGVyLWNlbGwtZGVmLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWhlYWRlci1yb3cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtaGVhZGVyLXJvdy1kZWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtcGxhY2Vob2xkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtcm93LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLXJvdy1kZWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtc2Nyb2xsLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -1,14 +1,13 @@
1
1
  import { CdkCell } from '@angular/cdk/table';
2
2
  import { Directive, Input } from '@angular/core';
3
- import { buildBem } from '../utils';
3
+ import { tableBem } from './table.component';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/cdk/table";
6
- const bem = buildBem('aui-table');
7
6
  export class TableCellDirective extends CdkCell {
8
7
  direction = 'row';
9
8
  constructor(columnDef, elementRef) {
10
9
  super(columnDef, elementRef);
11
- elementRef.nativeElement.classList.add(bem.element(`column-${columnDef.cssClassFriendlyName}`));
10
+ elementRef.nativeElement.classList.add(tableBem.element(`column-${columnDef.cssClassFriendlyName}`));
12
11
  }
13
12
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TableCellDirective, deps: [{ token: i1.CdkColumnDef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14
13
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: TableCellDirective, isStandalone: true, selector: "aui-table-cell", inputs: { direction: "direction" }, host: { attributes: { "role": "gridcell" }, properties: { "class.aui-table__cell--column": "direction === \"column\"" }, classAttribute: "aui-table__cell" }, usesInheritance: true, ngImport: i0 });
@@ -27,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
27
26
  }], ctorParameters: function () { return [{ type: i1.CdkColumnDef }, { type: i0.ElementRef }]; }, propDecorators: { direction: [{
28
27
  type: Input
29
28
  }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvdGFibGUtY2VsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFFcEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBYWxDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxPQUFPO0lBRTdDLFNBQVMsR0FBcUIsS0FBSyxDQUFDO0lBRXBDLFlBQVksU0FBdUIsRUFBRSxVQUFtQztRQUN0RSxLQUFLLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdCLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FDcEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQ3hELENBQUM7SUFDSixDQUFDO3VHQVRVLGtCQUFrQjsyRkFBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQVY5QixTQUFTO21CQUFDO29CQUVULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsaUJBQWlCO3dCQUN4QixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsaUNBQWlDLEVBQUUsd0JBQXdCO3FCQUM1RDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7NEhBR0MsU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQ2VsbCwgQ2RrQ29sdW1uRGVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGJlbSA9IGJ1aWxkQmVtKCdhdWktdGFibGUnKTtcblxuLyoqIENlbGwgdGVtcGxhdGUgY29udGFpbmVyIHRoYXQgYWRkcyB0aGUgcmlnaHQgY2xhc3NlcyBhbmQgcm9sZS4gKi9cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2F1aS10YWJsZS1jZWxsJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYXVpLXRhYmxlX19jZWxsJyxcbiAgICByb2xlOiAnZ3JpZGNlbGwnLFxuICAgICdbY2xhc3MuYXVpLXRhYmxlX19jZWxsLS1jb2x1bW5dJzogJ2RpcmVjdGlvbiA9PT0gXCJjb2x1bW5cIicsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ2VsbERpcmVjdGl2ZSBleHRlbmRzIENka0NlbGwge1xuICBASW5wdXQoKVxuICBkaXJlY3Rpb246ICdyb3cnIHwgJ2NvbHVtbicgPSAncm93JztcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5EZWY6IENka0NvbHVtbkRlZiwgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcihjb2x1bW5EZWYsIGVsZW1lbnRSZWYpO1xuICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFxuICAgICAgYmVtLmVsZW1lbnQoYGNvbHVtbi0ke2NvbHVtbkRlZi5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gKSxcbiAgICApO1xuICB9XG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvdGFibGUtY2VsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQWE3QyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsT0FBTztJQUU3QyxTQUFTLEdBQXFCLEtBQUssQ0FBQztJQUVwQyxZQUFZLFNBQXVCLEVBQUUsVUFBbUM7UUFDdEUsS0FBSyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3QixVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQ3BDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxTQUFTLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQzt1R0FUVSxrQkFBa0I7MkZBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFWOUIsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGlCQUFpQjt3QkFDeEIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLGlDQUFpQyxFQUFFLHdCQUF3QjtxQkFDNUQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzRIQUdDLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0NlbGwsIENka0NvbHVtbkRlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IHRhYmxlQmVtIH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xuXG4vKiogQ2VsbCB0ZW1wbGF0ZSBjb250YWluZXIgdGhhdCBhZGRzIHRoZSByaWdodCBjbGFzc2VzIGFuZCByb2xlLiAqL1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXVpLXRhYmxlLWNlbGwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdhdWktdGFibGVfX2NlbGwnLFxuICAgIHJvbGU6ICdncmlkY2VsbCcsXG4gICAgJ1tjbGFzcy5hdWktdGFibGVfX2NlbGwtLWNvbHVtbl0nOiAnZGlyZWN0aW9uID09PSBcImNvbHVtblwiJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDZWxsRGlyZWN0aXZlIGV4dGVuZHMgQ2RrQ2VsbCB7XG4gIEBJbnB1dCgpXG4gIGRpcmVjdGlvbjogJ3JvdycgfCAnY29sdW1uJyA9ICdyb3cnO1xuXG4gIGNvbnN0cnVjdG9yKGNvbHVtbkRlZjogQ2RrQ29sdW1uRGVmLCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHN1cGVyKGNvbHVtbkRlZiwgZWxlbWVudFJlZik7XG4gICAgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXG4gICAgICB0YWJsZUJlbS5lbGVtZW50KGBjb2x1bW4tJHtjb2x1bW5EZWYuY3NzQ2xhc3NGcmllbmRseU5hbWV9YCksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,159 @@
1
+ import { Directive, ElementRef, inject, Input, Renderer2, } from '@angular/core';
2
+ import { fromEvent, map, merge, switchMap, take, takeUntil, } from 'rxjs';
3
+ import { buildBem } from '../utils';
4
+ import { tableBem, TableColumnDefDirective, TableComponent, } from './index';
5
+ import * as i0 from "@angular/core";
6
+ let tableColumnResizableID = 0;
7
+ const resizableBem = buildBem('aui-table-column-resizable');
8
+ const markLineWidth = 1;
9
+ export class TableColumnResizableDirective {
10
+ minWidth = '40px';
11
+ maxWidth = '80%';
12
+ renderer2 = inject(Renderer2);
13
+ tableColumnDefDirective = inject(TableColumnDefDirective);
14
+ tableComponent = inject(TableComponent);
15
+ columnElement = inject(ElementRef).nativeElement;
16
+ containerElement = this.tableComponent.elementRef.nativeElement;
17
+ styleElement;
18
+ hostAttr;
19
+ resizeSubscription;
20
+ ngAfterViewInit() {
21
+ const resizeHandle = this.createResizeHandle();
22
+ this.bindResizable(resizeHandle);
23
+ }
24
+ ngOnDestroy() {
25
+ this.resizeSubscription?.unsubscribe();
26
+ this.styleElement?.remove();
27
+ if (this.hostAttr) {
28
+ this.containerElement.removeAttribute(this.hostAttr);
29
+ }
30
+ }
31
+ bindResizable(resizeHandle) {
32
+ fromEvent(resizeHandle, 'mousedown')
33
+ .pipe(switchMap(mouseDownEvent => {
34
+ mouseDownEvent.preventDefault();
35
+ mouseDownEvent.stopPropagation();
36
+ this.renderer2.setStyle(resizeHandle, 'visibility', 'hidden');
37
+ const resizeRange = this.getResizeRange();
38
+ const initialMouseX = mouseDownEvent.clientX;
39
+ const columnWidth = this.getColumnWidth();
40
+ const columnOffset = this.getColumnOffset();
41
+ const resizeMarkLine = this.createResizeMarkLine(columnOffset + columnWidth);
42
+ const resizeOverlay = this.createResizeOverlay();
43
+ const mouseUp$ = fromEvent(document, 'mouseup').pipe(take(1));
44
+ const mouseMove$ = fromEvent(document, 'mousemove').pipe(takeUntil(mouseUp$));
45
+ return merge(mouseMove$.pipe(map(mouseMoveEvent => () => resizeMarkLine.updateOffset(columnOffset +
46
+ this.getWidthInRange(resizeRange, columnWidth + mouseMoveEvent.clientX - initialMouseX)))), mouseUp$.pipe(map(mouseUpEvent => () => {
47
+ this.renderer2.removeStyle(resizeHandle, 'visibility');
48
+ resizeMarkLine.destroy();
49
+ resizeOverlay.destroy();
50
+ this.renderWidthStyles(this.getWidthInRange(resizeRange, columnWidth + mouseUpEvent.clientX - initialMouseX));
51
+ })));
52
+ }))
53
+ .subscribe(exec => {
54
+ exec();
55
+ });
56
+ }
57
+ createResizeHandle() {
58
+ const resizeHandle = this.renderer2.createElement('div');
59
+ this.renderer2.addClass(resizeHandle, resizableBem.element('handle'));
60
+ this.renderer2.appendChild(this.columnElement, resizeHandle);
61
+ return resizeHandle;
62
+ }
63
+ createResizeMarkLine(initialOffset) {
64
+ const markLine = this.renderer2.createElement('div');
65
+ this.renderer2.addClass(markLine, resizableBem.element('mark-line'));
66
+ this.renderer2.setStyle(markLine, 'left', initialOffset - markLineWidth + 'px');
67
+ if (this.isStickyLeftBorderColumn()) {
68
+ this.renderer2.addClass(markLine, 'inStickyBorderElemLeft');
69
+ }
70
+ this.renderer2.appendChild(this.containerElement, markLine);
71
+ return {
72
+ element: markLine,
73
+ updateOffset: (offset) => {
74
+ this.renderer2.setStyle(markLine, 'left', offset - markLineWidth + 'px');
75
+ },
76
+ destroy: () => {
77
+ this.renderer2.removeChild(this.containerElement, markLine);
78
+ },
79
+ };
80
+ }
81
+ createResizeOverlay() {
82
+ const resizeOverlay = this.renderer2.createElement('div');
83
+ this.renderer2.addClass(resizeOverlay, resizableBem.element('overlay'));
84
+ this.renderer2.appendChild(this.containerElement, resizeOverlay);
85
+ return {
86
+ element: resizeOverlay,
87
+ destroy: () => {
88
+ this.renderer2.removeChild(this.containerElement, resizeOverlay);
89
+ },
90
+ };
91
+ }
92
+ getColumnWidth() {
93
+ return this.columnElement.clientWidth;
94
+ }
95
+ getColumnOffset() {
96
+ return (this.columnElement.getBoundingClientRect().left -
97
+ this.containerElement.getBoundingClientRect().left);
98
+ }
99
+ getWidthInRange([minWidth, maxWidth], width) {
100
+ return Math.min(Math.max(width, minWidth), maxWidth);
101
+ }
102
+ getResizeRange() {
103
+ const minWidth = this.getActualWidth(this.minWidth);
104
+ const maxWidth = this.getActualWidth(this.maxWidth);
105
+ return [minWidth, maxWidth];
106
+ }
107
+ getActualWidth(width) {
108
+ if (typeof width === 'number') {
109
+ return width;
110
+ }
111
+ else if (width.endsWith('px')) {
112
+ return parseInt(width.slice(0, -2));
113
+ }
114
+ else if (width.endsWith('%')) {
115
+ return ((this.containerElement.clientWidth * parseInt(width.slice(0, -1))) / 100);
116
+ }
117
+ }
118
+ isStickyLeftBorderColumn() {
119
+ return this.columnElement.classList.contains('aui-table-sticky-border-elem-left');
120
+ }
121
+ renderWidthStyles(width) {
122
+ const className = tableBem.element(`column-${this.tableColumnDefDirective.cssClassFriendlyName}`);
123
+ if (!this.hostAttr) {
124
+ this.hostAttr = `table-resizable-${tableColumnResizableID++}`;
125
+ this.containerElement.setAttribute(this.hostAttr, '');
126
+ }
127
+ const styleString = `
128
+ [${this.hostAttr}] .${className} {
129
+ flex: none !important;
130
+ width: ${width}px !important;
131
+ min-width: ${width}px !important;
132
+ max-width: ${width}px !important;
133
+ }
134
+ `;
135
+ if (this.styleElement) {
136
+ this.styleElement.innerHTML = styleString;
137
+ }
138
+ else {
139
+ this.styleElement = this.renderer2.createElement('style');
140
+ this.styleElement.innerHTML = styleString;
141
+ this.renderer2.appendChild(document.querySelector('head'), this.styleElement);
142
+ }
143
+ this.tableComponent.updateStickyColumnStyles();
144
+ }
145
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TableColumnResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
146
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: TableColumnResizableDirective, isStandalone: true, selector: "[auiTableColumnResizable]", inputs: { minWidth: "minWidth", maxWidth: "maxWidth" }, ngImport: i0 });
147
+ }
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TableColumnResizableDirective, decorators: [{
149
+ type: Directive,
150
+ args: [{
151
+ selector: '[auiTableColumnResizable]',
152
+ standalone: true,
153
+ }]
154
+ }], propDecorators: { minWidth: [{
155
+ type: Input
156
+ }], maxWidth: [{
157
+ type: Input
158
+ }] } });
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXJlc2l6YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvdGFibGUtY29sdW1uLXJlc2l6YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUVMLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEVBQ0wsUUFBUSxFQUNSLHVCQUF1QixFQUN2QixjQUFjLEdBRWYsTUFBTSxTQUFTLENBQUM7O0FBRWpCLElBQUksc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBRS9CLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBQzVELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztBQU14QixNQUFNLE9BQU8sNkJBQTZCO0lBRXhDLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFHbEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVBLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUQsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQVF4QyxhQUFhLEdBQzVCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDbEIsZ0JBQWdCLEdBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUV2QyxZQUFZLENBQW1CO0lBQy9CLFFBQVEsQ0FBUztJ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QkFDRCxLQUFLO21CQUNMLEtBQUs7O0tBRW5CLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO1NBQzNDO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztZQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FDeEIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2pELENBQUM7dUdBdk5VLDZCQUE2QjsyRkFBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFHQyxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7XG4gIHRhYmxlQmVtLFxuICBUYWJsZUNvbHVtbkRlZkRpcmVjdGl2ZSxcbiAgVGFibGVDb21wb25lbnQsXG4gIC8vIFRhYmxlU2Nyb2xsV3JhcHBlckRpcmVjdGl2ZSxcbn0gZnJvbSAnLi9pbmRleCc7XG5cbmxldCB0YWJsZUNvbHVtblJlc2l6YWJsZUlEID0gMDtcblxuY29uc3QgcmVzaXphYmxlQmVtID0gYnVpbGRCZW0oJ2F1aS10YWJsZS1jb2x1bW4tcmVzaXphYmxlJyk7XG5jb25zdCBtYXJrTGluZVdpZHRoID0gMTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F1aVRhYmxlQ29sdW1uUmVzaXphYmxlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uUmVzaXphYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpXG4gIG1pbldpZHRoID0gJzQwcHgnO1xuXG4gIEBJbnB1dCgpXG4gIG1heFdpZHRoID0gJzgwJSc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWJsZUNvbHVtbkRlZkRpcmVjdGl2ZSA9IGluamVjdChUYWJsZUNvbHVtbkRlZkRpcmVjdGl2ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFibGVDb21wb25lbnQgPSBpbmplY3QoVGFibGVDb21wb25lbnQpO1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IHRhYmxlU2Nyb2xsV3JhcHBlckRpcmVjdGl2ZSA9IGluamVjdChcbiAgLy8gICBUYWJsZVNjcm9sbFdyYXBwZXJEaXJlY3RpdmUsXG4gIC8vICAge1xuICAvLyAgICAgb3B0aW9uYWw6IHRydWUsXG4gIC8vICAgfSxcbiAgLy8gKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbHVtbkVsZW1lbnQ6IEhUTUxFbGVtZW50ID1cbiAgICBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9XG4gICAgdGhpcy50YWJsZUNvbXBvbmVudC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSBzdHlsZUVsZW1lbnQ6IEhUTUxTdHlsZUVsZW1lbnQ7XG4gIHByaXZhdGUgaG9zdEF0dHI6IHN0cmluZztcbiAgcHJpdmF0ZSByZXNpemVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgcmVzaXplSGFuZGxlID0gdGhpcy5jcmVhdGVSZXNpemVIYW5kbGUoKTtcbiAgICB0aGlzLmJpbmRSZXNpemFibGUocmVzaXplSGFuZGxlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVzaXplU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3R5bGVFbGVtZW50Py5yZW1vdmUoKTtcbiAgICBpZiAodGhpcy5ob3N0QXR0cikge1xuICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmhvc3RBdHRyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJpbmRSZXNpemFibGUocmVzaXplSGFuZGxlOiBIVE1MRWxlbWVudCkge1xuICAgIGZyb21FdmVudDxNb3VzZUV2ZW50PihyZXNpemVIYW5kbGUsICdtb3VzZWRvd24nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChtb3VzZURvd25FdmVudCA9PiB7XG4gICAgICAgICAgbW91c2VEb3duRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBtb3VzZURvd25FdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHJlc2l6ZUhhbmRsZSwgJ3Zpc2liaWxpdHknLCAnaGlkZGVuJyk7XG4gICAgICAgICAgY29uc3QgcmVzaXplUmFuZ2UgPSB0aGlzLmdldFJlc2l6ZVJhbmdlKCk7XG4gICAgICAgICAgY29uc3QgaW5pdGlhbE1vdXNlWCA9IG1vdXNlRG93bkV2ZW50LmNsaWVudFg7XG4gICAgICAgICAgY29uc3QgY29sdW1uV2lkdGggPSB0aGlzLmdldENvbHVtbldpZHRoKCk7XG4gICAgICAgICAgY29uc3QgY29sdW1uT2Zmc2V0ID0gdGhpcy5nZXRDb2x1bW5PZmZzZXQoKTtcbiAgICAgICAgICBjb25zdCByZXNpemVNYXJrTGluZSA9IHRoaXMuY3JlYXRlUmVzaXplTWFya0xpbmUoXG4gICAgICAgICAgICBjb2x1bW5PZmZzZXQgKyBjb2x1bW5XaWR0aCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IHJlc2l6ZU92ZXJsYXkgPSB0aGlzLmNyZWF0ZVJlc2l6ZU92ZXJsYXkoKTtcblxuICAgICAgICAgIGNvbnN0IG1vdXNlVXAkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2V1cCcpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgbW91c2VNb3ZlJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNlbW92ZScpLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwobW91c2VVcCQpLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICBtb3VzZU1vdmUkLnBpcGUoXG4gICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICBtb3VzZU1vdmVFdmVudCA9PiAoKSA9PlxuICAgICAgICAgICAgICAgICAgcmVzaXplTWFya0xpbmUudXBkYXRlT2Zmc2V0KFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5PZmZzZXQgK1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0V2lkdGhJblJhbmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzaXplUmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCArIG1vdXNlTW92ZUV2ZW50LmNsaWVudFggLSBpbml0aWFsTW91c2VYLFxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1vdXNlVXAkLnBpcGUoXG4gICAgICAgICAgICAgIG1hcChtb3VzZVVwRXZlbnQgPT4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnJlbW92ZVN0eWxlKHJlc2l6ZUhhbmRsZSwgJ3Zpc2liaWxpdHknKTtcbiAgICAgICAgICAgICAgICByZXNpemVNYXJrTGluZS5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgcmVzaXplT3ZlcmxheS5kZXN0cm95KCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcldpZHRoU3R5bGVzKFxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRXaWR0aEluUmFuZ2UoXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZVJhbmdlLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aCArIG1vdXNlVXBFdmVudC5jbGllbnRYIC0gaW5pdGlhbE1vdXNlWCxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShleGVjID0+IHtcbiAgICAgICAgZXhlYygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc2l6ZUhhbmRsZSgpIHtcbiAgICBjb25zdCByZXNpemVIYW5kbGU6IEhUTUxEaXZFbGVtZW50ID0gdGhpcy5yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlcjIuYWRkQ2xhc3MocmVzaXplSGFuZGxlLCByZXNpemFibGVCZW0uZWxlbWVudCgnaGFuZGxlJykpO1xuICAgIHRoaXMucmVuZGVyZXIyLmFwcGVuZENoaWxkKHRoaXMuY29sdW1uRWxlbWVudCwgcmVzaXplSGFuZGxlKTtcblxuICAgIHJldHVybiByZXNpemVIYW5kbGU7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc2l6ZU1hcmtMaW5lKGluaXRpYWxPZmZzZXQ6IG51bWJlcikge1xuICAgIGNvbnN0IG1hcmtMaW5lOiBIVE1MRWxlbWVudCA9IHRoaXMucmVuZGVyZXIyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIyLmFkZENsYXNzKG1hcmtMaW5lLCByZXNpemFibGVCZW0uZWxlbWVudCgnbWFyay1saW5lJykpO1xuICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKFxuICAgICAgbWFya0xpbmUsXG4gICAgICAnbGVmdCcsXG4gICAgICBpbml0aWFsT2Zmc2V0IC0gbWFya0xpbmVXaWR0aCArICdweCcsXG4gICAgKTtcbiAgICBpZiAodGhpcy5pc1N0aWNreUxlZnRCb3JkZXJDb2x1bW4oKSkge1xuICAgICAgdGhpcy5yZW5kZXJlcjIuYWRkQ2xhc3MobWFya0xpbmUsICdpblN0aWNreUJvcmRlckVsZW1MZWZ0Jyk7XG4gICAgfVxuICAgIHRoaXMucmVuZGVyZXIyLmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyRWxlbWVudCwgbWFya0xpbmUpO1xuICAgIHJldHVybiB7XG4gICAgICBlbGVtZW50OiBtYXJrTGluZSxcbiAgICAgIHVwZGF0ZU9mZnNldDogKG9mZnNldDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKFxuICAgICAgICAgIG1hcmtMaW5lLFxuICAgICAgICAgICdsZWZ0JyxcbiAgICAgICAgICBvZmZzZXQgLSBtYXJrTGluZVdpZHRoICsgJ3B4JyxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBkZXN0cm95OiAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIyLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyRWxlbWVudCwgbWFya0xpbmUpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZXNpemVPdmVybGF5KCkge1xuICAgIGNvbnN0IHJlc2l6ZU92ZXJsYXkgPSB0aGlzLnJlbmRlcmVyMi5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyMi5hZGRDbGFzcyhyZXNpemVPdmVybGF5LCByZXNpemFibGVCZW0uZWxlbWVudCgnb3ZlcmxheScpKTtcbiAgICB0aGlzLnJlbmRlcmVyMi5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lckVsZW1lbnQsIHJlc2l6ZU92ZXJsYXkpO1xuICAgIHJldHVybiB7XG4gICAgICBlbGVtZW50OiByZXNpemVPdmVybGF5LFxuICAgICAgZGVzdHJveTogKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyMi5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lckVsZW1lbnQsIHJlc2l6ZU92ZXJsYXkpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5XaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5FbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5PZmZzZXQoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY29sdW1uRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cbiAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0V2lkdGhJblJhbmdlKFxuICAgIFttaW5XaWR0aCwgbWF4V2lkdGhdOiBbbnVtYmVyLCBudW1iZXJdLFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHdpZHRoLCBtaW5XaWR0aCksIG1heFdpZHRoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVzaXplUmFuZ2UoKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgY29uc3QgbWluV2lkdGggPSB0aGlzLmdldEFjdHVhbFdpZHRoKHRoaXMubWluV2lkdGgpO1xuICAgIGNvbnN0IG1heFdpZHRoID0gdGhpcy5nZXRBY3R1YWxXaWR0aCh0aGlzLm1heFdpZHRoKTtcbiAgICByZXR1cm4gW21pbldpZHRoLCBtYXhXaWR0aF07XG4gIH1cblxuICBwcml2YXRlIGdldEFjdHVhbFdpZHRoKHdpZHRoOiBudW1iZXIgfCBzdHJpbmcpOiBudW1iZXIge1xuICAgIGlmICh0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gd2lkdGg7XG4gICAgfSBlbHNlIGlmICh3aWR0aC5lbmRzV2l0aCgncHgnKSkge1xuICAgICAgcmV0dXJuIHBhcnNlSW50KHdpZHRoLnNsaWNlKDAsIC0yKSk7XG4gICAgfSBlbHNlIGlmICh3aWR0aC5lbmRzV2l0aCgnJScpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAodGhpcy5jb250YWluZXJFbGVtZW50LmNsaWVudFdpZHRoICogcGFyc2VJbnQod2lkdGguc2xpY2UoMCwgLTEpKSkgLyAxMDBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1N0aWNreUxlZnRCb3JkZXJDb2x1bW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXG4gICAgICAnYXVpLXRhYmxlLXN0aWNreS1ib3JkZXItZWxlbS1sZWZ0JyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJXaWR0aFN0eWxlcyh3aWR0aDogbnVtYmVyKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gdGFibGVCZW0uZWxlbWVudChcbiAgICAgIGBjb2x1bW4tJHt0aGlzLnRhYmxlQ29sdW1uRGVmRGlyZWN0aXZlLmNzc0NsYXNzRnJpZW5kbHlOYW1lfWAsXG4gICAgKTtcbiAgICBpZiAoIXRoaXMuaG9zdEF0dHIpIHtcbiAgICAgIHRoaXMuaG9zdEF0dHIgPSBgdGFibGUtcmVzaXphYmxlLSR7dGFibGVDb2x1bW5SZXNpemFibGVJRCsrfWA7XG4gICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMuaG9zdEF0dHIsICcnKTtcbiAgICB9XG4gICAgY29uc3Qgc3R5bGVTdHJpbmcgPSBgXG4gICAgIFske3RoaXMuaG9zdEF0dHJ9XSAuJHtjbGFzc05hbWV9IHtcbiAgICAgIGZsZXg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAke3dpZHRofXB4ICFpbXBvcnRhbnQ7XG4gICAgICBtaW4td2lkdGg6ICR7d2lkdGh9cHggIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogJHt3aWR0aH1weCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBgO1xuICAgIGlmICh0aGlzLnN0eWxlRWxlbWVudCkge1xuICAgICAgdGhpcy5zdHlsZUVsZW1lbnQuaW5uZXJIVE1MID0gc3R5bGVTdHJpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3R5bGVFbGVtZW50ID0gdGhpcy5yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHRoaXMuc3R5bGVFbGVtZW50LmlubmVySFRNTCA9IHN0eWxlU3RyaW5nO1xuICAgICAgdGhpcy5yZW5kZXJlcjIuYXBwZW5kQ2hpbGQoXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKSxcbiAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudGFibGVDb21wb25lbnQudXBkYXRlU3RpY2t5Q29sdW1uU3R5bGVzKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,13 +1,12 @@
1
1
  import { CdkHeaderCell } from '@angular/cdk/table';
2
2
  import { Directive } from '@angular/core';
3
- import { buildBem } from '../utils';
3
+ import { tableBem } from './table.component';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/cdk/table";
6
- const bem = buildBem('aui-table');
7
6
  export class TableHeaderCellDirective extends CdkHeaderCell {
8
7
  constructor(columnDef, elementRef) {
9
8
  super(columnDef, elementRef);
10
- elementRef.nativeElement.classList.add(bem.element(`column-${columnDef.cssClassFriendlyName}`));
9
+ elementRef.nativeElement.classList.add(tableBem.element(`column-${columnDef.cssClassFriendlyName}`));
11
10
  }
12
11
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TableHeaderCellDirective, deps: [{ token: i1.CdkColumnDef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
13
12
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: TableHeaderCellDirective, isStandalone: true, selector: "aui-table-header-cell", host: { attributes: { "role": "columnheader" }, classAttribute: "aui-table__header-cell" }, usesInheritance: true, ngImport: i0 });
@@ -23,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
23
22
  standalone: true,
24
23
  }]
25
24
  }], ctorParameters: function () { return [{ type: i1.CdkColumnDef }, { type: i0.ElementRef }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNlbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLWhlYWRlci1jZWxsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBRXBDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQVlsQyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQUN6RCxZQUFZLFNBQXVCLEVBQUUsVUFBbUM7UUFDdEUsS0FBSyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3QixVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQ3BDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxTQUFTLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUN4RCxDQUFDO0lBQ0osQ0FBQzt1R0FOVSx3QkFBd0I7MkZBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFUcEMsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLHdCQUF3Qjt3QkFDL0IsSUFBSSxFQUFFLGNBQWM7cUJBQ3JCO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0NvbHVtbkRlZiwgQ2RrSGVhZGVyQ2VsbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGJlbSA9IGJ1aWxkQmVtKCdhdWktdGFibGUnKTtcblxuLyoqIEhlYWRlciBjZWxsIHRlbXBsYXRlIGNvbnRhaW5lciB0aGF0IGFkZHMgdGhlIHJpZ2h0IGNsYXNzZXMgYW5kIHJvbGUuICovXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhdWktdGFibGUtaGVhZGVyLWNlbGwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdhdWktdGFibGVfX2hlYWRlci1jZWxsJyxcbiAgICByb2xlOiAnY29sdW1uaGVhZGVyJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVIZWFkZXJDZWxsRGlyZWN0aXZlIGV4dGVuZHMgQ2RrSGVhZGVyQ2VsbCB7XG4gIGNvbnN0cnVjdG9yKGNvbHVtbkRlZjogQ2RrQ29sdW1uRGVmLCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHN1cGVyKGNvbHVtbkRlZiwgZWxlbWVudFJlZik7XG4gICAgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXG4gICAgICBiZW0uZWxlbWVudChgY29sdW1uLSR7Y29sdW1uRGVmLmNzc0NsYXNzRnJpZW5kbHlOYW1lfWApLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNlbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLWhlYWRlci1jZWxsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFZN0MsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFDekQsWUFBWSxTQUF1QixFQUFFLFVBQW1DO1FBQ3RFLEtBQUssQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0IsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNwQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsU0FBUyxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FDN0QsQ0FBQztJQUNKLENBQUM7dUdBTlUsd0JBQXdCOzJGQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBVHBDLFNBQVM7bUJBQUM7b0JBRVQsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSx3QkFBd0I7d0JBQy9CLElBQUksRUFBRSxjQUFjO3FCQUNyQjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtDb2x1bW5EZWYsIENka0hlYWRlckNlbGwgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IHRhYmxlQmVtIH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xuXG4vKiogSGVhZGVyIGNlbGwgdGVtcGxhdGUgY29udGFpbmVyIHRoYXQgYWRkcyB0aGUgcmlnaHQgY2xhc3NlcyBhbmQgcm9sZS4gKi9cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2F1aS10YWJsZS1oZWFkZXItY2VsbCcsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2F1aS10YWJsZV9faGVhZGVyLWNlbGwnLFxuICAgIHJvbGU6ICdjb2x1bW5oZWFkZXInLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRlckNlbGxEaXJlY3RpdmUgZXh0ZW5kcyBDZGtIZWFkZXJDZWxsIHtcbiAgY29uc3RydWN0b3IoY29sdW1uRGVmOiBDZGtDb2x1bW5EZWYsIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgc3VwZXIoY29sdW1uRGVmLCBlbGVtZW50UmVmKTtcbiAgICBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcbiAgICAgIHRhYmxlQmVtLmVsZW1lbnQoYGNvbHVtbi0ke2NvbHVtbkRlZi5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gKSxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,21 +1,21 @@
1
1
  import { CdkScrollable } from '@angular/cdk/scrolling';
2
- import { Directive, Host, HostBinding, Input, Optional, } from '@angular/core';
2
+ import { Directive, ElementRef, Host, HostBinding, inject, Input, Optional, } from '@angular/core';
3
3
  import { Subject, fromEvent, merge, startWith, takeUntil, switchMap, NEVER, BehaviorSubject, } from 'rxjs';
4
- import { coerceAttrBoolean, observeResizeOn } from '../utils';
4
+ import { buildBem, coerceAttrBoolean, observeResizeOn } from '../utils';
5
+ import { tableBem } from './table.component';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/cdk/scrolling";
7
8
  import * as i2 from "./table.component";
8
9
  import * as i3 from "@angular/cdk/bidi";
9
- const CLASS_PREFIX = 'aui-table';
10
- const SHADOW_CLASS = `${CLASS_PREFIX}__scroll-shadow`;
11
- const HAS_SCROLL_CLASS = `${SHADOW_CLASS}--has-scroll`;
12
- const SCROLLING_CLASS = `${SHADOW_CLASS}--scrolling`;
13
- const SCROLL_BEFORE_END_CLASS = `${SHADOW_CLASS}--before-end`;
10
+ const shadowClass = tableBem.element('scroll-shadow');
11
+ const shadowBem = buildBem(shadowClass);
12
+ const scrollBeforeEndClass = shadowBem.modifier('before-end');
14
13
  const HAS_TABLE_TOP_SHADOW = 'hasTableTopShadow';
15
14
  const HAS_TABLE_BOTTOM_SHADOW = 'hasTableBottomShadow';
16
15
  const HAS_TABLE_VERTICAL_SCROLL = 'hasTableVerticalScroll';
17
16
  export class TableScrollWrapperDirective {
18
17
  auiTableScrollWrapper = '100%';
18
+ elementRef = inject(ElementRef);
19
19
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TableScrollWrapperDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
20
20
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: TableScrollWrapperDirective, isStandalone: true, selector: "[auiTableScrollWrapper]", inputs: { auiTableScrollWrapper: "auiTableScrollWrapper" }, host: { properties: { "style.max-height": "this.auiTableScrollWrapper" }, classAttribute: "aui-table__scroll-wrapper" }, ngImport: i0 });
21
21
  }
@@ -52,8 +52,7 @@ export class TableScrollableDirective extends CdkScrollable {
52
52
  this.el = el;
53
53
  this.table = table;
54
54
  }
55
- SCROLL_BEFORE_END_CLASS = true;
56
- SHADOW_CLASS = true;
55
+ className = `${scrollBeforeEndClass} ${shadowClass}`;
57
56
  get containerEl() {
58
57
  return this.el.nativeElement;
59
58
  }
@@ -96,16 +95,16 @@ export class TableScrollableDirective extends CdkScrollable {
96
95
  }
97
96
  mutateHorizontalScroll() {
98
97
  const scrollDis = this.containerEl.scrollWidth - this.containerEl.offsetWidth;
99
- this.placeClassList(this.containerEl.classList, scrollDis > 0, HAS_SCROLL_CLASS);
98
+ this.placeClassList(this.containerEl.classList, scrollDis > 0, shadowBem.modifier('has-scroll'));
100
99
  const scrollLeft = this.containerEl.scrollLeft;
101
- this.placeClassList(this.containerEl.classList, scrollLeft > 0, SCROLLING_CLASS);
102
- this.placeClassList(this.containerEl.classList, scrollLeft < scrollDis, SCROLL_BEFORE_END_CLASS);
100
+ this.placeClassList(this.containerEl.classList, scrollLeft > 0, shadowBem.modifier('scrolling'));
101
+ this.placeClassList(this.containerEl.classList, scrollLeft < scrollDis, scrollBeforeEndClass);
103
102
  }
104
103
  placeClassList(classList, condition, className) {
105
104
  classList[condition ? 'add' : 'remove'](className);
106
105
  }
107
106
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TableScrollableDirective, deps: [{ token: i0.ElementRef }, { token: i1.ScrollDispatcher }, { token: i0.NgZone }, { token: i2.TableComponent, host: true }, { token: i3.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
108
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: TableScrollableDirective, isStandalone: true, selector: "[auiTableScrollable]", inputs: { scrollable: ["auiTableScrollable", "scrollable"] }, host: { properties: { "class.aui-table__scroll-shadow--before-end": "this.SCROLL_BEFORE_END_CLASS", "class.aui-table__scroll-shadow": "this.SHADOW_CLASS" } }, providers: [
107
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: TableScrollableDirective, isStandalone: true, selector: "[auiTableScrollable]", inputs: { scrollable: ["auiTableScrollable", "scrollable"] }, host: { properties: { "class": "this.className" } }, providers: [
109
108
  { provide: CdkScrollable, useExisting: TableScrollableDirective },
110
109
  ], usesInheritance: true, ngImport: i0 });
111
110
  }
@@ -125,11 +124,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
125
124
  }] }]; }, propDecorators: { scrollable: [{
126
125
  type: Input,
127
126
  args: ['auiTableScrollable']
128
- }], SCROLL_BEFORE_END_CLASS: [{
127
+ }], className: [{
129
128
  type: HostBinding,
130
- args: [`class.${SCROLL_BEFORE_END_CLASS}`]
131
- }], SHADOW_CLASS: [{
132
- type: HostBinding,
133
- args: [`class.${SHADOW_CLASS}`]
129
+ args: ['class']
134
130
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2Nyb2xsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1zY3JvbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUVMLFNBQVMsRUFFVCxJQUFJLEVBQ0osV0FBVyxFQUNYLEtBQUssRUFJTCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxlQUFlLEdBQ2hCLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7QUFJOUQsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDO0FBQ2pDLE1BQU0sWUFBWSxHQUFHLEdBQUcsWUFBWSxpQkFBaUIsQ0FBQztBQUN0RCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsWUFBWSxjQUFjLENBQUM7QUFDdkQsTUFBTSxlQUFlLEdBQUcsR0FBRyxZQUFZLGFBQWEsQ0FBQztBQUNyRCxNQUFNLHVCQUF1QixHQUFHLEdBQUcsWUFBWSxjQUFjLENBQUM7QUFFOUQsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztBQUNqRCxNQUFNLHVCQUF1QixHQUFHLHNCQUFzQixDQUFDO0FBQ3ZELE1BQU0seUJBQXlCLEdBQUcsd0JBQXdCLENBQUM7QUFTM0QsTUFBTSxPQUFPLDJCQUEyQjtJQUd0QyxxQkFBcUIsR0FBRyxNQUFNLENBQUM7dUdBSHBCLDJCQUEyQjsyRkFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQVB2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLElBQUksRUFBRTt3QkFD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QUNyRCxDQUFDO3VHQXJJVSx3QkFBd0I7MkZBQXhCLHdCQUF3QixnU0FMeEI7WUFDVCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFO1NBQ2xFOzsyRkFHVSx3QkFBd0I7a0JBUHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLDBCQUEwQixFQUFFO3FCQUNsRTtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQXdCSSxJQUFJOzswQkFDSixRQUFROzRDQW5CUCxVQUFVO3NCQURiLEtBQUs7dUJBQUMsb0JBQW9CO2dCQTBCM0IsdUJBQXVCO3NCQUR0QixXQUFXO3VCQUFDLFNBQVMsdUJBQXVCLEVBQUU7Z0JBSS9DLFlBQVk7c0JBRFgsV0FBVzt1QkFBQyxTQUFTLFlBQVksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSwgU2Nyb2xsRGlzcGF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFN1YmplY3QsXG4gIGZyb21FdmVudCxcbiAgbWVyZ2UsXG4gIHN0YXJ0V2l0aCxcbiAgdGFrZVVudGlsLFxuICBzd2l0Y2hNYXAsXG4gIE5FVkVSLFxuICBCZWhhdmlvclN1YmplY3QsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBjb2VyY2VBdHRyQm9vbGVhbiwgb2JzZXJ2ZVJlc2l6ZU9uIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcblxuY29uc3QgQ0xBU1NfUFJFRklYID0gJ2F1aS10YWJsZSc7XG5jb25zdCBTSEFET1dfQ0xBU1MgPSBgJHtDTEFTU19QUkVGSVh9X19zY3JvbGwtc2hhZG93YDtcbmNvbnN0IEhBU19TQ1JPTExfQ0xBU1MgPSBgJHtTSEFET1dfQ0xBU1N9LS1oYXMtc2Nyb2xsYDtcbmNvbnN0IFNDUk9MTElOR19DTEFTUyA9IGAke1NIQURPV19DTEFTU30tLXNjcm9sbGluZ2A7XG5jb25zdCBTQ1JPTExfQkVGT1JFX0VORF9DTEFTUyA9IGAke1NIQURPV19DTEFTU30tLWJlZm9yZS1lbmRgO1xuXG5jb25zdCBIQVNfVEFCTEVfVE9QX1NIQURPVyA9ICdoYXNUYWJsZVRvcFNoYWRvdyc7XG5jb25zdCBIQVNfVEFCTEVfQk9UVE9NX1NIQURPVyA9ICdoYXNUYWJsZUJvdHRvbVNoYWRvdyc7XG5jb25zdCBIQVNfVEFCTEVfVkVSVElDQUxfU0NST0xMID0gJ2hhc1RhYmxlVmVydGljYWxTY3JvbGwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXVpVGFibGVTY3JvbGxXcmFwcGVyXScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2F1aS10YWJsZV9fc2Nyb2xsLXdyYXBwZXInLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVNjcm9sbFdyYXBwZXJEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC1oZWlnaHQnKVxuICBASW5wdXQoKVxuICBhdWlUYWJsZVNjcm9sbFdyYXBwZXIgPSAnMTAwJSc7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdWlUYWJsZVNjcm9sbGFibGVdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBDZGtTY3JvbGxhYmxlLCB1c2VFeGlzdGluZzogVGFibGVTY3JvbGxhYmxlRGlyZWN0aXZlIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlU2Nyb2xsYWJsZURpcmVjdGl2ZVxuICBleHRlbmRzIENka1Njcm9sbGFibGVcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoJ2F1aVRhYmxlU2Nyb2xsYWJsZScpXG4gIHNldCBzY3JvbGxhYmxlKHNjcm9sbGFibGU6IGJvb2xlYW4gfCAnJykge1xuICAgIHRoaXMuX3Njcm9sbGFibGUgPSBjb2VyY2VBdHRyQm9vbGVhbihzY3JvbGxhYmxlKTtcbiAgICB0aGlzLnNjcm9sbGFibGUkJC5uZXh0KHRoaXMuX3Njcm9sbGFibGUpO1xuICB9XG5cbiAgZ2V0IHNjcm9sbGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbGFibGU7XG4gIH1cblxuICBwcml2YXRlIF9zY3JvbGxhYmxlID0gdHJ1ZTtcblxuICBzY3JvbGxhYmxlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuX3Njcm9sbGFibGUpO1xuICBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgQEhvc3QoKSBwcml2YXRlIHJlYWRvbmx5IHRhYmxlOiBUYWJsZUNvbXBvbmVudDx1bmtub3duPixcbiAgICBAT3B0aW9uYWwoKSBkaXI/OiBEaXJlY3Rpb25hbGl0eSxcbiAgKSB7XG4gICAgc3VwZXIoZWwsIHNjcm9sbERpc3BhdGNoZXIsIG5nWm9uZSwgZGlyKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZyhgY2xhc3MuJHtTQ1JPTExfQkVGT1JFX0VORF9DTEFTU31gKVxuICBTQ1JPTExfQkVGT1JFX0VORF9DTEFTUyA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKGBjbGFzcy4ke1NIQURPV19DTEFTU31gKVxuICBTSEFET1dfQ0xBU1MgPSB0cnVlO1xuXG4gIGdldCBjb250YWluZXJFbCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsYWJsZSkge1xuICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyLnJlZ2lzdGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnZpZXdNdXRhdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHZpZXdNdXRhdGlvbigpIHtcbiAgICB0aGlzLnNjcm9sbGFibGUkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChzY3JvbGxhYmxlID0+IHtcbiAgICAgICAgICBpZiAoc2Nyb2xsYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyLnJlZ2lzdGVyKHRoaXMpO1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgICBvYnNlcnZlUmVzaXplT24odGhpcy5jb250YWluZXJFbCksXG4gICAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmNvbnRhaW5lckVsLCAnc2Nyb2xsJyksXG4gICAgICAgICAgICApLnBpcGUoc3RhcnRXaXRoKG51bGwpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXIuZGVyZWdpc3Rlcih0aGlzKTtcbiAgICAgICAgICByZXR1cm4gTkVWRVI7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm11dGF0ZVZlcnRpY2FsU2Nyb2xsKCk7XG4gICAgICAgIHRoaXMubXV0YXRlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBtdXRhdGVWZXJ0aWNhbFNjcm9sbCgpIHtcbiAgICBjb25zdCBzY3JvbGxEaXMgPVxuICAgICAgdGhpcy5jb250YWluZXJFbC5zY3JvbGxIZWlnaHQgLSB0aGlzLmNvbnRhaW5lckVsLm9mZnNldEhlaWdodDtcblxuICAgIHRoaXMucGxhY2VDbGFzc0xpc3QoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsLmNsYXNzTGlzdCxcbiAgICAgIHNjcm9sbERpcyA+IDAsXG4gICAgICBIQVNfVEFCTEVfVkVSVElDQUxfU0NST0xMLFxuICAgICk7XG5cbiAgICBjb25zdCBzY3JvbGxUb3AgPSB0aGlzLmNvbnRhaW5lckVsLnNjcm9sbFRvcDtcbiAgICB0aGlzLnBsYWNlQ2xhc3NMaXN0KFxuICAgICAgdGhpcy5jb250YWluZXJFbC5jbGFzc0xpc3QsXG4gICAgICBzY3JvbGxUb3AgPiAwLFxuICAgICAgSEFTX1RBQkxFX1RPUF9TSEFET1csXG4gICAgKTtcbiAgICB0aGlzLnBsYWNlQ2xhc3NMaXN0KFxuICAgICAgdGhpcy5jb250YWluZXJFbC5jbGFzc0xpc3QsXG4gICAgICBzY3JvbGxUb3AgPCBzY3JvbGxEaXMsXG4gICAgICBIQVNfVEFCTEVfQk9UVE9NX1NIQURPVyxcbiAgICApO1xuXG4gICAgLy8g5YW85a655bGP5bmV57yp5pS+5pivIHN0aWNreeWkmuWIl+eahOagt+W8j+mXrumimFxuICAgIHRoaXMudGFibGUudXBkYXRlU3RpY2t5Q29sdW1uU3R5bGVzKCk7XG4gIH1cblxuICBtdXRhdGVIb3Jpem9udGFsU2Nyb2xsKCkge1xuICAgIGNvbnN0IHNjcm9sbERpcyA9XG4gICAgICB0aGlzLmNvbnRhaW5lckVsLnNjcm9sbFdpZHRoIC0gdGhpcy5jb250YWluZXJFbC5vZmZzZXRXaWR0aDtcblxuICAgIHRoaXMucGxhY2VDbGFzc0xpc3QoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsLmNsYXNzTGlzdCxcbiAgICAgIHNjcm9sbERpcyA+IDAsXG4gICAgICBIQVNfU0NST0xMX0NMQVNTLFxuICAgICk7XG5cbiAgICBjb25zdCBzY3JvbGxMZWZ0ID0gdGhpcy5jb250YWluZXJFbC5zY3JvbGxMZWZ0O1xuICAgIHRoaXMucGxhY2VDbGFzc0xpc3QoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsLmNsYXNzTGlzdCxcbiAgICAgIHNjcm9sbExlZnQgPiAwLFxuICAgICAgU0NST0xMSU5HX0NMQVNTLFxuICAgICk7XG4gICAgdGhpcy5wbGFjZUNsYXNzTGlzdChcbiAgICAgIHRoaXMuY29udGFpbmVyRWwuY2xhc3NMaXN0LFxuICAgICAgc2Nyb2xsTGVmdCA8IHNjcm9sbERpcyxcbiAgICAgIFNDUk9MTF9CRUZPUkVfRU5EX0NMQVNTLFxuICAgICk7XG4gIH1cblxuICBwbGFjZUNsYXNzTGlzdChcbiAgICBjbGFzc0xpc3Q6IERPTVRva2VuTGlzdCxcbiAgICBjb25kaXRpb246IGJvb2xlYW4sXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICkge1xuICAgIGNsYXNzTGlzdFtjb25kaXRpb24gPyAnYWRkJyA6ICdyZW1vdmUnXShjbGFzc05hbWUpO1xuICB9XG59XG4iXX0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2Nyb2xsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1zY3JvbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGVBQWUsR0FDaEIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsUUFBUSxFQUFrQixNQUFNLG1CQUFtQixDQUFDOzs7OztBQUU3RCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN4QyxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFOUQsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztBQUNqRCxNQUFNLHVCQUF1QixHQUFHLHNCQUFzQixDQUFDO0FBQ3ZELE1BQU0seUJBQXlCLEdBQUcsd0JBQXdCLENBQUM7QUFTM0QsTUFBTSxPQUFPLDJCQUEyQjtJQUd0QyxxQkFBcUIsR0FBRyxNQUFNLENBQUM7SUFFL0IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzt1R0FMckIsMkJBQTJCOzJGQUEzQiwyQkFBMkI7OzJG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QUF1QixFQUN2QixTQUFrQixFQUNsQixTQUFpQjtRQUVqQixTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7dUdBbElVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHNMQUx4QjtZQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsd0JBQXdCLEVBQUU7U0FDbEU7OzJGQUdVLHdCQUF3QjtrQkFQcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsMEJBQTBCLEVBQUU7cUJBQ2xFO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBd0JJLElBQUk7OzBCQUNKLFFBQVE7NENBbkJQLFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBMEIzQixTQUFTO3NCQURSLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSwgU2Nyb2xsRGlzcGF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU3ViamVjdCxcbiAgZnJvbUV2ZW50LFxuICBtZXJnZSxcbiAgc3RhcnRXaXRoLFxuICB0YWtlVW50aWwsXG4gIHN3aXRjaE1hcCxcbiAgTkVWRVIsXG4gIEJlaGF2aW9yU3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGJ1aWxkQmVtLCBjb2VyY2VBdHRyQm9vbGVhbiwgb2JzZXJ2ZVJlc2l6ZU9uIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyB0YWJsZUJlbSwgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XG5cbmNvbnN0IHNoYWRvd0NsYXNzID0gdGFibGVCZW0uZWxlbWVudCgnc2Nyb2xsLXNoYWRvdycpO1xuY29uc3Qgc2hhZG93QmVtID0gYnVpbGRCZW0oc2hhZG93Q2xhc3MpO1xuY29uc3Qgc2Nyb2xsQmVmb3JlRW5kQ2xhc3MgPSBzaGFkb3dCZW0ubW9kaWZpZXIoJ2JlZm9yZS1lbmQnKTtcblxuY29uc3QgSEFTX1RBQkxFX1RPUF9TSEFET1cgPSAnaGFzVGFibGVUb3BTaGFkb3cnO1xuY29uc3QgSEFTX1RBQkxFX0JPVFRPTV9TSEFET1cgPSAnaGFzVGFibGVCb3R0b21TaGFkb3cnO1xuY29uc3QgSEFTX1RBQkxFX1ZFUlRJQ0FMX1NDUk9MTCA9ICdoYXNUYWJsZVZlcnRpY2FsU2Nyb2xsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F1aVRhYmxlU2Nyb2xsV3JhcHBlcl0nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdhdWktdGFibGVfX3Njcm9sbC13cmFwcGVyJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVTY3JvbGxXcmFwcGVyRGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JylcbiAgQElucHV0KClcbiAgYXVpVGFibGVTY3JvbGxXcmFwcGVyID0gJzEwMCUnO1xuXG4gIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdWlUYWJsZVNjcm9sbGFibGVdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBDZGtTY3JvbGxhYmxlLCB1c2VFeGlzdGluZzogVGFibGVTY3JvbGxhYmxlRGlyZWN0aXZlIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlU2Nyb2xsYWJsZURpcmVjdGl2ZVxuICBleHRlbmRzIENka1Njcm9sbGFibGVcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoJ2F1aVRhYmxlU2Nyb2xsYWJsZScpXG4gIHNldCBzY3JvbGxhYmxlKHNjcm9sbGFibGU6IGJvb2xlYW4gfCAnJykge1xuICAgIHRoaXMuX3Njcm9sbGFibGUgPSBjb2VyY2VBdHRyQm9vbGVhbihzY3JvbGxhYmxlKTtcbiAgICB0aGlzLnNjcm9sbGFibGUkJC5uZXh0KHRoaXMuX3Njcm9sbGFibGUpO1xuICB9XG5cbiAgZ2V0IHNjcm9sbGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbGFibGU7XG4gIH1cblxuICBwcml2YXRlIF9zY3JvbGxhYmxlID0gdHJ1ZTtcblxuICBzY3JvbGxhYmxlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuX3Njcm9sbGFibGUpO1xuICBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgQEhvc3QoKSBwcml2YXRlIHJlYWRvbmx5IHRhYmxlOiBUYWJsZUNvbXBvbmVudDx1bmtub3duPixcbiAgICBAT3B0aW9uYWwoKSBkaXI/OiBEaXJlY3Rpb25hbGl0eSxcbiAgKSB7XG4gICAgc3VwZXIoZWwsIHNjcm9sbERpc3BhdGNoZXIsIG5nWm9uZSwgZGlyKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBjbGFzc05hbWUgPSBgJHtzY3JvbGxCZWZvcmVFbmRDbGFzc30gJHtzaGFkb3dDbGFzc31gO1xuXG4gIGdldCBjb250YWluZXJFbCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsYWJsZSkge1xuICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyLnJlZ2lzdGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnZpZXdNdXRhdGlvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHZpZXdNdXRhdGlvbigpIHtcbiAgICB0aGlzLnNjcm9sbGFibGUkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChzY3JvbGxhYmxlID0+IHtcbiAgICAgICAgICBpZiAoc2Nyb2xsYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyLnJlZ2lzdGVyKHRoaXMpO1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgICBvYnNlcnZlUmVzaXplT24odGhpcy5jb250YWluZXJFbCksXG4gICAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmNvbnRhaW5lckVsLCAnc2Nyb2xsJyksXG4gICAgICAgICAgICApLnBpcGUoc3RhcnRXaXRoKG51bGwpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXIuZGVyZWdpc3Rlcih0aGlzKTtcbiAgICAgICAgICByZXR1cm4gTkVWRVI7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm11dGF0ZVZlcnRpY2FsU2Nyb2xsKCk7XG4gICAgICAgIHRoaXMubXV0YXRlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBtdXRhdGVWZXJ0aWNhbFNjcm9sbCgpIHtcbiAgICBjb25zdCBzY3JvbGxEaXMgPVxuICAgICAgdGhpcy5jb250YWluZXJFbC5zY3JvbGxIZWlnaHQgLSB0aGlzLmNvbnRhaW5lckVsLm9mZnNldEhlaWdodDtcblxuICAgIHRoaXMucGxhY2VDbGFzc0xpc3QoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsLmNsYXNzTGlzdCxcbiAgICAgIHNjcm9sbERpcyA+IDAsXG4gICAgICBIQVNfVEFCTEVfVkVSVElDQUxfU0NST0xMLFxuICAgICk7XG5cbiAgICBjb25zdCBzY3JvbGxUb3AgPSB0aGlzLmNvbnRhaW5lckVsLnNjcm9sbFRvcDtcbiAgICB0aGlzLnBsYWNlQ2xhc3NMaXN0KFxuICAgICAgdGhpcy5jb250YWluZXJFbC5jbGFzc0xpc3QsXG4gICAgICBzY3JvbGxUb3AgPiAwLFxuICAgICAgSEFTX1RBQkxFX1RPUF9TSEFET1csXG4gICAgKTtcbiAgICB0aGlzLnBsYWNlQ2xhc3NMaXN0KFxuICAgICAgdGhpcy5jb250YWluZXJFbC5jbGFzc0xpc3QsXG4gICAgICBzY3JvbGxUb3AgPCBzY3JvbGxEaXMsXG4gICAgICBIQVNfVEFCTEVfQk9UVE9NX1NIQURPVyxcbiAgICApO1xuXG4gICAgLy8g5YW85a655bGP5bmV57yp5pS+5pivIHN0aWNreeWkmuWIl+eahOagt+W8j+mXrumimFxuICAgIHRoaXMudGFibGUudXBkYXRlU3RpY2t5Q29sdW1uU3R5bGVzKCk7XG4gIH1cblxuICBtdXRhdGVIb3Jpem9udGFsU2Nyb2xsKCkge1xuICAgIGNvbnN0IHNjcm9sbERpcyA9XG4gICAgICB0aGlzLmNvbnRhaW5lckVsLnNjcm9sbFdpZHRoIC0gdGhpcy5jb250YWluZXJFbC5vZmZzZXRXaWR0aDtcblxuICAgIHRoaXMucGxhY2VDbGFzc0xpc3QoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsLmNsYXNzTGlzdCxcbiAgICAgIHNjcm9sbERpcyA+IDAsXG4gICAgICBzaGFkb3dCZW0ubW9kaWZpZXIoJ2hhcy1zY3JvbGwnKSxcbiAgICApO1xuXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuY29udGFpbmVyRWwuc2Nyb2xsTGVmdDtcbiAgICB0aGlzLnBsYWNlQ2xhc3NMaXN0KFxuICAgICAgdGhpcy5jb250YWluZXJFbC5jbGFzc0xpc3QsXG4gICAgICBzY3JvbGxMZWZ0ID4gMCxcbiAgICAgIHNoYWRvd0JlbS5tb2RpZmllcignc2Nyb2xsaW5nJyksXG4gICAgKTtcbiAgICB0aGlzLnBsYWNlQ2xhc3NMaXN0KFxuICAgICAgdGhpcy5jb250YWluZXJFbC5jbGFzc0xpc3QsXG4gICAgICBzY3JvbGxMZWZ0IDwgc2Nyb2xsRGlzLFxuICAgICAgc2Nyb2xsQmVmb3JlRW5kQ2xhc3MsXG4gICAgKTtcbiAgfVxuXG4gIHBsYWNlQ2xhc3NMaXN0KFxuICAgIGNsYXNzTGlzdDogRE9NVG9rZW5MaXN0LFxuICAgIGNvbmRpdGlvbjogYm9vbGVhbixcbiAgICBjbGFzc05hbWU6IHN0cmluZyxcbiAgKSB7XG4gICAgY2xhc3NMaXN0W2NvbmRpdGlvbiA/ICdhZGQnIDogJ3JlbW92ZSddKGNsYXNzTmFtZSk7XG4gIH1cbn1cbiJdfQ==