@seniorsistemas/angular-components 17.17.4 → 17.17.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/seniorsistemas-angular-components.umd.js +2 -2
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/esm2015/components/picklist/picklist/picklist.component.js +2 -2
- package/esm2015/components/split-button/split-button.component.js +1 -1
- package/esm5/components/picklist/picklist/picklist.component.js +2 -2
- package/esm5/components/split-button/split-button.component.js +1 -1
- package/fesm2015/seniorsistemas-angular-components.js +2 -2
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +2 -2
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -258,7 +258,7 @@ __decorate([
|
|
|
258
258
|
PicklistComponent = __decorate([
|
|
259
259
|
Component({
|
|
260
260
|
selector: 's-picklist',
|
|
261
|
-
template: "<ng-template #previewRender let-itens=\"itens\" let-template=\"template\">\n <section class=\"picklist-items\">\n <ng-container *ngFor=\"let item of itens\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n </ng-container>\n </section>\n</ng-template>\n\n<ng-template #picklistItensRender let-id=\"id\" let-itens=\"itens\" let-template=\"template\" let-listConnectedTo=\"listConnectedTo\">\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\">\n <div\n *ngFor=\"let item of itens\"\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\">\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n *ngIf=\"showCheckbox\">\n <div class=\"picklist-content\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data, selected: item.selected, disabled: item.disabled }\"></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"></ng-container>\n </ng-container>\n </div>\n</div>\n</ng-template>\n\n<ng-template #checkboxTitleRender let-disabled=\"disabled\" let-checked=\"checked\" let-changeFn=\"changeFn\">\n <input\n *ngIf=\"showCheckbox\"\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($event.target.checked)\">\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n <ng-container *ngIf=\"!filterBy\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n </ng-container>\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n <div class=\"picklist-filter\" *ngIf=\"filterBy && showCheckbox\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n <input\n *ngIf=\"filterBy\"\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"availableItensPlaceholder || '
|
|
261
|
+
template: "<ng-template #previewRender let-itens=\"itens\" let-template=\"template\">\n <section class=\"picklist-items\">\n <ng-container *ngFor=\"let item of itens\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n </ng-container>\n </section>\n</ng-template>\n\n<ng-template #picklistItensRender let-id=\"id\" let-itens=\"itens\" let-template=\"template\" let-listConnectedTo=\"listConnectedTo\">\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\">\n <div\n *ngFor=\"let item of itens\"\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\">\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n *ngIf=\"showCheckbox\">\n <div class=\"picklist-content\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data, selected: item.selected, disabled: item.disabled }\"></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"></ng-container>\n </ng-container>\n </div>\n</div>\n</ng-template>\n\n<ng-template #checkboxTitleRender let-disabled=\"disabled\" let-checked=\"checked\" let-changeFn=\"changeFn\">\n <input\n *ngIf=\"showCheckbox\"\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($event.target.checked)\">\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n <ng-container *ngIf=\"!filterBy\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n </ng-container>\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n <div class=\"picklist-filter\" *ngIf=\"filterBy && showCheckbox\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n <input\n *ngIf=\"filterBy\"\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"availableItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\">\n </div>\n <ng-container *ngTemplateOutlet=\"picklistItensRender;\n context: {\n id: itensToSelectId,\n itens: itensToSelectFilterUtil.filteredItensToSelect,\n template: itemToSelectTemplate,\n listConnectedTo: selectedItensId\n }\">\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"addSelectedItensLabel || 'platform.angular_components.add' | translate\"\n priority=\"primary\"\n rightIconClass=\"fa fa-fw fa-arrow-right\"\n [disabled]=\"!canAddItens\"\n (onClick)=\"add()\"\n [auxiliary]=\"false\"\n [caret]=\"false\">\n </s-button>\n <s-button\n [label]=\"addAllItensLabel || 'platform.angular_components.add_all' | translate\"\n priority=\"link\"\n (onClick)=\"add(true)\"\n [auxiliary]=\"false\">\n </s-button>\n </div>\n </div>\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n <ng-container *ngIf=\"!filterBy\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableSelectedItensCheckbox, checked: selectedItensAllSelected, changeFn: checkAllSelectedItensChange.bind(this) }\"></ng-container>\n </ng-container>\n <span class=\"picklist-title\">\n {{ selectedItensLabel || 'platform.angular_components.selected-items' | translate }}\n </span>\n </div>\n <div class=\"picklist-filter\" *ngIf=\"filterBy && showCheckbox\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableSelectedItensCheckbox, checked: selectedItensAllSelected, changeFn: checkAllSelectedItensChange.bind(this) }\"></ng-container>\n <input\n *ngIf=\"filterBy\"\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"selectedItensFilter\"\n (ngModelChange)=\"filterSelectedItens()\"\n [placeholder]=\"selectedItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\">\n </div>\n <ng-container *ngTemplateOutlet=\"picklistItensRender;\n context: {\n id: selectedItensId,\n itens: selectedItensFilterUtil.filteredSelectedItens,\n template: itemSelectedTemplate,\n listConnectedTo: itensToSelectId\n }\">\n\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"removeSelectedItemsLabel || 'platform.angular_components.remove' | translate\"\n priority=\"primary\"\n iconClass=\"fa fa-fw fa-arrow-left\"\n [disabled]=\"!canRemoveItens\"\n [auxiliary]=\"false\"\n (onClick)=\"remove()\"\n [caret]=\"false\">\n </s-button>\n <s-button\n [label]=\"removeAllItemsLabel || 'platform.angular_components.remove_all' | translate\"\n priority=\"link\"\n (onClick)=\"remove(true)\"\n [auxiliary]=\"false\">\n </s-button>\n </div>\n </div>\n</div>\n",
|
|
262
262
|
styles: [".picklist-container{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;border-radius:4px solid #dedce5;width:100%;background-color:#fff;gap:20px;padding:8px}.picklist-container .picklist-item-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1;flex:1}.picklist-container .picklist-item-container .picklist-box{border:1px solid #dedce5;padding:8px;height:100%;min-width:200px}.picklist-container .picklist-item-container .picklist-box .picklist-filter{display:-ms-flexbox;display:flex;width:100%}.picklist-container .picklist-item-container .picklist-box .picklist-filter .input-search{border:1px solid #dedce5;min-height:35px;width:100%;border-radius:3px;margin-bottom:10px;margin-top:10px;padding:0 8px;-ms-flex:1;flex:1}.picklist-container .picklist-item-container .picklist-box .picklist-title-container{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.picklist-container .picklist-item-container .picklist-box .picklist-title-container .picklist-title{font-family:Open Sans;font-size:14px;font-weight:700;line-height:21px;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.picklist-container .picklist-item-container .picklist-box .picklist-items{max-height:23em;overflow:auto;height:100%;min-height:55px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-content{width:100%;height:100%;padding-right:8px;border-radius:3px;margin-bottom:8px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item{height:55px;border:3px;display:-ms-flexbox;display:flex}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:not(.picklist-disabled){cursor:pointer}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:hover:not(.picklist-disabled,.picklist-item-active,.picklist-item-invisible){background-color:#f1f7f8}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-active:not(.picklist-item-invisible){background-color:#d5e8ec}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-disabled{opacity:.5;background-color:#fbfafc}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-invisible{display:none!important}.picklist-container .picklist-item-container .buttons-container{padding-top:10px;display:-ms-flexbox;display:flex}.picklist-container .picklist-item-container .input-checkbox{margin:12px}"]
|
|
263
263
|
})
|
|
264
264
|
], PicklistComponent);
|
|
@@ -302,4 +302,4 @@ export const parseItensPickList = (array, disabledFn) => {
|
|
|
302
302
|
});
|
|
303
303
|
};
|
|
304
304
|
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4 };
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcGlja2xpc3QvcGlja2xpc3QvcGlja2xpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVLLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBYy9FLElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0lBd0M1QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXZDakMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBQ3hDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQVN4QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2Isd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUNoRCx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzFELHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMxQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFHekIsNEJBQXVCLEdBR25CO1lBQ0EsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixxQkFBcUIsRUFBRSxFQUFFO1NBQzFCLENBQUE7UUFFSCw0QkFBdUIsR0FHbkI7WUFDQSxnQkFBZ0IsRUFBRSxFQUFF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RUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUE7QUFDN0YsQ0FBQyxDQUFBOztBQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBcUQsRUFBMEIsRUFBRTtJQUN0RyxNQUFNLEtBQUssR0FBRyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUE7O0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUF5QixFQUFFLEVBQUU7SUFDNUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFBOztBQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFFbkQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBSSxLQUFVLEVBQUUsVUFBaUMsRUFBcUIsRUFBRTtJQUN4RyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNyQixPQUFPO1lBQ0wsSUFBSSxFQUFFLENBQUM7WUFDUCxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7U0FDN0MsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi8uLi8uLi90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGlja2xpc3RUZW1wbGF0ZVR5cGVzLCBQaWNrTGlzdEl0ZW0gfSBmcm9tICcuL21vZGVscy9waWNrbGlzdC1tb2RlbHMnO1xuXG5pbnRlcmZhY2UgSW50ZXJuYWxQaWNrbGlzdEl0ZW08VCA9IGFueT4gZXh0ZW5kcyBQaWNrTGlzdEl0ZW08VD4ge1xuICBpbnZpc2libGU/OiBib29sZWFuXG4gIHNlbGVjdGVkPzogYm9vbGVhblxufVxuXG50eXBlIENka0RyYWdFdmVudCA9IHsgc291cmNlOiBDZGtEcmFnPEludGVybmFsUGlja2xpc3RJdGVtPGFueT4+IH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3MtcGlja2xpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGlja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waWNrbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBpY2tsaXN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaXRlbnNUb1NlbGVjdDogUGlja0xpc3RJdGVtPGFueT5bXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW5zOiBQaWNrTGlzdEl0ZW08YW55PltdID0gW107XG4gIEBJbnB1dCgpIGF2YWlsYWJsZUl0ZW5zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgYXZhaWxhYmxlSXRlbnNQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBhZGRTZWxlY3RlZEl0ZW5zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgYWRkQWxsSXRlbnNMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW5zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVuc1BsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlbW92ZVNlbGVjdGVkSXRlbXNMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSByZW1vdmVBbGxJdGVtc0xhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dDaGVja2JveCA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWx0ZXJCeSA9ICcnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRJdGVuc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gIEBPdXRwdXQoKSBpdGVuc1RvU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgYXZhaWxhYmxlSXRlbnNGaWx0ZXIgPSAnJztcbiAgc2VsZWN0ZWRJdGVuc0ZpbHRlciA9ICcnO1xuICBpdGVtVG9TZWxlY3RUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgaXRlbVNlbGVjdGVkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIGl0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsOiB7XG4gICAgcmF3SXRlbnNUb1NlbGVjdDogSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSxcbiAgICBmaWx0ZXJlZEl0ZW5zVG9TZWxlY3Q6IEludGVybmFsUGlja2xpc3RJdGVtW10sXG4gIH0gPSB7XG4gICAgICByYXdJdGVuc1RvU2VsZWN0OiBbXSxcbiAgICAgIGZpbHRlcmVkSXRlbnNUb1NlbGVjdDogW10sXG4gICAgfVxuXG4gIHNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsOiB7XG4gICAgcmF3U2VsZWN0ZWRJdGVuczogSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXVxuICAgIGZpbHRlcmVkU2VsZWN0ZWRJdGVuczogSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSxcbiAgfSA9IHtcbiAgICAgIHJhd1NlbGVjdGVkSXRlbnM6IFtdLFxuICAgICAgZmlsdGVyZWRTZWxlY3RlZEl0ZW5zOiBbXSxcbiAgICB9XG4gIHNlbGVjdGVkSXRlbnNNYXA6IFNldDxJbnRlcm5hbFBpY2tsaXN0SXRlbT4gPSBuZXcgU2V0KCk7XG4gIGl0ZW5zVG9TZWxlY3RJZCA9IHJhbmRvbUhhc2goJ2l0ZW5zVG9TZWxlY3QnKTtcbiAgc2VsZWN0ZWRJdGVuc0lkID0gcmFuZG9tSGFzaCgnc2VsZWN0ZWRJdGVucycpO1xuICBwcml2YXRlIGxhc3RTZWxlY3RlZDogJ3RvU2VsZWN0JyB8ICdzZWxlY3RlZCc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSkgcHJpdmF0ZSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT47XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbVRvU2VsZWN0VGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKHggPT4geC50eXBlID09PSBQaWNrbGlzdFRlbXBsYXRlVHlwZXMuSXRlbVRvU2VsZWN0KT8udGVtcGxhdGU7XG4gICAgdGhpcy5pdGVtU2VsZWN0ZWRUZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVzLmZpbmQoeCA9PiB4LnR5cGUgPT09IFBpY2tsaXN0VGVtcGxhdGVUeXBlcy5TZWxlY3RlZEl0ZW0pPy50ZW1wbGF0ZTtcbiAgICBpZiAoIXRoaXMuaXRlbVRvU2VsZWN0VGVtcGxhdGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1pc3NpbmcgdGVtcGxhdGUgZm9yICR7UGlja2xpc3RUZW1wbGF0ZVR5cGVzLkl0ZW1Ub1NlbGVjdH0gYWRkIHRoaXMgdGVtcGxhdGUgdXNpbmcgc1RlbXBsYXRlIGRpcmVjdGl2ZS5gKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLml0ZW1TZWxlY3RlZFRlbXBsYXRlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNaXNzaW5nIHRlbXBsYXRlIGZvciAke1BpY2tsaXN0VGVtcGxhdGVUeXBlcy5TZWxlY3RlZEl0ZW19IGFkZCB0aGlzIHRlbXBsYXRlIHVzaW5nIHNUZW1wbGF0ZSBkaXJlY3RpdmUuYCk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5pdGVuc1RvU2VsZWN0ICYmIGNoYW5nZXMuaXRlbnNUb1NlbGVjdC5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbCA9IHtcbiAgICAgICAgcmF3SXRlbnNUb1NlbGVjdDogdGhpcy5pdGVuc1RvU2VsZWN0LFxuICAgICAgICBmaWx0ZXJlZEl0ZW5zVG9TZWxlY3Q6IHRoaXMuaXRlbnNUb1NlbGVjdCxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5zZWxlY3RlZEl0ZW5zICYmIGNoYW5nZXMuc2VsZWN0ZWRJdGVucy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbCA9IHtcbiAgICAgICAgZmlsdGVyZWRTZWxlY3RlZEl0ZW5zOiB0aGlzLnNlbGVjdGVkSXRlbnMsXG4gICAgICAgIHJhd1NlbGVjdGVkSXRlbnM6IHRoaXMuc2VsZWN0ZWRJdGVuc1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGVkKGludGVybmFsUGlja2xpc3RJdGVtOiBJbnRlcm5hbFBpY2tsaXN0SXRlbSwgY29udGFpbmVyTGlzdElkOiBzdHJpbmcpIHtcbiAgICBpZiAoaW50ZXJuYWxQaWNrbGlzdEl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51bnNlbGVjdGVkSXRlbnNCeUxpc3RJZCh0aGlzLmdldE9wcG9zaXRpdmVJZChjb250YWluZXJMaXN0SWQpKTtcbiAgICBpbnRlcm5hbFBpY2tsaXN0SXRlbS5zZWxlY3RlZCA9ICFpbnRlcm5hbFBpY2tsaXN0SXRlbS5zZWxlY3RlZDtcbiAgICBpZiAoaW50ZXJuYWxQaWNrbGlzdEl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5hZGQoaW50ZXJuYWxQaWNrbGlzdEl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZGVsZXRlKGludGVybmFsUGlja2xpc3RJdGVtKTtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcmVtb3ZlKGFsbCA9IGZhbHNlKSB7XG4gICAgY29uc3QgaXRlbnMgPSBmaWx0ZXJFbmFibGVkKChhbGwgPyB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLnJhd1NlbGVjdGVkSXRlbnMgOiB0aGlzLnNlbGVjdGVkSXRlbnNNYXApKTtcbiAgICBpZiAoIWl0ZW5zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpdGVucy5mb3JFYWNoKChpdGVtUmVtb3ZlKSA9PiB7XG4gICAgICB0aGlzLml0ZW5zVG9TZWxlY3QucHVzaChpdGVtUmVtb3ZlKTtcbiAgICAgIGl0ZW1SZW1vdmUuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5kZWxldGUoaXRlbVJlbW92ZSk7XG4gICAgfSlcbiAgICB0aGlzLnNlbGVjdGVkSXRlbnMgPSB0aGlzLnNlbGVjdGVkSXRlbnMuZmlsdGVyKHggPT4gIWl0ZW5zLmluY2x1ZGVzKHgpKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLnJhd1NlbGVjdGVkSXRlbnMgPSB0aGlzLnNlbGVjdGVkSXRlbnM7XG4gICAgdGhpcy5maWx0ZXJTZWxlY3RlZEl0ZW5zKCk7XG4gICAgdGhpcy5maWx0ZXJJdGVuc1RvU2VsZWN0KCk7XG4gICAgdGhpcy5lbWl0RGF0YSgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGFkZChhbGwgPSBmYWxzZSkge1xuICAgIGNvbnN0IGl0ZW5zID0gZmlsdGVyRW5hYmxlZCgoYWxsID8gdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5yYXdJdGVuc1RvU2VsZWN0IDogdGhpcy5zZWxlY3RlZEl0ZW5zTWFwKSk7XG4gICAgaWYgKCFpdGVucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXRlbnMuZm9yRWFjaCgoaXRlbVJlbW92ZSkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zLnB1c2goaXRlbVJlbW92ZSk7XG4gICAgICBpdGVtUmVtb3ZlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZGVsZXRlKGl0ZW1SZW1vdmUpO1xuICAgIH0pXG4gICAgdGhpcy5pdGVuc1RvU2VsZWN0ID0gdGhpcy5pdGVuc1RvU2VsZWN0LmZpbHRlcih4ID0+ICFpdGVucy5pbmNsdWRlcyh4KSk7XG4gICAgdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5yYXdJdGVuc1RvU2VsZWN0ID0gdGhpcy5pdGVuc1RvU2VsZWN0O1xuICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWRJdGVucygpO1xuICAgIHRoaXMuZmlsdGVySXRlbnNUb1NlbGVjdCgpO1xuICAgIHRoaXMuZW1pdERhdGEoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBmaWx0ZXJJdGVuc1RvU2VsZWN0KCkge1xuICAgIGxldCBzZWFyY2hUZXJtID0gdGhpcy5hdmFpbGFibGVJdGVuc0ZpbHRlcjtcbiAgICBzZWFyY2hUZXJtID0gc2VhcmNoVGVybS50cmltKCk7XG4gICAgaWYgKHNlYXJjaFRlcm0pIHtcbiAgICAgIHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwuZmlsdGVyZWRJdGVuc1RvU2VsZWN0ID0gdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5yYXdJdGVuc1RvU2VsZWN0XG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGNvbXBhcmVTdHJpbmdzKGl0ZW0uZGF0YVt0aGlzLmZpbHRlckJ5XSwgc2VhcmNoVGVybSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLml0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsLmZpbHRlcmVkSXRlbnNUb1NlbGVjdCA9IHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdDtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZmlsdGVyU2VsZWN0ZWRJdGVucygpIHtcbiAgICBsZXQgc2VhcmNoVGVybSA9IHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlcjtcbiAgICBzZWFyY2hUZXJtID0gc2VhcmNoVGVybS50cmltKCk7XG4gICAgaWYgKHNlYXJjaFRlcm0pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwuZmlsdGVyZWRTZWxlY3RlZEl0ZW5zID0gdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5yYXdTZWxlY3RlZEl0ZW5zXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGNvbXBhcmVTdHJpbmdzKGl0ZW0uZGF0YVt0aGlzLmZpbHRlckJ5XSwgc2VhcmNoVGVybSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucyA9IHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwucmF3U2VsZWN0ZWRJdGVucztcbiAgICB9XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxJbnRlcm5hbFBpY2tsaXN0SXRlbVtdPikge1xuICAgIGNvbnN0IGlzRGlmZmVyZW50Q29udGFpbmVyID0gZXZlbnQuY29udGFpbmVyICE9PSBldmVudC5wcmV2aW91c0NvbnRhaW5lcjtcbiAgICBpZiAoIWlzRGlmZmVyZW50Q29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNSZW1vdmVkSXRlbnMgPSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5pZCA9PT0gdGhpcy5zZWxlY3RlZEl0ZW5zSWQ7XG4gICAgaWYgKGlzUmVtb3ZlZEl0ZW5zKSB7XG4gICAgICB0aGlzLnJlbW92ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZCgpO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkRyYWdTdGFydChldmVudDogQ2RrRHJhZ0V2ZW50LCBkcmFnTGlzdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVuc2VsZWN0ZWRJdGVuc0J5TGlzdElkKHRoaXMuZ2V0T3Bwb3NpdGl2ZUlkKGRyYWdMaXN0SWQpKTtcbiAgICBldmVudC5zb3VyY2UuZGF0YS5zZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmFkZChldmVudC5zb3VyY2UuZGF0YSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmZvckVhY2goKHgpID0+IHguaW52aXNpYmxlID0gdHJ1ZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25EcmFnUmVsZWFzZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5pbnZpc2libGUgPSBmYWxzZSk7XG4gIH1cblxuICBjaGVja0FsbEF2YWlsYWJsZUl0ZW5zQ2hhbmdlKGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jaGVja0FsbFNlbGVjdGVkSXRlbnNDaGFuZ2UoY2hlY2tlZCwgdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5maWx0ZXJlZEl0ZW5zVG9TZWxlY3QsIHRoaXMuaXRlbnNUb1NlbGVjdElkKTtcbiAgfVxuXG4gIGNoZWNrQWxsU2VsZWN0ZWRJdGVuc0NoYW5nZShjaGVja2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2hlY2tBbGxTZWxlY3RlZEl0ZW5zQ2hhbmdlKGNoZWNrZWQsIHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwuZmlsdGVyZWRTZWxlY3RlZEl0ZW5zLCB0aGlzLnNlbGVjdGVkSXRlbnNJZCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZVNlbGVjdGVkSXRlbnNDaGVja2JveCgpIHtcbiAgICByZXR1cm4gZmlsdGVyRW5hYmxlZCh0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucykubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVJdGVuc1RvU2VsZWN0Q2hlY2tib3goKSB7XG4gICAgcmV0dXJuIGZpbHRlckVuYWJsZWQodGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5maWx0ZXJlZEl0ZW5zVG9TZWxlY3QpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIGdldCBpdGVuc1RvU2VsZWN0QWxsU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrQWxsU2VsZWN0ZWRCeUxpc3QodGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5maWx0ZXJlZEl0ZW5zVG9TZWxlY3QpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkSXRlbnNBbGxTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tBbGxTZWxlY3RlZEJ5TGlzdCh0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucyk7XG4gIH1cblxuICBnZXQgY2FuQWRkSXRlbnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLml0ZW5zVG9TZWxlY3QgYXMgSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSkuZmlsdGVyKCh4KSA9PiB4Py5zZWxlY3RlZCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldCBjYW5SZW1vdmVJdGVucygpIHtcbiAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRJdGVucyBhcyBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdKS5maWx0ZXIoKHgpID0+IHg/LnNlbGVjdGVkKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBbGxTZWxlY3RlZEJ5TGlzdChsaXN0OiBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdKSB7XG4gICAgY29uc3QgX2xpc3RJdGVucyA9IGZpbHRlckVuYWJsZWQobGlzdCk7XG4gICAgaWYgKCFfbGlzdEl0ZW5zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gX2xpc3RJdGVucy5ldmVyeSgoeCkgPT4geC5zZWxlY3RlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBbGxTZWxlY3RlZEl0ZW5zQ2hhbmdlKGNoZWNrZWQ6IGJvb2xlYW4sIGxpc3Q6IEludGVybmFsUGlja2xpc3RJdGVtW10sIGxpc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy51bnNlbGVjdGVkSXRlbnNCeUxpc3RJZChsaXN0SWQgPT09IHRoaXMuc2VsZWN0ZWRJdGVuc0lkID8gdGhpcy5pdGVuc1RvU2VsZWN0SWQgOiB0aGlzLnNlbGVjdGVkSXRlbnNJZCk7XG4gICAgZmlsdGVyRW5hYmxlZChsaXN0KS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnNlbGVjdGVkID0gY2hlY2tlZDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5hZGQoaXRlbSk7XG4gICAgfSlcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVuc2VsZWN0ZWRJdGVuc0J5TGlzdElkKGxpc3RJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgY2xlYXJMaXN0ID0gdGhpcy5nZXRBbGxFbGVtZW50c0J5TGlzdElkKGxpc3RJZCk7XG4gICAgY2xlYXJMaXN0LmZvckVhY2goKHgpID0+IHtcbiAgICAgIHguc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5kZWxldGUoeCk7XG4gICAgfSlcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGdldEFsbEVsZW1lbnRzQnlMaXN0SWQobGlzdElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGlzdElkID09PSB0aGlzLnNlbGVjdGVkSXRlbnNJZCA/IHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwucmF3U2VsZWN0ZWRJdGVucyA6IHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3Bwb3NpdGl2ZUlkKGxpc3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpc3RJZCA9PT0gdGhpcy5zZWxlY3RlZEl0ZW5zSWQgPyB0aGlzLml0ZW5zVG9TZWxlY3RJZCA6IHRoaXMuc2VsZWN0ZWRJdGVuc0lkO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGF0YSgpIHtcbiAgICB0aGlzLml0ZW5zVG9TZWxlY3RDaGFuZ2UuZW1pdChwYXJzZVZhbHVlRW1pdCh0aGlzLml0ZW5zVG9TZWxlY3QpKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbnNDaGFuZ2UuZW1pdChwYXJzZVZhbHVlRW1pdCh0aGlzLnNlbGVjdGVkSXRlbnMpKTtcbiAgfVxufVxuXG5jb25zdCBub3JtYWxpemVTdHJpbmcgPSAoc3RyOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIHN0ci5ub3JtYWxpemUoXCJORkRcIikucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIikudG9Mb3dlckNhc2UoKTtcbn1cblxuLyoqXG4gKiBDb21wYXJlcyB0d28gc3RyaW5ncyBieSBub3JtYWxpemluZyB0aGVtIHRvIGEgY2FzZS1pbnNlbnNpdGl2ZSBhbmQgYWNjZW50LWZyZWUgZm9ybSxcbiAqIGFuZCBjaGVja3MgaWYgdGhlIG1haW4gc3RyaW5nIGNvbnRhaW5zIHRoZSBzdWJzdHJpbmcuXG4gKlxuICogQHBhcmFtIG1haW5TdHJpbmcgLSBUaGUgc3RyaW5nIHRvIGJlIHNlYXJjaGVkLlxuICogQHBhcmFtIHN1YnN0cmluZyAtIFRoZSBzdHJpbmcgdG8gc2VhcmNoIGZvciB3aXRoaW4gdGhlIG1haW4gc3RyaW5nLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgbm9ybWFsaXplZCBtYWluIHN0cmluZyBjb250YWlucyB0aGUgbm9ybWFsaXplZCBzdWJzdHJpbmcuXG4gKi9cblxuY29uc3QgY29tcGFyZVN0cmluZ3MgPSAobWFpblN0cmluZzogc3RyaW5nLCBzdWJzdHJpbmc6IHN0cmluZykgPT4ge1xuICByZXR1cm4gbm9ybWFsaXplU3RyaW5nKG1haW5TdHJpbmcpLmluY2x1ZGVzKG5vcm1hbGl6ZVN0cmluZyhzdWJzdHJpbmcpKTtcbn1cblxuY29uc3QgcmFuZG9tSGFzaCA9IChwcmVmaXggPSAnaWQnKSA9PiB7XG4gIHJldHVybiBgJHtwcmVmaXh9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfS0ke0RhdGUubm93KCkudG9TdHJpbmcoMzYpfWBcbn1cblxuY29uc3QgZmlsdGVyRW5hYmxlZCA9IChsaXN0OiBQaWNrTGlzdEl0ZW08YW55PltdIHwgU2V0PEludGVybmFsUGlja2xpc3RJdGVtPik6IEludGVybmFsUGlja2xpc3RJdGVtW10gPT4ge1xuICBjb25zdCBfbGlzdCA9IGxpc3QgaW5zdGFuY2VvZiBTZXQgPyBBcnJheS5mcm9tKGxpc3QpIDogbGlzdDtcbiAgcmV0dXJuIF9saXN0LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpO1xufVxuXG5jb25zdCBtYXBEYXRhID0gKGxpc3Q6IFBpY2tMaXN0SXRlbTxhbnk+W10pID0+IHtcbiAgcmV0dXJuIGxpc3QubWFwKCh4KSA9PiB4LmRhdGEpO1xufVxuXG5jb25zdCBwYXJzZVZhbHVlRW1pdCA9IHBpcGUoZmlsdGVyRW5hYmxlZCwgbWFwRGF0YSlcblxuZXhwb3J0IGNvbnN0IHBhcnNlSXRlbnNQaWNrTGlzdCA9IDxUPihhcnJheTogVFtdLCBkaXNhYmxlZEZuPzogKGl0ZW06IFQpID0+IGJvb2xlYW4pOiBQaWNrTGlzdEl0ZW08VD5bXSA9PiB7XG4gIHJldHVybiBhcnJheS5tYXAoKHgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogeCxcbiAgICAgIGRpc2FibGVkOiBkaXNhYmxlZEZuID8gZGlzYWJsZWRGbih4KSA6IGZhbHNlXG4gICAgfVxuICB9KVxufVxuIl19
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcGlja2xpc3QvcGlja2xpc3QvcGlja2xpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVLLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBYy9FLElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0lBd0M1QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXZDakMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBQ3hDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQVN4QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2Isd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUNoRCx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzFELHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMxQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFHekIsNEJBQXVCLEdBR25CO1lBQ0EsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixxQkFBcUIsRUFBRSxFQUFFO1NBQzFCLENBQUE7UUFFSCw0QkFBdUIsR0FHbkI7WUFDQSxnQkFBZ0IsRUFBRSxFQUFF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RUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUE7QUFDN0YsQ0FBQyxDQUFBOztBQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBcUQsRUFBMEIsRUFBRTtJQUN0RyxNQUFNLEtBQUssR0FBRyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUE7O0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUF5QixFQUFFLEVBQUU7SUFDNUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFBOztBQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFFbkQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBSSxLQUFVLEVBQUUsVUFBaUMsRUFBcUIsRUFBRTtJQUN4RyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNyQixPQUFPO1lBQ0wsSUFBSSxFQUFFLENBQUM7WUFDUCxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7U0FDN0MsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi8uLi8uLi90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGlja2xpc3RUZW1wbGF0ZVR5cGVzLCBQaWNrTGlzdEl0ZW0gfSBmcm9tICcuL21vZGVscy9waWNrbGlzdC1tb2RlbHMnO1xuXG5pbnRlcmZhY2UgSW50ZXJuYWxQaWNrbGlzdEl0ZW08VCA9IGFueT4gZXh0ZW5kcyBQaWNrTGlzdEl0ZW08VD4ge1xuICBpbnZpc2libGU/OiBib29sZWFuXG4gIHNlbGVjdGVkPzogYm9vbGVhblxufVxuXG50eXBlIENka0RyYWdFdmVudCA9IHsgc291cmNlOiBDZGtEcmFnPEludGVybmFsUGlja2xpc3RJdGVtPGFueT4+IH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3MtcGlja2xpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGlja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waWNrbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBpY2tsaXN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaXRlbnNUb1NlbGVjdDogUGlja0xpc3RJdGVtPGFueT5bXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW5zOiBQaWNrTGlzdEl0ZW08YW55PltdID0gW107XG4gIEBJbnB1dCgpIGF2YWlsYWJsZUl0ZW5zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgYXZhaWxhYmxlSXRlbnNQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBhZGRTZWxlY3RlZEl0ZW5zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgYWRkQWxsSXRlbnNMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW5zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVuc1BsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlbW92ZVNlbGVjdGVkSXRlbXNMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSByZW1vdmVBbGxJdGVtc0xhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dDaGVja2JveCA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWx0ZXJCeSA9ICcnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRJdGVuc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gIEBPdXRwdXQoKSBpdGVuc1RvU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgYXZhaWxhYmxlSXRlbnNGaWx0ZXIgPSAnJztcbiAgc2VsZWN0ZWRJdGVuc0ZpbHRlciA9ICcnO1xuICBpdGVtVG9TZWxlY3RUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgaXRlbVNlbGVjdGVkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIGl0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsOiB7XG4gICAgcmF3SXRlbnNUb1NlbGVjdDogSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSxcbiAgICBmaWx0ZXJlZEl0ZW5zVG9TZWxlY3Q6IEludGVybmFsUGlja2xpc3RJdGVtW10sXG4gIH0gPSB7XG4gICAgICByYXdJdGVuc1RvU2VsZWN0OiBbXSxcbiAgICAgIGZpbHRlcmVkSXRlbnNUb1NlbGVjdDogW10sXG4gICAgfVxuXG4gIHNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsOiB7XG4gICAgcmF3U2VsZWN0ZWRJdGVuczogSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXVxuICAgIGZpbHRlcmVkU2VsZWN0ZWRJdGVuczogSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSxcbiAgfSA9IHtcbiAgICAgIHJhd1NlbGVjdGVkSXRlbnM6IFtdLFxuICAgICAgZmlsdGVyZWRTZWxlY3RlZEl0ZW5zOiBbXSxcbiAgICB9XG4gIHNlbGVjdGVkSXRlbnNNYXA6IFNldDxJbnRlcm5hbFBpY2tsaXN0SXRlbT4gPSBuZXcgU2V0KCk7XG4gIGl0ZW5zVG9TZWxlY3RJZCA9IHJhbmRvbUhhc2goJ2l0ZW5zVG9TZWxlY3QnKTtcbiAgc2VsZWN0ZWRJdGVuc0lkID0gcmFuZG9tSGFzaCgnc2VsZWN0ZWRJdGVucycpO1xuICBwcml2YXRlIGxhc3RTZWxlY3RlZDogJ3RvU2VsZWN0JyB8ICdzZWxlY3RlZCc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSkgcHJpdmF0ZSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT47XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbVRvU2VsZWN0VGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKHggPT4geC50eXBlID09PSBQaWNrbGlzdFRlbXBsYXRlVHlwZXMuSXRlbVRvU2VsZWN0KT8udGVtcGxhdGU7XG4gICAgdGhpcy5pdGVtU2VsZWN0ZWRUZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVzLmZpbmQoeCA9PiB4LnR5cGUgPT09IFBpY2tsaXN0VGVtcGxhdGVUeXBlcy5TZWxlY3RlZEl0ZW0pPy50ZW1wbGF0ZTtcbiAgICBpZiAoIXRoaXMuaXRlbVRvU2VsZWN0VGVtcGxhdGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1pc3NpbmcgdGVtcGxhdGUgZm9yICR7UGlja2xpc3RUZW1wbGF0ZVR5cGVzLkl0ZW1Ub1NlbGVjdH0gYWRkIHRoaXMgdGVtcGxhdGUgdXNpbmcgc1RlbXBsYXRlIGRpcmVjdGl2ZS5gKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLml0ZW1TZWxlY3RlZFRlbXBsYXRlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNaXNzaW5nIHRlbXBsYXRlIGZvciAke1BpY2tsaXN0VGVtcGxhdGVUeXBlcy5TZWxlY3RlZEl0ZW19IGFkZCB0aGlzIHRlbXBsYXRlIHVzaW5nIHNUZW1wbGF0ZSBkaXJlY3RpdmUuYCk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5pdGVuc1RvU2VsZWN0ICYmIGNoYW5nZXMuaXRlbnNUb1NlbGVjdC5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbCA9IHtcbiAgICAgICAgcmF3SXRlbnNUb1NlbGVjdDogdGhpcy5pdGVuc1RvU2VsZWN0LFxuICAgICAgICBmaWx0ZXJlZEl0ZW5zVG9TZWxlY3Q6IHRoaXMuaXRlbnNUb1NlbGVjdCxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5zZWxlY3RlZEl0ZW5zICYmIGNoYW5nZXMuc2VsZWN0ZWRJdGVucy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbCA9IHtcbiAgICAgICAgZmlsdGVyZWRTZWxlY3RlZEl0ZW5zOiB0aGlzLnNlbGVjdGVkSXRlbnMsXG4gICAgICAgIHJhd1NlbGVjdGVkSXRlbnM6IHRoaXMuc2VsZWN0ZWRJdGVuc1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGVkKGludGVybmFsUGlja2xpc3RJdGVtOiBJbnRlcm5hbFBpY2tsaXN0SXRlbSwgY29udGFpbmVyTGlzdElkOiBzdHJpbmcpIHtcbiAgICBpZiAoaW50ZXJuYWxQaWNrbGlzdEl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51bnNlbGVjdGVkSXRlbnNCeUxpc3RJZCh0aGlzLmdldE9wcG9zaXRpdmVJZChjb250YWluZXJMaXN0SWQpKTtcbiAgICBpbnRlcm5hbFBpY2tsaXN0SXRlbS5zZWxlY3RlZCA9ICFpbnRlcm5hbFBpY2tsaXN0SXRlbS5zZWxlY3RlZDtcbiAgICBpZiAoaW50ZXJuYWxQaWNrbGlzdEl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5hZGQoaW50ZXJuYWxQaWNrbGlzdEl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZGVsZXRlKGludGVybmFsUGlja2xpc3RJdGVtKTtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcmVtb3ZlKGFsbCA9IGZhbHNlKSB7XG4gICAgY29uc3QgaXRlbnMgPSBmaWx0ZXJFbmFibGVkKChhbGwgPyB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLnJhd1NlbGVjdGVkSXRlbnMgOiB0aGlzLnNlbGVjdGVkSXRlbnNNYXApKTtcbiAgICBpZiAoIWl0ZW5zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpdGVucy5mb3JFYWNoKChpdGVtUmVtb3ZlKSA9PiB7XG4gICAgICB0aGlzLml0ZW5zVG9TZWxlY3QucHVzaChpdGVtUmVtb3ZlKTtcbiAgICAgIGl0ZW1SZW1vdmUuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5kZWxldGUoaXRlbVJlbW92ZSk7XG4gICAgfSlcbiAgICB0aGlzLnNlbGVjdGVkSXRlbnMgPSB0aGlzLnNlbGVjdGVkSXRlbnMuZmlsdGVyKHggPT4gIWl0ZW5zLmluY2x1ZGVzKHgpKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLnJhd1NlbGVjdGVkSXRlbnMgPSB0aGlzLnNlbGVjdGVkSXRlbnM7XG4gICAgdGhpcy5maWx0ZXJTZWxlY3RlZEl0ZW5zKCk7XG4gICAgdGhpcy5maWx0ZXJJdGVuc1RvU2VsZWN0KCk7XG4gICAgdGhpcy5lbWl0RGF0YSgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGFkZChhbGwgPSBmYWxzZSkge1xuICAgIGNvbnN0IGl0ZW5zID0gZmlsdGVyRW5hYmxlZCgoYWxsID8gdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5yYXdJdGVuc1RvU2VsZWN0IDogdGhpcy5zZWxlY3RlZEl0ZW5zTWFwKSk7XG4gICAgaWYgKCFpdGVucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXRlbnMuZm9yRWFjaCgoaXRlbVJlbW92ZSkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zLnB1c2goaXRlbVJlbW92ZSk7XG4gICAgICBpdGVtUmVtb3ZlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZGVsZXRlKGl0ZW1SZW1vdmUpO1xuICAgIH0pXG4gICAgdGhpcy5pdGVuc1RvU2VsZWN0ID0gdGhpcy5pdGVuc1RvU2VsZWN0LmZpbHRlcih4ID0+ICFpdGVucy5pbmNsdWRlcyh4KSk7XG4gICAgdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5yYXdJdGVuc1RvU2VsZWN0ID0gdGhpcy5pdGVuc1RvU2VsZWN0O1xuICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWRJdGVucygpO1xuICAgIHRoaXMuZmlsdGVySXRlbnNUb1NlbGVjdCgpO1xuICAgIHRoaXMuZW1pdERhdGEoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBmaWx0ZXJJdGVuc1RvU2VsZWN0KCkge1xuICAgIGxldCBzZWFyY2hUZXJtID0gdGhpcy5hdmFpbGFibGVJdGVuc0ZpbHRlcjtcbiAgICBzZWFyY2hUZXJtID0gc2VhcmNoVGVybS50cmltKCk7XG4gICAgaWYgKHNlYXJjaFRlcm0pIHtcbiAgICAgIHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwuZmlsdGVyZWRJdGVuc1RvU2VsZWN0ID0gdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5yYXdJdGVuc1RvU2VsZWN0XG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGNvbXBhcmVTdHJpbmdzKGl0ZW0uZGF0YVt0aGlzLmZpbHRlckJ5XSwgc2VhcmNoVGVybSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLml0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsLmZpbHRlcmVkSXRlbnNUb1NlbGVjdCA9IHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdDtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZmlsdGVyU2VsZWN0ZWRJdGVucygpIHtcbiAgICBsZXQgc2VhcmNoVGVybSA9IHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlcjtcbiAgICBzZWFyY2hUZXJtID0gc2VhcmNoVGVybS50cmltKCk7XG4gICAgaWYgKHNlYXJjaFRlcm0pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwuZmlsdGVyZWRTZWxlY3RlZEl0ZW5zID0gdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5yYXdTZWxlY3RlZEl0ZW5zXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGNvbXBhcmVTdHJpbmdzKGl0ZW0uZGF0YVt0aGlzLmZpbHRlckJ5XSwgc2VhcmNoVGVybSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucyA9IHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwucmF3U2VsZWN0ZWRJdGVucztcbiAgICB9XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxJbnRlcm5hbFBpY2tsaXN0SXRlbVtdPikge1xuICAgIGNvbnN0IGlzRGlmZmVyZW50Q29udGFpbmVyID0gZXZlbnQuY29udGFpbmVyICE9PSBldmVudC5wcmV2aW91c0NvbnRhaW5lcjtcbiAgICBpZiAoIWlzRGlmZmVyZW50Q29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNSZW1vdmVkSXRlbnMgPSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5pZCA9PT0gdGhpcy5zZWxlY3RlZEl0ZW5zSWQ7XG4gICAgaWYgKGlzUmVtb3ZlZEl0ZW5zKSB7XG4gICAgICB0aGlzLnJlbW92ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZCgpO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkRyYWdTdGFydChldmVudDogQ2RrRHJhZ0V2ZW50LCBkcmFnTGlzdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVuc2VsZWN0ZWRJdGVuc0J5TGlzdElkKHRoaXMuZ2V0T3Bwb3NpdGl2ZUlkKGRyYWdMaXN0SWQpKTtcbiAgICBldmVudC5zb3VyY2UuZGF0YS5zZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmFkZChldmVudC5zb3VyY2UuZGF0YSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmZvckVhY2goKHgpID0+IHguaW52aXNpYmxlID0gdHJ1ZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25EcmFnUmVsZWFzZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5pbnZpc2libGUgPSBmYWxzZSk7XG4gIH1cblxuICBjaGVja0FsbEF2YWlsYWJsZUl0ZW5zQ2hhbmdlKGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jaGVja0FsbFNlbGVjdGVkSXRlbnNDaGFuZ2UoY2hlY2tlZCwgdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5maWx0ZXJlZEl0ZW5zVG9TZWxlY3QsIHRoaXMuaXRlbnNUb1NlbGVjdElkKTtcbiAgfVxuXG4gIGNoZWNrQWxsU2VsZWN0ZWRJdGVuc0NoYW5nZShjaGVja2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2hlY2tBbGxTZWxlY3RlZEl0ZW5zQ2hhbmdlKGNoZWNrZWQsIHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwuZmlsdGVyZWRTZWxlY3RlZEl0ZW5zLCB0aGlzLnNlbGVjdGVkSXRlbnNJZCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZVNlbGVjdGVkSXRlbnNDaGVja2JveCgpIHtcbiAgICByZXR1cm4gZmlsdGVyRW5hYmxlZCh0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucykubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVJdGVuc1RvU2VsZWN0Q2hlY2tib3goKSB7XG4gICAgcmV0dXJuIGZpbHRlckVuYWJsZWQodGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5maWx0ZXJlZEl0ZW5zVG9TZWxlY3QpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIGdldCBpdGVuc1RvU2VsZWN0QWxsU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrQWxsU2VsZWN0ZWRCeUxpc3QodGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5maWx0ZXJlZEl0ZW5zVG9TZWxlY3QpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkSXRlbnNBbGxTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tBbGxTZWxlY3RlZEJ5TGlzdCh0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucyk7XG4gIH1cblxuICBnZXQgY2FuQWRkSXRlbnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLml0ZW5zVG9TZWxlY3QgYXMgSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSkuZmlsdGVyKCh4KSA9PiB4Py5zZWxlY3RlZCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldCBjYW5SZW1vdmVJdGVucygpIHtcbiAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRJdGVucyBhcyBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdKS5maWx0ZXIoKHgpID0+IHg/LnNlbGVjdGVkKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBbGxTZWxlY3RlZEJ5TGlzdChsaXN0OiBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdKSB7XG4gICAgY29uc3QgX2xpc3RJdGVucyA9IGZpbHRlckVuYWJsZWQobGlzdCk7XG4gICAgaWYgKCFfbGlzdEl0ZW5zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gX2xpc3RJdGVucy5ldmVyeSgoeCkgPT4geC5zZWxlY3RlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBbGxTZWxlY3RlZEl0ZW5zQ2hhbmdlKGNoZWNrZWQ6IGJvb2xlYW4sIGxpc3Q6IEludGVybmFsUGlja2xpc3RJdGVtW10sIGxpc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy51bnNlbGVjdGVkSXRlbnNCeUxpc3RJZChsaXN0SWQgPT09IHRoaXMuc2VsZWN0ZWRJdGVuc0lkID8gdGhpcy5pdGVuc1RvU2VsZWN0SWQgOiB0aGlzLnNlbGVjdGVkSXRlbnNJZCk7XG4gICAgZmlsdGVyRW5hYmxlZChsaXN0KS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnNlbGVjdGVkID0gY2hlY2tlZDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5hZGQoaXRlbSk7XG4gICAgfSlcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVuc2VsZWN0ZWRJdGVuc0J5TGlzdElkKGxpc3RJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgY2xlYXJMaXN0ID0gdGhpcy5nZXRBbGxFbGVtZW50c0J5TGlzdElkKGxpc3RJZCk7XG4gICAgY2xlYXJMaXN0LmZvckVhY2goKHgpID0+IHtcbiAgICAgIHguc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5kZWxldGUoeCk7XG4gICAgfSlcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGdldEFsbEVsZW1lbnRzQnlMaXN0SWQobGlzdElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGlzdElkID09PSB0aGlzLnNlbGVjdGVkSXRlbnNJZCA/IHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwucmF3U2VsZWN0ZWRJdGVucyA6IHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3Bwb3NpdGl2ZUlkKGxpc3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpc3RJZCA9PT0gdGhpcy5zZWxlY3RlZEl0ZW5zSWQgPyB0aGlzLml0ZW5zVG9TZWxlY3RJZCA6IHRoaXMuc2VsZWN0ZWRJdGVuc0lkO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGF0YSgpIHtcbiAgICB0aGlzLml0ZW5zVG9TZWxlY3RDaGFuZ2UuZW1pdChwYXJzZVZhbHVlRW1pdCh0aGlzLml0ZW5zVG9TZWxlY3QpKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbnNDaGFuZ2UuZW1pdChwYXJzZVZhbHVlRW1pdCh0aGlzLnNlbGVjdGVkSXRlbnMpKTtcbiAgfVxufVxuXG5jb25zdCBub3JtYWxpemVTdHJpbmcgPSAoc3RyOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIHN0ci5ub3JtYWxpemUoXCJORkRcIikucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIikudG9Mb3dlckNhc2UoKTtcbn1cblxuLyoqXG4gKiBDb21wYXJlcyB0d28gc3RyaW5ncyBieSBub3JtYWxpemluZyB0aGVtIHRvIGEgY2FzZS1pbnNlbnNpdGl2ZSBhbmQgYWNjZW50LWZyZWUgZm9ybSxcbiAqIGFuZCBjaGVja3MgaWYgdGhlIG1haW4gc3RyaW5nIGNvbnRhaW5zIHRoZSBzdWJzdHJpbmcuXG4gKlxuICogQHBhcmFtIG1haW5TdHJpbmcgLSBUaGUgc3RyaW5nIHRvIGJlIHNlYXJjaGVkLlxuICogQHBhcmFtIHN1YnN0cmluZyAtIFRoZSBzdHJpbmcgdG8gc2VhcmNoIGZvciB3aXRoaW4gdGhlIG1haW4gc3RyaW5nLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgbm9ybWFsaXplZCBtYWluIHN0cmluZyBjb250YWlucyB0aGUgbm9ybWFsaXplZCBzdWJzdHJpbmcuXG4gKi9cblxuY29uc3QgY29tcGFyZVN0cmluZ3MgPSAobWFpblN0cmluZzogc3RyaW5nLCBzdWJzdHJpbmc6IHN0cmluZykgPT4ge1xuICByZXR1cm4gbm9ybWFsaXplU3RyaW5nKG1haW5TdHJpbmcpLmluY2x1ZGVzKG5vcm1hbGl6ZVN0cmluZyhzdWJzdHJpbmcpKTtcbn1cblxuY29uc3QgcmFuZG9tSGFzaCA9IChwcmVmaXggPSAnaWQnKSA9PiB7XG4gIHJldHVybiBgJHtwcmVmaXh9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpfS0ke0RhdGUubm93KCkudG9TdHJpbmcoMzYpfWBcbn1cblxuY29uc3QgZmlsdGVyRW5hYmxlZCA9IChsaXN0OiBQaWNrTGlzdEl0ZW08YW55PltdIHwgU2V0PEludGVybmFsUGlja2xpc3RJdGVtPik6IEludGVybmFsUGlja2xpc3RJdGVtW10gPT4ge1xuICBjb25zdCBfbGlzdCA9IGxpc3QgaW5zdGFuY2VvZiBTZXQgPyBBcnJheS5mcm9tKGxpc3QpIDogbGlzdDtcbiAgcmV0dXJuIF9saXN0LmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpO1xufVxuXG5jb25zdCBtYXBEYXRhID0gKGxpc3Q6IFBpY2tMaXN0SXRlbTxhbnk+W10pID0+IHtcbiAgcmV0dXJuIGxpc3QubWFwKCh4KSA9PiB4LmRhdGEpO1xufVxuXG5jb25zdCBwYXJzZVZhbHVlRW1pdCA9IHBpcGUoZmlsdGVyRW5hYmxlZCwgbWFwRGF0YSlcblxuZXhwb3J0IGNvbnN0IHBhcnNlSXRlbnNQaWNrTGlzdCA9IDxUPihhcnJheTogVFtdLCBkaXNhYmxlZEZuPzogKGl0ZW06IFQpID0+IGJvb2xlYW4pOiBQaWNrTGlzdEl0ZW08VD5bXSA9PiB7XG4gIHJldHVybiBhcnJheS5tYXAoKHgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogeCxcbiAgICAgIGRpc2FibGVkOiBkaXNhYmxlZEZuID8gZGlzYWJsZWRGbih4KSA6IGZhbHNlXG4gICAgfVxuICB9KVxufVxuIl19
|
|
@@ -61,7 +61,7 @@ SplitButtonComponent = __decorate([
|
|
|
61
61
|
Component({
|
|
62
62
|
selector: "s-split-button",
|
|
63
63
|
template: "<div class=\"split-button\" [ngClass]=\"{\n 'split-button--primary': type == 'primary',\n 'split-button--secondary': type == 'secondary',\n 'split-button--default': type == 'default',\n 'split-button--disabled': disabled\n }\">\n <button class=\"button\" (click)=\"onButtonClick()\">\n <span class=\"button__icon\" [ngClass]=\"iconClass\"></span>\n <span class=\"button__label\">{{ label }}</span>\n </button>\n <button class=\"dropdown\" (click)=\"onDropdownClick()\">\n <span class=\"dropdown__icon\" [ngClass]=\"{\n 'far': true,\n 'fa-chevron-down': !open,\n 'fa-chevron-up': open\n }\">\n </span>\n </button>\n</div>\n\n<ul *ngIf=\"this.open\" class=\"options\">\n <li *ngFor=\"let option of options\" (click)=\"onOptionClick(option)\">\n {{ option.title }}\n </li>\n</ul>",
|
|
64
|
-
styles: [".split-button{display:-ms-flexbox;display:flex;-webkit-user-select:none;-ms-user-select:none;user-select:none}.split-button .button{-ms-flex-align:center;align-items:center;border:none;border-radius:4px 0 0 4px;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px;transition:.3s ease-in-out}.split-button .button__icon{font-size:16px;padding:0 4px}.split-button .button__title{font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:21px}.split-button .dropdown{-ms-flex-align:center;align-items:center;border:none;border-left:1px solid #608190;border-radius:0 4px 4px 0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:12px 8px;transition:.3s ease-in-out}.split-button--disabled{opacity:.5}.split-button--primary .button,.split-button--primary .dropdown{background-color:#428bca;color:#fff}.split-button--primary:not(.split-button--primary--disabled) .button,.split-button--primary:not(.split-button--primary--disabled) .dropdown{cursor:pointer}.split-button--primary:not(.split-button--primary--disabled) .button:hover,.split-button--primary:not(.split-button--primary--disabled) .dropdown:hover{background-color:#063951}.split-button--secondary .button,.split-button--secondary .dropdown{background-color:#7892a1;color:#fff}.split-button--secondary:not(.split-button--secondary--disabled) .button,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown{cursor:pointer}.split-button--secondary:not(.split-button--secondary--disabled) .button:hover,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown:hover{background-color:#697882}.split-button--default .button,.split-button--default .dropdown{background-color:unset;border:1px solid #d8d8d8;color:#333}.split-button--default:not(.split-button--default--disabled) .button,.split-button--default:not(.split-button--default--disabled) .dropdown{cursor:pointer}.split-button--default:not(.split-button--default--disabled) .button:hover,.split-button--default:not(.split-button--default--disabled) .dropdown:hover{background-color:#d8d8d8}.options{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);display:inline-block;list-style:none;margin:2px 0;padding:8px 0;position:absolute;-webkit-user-select:none;-ms-user-select:none;user-select:none}.options li{color:#333;cursor:pointer;font-family:\"Open Sans\",sans-serif;font-weight:400;font-size:14px;line-height:21px;padding:8px 16px}.options li:hover{background-color:#d8d8d8}"]
|
|
64
|
+
styles: [".split-button{display:-ms-flexbox;display:flex;-webkit-user-select:none;-ms-user-select:none;user-select:none}.split-button .button{-ms-flex-align:center;align-items:center;border:none;border-radius:4px 0 0 4px;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px;transition:.3s ease-in-out}.split-button .button__icon{font-size:16px;padding:0 4px}.split-button .button__title{font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:21px}.split-button .dropdown{-ms-flex-align:center;align-items:center;border:none;border-left:1px solid #608190;border-radius:0 4px 4px 0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:12px 8px;transition:.3s ease-in-out}.split-button--disabled{opacity:.5}.split-button--primary .button,.split-button--primary .dropdown{background-color:#428bca;color:#fff}.split-button--primary:not(.split-button--primary--disabled) .button,.split-button--primary:not(.split-button--primary--disabled) .dropdown{cursor:pointer}.split-button--primary:not(.split-button--primary--disabled) .button:hover,.split-button--primary:not(.split-button--primary--disabled) .dropdown:hover{background-color:#063951}.split-button--secondary .button,.split-button--secondary .dropdown{background-color:#7892a1;color:#fff}.split-button--secondary:not(.split-button--secondary--disabled) .button,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown{cursor:pointer}.split-button--secondary:not(.split-button--secondary--disabled) .button:hover,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown:hover{background-color:#697882}.split-button--default .button,.split-button--default .dropdown{background-color:unset;border:1px solid #d8d8d8;color:#333}.split-button--default:not(.split-button--default--disabled) .button,.split-button--default:not(.split-button--default--disabled) .dropdown{cursor:pointer}.split-button--default:not(.split-button--default--disabled) .button:hover,.split-button--default:not(.split-button--default--disabled) .dropdown:hover{background-color:#d8d8d8}.options{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);display:inline-block;list-style:none;margin:2px 0;padding:8px 0;position:absolute;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:10}.options li{color:#333;cursor:pointer;font-family:\"Open Sans\",sans-serif;font-weight:400;font-size:14px;line-height:21px;padding:8px 16px}.options li:hover{background-color:#d8d8d8}"]
|
|
65
65
|
})
|
|
66
66
|
], SplitButtonComponent);
|
|
67
67
|
export { SplitButtonComponent };
|
|
@@ -289,7 +289,7 @@ var PicklistComponent = /** @class */ (function () {
|
|
|
289
289
|
PicklistComponent = __decorate([
|
|
290
290
|
Component({
|
|
291
291
|
selector: 's-picklist',
|
|
292
|
-
template: "<ng-template #previewRender let-itens=\"itens\" let-template=\"template\">\n <section class=\"picklist-items\">\n <ng-container *ngFor=\"let item of itens\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n </ng-container>\n </section>\n</ng-template>\n\n<ng-template #picklistItensRender let-id=\"id\" let-itens=\"itens\" let-template=\"template\" let-listConnectedTo=\"listConnectedTo\">\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\">\n <div\n *ngFor=\"let item of itens\"\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\">\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n *ngIf=\"showCheckbox\">\n <div class=\"picklist-content\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data, selected: item.selected, disabled: item.disabled }\"></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"></ng-container>\n </ng-container>\n </div>\n</div>\n</ng-template>\n\n<ng-template #checkboxTitleRender let-disabled=\"disabled\" let-checked=\"checked\" let-changeFn=\"changeFn\">\n <input\n *ngIf=\"showCheckbox\"\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($event.target.checked)\">\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n <ng-container *ngIf=\"!filterBy\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n </ng-container>\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n <div class=\"picklist-filter\" *ngIf=\"filterBy && showCheckbox\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n <input\n *ngIf=\"filterBy\"\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"availableItensPlaceholder || '
|
|
292
|
+
template: "<ng-template #previewRender let-itens=\"itens\" let-template=\"template\">\n <section class=\"picklist-items\">\n <ng-container *ngFor=\"let item of itens\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n </ng-container>\n </section>\n</ng-template>\n\n<ng-template #picklistItensRender let-id=\"id\" let-itens=\"itens\" let-template=\"template\" let-listConnectedTo=\"listConnectedTo\">\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\">\n <div\n *ngFor=\"let item of itens\"\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\">\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n *ngIf=\"showCheckbox\">\n <div class=\"picklist-content\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data, selected: item.selected, disabled: item.disabled }\"></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"></ng-container>\n </ng-container>\n </div>\n</div>\n</ng-template>\n\n<ng-template #checkboxTitleRender let-disabled=\"disabled\" let-checked=\"checked\" let-changeFn=\"changeFn\">\n <input\n *ngIf=\"showCheckbox\"\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($event.target.checked)\">\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n <ng-container *ngIf=\"!filterBy\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n </ng-container>\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n <div class=\"picklist-filter\" *ngIf=\"filterBy && showCheckbox\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n <input\n *ngIf=\"filterBy\"\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"availableItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\">\n </div>\n <ng-container *ngTemplateOutlet=\"picklistItensRender;\n context: {\n id: itensToSelectId,\n itens: itensToSelectFilterUtil.filteredItensToSelect,\n template: itemToSelectTemplate,\n listConnectedTo: selectedItensId\n }\">\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"addSelectedItensLabel || 'platform.angular_components.add' | translate\"\n priority=\"primary\"\n rightIconClass=\"fa fa-fw fa-arrow-right\"\n [disabled]=\"!canAddItens\"\n (onClick)=\"add()\"\n [auxiliary]=\"false\"\n [caret]=\"false\">\n </s-button>\n <s-button\n [label]=\"addAllItensLabel || 'platform.angular_components.add_all' | translate\"\n priority=\"link\"\n (onClick)=\"add(true)\"\n [auxiliary]=\"false\">\n </s-button>\n </div>\n </div>\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n <ng-container *ngIf=\"!filterBy\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableSelectedItensCheckbox, checked: selectedItensAllSelected, changeFn: checkAllSelectedItensChange.bind(this) }\"></ng-container>\n </ng-container>\n <span class=\"picklist-title\">\n {{ selectedItensLabel || 'platform.angular_components.selected-items' | translate }}\n </span>\n </div>\n <div class=\"picklist-filter\" *ngIf=\"filterBy && showCheckbox\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableSelectedItensCheckbox, checked: selectedItensAllSelected, changeFn: checkAllSelectedItensChange.bind(this) }\"></ng-container>\n <input\n *ngIf=\"filterBy\"\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"selectedItensFilter\"\n (ngModelChange)=\"filterSelectedItens()\"\n [placeholder]=\"selectedItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\">\n </div>\n <ng-container *ngTemplateOutlet=\"picklistItensRender;\n context: {\n id: selectedItensId,\n itens: selectedItensFilterUtil.filteredSelectedItens,\n template: itemSelectedTemplate,\n listConnectedTo: itensToSelectId\n }\">\n\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"removeSelectedItemsLabel || 'platform.angular_components.remove' | translate\"\n priority=\"primary\"\n iconClass=\"fa fa-fw fa-arrow-left\"\n [disabled]=\"!canRemoveItens\"\n [auxiliary]=\"false\"\n (onClick)=\"remove()\"\n [caret]=\"false\">\n </s-button>\n <s-button\n [label]=\"removeAllItemsLabel || 'platform.angular_components.remove_all' | translate\"\n priority=\"link\"\n (onClick)=\"remove(true)\"\n [auxiliary]=\"false\">\n </s-button>\n </div>\n </div>\n</div>\n",
|
|
293
293
|
styles: [".picklist-container{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;border-radius:4px solid #dedce5;width:100%;background-color:#fff;gap:20px;padding:8px}.picklist-container .picklist-item-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1;flex:1}.picklist-container .picklist-item-container .picklist-box{border:1px solid #dedce5;padding:8px;height:100%;min-width:200px}.picklist-container .picklist-item-container .picklist-box .picklist-filter{display:-ms-flexbox;display:flex;width:100%}.picklist-container .picklist-item-container .picklist-box .picklist-filter .input-search{border:1px solid #dedce5;min-height:35px;width:100%;border-radius:3px;margin-bottom:10px;margin-top:10px;padding:0 8px;-ms-flex:1;flex:1}.picklist-container .picklist-item-container .picklist-box .picklist-title-container{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.picklist-container .picklist-item-container .picklist-box .picklist-title-container .picklist-title{font-family:Open Sans;font-size:14px;font-weight:700;line-height:21px;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.picklist-container .picklist-item-container .picklist-box .picklist-items{max-height:23em;overflow:auto;height:100%;min-height:55px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-content{width:100%;height:100%;padding-right:8px;border-radius:3px;margin-bottom:8px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item{height:55px;border:3px;display:-ms-flexbox;display:flex}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:not(.picklist-disabled){cursor:pointer}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:hover:not(.picklist-disabled,.picklist-item-active,.picklist-item-invisible){background-color:#f1f7f8}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-active:not(.picklist-item-invisible){background-color:#d5e8ec}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-disabled{opacity:.5;background-color:#fbfafc}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-invisible{display:none!important}.picklist-container .picklist-item-container .buttons-container{padding-top:10px;display:-ms-flexbox;display:flex}.picklist-container .picklist-item-container .input-checkbox{margin:12px}"]
|
|
294
294
|
})
|
|
295
295
|
], PicklistComponent);
|
|
@@ -336,4 +336,4 @@ export var parseItensPickList = function (array, disabledFn) {
|
|
|
336
336
|
});
|
|
337
337
|
};
|
|
338
338
|
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4 };
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcGlja2xpc3QvcGlja2xpc3QvcGlja2xpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVLLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBYy9FO0lBd0NFLDJCQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXZDakMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBQ3hDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQVN4QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2Isd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUNoRCx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzFELHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMxQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFHekIsNEJBQXVCLEdBR25CO1lBQ0EsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixxQkFBcUIsRUFBRSxFQUFFO1NBQzFCLENBQUE7UUFFSCw0QkFBdUIsR0FHbkI7WUFDQSxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLHFCQUFxQixFQUFFLEVBQUU7U0FDMUIs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UUFDakIsT0FBTztZQUNMLElBQUksRUFBRSxDQUFDO1lBQ1AsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1NBQzdDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwaXBlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vdGVtcGxhdGUvdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBpY2tsaXN0VGVtcGxhdGVUeXBlcywgUGlja0xpc3RJdGVtIH0gZnJvbSAnLi9tb2RlbHMvcGlja2xpc3QtbW9kZWxzJztcblxuaW50ZXJmYWNlIEludGVybmFsUGlja2xpc3RJdGVtPFQgPSBhbnk+IGV4dGVuZHMgUGlja0xpc3RJdGVtPFQ+IHtcbiAgaW52aXNpYmxlPzogYm9vbGVhblxuICBzZWxlY3RlZD86IGJvb2xlYW5cbn1cblxudHlwZSBDZGtEcmFnRXZlbnQgPSB7IHNvdXJjZTogQ2RrRHJhZzxJbnRlcm5hbFBpY2tsaXN0SXRlbTxhbnk+PiB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLXBpY2tsaXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BpY2tsaXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGlja2xpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQaWNrbGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGl0ZW5zVG9TZWxlY3Q6IFBpY2tMaXN0SXRlbTxhbnk+W10gPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVuczogUGlja0xpc3RJdGVtPGFueT5bXSA9IFtdO1xuICBASW5wdXQoKSBhdmFpbGFibGVJdGVuc0xhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGF2YWlsYWJsZUl0ZW5zUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgYWRkU2VsZWN0ZWRJdGVuc0xhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFkZEFsbEl0ZW5zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVuc0xhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbnNQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSByZW1vdmVTZWxlY3RlZEl0ZW1zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcmVtb3ZlQWxsSXRlbXNMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93Q2hlY2tib3ggPSBmYWxzZTtcbiAgQElucHV0KCkgZmlsdGVyQnkgPSAnJztcbiAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkgaXRlbnNUb1NlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gIGF2YWlsYWJsZUl0ZW5zRmlsdGVyID0gJyc7XG4gIHNlbGVjdGVkSXRlbnNGaWx0ZXIgPSAnJztcbiAgaXRlbVRvU2VsZWN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIGl0ZW1TZWxlY3RlZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBpdGVuc1RvU2VsZWN0RmlsdGVyVXRpbDoge1xuICAgIHJhd0l0ZW5zVG9TZWxlY3Q6IEludGVybmFsUGlja2xpc3RJdGVtW10sXG4gICAgZmlsdGVyZWRJdGVuc1RvU2VsZWN0OiBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdLFxuICB9ID0ge1xuICAgICAgcmF3SXRlbnNUb1NlbGVjdDogW10sXG4gICAgICBmaWx0ZXJlZEl0ZW5zVG9TZWxlY3Q6IFtdLFxuICAgIH1cblxuICBzZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbDoge1xuICAgIHJhd1NlbGVjdGVkSXRlbnM6IEludGVybmFsUGlja2xpc3RJdGVtW11cbiAgICBmaWx0ZXJlZFNlbGVjdGVkSXRlbnM6IEludGVybmFsUGlja2xpc3RJdGVtW10sXG4gIH0gPSB7XG4gICAgICByYXdTZWxlY3RlZEl0ZW5zOiBbXSxcbiAgICAgIGZpbHRlcmVkU2VsZWN0ZWRJdGVuczogW10sXG4gICAgfVxuICBzZWxlY3RlZEl0ZW5zTWFwOiBTZXQ8SW50ZXJuYWxQaWNrbGlzdEl0ZW0+ID0gbmV3IFNldCgpO1xuICBpdGVuc1RvU2VsZWN0SWQgPSByYW5kb21IYXNoKCdpdGVuc1RvU2VsZWN0Jyk7XG4gIHNlbGVjdGVkSXRlbnNJZCA9IHJhbmRvbUhhc2goJ3NlbGVjdGVkSXRlbnMnKTtcbiAgcHJpdmF0ZSBsYXN0U2VsZWN0ZWQ6ICd0b1NlbGVjdCcgfCAnc2VsZWN0ZWQnO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpIHByaXZhdGUgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1Ub1NlbGVjdFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZCh4ID0+IHgudHlwZSA9PT0gUGlja2xpc3RUZW1wbGF0ZVR5cGVzLkl0ZW1Ub1NlbGVjdCk/LnRlbXBsYXRlO1xuICAgIHRoaXMuaXRlbVNlbGVjdGVkVGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKHggPT4geC50eXBlID09PSBQaWNrbGlzdFRlbXBsYXRlVHlwZXMuU2VsZWN0ZWRJdGVtKT8udGVtcGxhdGU7XG4gICAgaWYgKCF0aGlzLml0ZW1Ub1NlbGVjdFRlbXBsYXRlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNaXNzaW5nIHRlbXBsYXRlIGZvciAke1BpY2tsaXN0VGVtcGxhdGVUeXBlcy5JdGVtVG9TZWxlY3R9IGFkZCB0aGlzIHRlbXBsYXRlIHVzaW5nIHNUZW1wbGF0ZSBkaXJlY3RpdmUuYCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5pdGVtU2VsZWN0ZWRUZW1wbGF0ZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgTWlzc2luZyB0ZW1wbGF0ZSBmb3IgJHtQaWNrbGlzdFRlbXBsYXRlVHlwZXMuU2VsZWN0ZWRJdGVtfSBhZGQgdGhpcyB0ZW1wbGF0ZSB1c2luZyBzVGVtcGxhdGUgZGlyZWN0aXZlLmApO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuaXRlbnNUb1NlbGVjdCAmJiBjaGFuZ2VzLml0ZW5zVG9TZWxlY3QuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwgPSB7XG4gICAgICAgIHJhd0l0ZW5zVG9TZWxlY3Q6IHRoaXMuaXRlbnNUb1NlbGVjdCxcbiAgICAgICAgZmlsdGVyZWRJdGVuc1RvU2VsZWN0OiB0aGlzLml0ZW5zVG9TZWxlY3QsXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuc2VsZWN0ZWRJdGVucyAmJiBjaGFuZ2VzLnNlbGVjdGVkSXRlbnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwgPSB7XG4gICAgICAgIGZpbHRlcmVkU2VsZWN0ZWRJdGVuczogdGhpcy5zZWxlY3RlZEl0ZW5zLFxuICAgICAgICByYXdTZWxlY3RlZEl0ZW5zOiB0aGlzLnNlbGVjdGVkSXRlbnNcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0b2dnbGVTZWxlY3RlZChpbnRlcm5hbFBpY2tsaXN0SXRlbTogSW50ZXJuYWxQaWNrbGlzdEl0ZW0sIGNvbnRhaW5lckxpc3RJZDogc3RyaW5nKSB7XG4gICAgaWYgKGludGVybmFsUGlja2xpc3RJdGVtLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudW5zZWxlY3RlZEl0ZW5zQnlMaXN0SWQodGhpcy5nZXRPcHBvc2l0aXZlSWQoY29udGFpbmVyTGlzdElkKSk7XG4gICAgaW50ZXJuYWxQaWNrbGlzdEl0ZW0uc2VsZWN0ZWQgPSAhaW50ZXJuYWxQaWNrbGlzdEl0ZW0uc2VsZWN0ZWQ7XG4gICAgaWYgKGludGVybmFsUGlja2xpc3RJdGVtLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuYWRkKGludGVybmFsUGlja2xpc3RJdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmRlbGV0ZShpbnRlcm5hbFBpY2tsaXN0SXRlbSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJlbW92ZShhbGwgPSBmYWxzZSkge1xuICAgIGNvbnN0IGl0ZW5zID0gZmlsdGVyRW5hYmxlZCgoYWxsID8gdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5yYXdTZWxlY3RlZEl0ZW5zIDogdGhpcy5zZWxlY3RlZEl0ZW5zTWFwKSk7XG4gICAgaWYgKCFpdGVucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXRlbnMuZm9yRWFjaCgoaXRlbVJlbW92ZSkgPT4ge1xuICAgICAgdGhpcy5pdGVuc1RvU2VsZWN0LnB1c2goaXRlbVJlbW92ZSk7XG4gICAgICBpdGVtUmVtb3ZlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZGVsZXRlKGl0ZW1SZW1vdmUpO1xuICAgIH0pXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zID0gdGhpcy5zZWxlY3RlZEl0ZW5zLmZpbHRlcih4ID0+ICFpdGVucy5pbmNsdWRlcyh4KSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5yYXdTZWxlY3RlZEl0ZW5zID0gdGhpcy5zZWxlY3RlZEl0ZW5zO1xuICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWRJdGVucygpO1xuICAgIHRoaXMuZmlsdGVySXRlbnNUb1NlbGVjdCgpO1xuICAgIHRoaXMuZW1pdERhdGEoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBhZGQoYWxsID0gZmFsc2UpIHtcbiAgICBjb25zdCBpdGVucyA9IGZpbHRlckVuYWJsZWQoKGFsbCA/IHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdCA6IHRoaXMuc2VsZWN0ZWRJdGVuc01hcCkpO1xuICAgIGlmICghaXRlbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGl0ZW5zLmZvckVhY2goKGl0ZW1SZW1vdmUpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVucy5wdXNoKGl0ZW1SZW1vdmUpO1xuICAgICAgaXRlbVJlbW92ZS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmRlbGV0ZShpdGVtUmVtb3ZlKTtcbiAgICB9KVxuICAgIHRoaXMuaXRlbnNUb1NlbGVjdCA9IHRoaXMuaXRlbnNUb1NlbGVjdC5maWx0ZXIoeCA9PiAhaXRlbnMuaW5jbHVkZXMoeCkpO1xuICAgIHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdCA9IHRoaXMuaXRlbnNUb1NlbGVjdDtcbiAgICB0aGlzLmZpbHRlclNlbGVjdGVkSXRlbnMoKTtcbiAgICB0aGlzLmZpbHRlckl0ZW5zVG9TZWxlY3QoKTtcbiAgICB0aGlzLmVtaXREYXRhKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZmlsdGVySXRlbnNUb1NlbGVjdCgpIHtcbiAgICBsZXQgc2VhcmNoVGVybSA9IHRoaXMuYXZhaWxhYmxlSXRlbnNGaWx0ZXI7XG4gICAgc2VhcmNoVGVybSA9IHNlYXJjaFRlcm0udHJpbSgpO1xuICAgIGlmIChzZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLml0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsLmZpbHRlcmVkSXRlbnNUb1NlbGVjdCA9IHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdFxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBjb21wYXJlU3RyaW5ncyhpdGVtLmRhdGFbdGhpcy5maWx0ZXJCeV0sIHNlYXJjaFRlcm0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5maWx0ZXJlZEl0ZW5zVG9TZWxlY3QgPSB0aGlzLml0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsLnJhd0l0ZW5zVG9TZWxlY3Q7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGZpbHRlclNlbGVjdGVkSXRlbnMoKSB7XG4gICAgbGV0IHNlYXJjaFRlcm0gPSB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXI7XG4gICAgc2VhcmNoVGVybSA9IHNlYXJjaFRlcm0udHJpbSgpO1xuICAgIGlmIChzZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucyA9IHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwucmF3U2VsZWN0ZWRJdGVuc1xuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBjb21wYXJlU3RyaW5ncyhpdGVtLmRhdGFbdGhpcy5maWx0ZXJCeV0sIHNlYXJjaFRlcm0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5maWx0ZXJlZFNlbGVjdGVkSXRlbnMgPSB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLnJhd1NlbGVjdGVkSXRlbnM7XG4gICAgfVxuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8SW50ZXJuYWxQaWNrbGlzdEl0ZW1bXT4pIHtcbiAgICBjb25zdCBpc0RpZmZlcmVudENvbnRhaW5lciA9IGV2ZW50LmNvbnRhaW5lciAhPT0gZXZlbnQucHJldmlvdXNDb250YWluZXI7XG4gICAgaWYgKCFpc0RpZmZlcmVudENvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzUmVtb3ZlZEl0ZW5zID0gZXZlbnQucHJldmlvdXNDb250YWluZXIuaWQgPT09IHRoaXMuc2VsZWN0ZWRJdGVuc0lkO1xuICAgIGlmIChpc1JlbW92ZWRJdGVucykge1xuICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGQoKTtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdFdmVudCwgZHJhZ0xpc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy51bnNlbGVjdGVkSXRlbnNCeUxpc3RJZCh0aGlzLmdldE9wcG9zaXRpdmVJZChkcmFnTGlzdElkKSk7XG4gICAgZXZlbnQuc291cmNlLmRhdGEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5hZGQoZXZlbnQuc291cmNlLmRhdGEpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5mb3JFYWNoKCh4KSA9PiB4LmludmlzaWJsZSA9IHRydWUpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uRHJhZ1JlbGVhc2UoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uaW52aXNpYmxlID0gZmFsc2UpO1xuICB9XG5cbiAgY2hlY2tBbGxBdmFpbGFibGVJdGVuc0NoYW5nZShjaGVja2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2hlY2tBbGxTZWxlY3RlZEl0ZW5zQ2hhbmdlKGNoZWNrZWQsIHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwuZmlsdGVyZWRJdGVuc1RvU2VsZWN0LCB0aGlzLml0ZW5zVG9TZWxlY3RJZCk7XG4gIH1cblxuICBjaGVja0FsbFNlbGVjdGVkSXRlbnNDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2NoZWNrQWxsU2VsZWN0ZWRJdGVuc0NoYW5nZShjaGVja2VkLCB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucywgdGhpcy5zZWxlY3RlZEl0ZW5zSWQpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVTZWxlY3RlZEl0ZW5zQ2hlY2tib3goKSB7XG4gICAgcmV0dXJuIGZpbHRlckVuYWJsZWQodGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5maWx0ZXJlZFNlbGVjdGVkSXRlbnMpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIGdldCBkaXNhYmxlSXRlbnNUb1NlbGVjdENoZWNrYm94KCkge1xuICAgIHJldHVybiBmaWx0ZXJFbmFibGVkKHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwuZmlsdGVyZWRJdGVuc1RvU2VsZWN0KS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBnZXQgaXRlbnNUb1NlbGVjdEFsbFNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9jaGVja0FsbFNlbGVjdGVkQnlMaXN0KHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwuZmlsdGVyZWRJdGVuc1RvU2VsZWN0KTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZEl0ZW5zQWxsU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrQWxsU2VsZWN0ZWRCeUxpc3QodGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5maWx0ZXJlZFNlbGVjdGVkSXRlbnMpO1xuICB9XG5cbiAgZ2V0IGNhbkFkZEl0ZW5zKCkge1xuICAgIHJldHVybiAodGhpcy5pdGVuc1RvU2VsZWN0IGFzIEludGVybmFsUGlja2xpc3RJdGVtW10pLmZpbHRlcigoeCkgPT4geD8uc2VsZWN0ZWQpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBnZXQgY2FuUmVtb3ZlSXRlbnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkSXRlbnMgYXMgSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSkuZmlsdGVyKCh4KSA9PiB4Py5zZWxlY3RlZCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWxsU2VsZWN0ZWRCeUxpc3QobGlzdDogSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSkge1xuICAgIGNvbnN0IF9saXN0SXRlbnMgPSBmaWx0ZXJFbmFibGVkKGxpc3QpO1xuICAgIGlmICghX2xpc3RJdGVucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIF9saXN0SXRlbnMuZXZlcnkoKHgpID0+IHguc2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWxsU2VsZWN0ZWRJdGVuc0NoYW5nZShjaGVja2VkOiBib29sZWFuLCBsaXN0OiBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdLCBsaXN0SWQ6IHN0cmluZykge1xuICAgIHRoaXMudW5zZWxlY3RlZEl0ZW5zQnlMaXN0SWQobGlzdElkID09PSB0aGlzLnNlbGVjdGVkSXRlbnNJZCA/IHRoaXMuaXRlbnNUb1NlbGVjdElkIDogdGhpcy5zZWxlY3RlZEl0ZW5zSWQpO1xuICAgIGZpbHRlckVuYWJsZWQobGlzdCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5zZWxlY3RlZCA9IGNoZWNrZWQ7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuYWRkKGl0ZW0pO1xuICAgIH0pXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnNlbGVjdGVkSXRlbnNCeUxpc3RJZChsaXN0SWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNsZWFyTGlzdCA9IHRoaXMuZ2V0QWxsRWxlbWVudHNCeUxpc3RJZChsaXN0SWQpO1xuICAgIGNsZWFyTGlzdC5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICB4LnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZGVsZXRlKHgpO1xuICAgIH0pXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGxFbGVtZW50c0J5TGlzdElkKGxpc3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpc3RJZCA9PT0gdGhpcy5zZWxlY3RlZEl0ZW5zSWQgPyB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLnJhd1NlbGVjdGVkSXRlbnMgOiB0aGlzLml0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsLnJhd0l0ZW5zVG9TZWxlY3Q7XG4gIH1cblxuICBwcml2YXRlIGdldE9wcG9zaXRpdmVJZChsaXN0SWQ6IHN0cmluZykge1xuICAgIHJldHVybiBsaXN0SWQgPT09IHRoaXMuc2VsZWN0ZWRJdGVuc0lkID8gdGhpcy5pdGVuc1RvU2VsZWN0SWQgOiB0aGlzLnNlbGVjdGVkSXRlbnNJZDtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdERhdGEoKSB7XG4gICAgdGhpcy5pdGVuc1RvU2VsZWN0Q2hhbmdlLmVtaXQocGFyc2VWYWx1ZUVtaXQodGhpcy5pdGVuc1RvU2VsZWN0KSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zQ2hhbmdlLmVtaXQocGFyc2VWYWx1ZUVtaXQodGhpcy5zZWxlY3RlZEl0ZW5zKSk7XG4gIH1cbn1cblxuY29uc3Qgbm9ybWFsaXplU3RyaW5nID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBzdHIubm9ybWFsaXplKFwiTkZEXCIpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpLnRvTG93ZXJDYXNlKCk7XG59XG5cbi8qKlxuICogQ29tcGFyZXMgdHdvIHN0cmluZ3MgYnkgbm9ybWFsaXppbmcgdGhlbSB0byBhIGNhc2UtaW5zZW5zaXRpdmUgYW5kIGFjY2VudC1mcmVlIGZvcm0sXG4gKiBhbmQgY2hlY2tzIGlmIHRoZSBtYWluIHN0cmluZyBjb250YWlucyB0aGUgc3Vic3RyaW5nLlxuICpcbiAqIEBwYXJhbSBtYWluU3RyaW5nIC0gVGhlIHN0cmluZyB0byBiZSBzZWFyY2hlZC5cbiAqIEBwYXJhbSBzdWJzdHJpbmcgLSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3Igd2l0aGluIHRoZSBtYWluIHN0cmluZy5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIG5vcm1hbGl6ZWQgbWFpbiBzdHJpbmcgY29udGFpbnMgdGhlIG5vcm1hbGl6ZWQgc3Vic3RyaW5nLlxuICovXG5cbmNvbnN0IGNvbXBhcmVTdHJpbmdzID0gKG1haW5TdHJpbmc6IHN0cmluZywgc3Vic3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIG5vcm1hbGl6ZVN0cmluZyhtYWluU3RyaW5nKS5pbmNsdWRlcyhub3JtYWxpemVTdHJpbmcoc3Vic3RyaW5nKSk7XG59XG5cbmNvbnN0IHJhbmRvbUhhc2ggPSAocHJlZml4ID0gJ2lkJykgPT4ge1xuICByZXR1cm4gYCR7cHJlZml4fS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX0tJHtEYXRlLm5vdygpLnRvU3RyaW5nKDM2KX1gXG59XG5cbmNvbnN0IGZpbHRlckVuYWJsZWQgPSAobGlzdDogUGlja0xpc3RJdGVtPGFueT5bXSB8IFNldDxJbnRlcm5hbFBpY2tsaXN0SXRlbT4pOiBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdID0+IHtcbiAgY29uc3QgX2xpc3QgPSBsaXN0IGluc3RhbmNlb2YgU2V0ID8gQXJyYXkuZnJvbShsaXN0KSA6IGxpc3Q7XG4gIHJldHVybiBfbGlzdC5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkKTtcbn1cblxuY29uc3QgbWFwRGF0YSA9IChsaXN0OiBQaWNrTGlzdEl0ZW08YW55PltdKSA9PiB7XG4gIHJldHVybiBsaXN0Lm1hcCgoeCkgPT4geC5kYXRhKTtcbn1cblxuY29uc3QgcGFyc2VWYWx1ZUVtaXQgPSBwaXBlKGZpbHRlckVuYWJsZWQsIG1hcERhdGEpXG5cbmV4cG9ydCBjb25zdCBwYXJzZUl0ZW5zUGlja0xpc3QgPSA8VD4oYXJyYXk6IFRbXSwgZGlzYWJsZWRGbj86IChpdGVtOiBUKSA9PiBib29sZWFuKTogUGlja0xpc3RJdGVtPFQ+W10gPT4ge1xuICByZXR1cm4gYXJyYXkubWFwKCh4KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHgsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWRGbiA/IGRpc2FibGVkRm4oeCkgOiBmYWxzZVxuICAgIH1cbiAgfSlcbn1cbiJdfQ==
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcGlja2xpc3QvcGlja2xpc3QvcGlja2xpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVLLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBYy9FO0lBd0NFLDJCQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXZDakMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBQ3hDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQVN4QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2Isd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUNoRCx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzFELHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMxQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFHekIsNEJBQXVCLEdBR25CO1lBQ0EsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixxQkFBcUIsRUFBRSxFQUFFO1NBQzFCLENBQUE7UUFFSCw0QkFBdUIsR0FHbkI7WUFDQSxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLHFCQUFxQixFQUFFLEVBQUU7U0FDMUIs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UUFDakIsT0FBTztZQUNMLElBQUksRUFBRSxDQUFDO1lBQ1AsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1NBQzdDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwaXBlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vdGVtcGxhdGUvdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBpY2tsaXN0VGVtcGxhdGVUeXBlcywgUGlja0xpc3RJdGVtIH0gZnJvbSAnLi9tb2RlbHMvcGlja2xpc3QtbW9kZWxzJztcblxuaW50ZXJmYWNlIEludGVybmFsUGlja2xpc3RJdGVtPFQgPSBhbnk+IGV4dGVuZHMgUGlja0xpc3RJdGVtPFQ+IHtcbiAgaW52aXNpYmxlPzogYm9vbGVhblxuICBzZWxlY3RlZD86IGJvb2xlYW5cbn1cblxudHlwZSBDZGtEcmFnRXZlbnQgPSB7IHNvdXJjZTogQ2RrRHJhZzxJbnRlcm5hbFBpY2tsaXN0SXRlbTxhbnk+PiB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLXBpY2tsaXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BpY2tsaXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGlja2xpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQaWNrbGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGl0ZW5zVG9TZWxlY3Q6IFBpY2tMaXN0SXRlbTxhbnk+W10gPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVuczogUGlja0xpc3RJdGVtPGFueT5bXSA9IFtdO1xuICBASW5wdXQoKSBhdmFpbGFibGVJdGVuc0xhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGF2YWlsYWJsZUl0ZW5zUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgYWRkU2VsZWN0ZWRJdGVuc0xhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFkZEFsbEl0ZW5zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVuc0xhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbnNQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSByZW1vdmVTZWxlY3RlZEl0ZW1zTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcmVtb3ZlQWxsSXRlbXNMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93Q2hlY2tib3ggPSBmYWxzZTtcbiAgQElucHV0KCkgZmlsdGVyQnkgPSAnJztcbiAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkgaXRlbnNUb1NlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG4gIGF2YWlsYWJsZUl0ZW5zRmlsdGVyID0gJyc7XG4gIHNlbGVjdGVkSXRlbnNGaWx0ZXIgPSAnJztcbiAgaXRlbVRvU2VsZWN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIGl0ZW1TZWxlY3RlZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBpdGVuc1RvU2VsZWN0RmlsdGVyVXRpbDoge1xuICAgIHJhd0l0ZW5zVG9TZWxlY3Q6IEludGVybmFsUGlja2xpc3RJdGVtW10sXG4gICAgZmlsdGVyZWRJdGVuc1RvU2VsZWN0OiBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdLFxuICB9ID0ge1xuICAgICAgcmF3SXRlbnNUb1NlbGVjdDogW10sXG4gICAgICBmaWx0ZXJlZEl0ZW5zVG9TZWxlY3Q6IFtdLFxuICAgIH1cblxuICBzZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbDoge1xuICAgIHJhd1NlbGVjdGVkSXRlbnM6IEludGVybmFsUGlja2xpc3RJdGVtW11cbiAgICBmaWx0ZXJlZFNlbGVjdGVkSXRlbnM6IEludGVybmFsUGlja2xpc3RJdGVtW10sXG4gIH0gPSB7XG4gICAgICByYXdTZWxlY3RlZEl0ZW5zOiBbXSxcbiAgICAgIGZpbHRlcmVkU2VsZWN0ZWRJdGVuczogW10sXG4gICAgfVxuICBzZWxlY3RlZEl0ZW5zTWFwOiBTZXQ8SW50ZXJuYWxQaWNrbGlzdEl0ZW0+ID0gbmV3IFNldCgpO1xuICBpdGVuc1RvU2VsZWN0SWQgPSByYW5kb21IYXNoKCdpdGVuc1RvU2VsZWN0Jyk7XG4gIHNlbGVjdGVkSXRlbnNJZCA9IHJhbmRvbUhhc2goJ3NlbGVjdGVkSXRlbnMnKTtcbiAgcHJpdmF0ZSBsYXN0U2VsZWN0ZWQ6ICd0b1NlbGVjdCcgfCAnc2VsZWN0ZWQnO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpIHByaXZhdGUgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1Ub1NlbGVjdFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZCh4ID0+IHgudHlwZSA9PT0gUGlja2xpc3RUZW1wbGF0ZVR5cGVzLkl0ZW1Ub1NlbGVjdCk/LnRlbXBsYXRlO1xuICAgIHRoaXMuaXRlbVNlbGVjdGVkVGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKHggPT4geC50eXBlID09PSBQaWNrbGlzdFRlbXBsYXRlVHlwZXMuU2VsZWN0ZWRJdGVtKT8udGVtcGxhdGU7XG4gICAgaWYgKCF0aGlzLml0ZW1Ub1NlbGVjdFRlbXBsYXRlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNaXNzaW5nIHRlbXBsYXRlIGZvciAke1BpY2tsaXN0VGVtcGxhdGVUeXBlcy5JdGVtVG9TZWxlY3R9IGFkZCB0aGlzIHRlbXBsYXRlIHVzaW5nIHNUZW1wbGF0ZSBkaXJlY3RpdmUuYCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5pdGVtU2VsZWN0ZWRUZW1wbGF0ZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgTWlzc2luZyB0ZW1wbGF0ZSBmb3IgJHtQaWNrbGlzdFRlbXBsYXRlVHlwZXMuU2VsZWN0ZWRJdGVtfSBhZGQgdGhpcyB0ZW1wbGF0ZSB1c2luZyBzVGVtcGxhdGUgZGlyZWN0aXZlLmApO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuaXRlbnNUb1NlbGVjdCAmJiBjaGFuZ2VzLml0ZW5zVG9TZWxlY3QuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwgPSB7XG4gICAgICAgIHJhd0l0ZW5zVG9TZWxlY3Q6IHRoaXMuaXRlbnNUb1NlbGVjdCxcbiAgICAgICAgZmlsdGVyZWRJdGVuc1RvU2VsZWN0OiB0aGlzLml0ZW5zVG9TZWxlY3QsXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuc2VsZWN0ZWRJdGVucyAmJiBjaGFuZ2VzLnNlbGVjdGVkSXRlbnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwgPSB7XG4gICAgICAgIGZpbHRlcmVkU2VsZWN0ZWRJdGVuczogdGhpcy5zZWxlY3RlZEl0ZW5zLFxuICAgICAgICByYXdTZWxlY3RlZEl0ZW5zOiB0aGlzLnNlbGVjdGVkSXRlbnNcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0b2dnbGVTZWxlY3RlZChpbnRlcm5hbFBpY2tsaXN0SXRlbTogSW50ZXJuYWxQaWNrbGlzdEl0ZW0sIGNvbnRhaW5lckxpc3RJZDogc3RyaW5nKSB7XG4gICAgaWYgKGludGVybmFsUGlja2xpc3RJdGVtLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudW5zZWxlY3RlZEl0ZW5zQnlMaXN0SWQodGhpcy5nZXRPcHBvc2l0aXZlSWQoY29udGFpbmVyTGlzdElkKSk7XG4gICAgaW50ZXJuYWxQaWNrbGlzdEl0ZW0uc2VsZWN0ZWQgPSAhaW50ZXJuYWxQaWNrbGlzdEl0ZW0uc2VsZWN0ZWQ7XG4gICAgaWYgKGludGVybmFsUGlja2xpc3RJdGVtLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuYWRkKGludGVybmFsUGlja2xpc3RJdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmRlbGV0ZShpbnRlcm5hbFBpY2tsaXN0SXRlbSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJlbW92ZShhbGwgPSBmYWxzZSkge1xuICAgIGNvbnN0IGl0ZW5zID0gZmlsdGVyRW5hYmxlZCgoYWxsID8gdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5yYXdTZWxlY3RlZEl0ZW5zIDogdGhpcy5zZWxlY3RlZEl0ZW5zTWFwKSk7XG4gICAgaWYgKCFpdGVucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXRlbnMuZm9yRWFjaCgoaXRlbVJlbW92ZSkgPT4ge1xuICAgICAgdGhpcy5pdGVuc1RvU2VsZWN0LnB1c2goaXRlbVJlbW92ZSk7XG4gICAgICBpdGVtUmVtb3ZlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZGVsZXRlKGl0ZW1SZW1vdmUpO1xuICAgIH0pXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zID0gdGhpcy5zZWxlY3RlZEl0ZW5zLmZpbHRlcih4ID0+ICFpdGVucy5pbmNsdWRlcyh4KSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5yYXdTZWxlY3RlZEl0ZW5zID0gdGhpcy5zZWxlY3RlZEl0ZW5zO1xuICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWRJdGVucygpO1xuICAgIHRoaXMuZmlsdGVySXRlbnNUb1NlbGVjdCgpO1xuICAgIHRoaXMuZW1pdERhdGEoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBhZGQoYWxsID0gZmFsc2UpIHtcbiAgICBjb25zdCBpdGVucyA9IGZpbHRlckVuYWJsZWQoKGFsbCA/IHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdCA6IHRoaXMuc2VsZWN0ZWRJdGVuc01hcCkpO1xuICAgIGlmICghaXRlbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGl0ZW5zLmZvckVhY2goKGl0ZW1SZW1vdmUpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVucy5wdXNoKGl0ZW1SZW1vdmUpO1xuICAgICAgaXRlbVJlbW92ZS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmRlbGV0ZShpdGVtUmVtb3ZlKTtcbiAgICB9KVxuICAgIHRoaXMuaXRlbnNUb1NlbGVjdCA9IHRoaXMuaXRlbnNUb1NlbGVjdC5maWx0ZXIoeCA9PiAhaXRlbnMuaW5jbHVkZXMoeCkpO1xuICAgIHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdCA9IHRoaXMuaXRlbnNUb1NlbGVjdDtcbiAgICB0aGlzLmZpbHRlclNlbGVjdGVkSXRlbnMoKTtcbiAgICB0aGlzLmZpbHRlckl0ZW5zVG9TZWxlY3QoKTtcbiAgICB0aGlzLmVtaXREYXRhKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZmlsdGVySXRlbnNUb1NlbGVjdCgpIHtcbiAgICBsZXQgc2VhcmNoVGVybSA9IHRoaXMuYXZhaWxhYmxlSXRlbnNGaWx0ZXI7XG4gICAgc2VhcmNoVGVybSA9IHNlYXJjaFRlcm0udHJpbSgpO1xuICAgIGlmIChzZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLml0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsLmZpbHRlcmVkSXRlbnNUb1NlbGVjdCA9IHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwucmF3SXRlbnNUb1NlbGVjdFxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBjb21wYXJlU3RyaW5ncyhpdGVtLmRhdGFbdGhpcy5maWx0ZXJCeV0sIHNlYXJjaFRlcm0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVuc1RvU2VsZWN0RmlsdGVyVXRpbC5maWx0ZXJlZEl0ZW5zVG9TZWxlY3QgPSB0aGlzLml0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsLnJhd0l0ZW5zVG9TZWxlY3Q7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGZpbHRlclNlbGVjdGVkSXRlbnMoKSB7XG4gICAgbGV0IHNlYXJjaFRlcm0gPSB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXI7XG4gICAgc2VhcmNoVGVybSA9IHNlYXJjaFRlcm0udHJpbSgpO1xuICAgIGlmIChzZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucyA9IHRoaXMuc2VsZWN0ZWRJdGVuc0ZpbHRlclV0aWwucmF3U2VsZWN0ZWRJdGVuc1xuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBjb21wYXJlU3RyaW5ncyhpdGVtLmRhdGFbdGhpcy5maWx0ZXJCeV0sIHNlYXJjaFRlcm0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5maWx0ZXJlZFNlbGVjdGVkSXRlbnMgPSB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLnJhd1NlbGVjdGVkSXRlbnM7XG4gICAgfVxuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8SW50ZXJuYWxQaWNrbGlzdEl0ZW1bXT4pIHtcbiAgICBjb25zdCBpc0RpZmZlcmVudENvbnRhaW5lciA9IGV2ZW50LmNvbnRhaW5lciAhPT0gZXZlbnQucHJldmlvdXNDb250YWluZXI7XG4gICAgaWYgKCFpc0RpZmZlcmVudENvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzUmVtb3ZlZEl0ZW5zID0gZXZlbnQucHJldmlvdXNDb250YWluZXIuaWQgPT09IHRoaXMuc2VsZWN0ZWRJdGVuc0lkO1xuICAgIGlmIChpc1JlbW92ZWRJdGVucykge1xuICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGQoKTtcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdFdmVudCwgZHJhZ0xpc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy51bnNlbGVjdGVkSXRlbnNCeUxpc3RJZCh0aGlzLmdldE9wcG9zaXRpdmVJZChkcmFnTGlzdElkKSk7XG4gICAgZXZlbnQuc291cmNlLmRhdGEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5hZGQoZXZlbnQuc291cmNlLmRhdGEpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVuc01hcC5mb3JFYWNoKCh4KSA9PiB4LmludmlzaWJsZSA9IHRydWUpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uRHJhZ1JlbGVhc2UoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zTWFwLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uaW52aXNpYmxlID0gZmFsc2UpO1xuICB9XG5cbiAgY2hlY2tBbGxBdmFpbGFibGVJdGVuc0NoYW5nZShjaGVja2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2hlY2tBbGxTZWxlY3RlZEl0ZW5zQ2hhbmdlKGNoZWNrZWQsIHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwuZmlsdGVyZWRJdGVuc1RvU2VsZWN0LCB0aGlzLml0ZW5zVG9TZWxlY3RJZCk7XG4gIH1cblxuICBjaGVja0FsbFNlbGVjdGVkSXRlbnNDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2NoZWNrQWxsU2VsZWN0ZWRJdGVuc0NoYW5nZShjaGVja2VkLCB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLmZpbHRlcmVkU2VsZWN0ZWRJdGVucywgdGhpcy5zZWxlY3RlZEl0ZW5zSWQpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVTZWxlY3RlZEl0ZW5zQ2hlY2tib3goKSB7XG4gICAgcmV0dXJuIGZpbHRlckVuYWJsZWQodGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5maWx0ZXJlZFNlbGVjdGVkSXRlbnMpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIGdldCBkaXNhYmxlSXRlbnNUb1NlbGVjdENoZWNrYm94KCkge1xuICAgIHJldHVybiBmaWx0ZXJFbmFibGVkKHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwuZmlsdGVyZWRJdGVuc1RvU2VsZWN0KS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBnZXQgaXRlbnNUb1NlbGVjdEFsbFNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9jaGVja0FsbFNlbGVjdGVkQnlMaXN0KHRoaXMuaXRlbnNUb1NlbGVjdEZpbHRlclV0aWwuZmlsdGVyZWRJdGVuc1RvU2VsZWN0KTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZEl0ZW5zQWxsU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrQWxsU2VsZWN0ZWRCeUxpc3QodGhpcy5zZWxlY3RlZEl0ZW5zRmlsdGVyVXRpbC5maWx0ZXJlZFNlbGVjdGVkSXRlbnMpO1xuICB9XG5cbiAgZ2V0IGNhbkFkZEl0ZW5zKCkge1xuICAgIHJldHVybiAodGhpcy5pdGVuc1RvU2VsZWN0IGFzIEludGVybmFsUGlja2xpc3RJdGVtW10pLmZpbHRlcigoeCkgPT4geD8uc2VsZWN0ZWQpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBnZXQgY2FuUmVtb3ZlSXRlbnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkSXRlbnMgYXMgSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSkuZmlsdGVyKCh4KSA9PiB4Py5zZWxlY3RlZCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWxsU2VsZWN0ZWRCeUxpc3QobGlzdDogSW50ZXJuYWxQaWNrbGlzdEl0ZW1bXSkge1xuICAgIGNvbnN0IF9saXN0SXRlbnMgPSBmaWx0ZXJFbmFibGVkKGxpc3QpO1xuICAgIGlmICghX2xpc3RJdGVucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIF9saXN0SXRlbnMuZXZlcnkoKHgpID0+IHguc2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWxsU2VsZWN0ZWRJdGVuc0NoYW5nZShjaGVja2VkOiBib29sZWFuLCBsaXN0OiBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdLCBsaXN0SWQ6IHN0cmluZykge1xuICAgIHRoaXMudW5zZWxlY3RlZEl0ZW5zQnlMaXN0SWQobGlzdElkID09PSB0aGlzLnNlbGVjdGVkSXRlbnNJZCA/IHRoaXMuaXRlbnNUb1NlbGVjdElkIDogdGhpcy5zZWxlY3RlZEl0ZW5zSWQpO1xuICAgIGZpbHRlckVuYWJsZWQobGlzdCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5zZWxlY3RlZCA9IGNoZWNrZWQ7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuYWRkKGl0ZW0pO1xuICAgIH0pXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnNlbGVjdGVkSXRlbnNCeUxpc3RJZChsaXN0SWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNsZWFyTGlzdCA9IHRoaXMuZ2V0QWxsRWxlbWVudHNCeUxpc3RJZChsaXN0SWQpO1xuICAgIGNsZWFyTGlzdC5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICB4LnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbnNNYXAuZGVsZXRlKHgpO1xuICAgIH0pXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGxFbGVtZW50c0J5TGlzdElkKGxpc3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpc3RJZCA9PT0gdGhpcy5zZWxlY3RlZEl0ZW5zSWQgPyB0aGlzLnNlbGVjdGVkSXRlbnNGaWx0ZXJVdGlsLnJhd1NlbGVjdGVkSXRlbnMgOiB0aGlzLml0ZW5zVG9TZWxlY3RGaWx0ZXJVdGlsLnJhd0l0ZW5zVG9TZWxlY3Q7XG4gIH1cblxuICBwcml2YXRlIGdldE9wcG9zaXRpdmVJZChsaXN0SWQ6IHN0cmluZykge1xuICAgIHJldHVybiBsaXN0SWQgPT09IHRoaXMuc2VsZWN0ZWRJdGVuc0lkID8gdGhpcy5pdGVuc1RvU2VsZWN0SWQgOiB0aGlzLnNlbGVjdGVkSXRlbnNJZDtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdERhdGEoKSB7XG4gICAgdGhpcy5pdGVuc1RvU2VsZWN0Q2hhbmdlLmVtaXQocGFyc2VWYWx1ZUVtaXQodGhpcy5pdGVuc1RvU2VsZWN0KSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW5zQ2hhbmdlLmVtaXQocGFyc2VWYWx1ZUVtaXQodGhpcy5zZWxlY3RlZEl0ZW5zKSk7XG4gIH1cbn1cblxuY29uc3Qgbm9ybWFsaXplU3RyaW5nID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBzdHIubm9ybWFsaXplKFwiTkZEXCIpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpLnRvTG93ZXJDYXNlKCk7XG59XG5cbi8qKlxuICogQ29tcGFyZXMgdHdvIHN0cmluZ3MgYnkgbm9ybWFsaXppbmcgdGhlbSB0byBhIGNhc2UtaW5zZW5zaXRpdmUgYW5kIGFjY2VudC1mcmVlIGZvcm0sXG4gKiBhbmQgY2hlY2tzIGlmIHRoZSBtYWluIHN0cmluZyBjb250YWlucyB0aGUgc3Vic3RyaW5nLlxuICpcbiAqIEBwYXJhbSBtYWluU3RyaW5nIC0gVGhlIHN0cmluZyB0byBiZSBzZWFyY2hlZC5cbiAqIEBwYXJhbSBzdWJzdHJpbmcgLSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3Igd2l0aGluIHRoZSBtYWluIHN0cmluZy5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIG5vcm1hbGl6ZWQgbWFpbiBzdHJpbmcgY29udGFpbnMgdGhlIG5vcm1hbGl6ZWQgc3Vic3RyaW5nLlxuICovXG5cbmNvbnN0IGNvbXBhcmVTdHJpbmdzID0gKG1haW5TdHJpbmc6IHN0cmluZywgc3Vic3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIG5vcm1hbGl6ZVN0cmluZyhtYWluU3RyaW5nKS5pbmNsdWRlcyhub3JtYWxpemVTdHJpbmcoc3Vic3RyaW5nKSk7XG59XG5cbmNvbnN0IHJhbmRvbUhhc2ggPSAocHJlZml4ID0gJ2lkJykgPT4ge1xuICByZXR1cm4gYCR7cHJlZml4fS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA5KX0tJHtEYXRlLm5vdygpLnRvU3RyaW5nKDM2KX1gXG59XG5cbmNvbnN0IGZpbHRlckVuYWJsZWQgPSAobGlzdDogUGlja0xpc3RJdGVtPGFueT5bXSB8IFNldDxJbnRlcm5hbFBpY2tsaXN0SXRlbT4pOiBJbnRlcm5hbFBpY2tsaXN0SXRlbVtdID0+IHtcbiAgY29uc3QgX2xpc3QgPSBsaXN0IGluc3RhbmNlb2YgU2V0ID8gQXJyYXkuZnJvbShsaXN0KSA6IGxpc3Q7XG4gIHJldHVybiBfbGlzdC5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkKTtcbn1cblxuY29uc3QgbWFwRGF0YSA9IChsaXN0OiBQaWNrTGlzdEl0ZW08YW55PltdKSA9PiB7XG4gIHJldHVybiBsaXN0Lm1hcCgoeCkgPT4geC5kYXRhKTtcbn1cblxuY29uc3QgcGFyc2VWYWx1ZUVtaXQgPSBwaXBlKGZpbHRlckVuYWJsZWQsIG1hcERhdGEpXG5cbmV4cG9ydCBjb25zdCBwYXJzZUl0ZW5zUGlja0xpc3QgPSA8VD4oYXJyYXk6IFRbXSwgZGlzYWJsZWRGbj86IChpdGVtOiBUKSA9PiBib29sZWFuKTogUGlja0xpc3RJdGVtPFQ+W10gPT4ge1xuICByZXR1cm4gYXJyYXkubWFwKCh4KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHgsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWRGbiA/IGRpc2FibGVkRm4oeCkgOiBmYWxzZVxuICAgIH1cbiAgfSlcbn1cbiJdfQ==
|
|
@@ -60,7 +60,7 @@ var SplitButtonComponent = /** @class */ (function () {
|
|
|
60
60
|
Component({
|
|
61
61
|
selector: "s-split-button",
|
|
62
62
|
template: "<div class=\"split-button\" [ngClass]=\"{\n 'split-button--primary': type == 'primary',\n 'split-button--secondary': type == 'secondary',\n 'split-button--default': type == 'default',\n 'split-button--disabled': disabled\n }\">\n <button class=\"button\" (click)=\"onButtonClick()\">\n <span class=\"button__icon\" [ngClass]=\"iconClass\"></span>\n <span class=\"button__label\">{{ label }}</span>\n </button>\n <button class=\"dropdown\" (click)=\"onDropdownClick()\">\n <span class=\"dropdown__icon\" [ngClass]=\"{\n 'far': true,\n 'fa-chevron-down': !open,\n 'fa-chevron-up': open\n }\">\n </span>\n </button>\n</div>\n\n<ul *ngIf=\"this.open\" class=\"options\">\n <li *ngFor=\"let option of options\" (click)=\"onOptionClick(option)\">\n {{ option.title }}\n </li>\n</ul>",
|
|
63
|
-
styles: [".split-button{display:-ms-flexbox;display:flex;-webkit-user-select:none;-ms-user-select:none;user-select:none}.split-button .button{-ms-flex-align:center;align-items:center;border:none;border-radius:4px 0 0 4px;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px;transition:.3s ease-in-out}.split-button .button__icon{font-size:16px;padding:0 4px}.split-button .button__title{font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:21px}.split-button .dropdown{-ms-flex-align:center;align-items:center;border:none;border-left:1px solid #608190;border-radius:0 4px 4px 0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:12px 8px;transition:.3s ease-in-out}.split-button--disabled{opacity:.5}.split-button--primary .button,.split-button--primary .dropdown{background-color:#428bca;color:#fff}.split-button--primary:not(.split-button--primary--disabled) .button,.split-button--primary:not(.split-button--primary--disabled) .dropdown{cursor:pointer}.split-button--primary:not(.split-button--primary--disabled) .button:hover,.split-button--primary:not(.split-button--primary--disabled) .dropdown:hover{background-color:#063951}.split-button--secondary .button,.split-button--secondary .dropdown{background-color:#7892a1;color:#fff}.split-button--secondary:not(.split-button--secondary--disabled) .button,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown{cursor:pointer}.split-button--secondary:not(.split-button--secondary--disabled) .button:hover,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown:hover{background-color:#697882}.split-button--default .button,.split-button--default .dropdown{background-color:unset;border:1px solid #d8d8d8;color:#333}.split-button--default:not(.split-button--default--disabled) .button,.split-button--default:not(.split-button--default--disabled) .dropdown{cursor:pointer}.split-button--default:not(.split-button--default--disabled) .button:hover,.split-button--default:not(.split-button--default--disabled) .dropdown:hover{background-color:#d8d8d8}.options{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);display:inline-block;list-style:none;margin:2px 0;padding:8px 0;position:absolute;-webkit-user-select:none;-ms-user-select:none;user-select:none}.options li{color:#333;cursor:pointer;font-family:\"Open Sans\",sans-serif;font-weight:400;font-size:14px;line-height:21px;padding:8px 16px}.options li:hover{background-color:#d8d8d8}"]
|
|
63
|
+
styles: [".split-button{display:-ms-flexbox;display:flex;-webkit-user-select:none;-ms-user-select:none;user-select:none}.split-button .button{-ms-flex-align:center;align-items:center;border:none;border-radius:4px 0 0 4px;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px;transition:.3s ease-in-out}.split-button .button__icon{font-size:16px;padding:0 4px}.split-button .button__title{font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:21px}.split-button .dropdown{-ms-flex-align:center;align-items:center;border:none;border-left:1px solid #608190;border-radius:0 4px 4px 0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:12px 8px;transition:.3s ease-in-out}.split-button--disabled{opacity:.5}.split-button--primary .button,.split-button--primary .dropdown{background-color:#428bca;color:#fff}.split-button--primary:not(.split-button--primary--disabled) .button,.split-button--primary:not(.split-button--primary--disabled) .dropdown{cursor:pointer}.split-button--primary:not(.split-button--primary--disabled) .button:hover,.split-button--primary:not(.split-button--primary--disabled) .dropdown:hover{background-color:#063951}.split-button--secondary .button,.split-button--secondary .dropdown{background-color:#7892a1;color:#fff}.split-button--secondary:not(.split-button--secondary--disabled) .button,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown{cursor:pointer}.split-button--secondary:not(.split-button--secondary--disabled) .button:hover,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown:hover{background-color:#697882}.split-button--default .button,.split-button--default .dropdown{background-color:unset;border:1px solid #d8d8d8;color:#333}.split-button--default:not(.split-button--default--disabled) .button,.split-button--default:not(.split-button--default--disabled) .dropdown{cursor:pointer}.split-button--default:not(.split-button--default--disabled) .button:hover,.split-button--default:not(.split-button--default--disabled) .dropdown:hover{background-color:#d8d8d8}.options{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);display:inline-block;list-style:none;margin:2px 0;padding:8px 0;position:absolute;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:10}.options li{color:#333;cursor:pointer;font-family:\"Open Sans\",sans-serif;font-weight:400;font-size:14px;line-height:21px;padding:8px 16px}.options li:hover{background-color:#d8d8d8}"]
|
|
64
64
|
})
|
|
65
65
|
], SplitButtonComponent);
|
|
66
66
|
return SplitButtonComponent;
|
|
@@ -17954,7 +17954,7 @@ SplitButtonComponent = __decorate([
|
|
|
17954
17954
|
Component({
|
|
17955
17955
|
selector: "s-split-button",
|
|
17956
17956
|
template: "<div class=\"split-button\" [ngClass]=\"{\n 'split-button--primary': type == 'primary',\n 'split-button--secondary': type == 'secondary',\n 'split-button--default': type == 'default',\n 'split-button--disabled': disabled\n }\">\n <button class=\"button\" (click)=\"onButtonClick()\">\n <span class=\"button__icon\" [ngClass]=\"iconClass\"></span>\n <span class=\"button__label\">{{ label }}</span>\n </button>\n <button class=\"dropdown\" (click)=\"onDropdownClick()\">\n <span class=\"dropdown__icon\" [ngClass]=\"{\n 'far': true,\n 'fa-chevron-down': !open,\n 'fa-chevron-up': open\n }\">\n </span>\n </button>\n</div>\n\n<ul *ngIf=\"this.open\" class=\"options\">\n <li *ngFor=\"let option of options\" (click)=\"onOptionClick(option)\">\n {{ option.title }}\n </li>\n</ul>",
|
|
17957
|
-
styles: [".split-button{display:-ms-flexbox;display:flex;-webkit-user-select:none;-ms-user-select:none;user-select:none}.split-button .button{-ms-flex-align:center;align-items:center;border:none;border-radius:4px 0 0 4px;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px;transition:.3s ease-in-out}.split-button .button__icon{font-size:16px;padding:0 4px}.split-button .button__title{font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:21px}.split-button .dropdown{-ms-flex-align:center;align-items:center;border:none;border-left:1px solid #608190;border-radius:0 4px 4px 0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:12px 8px;transition:.3s ease-in-out}.split-button--disabled{opacity:.5}.split-button--primary .button,.split-button--primary .dropdown{background-color:#428bca;color:#fff}.split-button--primary:not(.split-button--primary--disabled) .button,.split-button--primary:not(.split-button--primary--disabled) .dropdown{cursor:pointer}.split-button--primary:not(.split-button--primary--disabled) .button:hover,.split-button--primary:not(.split-button--primary--disabled) .dropdown:hover{background-color:#063951}.split-button--secondary .button,.split-button--secondary .dropdown{background-color:#7892a1;color:#fff}.split-button--secondary:not(.split-button--secondary--disabled) .button,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown{cursor:pointer}.split-button--secondary:not(.split-button--secondary--disabled) .button:hover,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown:hover{background-color:#697882}.split-button--default .button,.split-button--default .dropdown{background-color:unset;border:1px solid #d8d8d8;color:#333}.split-button--default:not(.split-button--default--disabled) .button,.split-button--default:not(.split-button--default--disabled) .dropdown{cursor:pointer}.split-button--default:not(.split-button--default--disabled) .button:hover,.split-button--default:not(.split-button--default--disabled) .dropdown:hover{background-color:#d8d8d8}.options{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);display:inline-block;list-style:none;margin:2px 0;padding:8px 0;position:absolute;-webkit-user-select:none;-ms-user-select:none;user-select:none}.options li{color:#333;cursor:pointer;font-family:\"Open Sans\",sans-serif;font-weight:400;font-size:14px;line-height:21px;padding:8px 16px}.options li:hover{background-color:#d8d8d8}"]
|
|
17957
|
+
styles: [".split-button{display:-ms-flexbox;display:flex;-webkit-user-select:none;-ms-user-select:none;user-select:none}.split-button .button{-ms-flex-align:center;align-items:center;border:none;border-radius:4px 0 0 4px;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px;transition:.3s ease-in-out}.split-button .button__icon{font-size:16px;padding:0 4px}.split-button .button__title{font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:21px}.split-button .dropdown{-ms-flex-align:center;align-items:center;border:none;border-left:1px solid #608190;border-radius:0 4px 4px 0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:12px 8px;transition:.3s ease-in-out}.split-button--disabled{opacity:.5}.split-button--primary .button,.split-button--primary .dropdown{background-color:#428bca;color:#fff}.split-button--primary:not(.split-button--primary--disabled) .button,.split-button--primary:not(.split-button--primary--disabled) .dropdown{cursor:pointer}.split-button--primary:not(.split-button--primary--disabled) .button:hover,.split-button--primary:not(.split-button--primary--disabled) .dropdown:hover{background-color:#063951}.split-button--secondary .button,.split-button--secondary .dropdown{background-color:#7892a1;color:#fff}.split-button--secondary:not(.split-button--secondary--disabled) .button,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown{cursor:pointer}.split-button--secondary:not(.split-button--secondary--disabled) .button:hover,.split-button--secondary:not(.split-button--secondary--disabled) .dropdown:hover{background-color:#697882}.split-button--default .button,.split-button--default .dropdown{background-color:unset;border:1px solid #d8d8d8;color:#333}.split-button--default:not(.split-button--default--disabled) .button,.split-button--default:not(.split-button--default--disabled) .dropdown{cursor:pointer}.split-button--default:not(.split-button--default--disabled) .button:hover,.split-button--default:not(.split-button--default--disabled) .dropdown:hover{background-color:#d8d8d8}.options{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);display:inline-block;list-style:none;margin:2px 0;padding:8px 0;position:absolute;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:10}.options li{color:#333;cursor:pointer;font-family:\"Open Sans\",sans-serif;font-weight:400;font-size:14px;line-height:21px;padding:8px 16px}.options li:hover{background-color:#d8d8d8}"]
|
|
17958
17958
|
})
|
|
17959
17959
|
], SplitButtonComponent);
|
|
17960
17960
|
|
|
@@ -19099,7 +19099,7 @@ __decorate([
|
|
|
19099
19099
|
PicklistComponent = __decorate([
|
|
19100
19100
|
Component({
|
|
19101
19101
|
selector: 's-picklist',
|
|
19102
|
-
template: "<ng-template #previewRender let-itens=\"itens\" let-template=\"template\">\n <section class=\"picklist-items\">\n <ng-container *ngFor=\"let item of itens\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n </ng-container>\n </section>\n</ng-template>\n\n<ng-template #picklistItensRender let-id=\"id\" let-itens=\"itens\" let-template=\"template\" let-listConnectedTo=\"listConnectedTo\">\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\">\n <div\n *ngFor=\"let item of itens\"\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\">\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n *ngIf=\"showCheckbox\">\n <div class=\"picklist-content\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data, selected: item.selected, disabled: item.disabled }\"></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"></ng-container>\n </ng-container>\n </div>\n</div>\n</ng-template>\n\n<ng-template #checkboxTitleRender let-disabled=\"disabled\" let-checked=\"checked\" let-changeFn=\"changeFn\">\n <input\n *ngIf=\"showCheckbox\"\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($event.target.checked)\">\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n <ng-container *ngIf=\"!filterBy\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n </ng-container>\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n <div class=\"picklist-filter\" *ngIf=\"filterBy && showCheckbox\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n <input\n *ngIf=\"filterBy\"\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"availableItensPlaceholder || '
|
|
19102
|
+
template: "<ng-template #previewRender let-itens=\"itens\" let-template=\"template\">\n <section class=\"picklist-items\">\n <ng-container *ngFor=\"let item of itens\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n </ng-container>\n </section>\n</ng-template>\n\n<ng-template #picklistItensRender let-id=\"id\" let-itens=\"itens\" let-template=\"template\" let-listConnectedTo=\"listConnectedTo\">\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\">\n <div\n *ngFor=\"let item of itens\"\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\">\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n *ngIf=\"showCheckbox\">\n <div class=\"picklist-content\">\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data, selected: item.selected, disabled: item.disabled }\"></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"></ng-container>\n </ng-container>\n </div>\n</div>\n</ng-template>\n\n<ng-template #checkboxTitleRender let-disabled=\"disabled\" let-checked=\"checked\" let-changeFn=\"changeFn\">\n <input\n *ngIf=\"showCheckbox\"\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($event.target.checked)\">\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n <ng-container *ngIf=\"!filterBy\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n </ng-container>\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n <div class=\"picklist-filter\" *ngIf=\"filterBy && showCheckbox\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableItensToSelectCheckbox, checked: itensToSelectAllSelected, changeFn: checkAllAvailableItensChange.bind(this) }\"></ng-container>\n <input\n *ngIf=\"filterBy\"\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"availableItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\">\n </div>\n <ng-container *ngTemplateOutlet=\"picklistItensRender;\n context: {\n id: itensToSelectId,\n itens: itensToSelectFilterUtil.filteredItensToSelect,\n template: itemToSelectTemplate,\n listConnectedTo: selectedItensId\n }\">\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"addSelectedItensLabel || 'platform.angular_components.add' | translate\"\n priority=\"primary\"\n rightIconClass=\"fa fa-fw fa-arrow-right\"\n [disabled]=\"!canAddItens\"\n (onClick)=\"add()\"\n [auxiliary]=\"false\"\n [caret]=\"false\">\n </s-button>\n <s-button\n [label]=\"addAllItensLabel || 'platform.angular_components.add_all' | translate\"\n priority=\"link\"\n (onClick)=\"add(true)\"\n [auxiliary]=\"false\">\n </s-button>\n </div>\n </div>\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n <ng-container *ngIf=\"!filterBy\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableSelectedItensCheckbox, checked: selectedItensAllSelected, changeFn: checkAllSelectedItensChange.bind(this) }\"></ng-container>\n </ng-container>\n <span class=\"picklist-title\">\n {{ selectedItensLabel || 'platform.angular_components.selected-items' | translate }}\n </span>\n </div>\n <div class=\"picklist-filter\" *ngIf=\"filterBy && showCheckbox\">\n <ng-container *ngTemplateOutlet=\"checkboxTitleRender; context: { disabled: disableSelectedItensCheckbox, checked: selectedItensAllSelected, changeFn: checkAllSelectedItensChange.bind(this) }\"></ng-container>\n <input\n *ngIf=\"filterBy\"\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"selectedItensFilter\"\n (ngModelChange)=\"filterSelectedItens()\"\n [placeholder]=\"selectedItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\">\n </div>\n <ng-container *ngTemplateOutlet=\"picklistItensRender;\n context: {\n id: selectedItensId,\n itens: selectedItensFilterUtil.filteredSelectedItens,\n template: itemSelectedTemplate,\n listConnectedTo: itensToSelectId\n }\">\n\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"removeSelectedItemsLabel || 'platform.angular_components.remove' | translate\"\n priority=\"primary\"\n iconClass=\"fa fa-fw fa-arrow-left\"\n [disabled]=\"!canRemoveItens\"\n [auxiliary]=\"false\"\n (onClick)=\"remove()\"\n [caret]=\"false\">\n </s-button>\n <s-button\n [label]=\"removeAllItemsLabel || 'platform.angular_components.remove_all' | translate\"\n priority=\"link\"\n (onClick)=\"remove(true)\"\n [auxiliary]=\"false\">\n </s-button>\n </div>\n </div>\n</div>\n",
|
|
19103
19103
|
styles: [".picklist-container{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;border-radius:4px solid #dedce5;width:100%;background-color:#fff;gap:20px;padding:8px}.picklist-container .picklist-item-container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1;flex:1}.picklist-container .picklist-item-container .picklist-box{border:1px solid #dedce5;padding:8px;height:100%;min-width:200px}.picklist-container .picklist-item-container .picklist-box .picklist-filter{display:-ms-flexbox;display:flex;width:100%}.picklist-container .picklist-item-container .picklist-box .picklist-filter .input-search{border:1px solid #dedce5;min-height:35px;width:100%;border-radius:3px;margin-bottom:10px;margin-top:10px;padding:0 8px;-ms-flex:1;flex:1}.picklist-container .picklist-item-container .picklist-box .picklist-title-container{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.picklist-container .picklist-item-container .picklist-box .picklist-title-container .picklist-title{font-family:Open Sans;font-size:14px;font-weight:700;line-height:21px;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.picklist-container .picklist-item-container .picklist-box .picklist-items{max-height:23em;overflow:auto;height:100%;min-height:55px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-content{width:100%;height:100%;padding-right:8px;border-radius:3px;margin-bottom:8px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item{height:55px;border:3px;display:-ms-flexbox;display:flex}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:not(.picklist-disabled){cursor:pointer}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:hover:not(.picklist-disabled,.picklist-item-active,.picklist-item-invisible){background-color:#f1f7f8}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-active:not(.picklist-item-invisible){background-color:#d5e8ec}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-disabled{opacity:.5;background-color:#fbfafc}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-invisible{display:none!important}.picklist-container .picklist-item-container .buttons-container{padding-top:10px;display:-ms-flexbox;display:flex}.picklist-container .picklist-item-container .input-checkbox{margin:12px}"]
|
|
19104
19104
|
})
|
|
19105
19105
|
], PicklistComponent);
|