@skyux/list-builder-view-grids 7.0.0-beta.16 → 7.0.0-beta.18

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.
@@ -1,6 +1,4 @@
1
1
  import { Component } from '@angular/core';
2
- import { SkyModalInstance } from '@skyux/modals';
3
- import { SkyColumnSelectorContext } from './column-selector-context';
4
2
  import * as i0 from "@angular/core";
5
3
  import * as i1 from "./column-selector-context";
6
4
  import * as i2 from "@skyux/modals";
@@ -29,10 +27,10 @@ export class SkyColumnSelectorComponent {
29
27
  this.instance.save(this.newSelectedColumnIds);
30
28
  }
31
29
  }
32
- SkyColumnSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyColumnSelectorComponent, deps: [{ token: i1.SkyColumnSelectorContext }, { token: i2.SkyModalInstance }], target: i0.ɵɵFactoryTarget.Component });
33
- SkyColumnSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyColumnSelectorComponent, selector: "sky-column-selector", ngImport: i0, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_grid_column_picker_header' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-list\n #list\n [data]=\"context.columns\"\n [selectedIds]=\"context.selectedColumnIds\"\n (selectedIdsChange)=\"selectedColumnsChange($event)\"\n >\n <sky-list-toolbar\n [placeholder]=\"\n 'skyux_grid_column_picker_search_placeholder' | skyLibResources\n \"\n >\n </sky-list-toolbar>\n\n <sky-list-view-checklist label=\"heading\" description=\"description\">\n </sky-list-view-checklist>\n </sky-list>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_grid_column_picker_submit' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_grid_column_picker_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", dependencies: [{ kind: "component", type: i2.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody", "ariaLabelledBy"] }, { kind: "component", type: i2.λ2, selector: "sky-modal-content" }, { kind: "component", type: i2.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i2.λ4, selector: "sky-modal-header" }, { kind: "component", type: i3.SkyListComponent, selector: "sky-list", inputs: ["data", "dataProvider", "defaultView", "initialTotal", "selectedIds", "sortFields", "appliedFilters", "search"], outputs: ["selectedIdsChange", "appliedFiltersChange"] }, { kind: "component", type: i3.SkyListToolbarComponent, selector: "sky-list-toolbar", inputs: ["inMemorySearchEnabled", "placeholder", "searchEnabled", "sortSelectorEnabled", "toolbarType", "searchText"] }, { kind: "component", type: i4.SkyListViewChecklistComponent, selector: "sky-list-view-checklist", inputs: ["name", "search", "label", "description", "selectMode", "showOnlySelected"] }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }] });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyColumnSelectorComponent, decorators: [{
30
+ SkyColumnSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyColumnSelectorComponent, deps: [{ token: i1.SkyColumnSelectorContext }, { token: i2.SkyModalInstance }], target: i0.ɵɵFactoryTarget.Component });
31
+ SkyColumnSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyColumnSelectorComponent, selector: "sky-column-selector", ngImport: i0, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_grid_column_picker_header' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-list\n #list\n [data]=\"context.columns\"\n [selectedIds]=\"context.selectedColumnIds\"\n (selectedIdsChange)=\"selectedColumnsChange($event)\"\n >\n <sky-list-toolbar\n [placeholder]=\"\n 'skyux_grid_column_picker_search_placeholder' | skyLibResources\n \"\n >\n </sky-list-toolbar>\n\n <sky-list-view-checklist label=\"heading\" description=\"description\">\n </sky-list-view-checklist>\n </sky-list>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_grid_column_picker_submit' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_grid_column_picker_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", dependencies: [{ kind: "component", type: i2.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody", "ariaLabelledBy"] }, { kind: "component", type: i2.λ2, selector: "sky-modal-content" }, { kind: "component", type: i2.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i2.λ4, selector: "sky-modal-header" }, { kind: "component", type: i3.SkyListComponent, selector: "sky-list", inputs: ["data", "dataProvider", "defaultView", "initialTotal", "selectedIds", "sortFields", "appliedFilters", "search"], outputs: ["selectedIdsChange", "appliedFiltersChange"] }, { kind: "component", type: i3.SkyListToolbarComponent, selector: "sky-list-toolbar", inputs: ["inMemorySearchEnabled", "placeholder", "searchEnabled", "sortSelectorEnabled", "toolbarType", "searchText"] }, { kind: "component", type: i4.SkyListViewChecklistComponent, selector: "sky-list-view-checklist", inputs: ["name", "search", "label", "description", "selectMode", "showOnlySelected"] }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }] });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyColumnSelectorComponent, decorators: [{
35
33
  type: Component,
36
34
  args: [{ selector: 'sky-column-selector', template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_grid_column_picker_header' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-list\n #list\n [data]=\"context.columns\"\n [selectedIds]=\"context.selectedColumnIds\"\n (selectedIdsChange)=\"selectedColumnsChange($event)\"\n >\n <sky-list-toolbar\n [placeholder]=\"\n 'skyux_grid_column_picker_search_placeholder' | skyLibResources\n \"\n >\n </sky-list-toolbar>\n\n <sky-list-view-checklist label=\"heading\" description=\"description\">\n </sky-list-view-checklist>\n </sky-list>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_grid_column_picker_submit' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_grid_column_picker_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n" }]
37
35
  }], ctorParameters: function () { return [{ type: i1.SkyColumnSelectorContext }, { type: i2.SkyModalInstance }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNlbGVjdG9yLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvY29sdW1uLXNlbGVjdG9yL2NvbHVtbi1zZWxlY3Rvci1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctZ3JpZHMvc3JjL2xpYi9tb2R1bGVzL2NvbHVtbi1zZWxlY3Rvci9jb2x1bW4tc2VsZWN0b3ItbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUNTLE9BQWlDLEVBQ2pDLFFBQTBCO1FBRDFCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBSjVCLHlCQUFvQixHQUFrQixFQUFFLENBQUM7UUFNOUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RCxDQUFDO0lBRU0scUJBQXFCLENBQUMsV0FBaUM7UUFDNUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMvQixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2pDLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDaEQsQ0FBQzs7dUhBekJVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDJEQ1R2Qyx5bUNBdUNBOzJGRDlCYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lNb2RhbEluc3RhbmNlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IFNreUNvbHVtblNlbGVjdG9yQ29udGV4dCB9IGZyb20gJy4vY29sdW1uLXNlbGVjdG9yLWNvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktY29sdW1uLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1zZWxlY3Rvci1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvbHVtblNlbGVjdG9yQ29tcG9uZW50IHtcbiAgcHVibGljIG5ld1NlbGVjdGVkQ29sdW1uSWRzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRleHQ6IFNreUNvbHVtblNlbGVjdG9yQ29udGV4dCxcbiAgICBwdWJsaWMgaW5zdGFuY2U6IFNreU1vZGFsSW5zdGFuY2VcbiAgKSB7XG4gICAgdGhpcy5uZXdTZWxlY3RlZENvbHVtbklkcyA9IGNvbnRleHQuc2VsZWN0ZWRDb2x1bW5JZHM7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRDb2x1bW5zQ2hhbmdlKHNlbGVjdGVkTWFwOiBNYXA8c3RyaW5nLCBib29sZWFuPikge1xuICAgIHRoaXMubmV3U2VsZWN0ZWRDb2x1bW5JZHMgPSBbXTtcbiAgICBzZWxlY3RlZE1hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5uZXdTZWxlY3RlZENvbHVtbklkcy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsQ2hhbmdlcygpIHtcbiAgICB0aGlzLmluc3RhbmNlLmNhbmNlbCgpO1xuICB9XG5cbiAgcHVibGljIGFwcGx5Q2hhbmdlcygpIHtcbiAgICB0aGlzLmluc3RhbmNlLnNhdmUodGhpcy5uZXdTZWxlY3RlZENvbHVtbklkcyk7XG4gIH1cbn1cbiIsIjxza3ktbW9kYWw+XG4gIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgIHt7ICdza3l1eF9ncmlkX2NvbHVtbl9waWNrZXJfaGVhZGVyJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICA8L3NreS1tb2RhbC1oZWFkZXI+XG4gIDxza3ktbW9kYWwtY29udGVudD5cbiAgICA8c2t5LWxpc3RcbiAgICAgICNsaXN0XG4gICAgICBbZGF0YV09XCJjb250ZXh0LmNvbHVtbnNcIlxuICAgICAgW3NlbGVjdGVkSWRzXT1cImNvbnRleHQuc2VsZWN0ZWRDb2x1bW5JZHNcIlxuICAgICAgKHNlbGVjdGVkSWRzQ2hhbmdlKT1cInNlbGVjdGVkQ29sdW1uc0NoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c2t5LWxpc3QtdG9vbGJhclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgJ3NreXV4X2dyaWRfY29sdW1uX3BpY2tlcl9zZWFyY2hfcGxhY2Vob2xkZXInIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICA8L3NreS1saXN0LXRvb2xiYXI+XG5cbiAgICAgIDxza3ktbGlzdC12aWV3LWNoZWNrbGlzdCBsYWJlbD1cImhlYWRpbmdcIiBkZXNjcmlwdGlvbj1cImRlc2NyaXB0aW9uXCI+XG4gICAgICA8L3NreS1saXN0LXZpZXctY2hlY2tsaXN0PlxuICAgIDwvc2t5LWxpc3Q+XG4gIDwvc2t5LW1vZGFsLWNvbnRlbnQ+XG4gIDxza3ktbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b25cbiAgICAgIHNreS1jbXAtaWQ9XCJhcHBseS1jaGFuZ2VzXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cImFwcGx5Q2hhbmdlcygpXCJcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfZ3JpZF9jb2x1bW5fcGlja2VyX3N1Ym1pdCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBza3ktY21wLWlkPVwiY2FuY2VsXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmtcIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbENoYW5nZXMoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2dyaWRfY29sdW1uX3BpY2tlcl9jYW5jZWwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9idXR0b24+XG4gIDwvc2t5LW1vZGFsLWZvb3Rlcj5cbjwvc2t5LW1vZGFsPlxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNlbGVjdG9yLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvY29sdW1uLXNlbGVjdG9yL2NvbHVtbi1zZWxlY3Rvci1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctZ3JpZHMvc3JjL2xpYi9tb2R1bGVzL2NvbHVtbi1zZWxlY3Rvci9jb2x1bW4tc2VsZWN0b3ItbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVMxQyxNQUFNLE9BQU8sMEJBQTBCO0lBR3JDLFlBQ1MsT0FBaUMsRUFDakMsUUFBMEI7UUFEMUIsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFDakMsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFKNUIseUJBQW9CLEdBQWtCLEVBQUUsQ0FBQztRQU05QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQ3hELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxXQUFpQztRQUM1RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQy9CLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDakMsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNoRCxDQUFDOzt3SEF6QlUsMEJBQTBCOzRHQUExQiwwQkFBMEIsMkRDVHZDLHltQ0F1Q0E7NEZEOUJhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU1vZGFsSW5zdGFuY2UgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU2t5Q29sdW1uU2VsZWN0b3JDb250ZXh0IH0gZnJvbSAnLi9jb2x1bW4tc2VsZWN0b3ItY29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jb2x1bW4tc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLXNlbGVjdG9yLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q29sdW1uU2VsZWN0b3JDb21wb25lbnQge1xuICBwdWJsaWMgbmV3U2VsZWN0ZWRDb2x1bW5JZHM6IEFycmF5PHN0cmluZz4gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29udGV4dDogU2t5Q29sdW1uU2VsZWN0b3JDb250ZXh0LFxuICAgIHB1YmxpYyBpbnN0YW5jZTogU2t5TW9kYWxJbnN0YW5jZVxuICApIHtcbiAgICB0aGlzLm5ld1NlbGVjdGVkQ29sdW1uSWRzID0gY29udGV4dC5zZWxlY3RlZENvbHVtbklkcztcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RlZENvbHVtbnNDaGFuZ2Uoc2VsZWN0ZWRNYXA6IE1hcDxzdHJpbmcsIGJvb2xlYW4+KSB7XG4gICAgdGhpcy5uZXdTZWxlY3RlZENvbHVtbklkcyA9IFtdO1xuICAgIHNlbGVjdGVkTWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLm5ld1NlbGVjdGVkQ29sdW1uSWRzLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxDaGFuZ2VzKCkge1xuICAgIHRoaXMuaW5zdGFuY2UuY2FuY2VsKCk7XG4gIH1cblxuICBwdWJsaWMgYXBwbHlDaGFuZ2VzKCkge1xuICAgIHRoaXMuaW5zdGFuY2Uuc2F2ZSh0aGlzLm5ld1NlbGVjdGVkQ29sdW1uSWRzKTtcbiAgfVxufVxuIiwiPHNreS1tb2RhbD5cbiAgPHNreS1tb2RhbC1oZWFkZXI+XG4gICAge3sgJ3NreXV4X2dyaWRfY29sdW1uX3BpY2tlcl9oZWFkZXInIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gIDwvc2t5LW1vZGFsLWhlYWRlcj5cbiAgPHNreS1tb2RhbC1jb250ZW50PlxuICAgIDxza3ktbGlzdFxuICAgICAgI2xpc3RcbiAgICAgIFtkYXRhXT1cImNvbnRleHQuY29sdW1uc1wiXG4gICAgICBbc2VsZWN0ZWRJZHNdPVwiY29udGV4dC5zZWxlY3RlZENvbHVtbklkc1wiXG4gICAgICAoc2VsZWN0ZWRJZHNDaGFuZ2UpPVwic2VsZWN0ZWRDb2x1bW5zQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgIDxza3ktbGlzdC10b29sYmFyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAnc2t5dXhfZ3JpZF9jb2x1bW5fcGlja2VyX3NlYXJjaF9wbGFjZWhvbGRlcicgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgIDwvc2t5LWxpc3QtdG9vbGJhcj5cblxuICAgICAgPHNreS1saXN0LXZpZXctY2hlY2tsaXN0IGxhYmVsPVwiaGVhZGluZ1wiIGRlc2NyaXB0aW9uPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgIDwvc2t5LWxpc3Qtdmlldy1jaGVja2xpc3Q+XG4gICAgPC9za3ktbGlzdD5cbiAgPC9za3ktbW9kYWwtY29udGVudD5cbiAgPHNreS1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvblxuICAgICAgc2t5LWNtcC1pZD1cImFwcGx5LWNoYW5nZXNcIlxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tcHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwiYXBwbHlDaGFuZ2VzKClcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9ncmlkX2NvbHVtbl9waWNrZXJfc3VibWl0JyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHNreS1jbXAtaWQ9XCJjYW5jZWxcIlxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGlua1wiXG4gICAgICAoY2xpY2spPVwiY2FuY2VsQ2hhbmdlcygpXCJcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfZ3JpZF9jb2x1bW5fcGlja2VyX2NhbmNlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9za3ktbW9kYWwtZm9vdGVyPlxuPC9za3ktbW9kYWw+XG4iXX0=
@@ -11,20 +11,20 @@ import * as i0 from "@angular/core";
11
11
  */
12
12
  export class SkyColumnSelectorModule {
13
13
  }
14
- SkyColumnSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyColumnSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- SkyColumnSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyColumnSelectorModule, declarations: [SkyColumnSelectorComponent], imports: [CommonModule,
14
+ SkyColumnSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyColumnSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ SkyColumnSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.11", ngImport: i0, type: SkyColumnSelectorModule, declarations: [SkyColumnSelectorComponent], imports: [CommonModule,
16
16
  SkyI18nModule,
17
17
  SkyModalModule,
18
18
  SkyListModule,
19
19
  SkyListToolbarModule,
20
20
  SkyListViewChecklistModule] });
21
- SkyColumnSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyColumnSelectorModule, imports: [CommonModule,
21
+ SkyColumnSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyColumnSelectorModule, imports: [CommonModule,
22
22
  SkyI18nModule,
23
23
  SkyModalModule,
24
24
  SkyListModule,
25
25
  SkyListToolbarModule,
26
26
  SkyListViewChecklistModule] });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyColumnSelectorModule, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyColumnSelectorModule, decorators: [{
28
28
  type: NgModule,
29
29
  args: [{
30
30
  declarations: [SkyColumnSelectorComponent],
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
38
38
  ],
39
39
  }]
40
40
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNlbGVjdG9yLW1vZGFsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvY29sdW1uLXNlbGVjdG9yL2NvbHVtbi1zZWxlY3Rvci1tb2RhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFFL0U7O0dBRUc7QUFZSCxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsaUJBVm5CLDBCQUEwQixhQUV2QyxZQUFZO1FBQ1osYUFBYTtRQUNiLGNBQWM7UUFDZCxhQUFhO1FBQ2Isb0JBQW9CO1FBQ3BCLDBCQUEwQjtxSEFHakIsdUJBQXVCLFlBUmhDLFlBQVk7UUFDWixhQUFhO1FBQ2IsY0FBYztRQUNkLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsMEJBQTBCOzJGQUdqQix1QkFBdUI7a0JBWG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3FCQUMzQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUxpc3RNb2R1bGUsIFNreUxpc3RUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlcic7XG5pbXBvcnQgeyBTa3lMaXN0Vmlld0NoZWNrbGlzdE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItdmlldy1jaGVja2xpc3QnO1xuaW1wb3J0IHsgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU2t5Q29sdW1uU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1zZWxlY3Rvci1tb2RhbC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIExpc3QgYnVpbGRlciB2aWV3IGdyaWQgYW5kIGl0cyBmZWF0dXJlcyBhcmUgZGVwcmVjYXRlZC4gVXNlIGRhdGEgZW50cnkgZ3JpZCBpbnN0ZWFkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9kYXRhLWVudHJ5LWdyaWQuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreUNvbHVtblNlbGVjdG9yQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIFNreUxpc3RNb2R1bGUsXG4gICAgU2t5TGlzdFRvb2xiYXJNb2R1bGUsXG4gICAgU2t5TGlzdFZpZXdDaGVja2xpc3RNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvbHVtblNlbGVjdG9yTW9kdWxlIHt9XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNlbGVjdG9yLW1vZGFsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvY29sdW1uLXNlbGVjdG9yL2NvbHVtbi1zZWxlY3Rvci1tb2RhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFFL0U7O0dBRUc7QUFZSCxNQUFNLE9BQU8sdUJBQXVCOztxSEFBdkIsdUJBQXVCO3NIQUF2Qix1QkFBdUIsaUJBVm5CLDBCQUEwQixhQUV2QyxZQUFZO1FBQ1osYUFBYTtRQUNiLGNBQWM7UUFDZCxhQUFhO1FBQ2Isb0JBQW9CO1FBQ3BCLDBCQUEwQjtzSEFHakIsdUJBQXVCLFlBUmhDLFlBQVk7UUFDWixhQUFhO1FBQ2IsY0FBYztRQUNkLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsMEJBQTBCOzRGQUdqQix1QkFBdUI7a0JBWG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3FCQUMzQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUxpc3RNb2R1bGUsIFNreUxpc3RUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlcic7XG5pbXBvcnQgeyBTa3lMaXN0Vmlld0NoZWNrbGlzdE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItdmlldy1jaGVja2xpc3QnO1xuaW1wb3J0IHsgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU2t5Q29sdW1uU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1zZWxlY3Rvci1tb2RhbC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIExpc3QgYnVpbGRlciB2aWV3IGdyaWQgYW5kIGl0cyBmZWF0dXJlcyBhcmUgZGVwcmVjYXRlZC4gVXNlIGRhdGEgZW50cnkgZ3JpZCBpbnN0ZWFkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9kYXRhLWVudHJ5LWdyaWQuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreUNvbHVtblNlbGVjdG9yQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIFNreUxpc3RNb2R1bGUsXG4gICAgU2t5TGlzdFRvb2xiYXJNb2R1bGUsXG4gICAgU2t5TGlzdFZpZXdDaGVja2xpc3RNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvbHVtblNlbGVjdG9yTW9kdWxlIHt9XG4iXX0=
@@ -1,10 +1,8 @@
1
- import { Component, EventEmitter, Input, Optional, Output, TemplateRef, ViewChild, } from '@angular/core';
2
- import { ListState, ListStateDispatcher, ListToolbarItemModel, SkyListSecondaryActionsComponent, } from '@skyux/list-builder';
3
- import { SkyModalService } from '@skyux/modals';
1
+ import { Component, EventEmitter, Input, Optional, Output, ViewChild, } from '@angular/core';
2
+ import { ListToolbarItemModel, } from '@skyux/list-builder';
4
3
  import { distinctUntilChanged, map as observableMap, take, } from 'rxjs/operators';
5
4
  import { SkyColumnSelectorContext, } from '../column-selector/column-selector-context';
6
5
  import { SkyColumnSelectorComponent } from '../column-selector/column-selector-modal.component';
7
- import { SkyListViewGridComponent } from '../list-view-grid/list-view-grid.component';
8
6
  import { ListViewDisplayedGridColumnsLoadAction } from '../list-view-grid/state/displayed-columns/load.action';
9
7
  import * as i0 from "@angular/core";
10
8
  import * as i1 from "@skyux/list-builder";
@@ -111,9 +109,9 @@ export class SkyListColumnSelectorActionComponent {
111
109
  }
112
110
  }
113
111
  }
114
- SkyListColumnSelectorActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyListColumnSelectorActionComponent, deps: [{ token: i1.ListState }, { token: i2.SkyModalService }, { token: i1.ListStateDispatcher }, { token: i1.SkyListSecondaryActionsComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
115
- SkyListColumnSelectorActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyListColumnSelectorActionComponent, selector: "sky-list-column-selector-action", inputs: { gridView: "gridView", helpKey: "helpKey" }, outputs: { helpOpened: "helpOpened" }, viewQueries: [{ propertyName: "columnChooserTemplate", first: true, predicate: ["columnChooser"], descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"isInGridViewAndSecondary | async\">\n <sky-list-secondary-action>\n <button type=\"button\" (click)=\"openColumnSelector()\">\n {{ 'skyux_grid_columns_button' | skyLibResources }}\n </button>\n </sky-list-secondary-action>\n</ng-container>\n\n<ng-template #columnChooser>\n <sky-list-column-selector-button\n *ngIf=\"isInGridView | async\"\n (click)=\"openColumnSelector()\"\n >\n </sky-list-column-selector-button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.λ6, selector: "sky-list-secondary-action" }, { kind: "component", type: i4.SkyListColumnSelectorButtonComponent, selector: "sky-list-column-selector-button" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }] });
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyListColumnSelectorActionComponent, decorators: [{
112
+ SkyListColumnSelectorActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListColumnSelectorActionComponent, deps: [{ token: i1.ListState }, { token: i2.SkyModalService }, { token: i1.ListStateDispatcher }, { token: i1.SkyListSecondaryActionsComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
113
+ SkyListColumnSelectorActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyListColumnSelectorActionComponent, selector: "sky-list-column-selector-action", inputs: { gridView: "gridView", helpKey: "helpKey" }, outputs: { helpOpened: "helpOpened" }, viewQueries: [{ propertyName: "columnChooserTemplate", first: true, predicate: ["columnChooser"], descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"isInGridViewAndSecondary | async\">\n <sky-list-secondary-action>\n <button type=\"button\" (click)=\"openColumnSelector()\">\n {{ 'skyux_grid_columns_button' | skyLibResources }}\n </button>\n </sky-list-secondary-action>\n</ng-container>\n\n<ng-template #columnChooser>\n <sky-list-column-selector-button\n *ngIf=\"isInGridView | async\"\n (click)=\"openColumnSelector()\"\n >\n </sky-list-column-selector-button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.λ6, selector: "sky-list-secondary-action" }, { kind: "component", type: i4.SkyListColumnSelectorButtonComponent, selector: "sky-list-column-selector-button" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }] });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListColumnSelectorActionComponent, decorators: [{
117
115
  type: Component,
118
116
  args: [{ selector: 'sky-list-column-selector-action', template: "<ng-container *ngIf=\"isInGridViewAndSecondary | async\">\n <sky-list-secondary-action>\n <button type=\"button\" (click)=\"openColumnSelector()\">\n {{ 'skyux_grid_columns_button' | skyLibResources }}\n </button>\n </sky-list-secondary-action>\n</ng-container>\n\n<ng-template #columnChooser>\n <sky-list-column-selector-button\n *ngIf=\"isInGridView | async\"\n (click)=\"openColumnSelector()\"\n >\n </sky-list-column-selector-button>\n</ng-template>\n" }]
119
117
  }], ctorParameters: function () { return [{ type: i1.ListState }, { type: i2.SkyModalService }, { type: i1.ListStateDispatcher }, { type: i1.SkyListSecondaryActionsComponent, decorators: [{
@@ -130,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
130
128
  static: true,
131
129
  }]
132
130
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctZ3JpZHMvc3JjL2xpYi9tb2R1bGVzL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi9saXN0LWNvbHVtbi1zZWxlY3Rvci1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsU0FBUyxFQUNULG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsZ0NBQWdDLEdBQ2pDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFxQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixHQUFHLElBQUksYUFBYSxFQUNwQixJQUFJLEdBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsd0JBQXdCLEdBRXpCLE1BQU0sNENBQTRDLENBQUM7QUFDcEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sdURBQXVELENBQUM7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QUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTs0QkFDeEQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO3dCQUM3RCxDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztvQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQy9CLElBQUksc0NBQXNDLENBQ3hDLG1CQUFtQixFQUNuQixJQUFJLENBQ0wsQ0FDRixDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O2lJQTdJVSxvQ0FBb0M7cUhBQXBDLG9DQUFvQywwU0MzQ2pELCtkQWVBOzJGRDRCYSxvQ0FBb0M7a0JBSmhELFNBQVM7K0JBQ0UsaUNBQWlDOzswQkFtQ3hDLFFBQVE7NENBMUJKLFFBQVE7c0JBRGQsS0FBSztnQkFRQyxPQUFPO3NCQURiLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsTUFBTTtnQkFNQyxxQkFBcUI7c0JBSDVCLFNBQVM7dUJBQUMsZUFBZSxFQUFFO3dCQUMxQixNQUFNLEVBQUUsSUFBSTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lHcmlkQ29sdW1uTW9kZWwgfSBmcm9tICdAc2t5dXgvZ3JpZHMnO1xuaW1wb3J0IHtcbiAgTGlzdFN0YXRlLFxuICBMaXN0U3RhdGVEaXNwYXRjaGVyLFxuICBMaXN0VG9vbGJhckl0ZW1Nb2RlbCxcbiAgU2t5TGlzdFNlY29uZGFyeUFjdGlvbnNDb21wb25lbnQsXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXInO1xuaW1wb3J0IHsgU2t5TW9kYWxDbG9zZUFyZ3MsIFNreU1vZGFsU2VydmljZSB9IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwIGFzIG9ic2VydmFibGVNYXAsXG4gIHRha2UsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgU2t5Q29sdW1uU2VsZWN0b3JDb250ZXh0LFxuICBTa3lDb2x1bW5TZWxlY3Rvck1vZGVsLFxufSBmcm9tICcuLi9jb2x1bW4tc2VsZWN0b3IvY29sdW1uLXNlbGVjdG9yLWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5Q29sdW1uU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW4tc2VsZWN0b3IvY29sdW1uLXNlbGVjdG9yLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lMaXN0Vmlld0dyaWRDb21wb25lbnQgfSBmcm9tICcuLi9saXN0LXZpZXctZ3JpZC9saXN0LXZpZXctZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFZpZXdEaXNwbGF5ZWRHcmlkQ29sdW1uc0xvYWRBY3Rpb24gfSBmcm9tICcuLi9saXN0LXZpZXctZ3JpZC9zdGF0ZS9kaXNwbGF5ZWQtY29sdW1ucy9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBHcmlkU3RhdGVNb2RlbCB9IGZyb20gJy4uL2xpc3Qtdmlldy1ncmlkL3N0YXRlL2dyaWQtc3RhdGUubW9kZWwnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgY29sdW1uIHNlbGVjdG9yIG1vZGFsIGZvciBhIGxpc3QgZ3JpZCB2aWV3IHdoZW4gcGxhY2VkIGluIGFcbiAqIFtsaXN0IHRvb2xiYXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9saXN0L3Rvb2xiYXIpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RDb2x1bW5TZWxlY3RvckFjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAvKipcbiAgICogRW5hYmxlcyB0aGUgY29sdW1uIHNlbGVjdG9yIGluIHRoZSBsaXN0IHRvb2xiYXIuIFNldCB0aGlzIGF0dHJpYnV0ZSB0byB0aGUgaW5zdGFuY2Ugb2ZcbiAgICogdGhlIGBza3ktZ3JpZC12aWV3YCBjb21wb25lbnQgdXNpbmcgdGhlIGNvbXBvbmVudCdzIHRlbXBsYXRlIHJlZmVyZW5jZSB2YXJpYWJsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBncmlkVmlldzogU2t5TGlzdFZpZXdHcmlkQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBgaGVscEtleWAgc3RyaW5nIGFuZCBkaXNwbGF5cyBhIGhlbHAgYnV0dG9uIGluIHRoZSBncmlkIGhlYWRlci4gV2hlbiB1c2VycyBzZWxlY3RcbiAgICogdGhlIGJ1dHRvbiwgdGhlIGBoZWxwT3BlbmVkYCBldmVudCBicm9hZGNhc3RzIHRoZSBgaGVscEtleWAgcGFyYW1ldGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjbGljayB0aGUgaGVscCBidXR0b24gYW5kIGJyb2FkY2FzdHMgdGhlIGBoZWxwS2V5YC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaGVscE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbkNob29zZXInLCB7XG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwcml2YXRlIGNvbHVtbkNob29zZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSBjb2x1bW5TZWxlY3RvckFjdGlvbkl0ZW1Ub29sYmFySW5kZXggPSA3MDAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBsaXN0U3RhdGU6IExpc3RTdGF0ZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogU2t5TW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlzcGF0Y2hlcjogTGlzdFN0YXRlRGlzcGF0Y2hlcixcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgc2Vjb25kYXJ5QWN0aW9uczogU2t5TGlzdFNlY29uZGFyeUFjdGlvbnNDb21wb25lbnRcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKCF0aGlzLnNlY29uZGFyeUFjdGlvbnMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbkNob29zZXJJdGVtID0gbmV3IExpc3RUb29sYmFySXRlbU1vZGVsKHtcbiAgICAgICAgaWQ6ICdjb2x1bW4tY2hvb3NlcicsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmNvbHVtbkNob29zZXJUZW1wbGF0ZSxcbiAgICAgICAgbG9jYXRpb246ICdsZWZ0JyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhckFkZEl0ZW1zKFxuICAgICAgICBbY29sdW1uQ2hvb3Nlckl0ZW1dLFxuICAgICAgICB0aGlzLmNvbHVtblNlbGVjdG9yQWN0aW9uSXRlbVRvb2xiYXJJbmRleFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNJbkdyaWRWaWV3KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RTdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy52aWV3cy5hY3RpdmUpLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgoYWN0aXZlVmlldykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkVmlldyAmJiBhY3RpdmVWaWV3ID09PSB0aGlzLmdyaWRWaWV3LmlkO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc0luR3JpZFZpZXdBbmRTZWNvbmRhcnkoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFN0YXRlLnBpcGUoXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnZpZXdzLmFjdGl2ZSksXG4gICAgICBvYnNlcnZhYmxlTWFwKChhY3RpdmVWaWV3KSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy5zZWNvbmRhcnlBY3Rpb25zICYmXG4gICAgICAgICAgdGhpcy5ncmlkVmlldyAmJlxuICAgICAgICAgIGFjdGl2ZVZpZXcgPT09IHRoaXMuZ3JpZFZpZXcuaWRcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkNvbHVtblNlbGVjdG9yKCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKHRoaXMuZ3JpZFZpZXcpIHtcbiAgICAgIGxldCBjb2x1bW5zOiBBcnJheTxTa3lDb2x1bW5TZWxlY3Rvck1vZGVsPiA9IFtdO1xuICAgICAgbGV0IHNlbGVjdGVkQ29sdW1uSWRzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgICB0aGlzLmdyaWRWaWV3LmdyaWRTdGF0ZVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0ZTogR3JpZFN0YXRlTW9kZWwpID0+IHtcbiAgICAgICAgICBjb2x1bW5zID0gc3RhdGUuY29sdW1ucy5pdGVtc1xuICAgICAgICAgICAgLmZpbHRlcigoaXRlbTogU2t5R3JpZENvbHVtbk1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAhaXRlbS5sb2NrZWQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm1hcCgoaXRlbTogU2t5R3JpZENvbHVtbk1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgaGVhZGluZzogaXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgc2VsZWN0ZWRDb2x1bW5JZHMgPSBzdGF0ZS5kaXNwbGF5ZWRDb2x1bW5zLml0ZW1zXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtOiBTa3lHcmlkQ29sdW1uTW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuICFpdGVtLmxvY2tlZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKChpdGVtOiBTa3lHcmlkQ29sdW1uTW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG1vZGFsSW5zdGFuY2UgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFNreUNvbHVtblNlbGVjdG9yQ29tcG9uZW50LCB7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNreUNvbHVtblNlbGVjdG9yQ29udGV4dCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgIHNlbGVjdGVkQ29sdW1uSWRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBoZWxwS2V5OiB0aGlzLmhlbHBLZXksXG4gICAgICB9KTtcblxuICAgICAgbW9kYWxJbnN0YW5jZS5oZWxwT3BlbmVkLnN1YnNjcmliZSgoaGVscEtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuaGVscE9wZW5lZC5lbWl0KGhlbHBLZXkpO1xuICAgICAgICB0aGlzLmhlbHBPcGVuZWQuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuXG4gICAgICBtb2RhbEluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKHJlc3VsdDogU2t5TW9kYWxDbG9zZUFyZ3MpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC5yZWFzb24gPT09ICdzYXZlJyAmJiByZXN1bHQuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkSWRzID0gcmVzdWx0LmRhdGE7XG4gICAgICAgICAgbGV0IG5ld0Rpc3BsYXllZENvbHVtbnM6IEFycmF5PFNreUdyaWRDb2x1bW5Nb2RlbD4gPSBbXTtcbiAgICAgICAgICB0aGlzLmdyaWRWaWV3LmdyaWRTdGF0ZVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBHcmlkU3RhdGVNb2RlbCkgPT4ge1xuICAgICAgICAgICAgICBuZXdEaXNwbGF5ZWRDb2x1bW5zID0gc3RhdGUuY29sdW1ucy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3U2VsZWN0ZWRJZHMuaW5kZXhPZihpdGVtLmlkKSA+IC0xIHx8IGl0ZW0ubG9ja2VkO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuZ3JpZFZpZXcuZ3JpZERpc3BhdGNoZXIubmV4dChcbiAgICAgICAgICAgIG5ldyBMaXN0Vmlld0Rpc3BsYXllZEdyaWRDb2x1bW5zTG9hZEFjdGlvbihcbiAgICAgICAgICAgICAgbmV3RGlzcGxheWVkQ29sdW1ucyxcbiAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSW5HcmlkVmlld0FuZFNlY29uZGFyeSB8IGFzeW5jXCI+XG4gIDxza3ktbGlzdC1zZWNvbmRhcnktYWN0aW9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuQ29sdW1uU2VsZWN0b3IoKVwiPlxuICAgICAge3sgJ3NreXV4X2dyaWRfY29sdW1uc19idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9idXR0b24+XG4gIDwvc2t5LWxpc3Qtc2Vjb25kYXJ5LWFjdGlvbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NvbHVtbkNob29zZXI+XG4gIDxza3ktbGlzdC1jb2x1bW4tc2VsZWN0b3ItYnV0dG9uXG4gICAgKm5nSWY9XCJpc0luR3JpZFZpZXcgfCBhc3luY1wiXG4gICAgKGNsaWNrKT1cIm9wZW5Db2x1bW5TZWxlY3RvcigpXCJcbiAgPlxuICA8L3NreS1saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctZ3JpZHMvc3JjL2xpYi9tb2R1bGVzL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi9saXN0LWNvbHVtbi1zZWxlY3Rvci1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFHTCxvQkFBb0IsR0FFckIsTUFBTSxxQkFBcUIsQ0FBQztBQUk3QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLEdBQUcsSUFBSSxhQUFhLEVBQ3BCLElBQUksR0FDTCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDTCx3QkFBd0IsR0FFekIsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUVoRyxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7OztBQUcvRzs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sb0NBQW9DO0lBNEIvQyxZQUNTLFNBQW9CLEVBQ25CLFlBQTZCLEVBQzdCLFVBQStCLEVBQ3BCLGdCQUFrRDtRQUg5RCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ25CLGlCQUFZ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QUksQ0FBQyxNQUFNLENBQUM7d0JBQzdELENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO29CQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDL0IsSUFBSSxzQ0FBc0MsQ0FDeEMsbUJBQW1CLEVBQ25CLElBQUksQ0FDTCxDQUNGLENBQUM7aUJBQ0g7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7a0lBN0lVLG9DQUFvQztzSEFBcEMsb0NBQW9DLDBTQzNDakQsK2RBZUE7NEZENEJhLG9DQUFvQztrQkFKaEQsU0FBUzsrQkFDRSxpQ0FBaUM7OzBCQW1DeEMsUUFBUTs0Q0ExQkosUUFBUTtzQkFEZCxLQUFLO2dCQVFDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxVQUFVO3NCQURoQixNQUFNO2dCQU1DLHFCQUFxQjtzQkFINUIsU0FBUzt1QkFBQyxlQUFlLEVBQUU7d0JBQzFCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUdyaWRDb2x1bW5Nb2RlbCB9IGZyb20gJ0Bza3l1eC9ncmlkcyc7XG5pbXBvcnQge1xuICBMaXN0U3RhdGUsXG4gIExpc3RTdGF0ZURpc3BhdGNoZXIsXG4gIExpc3RUb29sYmFySXRlbU1vZGVsLFxuICBTa3lMaXN0U2Vjb25kYXJ5QWN0aW9uc0NvbXBvbmVudCxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlcic7XG5pbXBvcnQgeyBTa3lNb2RhbENsb3NlQXJncywgU2t5TW9kYWxTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAgYXMgb2JzZXJ2YWJsZU1hcCxcbiAgdGFrZSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lDb2x1bW5TZWxlY3RvckNvbnRleHQsXG4gIFNreUNvbHVtblNlbGVjdG9yTW9kZWwsXG59IGZyb20gJy4uL2NvbHVtbi1zZWxlY3Rvci9jb2x1bW4tc2VsZWN0b3ItY29udGV4dCc7XG5pbXBvcnQgeyBTa3lDb2x1bW5TZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbi1zZWxlY3Rvci9jb2x1bW4tc2VsZWN0b3ItbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUxpc3RWaWV3R3JpZENvbXBvbmVudCB9IGZyb20gJy4uL2xpc3Qtdmlldy1ncmlkL2xpc3Qtdmlldy1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0Vmlld0Rpc3BsYXllZEdyaWRDb2x1bW5zTG9hZEFjdGlvbiB9IGZyb20gJy4uL2xpc3Qtdmlldy1ncmlkL3N0YXRlL2Rpc3BsYXllZC1jb2x1bW5zL2xvYWQuYWN0aW9uJztcbmltcG9ydCB7IEdyaWRTdGF0ZU1vZGVsIH0gZnJvbSAnLi4vbGlzdC12aWV3LWdyaWQvc3RhdGUvZ3JpZC1zdGF0ZS5tb2RlbCc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBjb2x1bW4gc2VsZWN0b3IgbW9kYWwgZm9yIGEgbGlzdCBncmlkIHZpZXcgd2hlbiBwbGFjZWQgaW4gYVxuICogW2xpc3QgdG9vbGJhcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2xpc3QvdG9vbGJhcikuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1saXN0LWNvbHVtbi1zZWxlY3Rvci1hY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdENvbHVtblNlbGVjdG9yQWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBjb2x1bW4gc2VsZWN0b3IgaW4gdGhlIGxpc3QgdG9vbGJhci4gU2V0IHRoaXMgYXR0cmlidXRlIHRvIHRoZSBpbnN0YW5jZSBvZlxuICAgKiB0aGUgYHNreS1ncmlkLXZpZXdgIGNvbXBvbmVudCB1c2luZyB0aGUgY29tcG9uZW50J3MgdGVtcGxhdGUgcmVmZXJlbmNlIHZhcmlhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdyaWRWaWV3OiBTa3lMaXN0Vmlld0dyaWRDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGBoZWxwS2V5YCBzdHJpbmcgYW5kIGRpc3BsYXlzIGEgaGVscCBidXR0b24gaW4gdGhlIGdyaWQgaGVhZGVyLiBXaGVuIHVzZXJzIHNlbGVjdFxuICAgKiB0aGUgYnV0dG9uLCB0aGUgYGhlbHBPcGVuZWRgIGV2ZW50IGJyb2FkY2FzdHMgdGhlIGBoZWxwS2V5YCBwYXJhbWV0ZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGNsaWNrIHRoZSBoZWxwIGJ1dHRvbiBhbmQgYnJvYWRjYXN0cyB0aGUgYGhlbHBLZXlgLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBoZWxwT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29sdW1uQ2hvb3NlcicsIHtcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgY29sdW1uQ2hvb3NlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBwcml2YXRlIGNvbHVtblNlbGVjdG9yQWN0aW9uSXRlbVRvb2xiYXJJbmRleCA9IDcwMDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxpc3RTdGF0ZTogTGlzdFN0YXRlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBTa3lNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaXNwYXRjaGVyOiBMaXN0U3RhdGVEaXNwYXRjaGVyLFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBzZWNvbmRhcnlBY3Rpb25zOiBTa3lMaXN0U2Vjb25kYXJ5QWN0aW9uc0NvbXBvbmVudFxuICApIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuc2Vjb25kYXJ5QWN0aW9ucykge1xuICAgICAgY29uc3QgY29sdW1uQ2hvb3Nlckl0ZW0gPSBuZXcgTGlzdFRvb2xiYXJJdGVtTW9kZWwoe1xuICAgICAgICBpZDogJ2NvbHVtbi1jaG9vc2VyJyxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuY29sdW1uQ2hvb3NlclRlbXBsYXRlLFxuICAgICAgICBsb2NhdGlvbjogJ2xlZnQnLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZGlzcGF0Y2hlci50b29sYmFyQWRkSXRlbXMoXG4gICAgICAgIFtjb2x1bW5DaG9vc2VySXRlbV0sXG4gICAgICAgIHRoaXMuY29sdW1uU2VsZWN0b3JBY3Rpb25JdGVtVG9vbGJhckluZGV4XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc0luR3JpZFZpZXcoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFN0YXRlLnBpcGUoXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnZpZXdzLmFjdGl2ZSksXG4gICAgICBvYnNlcnZhYmxlTWFwKChhY3RpdmVWaWV3KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRWaWV3ICYmIGFjdGl2ZVZpZXcgPT09IHRoaXMuZ3JpZFZpZXcuaWQ7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzSW5HcmlkVmlld0FuZFNlY29uZGFyeSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5saXN0U3RhdGUucGlwZShcbiAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMudmlld3MuYWN0aXZlKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKGFjdGl2ZVZpZXcpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLnNlY29uZGFyeUFjdGlvbnMgJiZcbiAgICAgICAgICB0aGlzLmdyaWRWaWV3ICYmXG4gICAgICAgICAgYWN0aXZlVmlldyA9PT0gdGhpcy5ncmlkVmlldy5pZFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuQ29sdW1uU2VsZWN0b3IoKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAodGhpcy5ncmlkVmlldykge1xuICAgICAgbGV0IGNvbHVtbnM6IEFycmF5PFNreUNvbHVtblNlbGVjdG9yTW9kZWw+ID0gW107XG4gICAgICBsZXQgc2VsZWN0ZWRDb2x1bW5JZHM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgIHRoaXMuZ3JpZFZpZXcuZ3JpZFN0YXRlXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBHcmlkU3RhdGVNb2RlbCkgPT4ge1xuICAgICAgICAgIGNvbHVtbnMgPSBzdGF0ZS5jb2x1bW5zLml0ZW1zXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtOiBTa3lHcmlkQ29sdW1uTW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuICFpdGVtLmxvY2tlZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKChpdGVtOiBTa3lHcmlkQ29sdW1uTW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgICAgICAgICBoZWFkaW5nOiBpdGVtLmhlYWRpbmcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBzZWxlY3RlZENvbHVtbklkcyA9IHN0YXRlLmRpc3BsYXllZENvbHVtbnMuaXRlbXNcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IFNreUdyaWRDb2x1bW5Nb2RlbCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gIWl0ZW0ubG9ja2VkO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKGl0ZW06IFNreUdyaWRDb2x1bW5Nb2RlbCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgY29uc3QgbW9kYWxJbnN0YW5jZSA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oU2t5Q29sdW1uU2VsZWN0b3JDb21wb25lbnQsIHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU2t5Q29sdW1uU2VsZWN0b3JDb250ZXh0LFxuICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgICAgc2VsZWN0ZWRDb2x1bW5JZHMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGhlbHBLZXk6IHRoaXMuaGVscEtleSxcbiAgICAgIH0pO1xuXG4gICAgICBtb2RhbEluc3RhbmNlLmhlbHBPcGVuZWQuc3Vic2NyaWJlKChoZWxwS2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5oZWxwT3BlbmVkLmVtaXQoaGVscEtleSk7XG4gICAgICAgIHRoaXMuaGVscE9wZW5lZC5jb21wbGV0ZSgpO1xuICAgICAgfSk7XG5cbiAgICAgIG1vZGFsSW5zdGFuY2UuY2xvc2VkLnN1YnNjcmliZSgocmVzdWx0OiBTa3lNb2RhbENsb3NlQXJncykgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnJlYXNvbiA9PT0gJ3NhdmUnICYmIHJlc3VsdC5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJZHMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICBsZXQgbmV3RGlzcGxheWVkQ29sdW1uczogQXJyYXk8U2t5R3JpZENvbHVtbk1vZGVsPiA9IFtdO1xuICAgICAgICAgIHRoaXMuZ3JpZFZpZXcuZ3JpZFN0YXRlXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IEdyaWRTdGF0ZU1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgIG5ld0Rpc3BsYXllZENvbHVtbnMgPSBzdGF0ZS5jb2x1bW5zLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdTZWxlY3RlZElkcy5pbmRleE9mKGl0ZW0uaWQpID4gLTEgfHwgaXRlbS5sb2NrZWQ7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5ncmlkVmlldy5ncmlkRGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICAgICAgbmV3IExpc3RWaWV3RGlzcGxheWVkR3JpZENvbHVtbnNMb2FkQWN0aW9uKFxuICAgICAgICAgICAgICBuZXdEaXNwbGF5ZWRDb2x1bW5zLFxuICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJbkdyaWRWaWV3QW5kU2Vjb25kYXJ5IHwgYXN5bmNcIj5cbiAgPHNreS1saXN0LXNlY29uZGFyeS1hY3Rpb24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Db2x1bW5TZWxlY3RvcigpXCI+XG4gICAgICB7eyAnc2t5dXhfZ3JpZF9jb2x1bW5zX2J1dHRvbicgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9za3ktbGlzdC1zZWNvbmRhcnktYWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY29sdW1uQ2hvb3Nlcj5cbiAgPHNreS1saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b25cbiAgICAqbmdJZj1cImlzSW5HcmlkVmlldyB8IGFzeW5jXCJcbiAgICAoY2xpY2spPVwib3BlbkNvbHVtblNlbGVjdG9yKClcIlxuICA+XG4gIDwvc2t5LWxpc3QtY29sdW1uLXNlbGVjdG9yLWJ1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -13,21 +13,21 @@ import * as i0 from "@angular/core";
13
13
  */
14
14
  export class SkyListColumnSelectorActionModule {
15
15
  }
16
- SkyListColumnSelectorActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyListColumnSelectorActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- SkyListColumnSelectorActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyListColumnSelectorActionModule, declarations: [SkyListColumnSelectorActionComponent,
16
+ SkyListColumnSelectorActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListColumnSelectorActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ SkyListColumnSelectorActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.11", ngImport: i0, type: SkyListColumnSelectorActionModule, declarations: [SkyListColumnSelectorActionComponent,
18
18
  SkyListColumnSelectorButtonComponent], imports: [CommonModule,
19
19
  SkyI18nModule,
20
20
  SkyModalModule,
21
21
  SkyListSecondaryActionsModule,
22
22
  SkyListToolbarModule,
23
23
  SkyIconModule], exports: [SkyListColumnSelectorActionComponent, SkyColumnSelectorModule] });
24
- SkyListColumnSelectorActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyListColumnSelectorActionModule, imports: [CommonModule,
24
+ SkyListColumnSelectorActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListColumnSelectorActionModule, imports: [CommonModule,
25
25
  SkyI18nModule,
26
26
  SkyModalModule,
27
27
  SkyListSecondaryActionsModule,
28
28
  SkyListToolbarModule,
29
29
  SkyIconModule, SkyColumnSelectorModule] });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyListColumnSelectorActionModule, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListColumnSelectorActionModule, decorators: [{
31
31
  type: NgModule,
32
32
  args: [{
33
33
  declarations: [
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
45
45
  exports: [SkyListColumnSelectorActionComponent, SkyColumnSelectorModule],
46
46
  }]
47
47
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixvQkFBb0IsR0FDckIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQUUvRjs7R0FFRztBQWdCSCxNQUFNLE9BQU8saUNBQWlDOzs4SEFBakMsaUNBQWlDOytIQUFqQyxpQ0FBaUMsaUJBYjFDLG9DQUFvQztRQUNwQyxvQ0FBb0MsYUFHcEMsWUFBWTtRQUNaLGFBQWE7UUFDYixjQUFjO1FBQ2QsNkJBQTZCO1FBQzdCLG9CQUFvQjtRQUNwQixhQUFhLGFBRUwsb0NBQW9DLEVBQUUsdUJBQXVCOytIQUU1RCxpQ0FBaUMsWUFUMUMsWUFBWTtRQUNaLGFBQWE7UUFDYixjQUFjO1FBQ2QsNkJBQTZCO1FBQzdCLG9CQUFvQjtRQUNwQixhQUFhLEVBRWlDLHVCQUF1QjsyRkFFNUQsaUNBQWlDO2tCQWY3QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQ0FBb0M7d0JBQ3BDLG9DQUFvQztxQkFDckM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixjQUFjO3dCQUNkLDZCQUE2Qjt3QkFDN0Isb0JBQW9CO3dCQUNwQixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRSxDQUFDLG9DQUFvQyxFQUFFLHVCQUF1QixDQUFDO2lCQUN6RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5pbXBvcnQge1xuICBTa3lMaXN0U2Vjb25kYXJ5QWN0aW9uc01vZHVsZSxcbiAgU2t5TGlzdFRvb2xiYXJNb2R1bGUsXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXInO1xuaW1wb3J0IHsgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU2t5Q29sdW1uU2VsZWN0b3JNb2R1bGUgfSBmcm9tICcuLi9jb2x1bW4tc2VsZWN0b3IvY29sdW1uLXNlbGVjdG9yLW1vZGFsLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUxpc3RDb2x1bW5TZWxlY3RvckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lMaXN0Q29sdW1uU2VsZWN0b3JCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtY29sdW1uLXNlbGVjdG9yLWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIExpc3QgYnVpbGRlciB2aWV3IGdyaWQgYW5kIGl0cyBmZWF0dXJlcyBhcmUgZGVwcmVjYXRlZC4gVXNlIGRhdGEgZW50cnkgZ3JpZCBpbnN0ZWFkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9kYXRhLWVudHJ5LWdyaWQuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreUxpc3RDb2x1bW5TZWxlY3RvckFjdGlvbkNvbXBvbmVudCxcbiAgICBTa3lMaXN0Q29sdW1uU2VsZWN0b3JCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgICBTa3lNb2RhbE1vZHVsZSxcbiAgICBTa3lMaXN0U2Vjb25kYXJ5QWN0aW9uc01vZHVsZSxcbiAgICBTa3lMaXN0VG9vbGJhck1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5TGlzdENvbHVtblNlbGVjdG9yQWN0aW9uQ29tcG9uZW50LCBTa3lDb2x1bW5TZWxlY3Rvck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RDb2x1bW5TZWxlY3RvckFjdGlvbk1vZHVsZSB7fVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixvQkFBb0IsR0FDckIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQUUvRjs7R0FFRztBQWdCSCxNQUFNLE9BQU8saUNBQWlDOzsrSEFBakMsaUNBQWlDO2dJQUFqQyxpQ0FBaUMsaUJBYjFDLG9DQUFvQztRQUNwQyxvQ0FBb0MsYUFHcEMsWUFBWTtRQUNaLGFBQWE7UUFDYixjQUFjO1FBQ2QsNkJBQTZCO1FBQzdCLG9CQUFvQjtRQUNwQixhQUFhLGFBRUwsb0NBQW9DLEVBQUUsdUJBQXVCO2dJQUU1RCxpQ0FBaUMsWUFUMUMsWUFBWTtRQUNaLGFBQWE7UUFDYixjQUFjO1FBQ2QsNkJBQTZCO1FBQzdCLG9CQUFvQjtRQUNwQixhQUFhLEVBRWlDLHVCQUF1Qjs0RkFFNUQsaUNBQWlDO2tCQWY3QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQ0FBb0M7d0JBQ3BDLG9DQUFvQztxQkFDckM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixjQUFjO3dCQUNkLDZCQUE2Qjt3QkFDN0Isb0JBQW9CO3dCQUNwQixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRSxDQUFDLG9DQUFvQyxFQUFFLHVCQUF1QixDQUFDO2lCQUN6RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5pbXBvcnQge1xuICBTa3lMaXN0U2Vjb25kYXJ5QWN0aW9uc01vZHVsZSxcbiAgU2t5TGlzdFRvb2xiYXJNb2R1bGUsXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXInO1xuaW1wb3J0IHsgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU2t5Q29sdW1uU2VsZWN0b3JNb2R1bGUgfSBmcm9tICcuLi9jb2x1bW4tc2VsZWN0b3IvY29sdW1uLXNlbGVjdG9yLW1vZGFsLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUxpc3RDb2x1bW5TZWxlY3RvckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lMaXN0Q29sdW1uU2VsZWN0b3JCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtY29sdW1uLXNlbGVjdG9yLWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIExpc3QgYnVpbGRlciB2aWV3IGdyaWQgYW5kIGl0cyBmZWF0dXJlcyBhcmUgZGVwcmVjYXRlZC4gVXNlIGRhdGEgZW50cnkgZ3JpZCBpbnN0ZWFkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9kYXRhLWVudHJ5LWdyaWQuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreUxpc3RDb2x1bW5TZWxlY3RvckFjdGlvbkNvbXBvbmVudCxcbiAgICBTa3lMaXN0Q29sdW1uU2VsZWN0b3JCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgICBTa3lNb2RhbE1vZHVsZSxcbiAgICBTa3lMaXN0U2Vjb25kYXJ5QWN0aW9uc01vZHVsZSxcbiAgICBTa3lMaXN0VG9vbGJhck1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5TGlzdENvbHVtblNlbGVjdG9yQWN0aW9uQ29tcG9uZW50LCBTa3lDb2x1bW5TZWxlY3Rvck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RDb2x1bW5TZWxlY3RvckFjdGlvbk1vZHVsZSB7fVxuIl19
@@ -4,10 +4,10 @@ import * as i1 from "@skyux/indicators";
4
4
  import * as i2 from "@skyux/i18n";
5
5
  export class SkyListColumnSelectorButtonComponent {
6
6
  }
7
- SkyListColumnSelectorButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyListColumnSelectorButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- SkyListColumnSelectorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyListColumnSelectorButtonComponent, selector: "sky-list-column-selector-button", ngImport: i0, template: "<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_grid_columns_button' | skyLibResources\"\n [title]=\"'skyux_grid_columns_button' | skyLibResources\"\n>\n <sky-icon icon=\"columns\"></sky-icon>\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_grid_columns_toolbar_button' | skyLibResources }}\n </span>\n</button>\n", styles: [":host .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:inline}\n"], dependencies: [{ kind: "component", type: i1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }] });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyListColumnSelectorButtonComponent, decorators: [{
7
+ SkyListColumnSelectorButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListColumnSelectorButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ SkyListColumnSelectorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyListColumnSelectorButtonComponent, selector: "sky-list-column-selector-button", ngImport: i0, template: "<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_grid_columns_button' | skyLibResources\"\n [title]=\"'skyux_grid_columns_button' | skyLibResources\"\n>\n <sky-icon icon=\"columns\"></sky-icon>\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_grid_columns_toolbar_button' | skyLibResources }}\n </span>\n</button>\n", styles: [":host .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:inline}\n"], dependencies: [{ kind: "component", type: i1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListColumnSelectorButtonComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{ selector: 'sky-list-column-selector-button', template: "<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_grid_columns_button' | skyLibResources\"\n [title]=\"'skyux_grid_columns_button' | skyLibResources\"\n>\n <sky-icon icon=\"columns\"></sky-icon>\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_grid_columns_toolbar_button' | skyLibResources }}\n </span>\n</button>\n", styles: [":host .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:inline}\n"] }]
12
12
  }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4tc2VsZWN0b3ItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uL2xpc3QtY29sdW1uLXNlbGVjdG9yLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctZ3JpZHMvc3JjL2xpYi9tb2R1bGVzL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi9saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU8xQyxNQUFNLE9BQU8sb0NBQW9DOztpSUFBcEMsb0NBQW9DO3FIQUFwQyxvQ0FBb0MsdUVDUGpELG1ZQVdBOzJGREphLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWxpc3QtY29sdW1uLXNlbGVjdG9yLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdENvbHVtblNlbGVjdG9yQnV0dG9uQ29tcG9uZW50IHt9XG4iLCI8YnV0dG9uXG4gIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHRcIlxuICB0eXBlPVwiYnV0dG9uXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfZ3JpZF9jb2x1bW5zX2J1dHRvbicgfCBza3lMaWJSZXNvdXJjZXNcIlxuICBbdGl0bGVdPVwiJ3NreXV4X2dyaWRfY29sdW1uc19idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzXCJcbj5cbiAgPHNreS1pY29uIGljb249XCJjb2x1bW5zXCI+PC9za3ktaWNvbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktY29sdW1uLXNlbGVjdG9yLWFjdGlvbi1idG4tdGV4dFwiPlxuICAgIHt7ICdza3l1eF9ncmlkX2NvbHVtbnNfdG9vbGJhcl9idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gIDwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4tc2VsZWN0b3ItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXItdmlldy1ncmlkcy9zcmMvbGliL21vZHVsZXMvbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uL2xpc3QtY29sdW1uLXNlbGVjdG9yLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctZ3JpZHMvc3JjL2xpYi9tb2R1bGVzL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi9saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU8xQyxNQUFNLE9BQU8sb0NBQW9DOztrSUFBcEMsb0NBQW9DO3NIQUFwQyxvQ0FBb0MsdUVDUGpELG1ZQVdBOzRGREphLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWxpc3QtY29sdW1uLXNlbGVjdG9yLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdENvbHVtblNlbGVjdG9yQnV0dG9uQ29tcG9uZW50IHt9XG4iLCI8YnV0dG9uXG4gIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHRcIlxuICB0eXBlPVwiYnV0dG9uXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfZ3JpZF9jb2x1bW5zX2J1dHRvbicgfCBza3lMaWJSZXNvdXJjZXNcIlxuICBbdGl0bGVdPVwiJ3NreXV4X2dyaWRfY29sdW1uc19idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzXCJcbj5cbiAgPHNreS1pY29uIGljb249XCJjb2x1bW5zXCI+PC9za3ktaWNvbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktY29sdW1uLXNlbGVjdG9yLWFjdGlvbi1idG4tdGV4dFwiPlxuICAgIHt7ICdza3l1eF9ncmlkX2NvbHVtbnNfdG9vbGJhcl9idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gIDwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
@@ -1,7 +1,6 @@
1
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, QueryList, ViewChild, forwardRef, } from '@angular/core';
2
- import { SkyLogService } from '@skyux/core';
1
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, ViewChild, forwardRef, } from '@angular/core';
3
2
  import { SkyGridColumnComponent, SkyGridColumnModel, SkyGridComponent, SkyGridMessageType, SkyGridSelectedRowsSource, } from '@skyux/grids';
4
- import { ListSearchModel, ListState, ListStateDispatcher, ListViewComponent, } from '@skyux/list-builder';
3
+ import { ListSearchModel, ListViewComponent, } from '@skyux/list-builder';
5
4
  import { getValue } from '@skyux/list-builder-common';
6
5
  import { getData, isObservable, } from '@skyux/list-builder-common';
7
6
  import { Subject, of as observableOf } from 'rxjs';
@@ -402,8 +401,8 @@ export class SkyListViewGridComponent extends ListViewComponent {
402
401
  arrayA.every((value, index) => value === arrayB[index]));
403
402
  }
404
403
  }
405
- SkyListViewGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyListViewGridComponent, deps: [{ token: i1.ListState }, { token: i1.ListStateDispatcher }, { token: i2.GridState }, { token: i3.GridStateDispatcher }, { token: i4.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
406
- SkyListViewGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyListViewGridComponent, selector: "sky-list-view-grid", inputs: { name: "name", displayedColumns: "displayedColumns", hiddenColumns: "hiddenColumns", fit: "fit", width: "width", height: "height", highlightSearchText: "highlightSearchText", messageStream: "messageStream", rowHighlightedId: "rowHighlightedId", enableMultiselect: "enableMultiselect", settingsKey: "settingsKey", searchFunction: ["search", "searchFunction"] }, outputs: { rowDeleteCancel: "rowDeleteCancel", rowDeleteConfirm: "rowDeleteConfirm", selectedColumnIdsChange: "selectedColumnIdsChange" }, providers: [
404
+ SkyListViewGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListViewGridComponent, deps: [{ token: i1.ListState }, { token: i1.ListStateDispatcher }, { token: i2.GridState }, { token: i3.GridStateDispatcher }, { token: i4.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
405
+ SkyListViewGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyListViewGridComponent, selector: "sky-list-view-grid", inputs: { name: "name", displayedColumns: "displayedColumns", hiddenColumns: "hiddenColumns", fit: "fit", width: "width", height: "height", highlightSearchText: "highlightSearchText", messageStream: "messageStream", rowHighlightedId: "rowHighlightedId", enableMultiselect: "enableMultiselect", settingsKey: "settingsKey", searchFunction: ["search", "searchFunction"] }, outputs: { rowDeleteCancel: "rowDeleteCancel", rowDeleteConfirm: "rowDeleteConfirm", selectedColumnIdsChange: "selectedColumnIdsChange" }, providers: [
407
406
  {
408
407
  provide: ListViewComponent,
409
408
  useExisting: forwardRef(() => SkyListViewGridComponent),
@@ -412,7 +411,7 @@ SkyListViewGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0
412
411
  GridStateDispatcher,
413
412
  GridStateModel,
414
413
  ], queries: [{ propertyName: "columnComponents", predicate: SkyGridColumnComponent }], viewQueries: [{ propertyName: "gridComponent", first: true, predicate: SkyGridComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"active | async\">\n <sky-grid\n [columns]=\"columns | async\"\n [data]=\"items | async\"\n [enableMultiselect]=\"enableMultiselect\"\n [fit]=\"fit\"\n [height]=\"gridHeight | async\"\n [highlightText]=\"\n highlightSearchText ? (currentSearchText | async) : undefined\n \"\n [rowHighlightedId]=\"rowHighlightedId\"\n [messageStream]=\"gridMessageStream\"\n [selectedColumnIds]=\"selectedColumnIds | async\"\n [selectedRowIds]=\"multiselectSelectedIds\"\n [settingsKey]=\"settingsKey\"\n [sortField]=\"sortField | async\"\n [width]=\"gridWidth | async\"\n (multiselectSelectionChange)=\"onMultiselectSelectionChange($event)\"\n (rowDeleteCancel)=\"cancelRowDelete($event)\"\n (rowDeleteConfirm)=\"confirmRowDelete($event)\"\n (selectedColumnIdsChange)=\"columnIdsChanged($event)\"\n (sortFieldChange)=\"sortFieldChanged($event)\"\n #skyGrid\n >\n </sky-grid>\n <sky-wait [isWaiting]=\"loading | async\"> </sky-wait>\n</div>\n", styles: [":host ::ng-deep .sky-grid-heading{border-top:0!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }, { kind: "component", type: i7.SkyGridComponent, selector: "sky-grid", inputs: ["columns", "data", "enableMultiselect", "fit", "hasToolbar", "height", "highlightText", "messageStream", "multiselectRowId", "rowHighlightedId", "selectedColumnIds", "selectedRowIds", "settingsKey", "sortField", "width"], outputs: ["columnWidthChange", "multiselectSelectionChange", "rowDeleteCancel", "rowDeleteConfirm", "selectedColumnIdsChange", "sortFieldChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyListViewGridComponent, decorators: [{
414
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListViewGridComponent, decorators: [{
416
415
  type: Component,
417
416
  args: [{ selector: 'sky-list-view-grid', providers: [
418
417
  {
@@ -461,4 +460,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
461
460
  type: ContentChildren,
462
461
  args: [SkyGridColumnComponent]
463
462
  }] } });
464
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci12aWV3LWdyaWRzL3NyYy9saWIvbW9kdWxlcy9saXN0LXZpZXctZ3JpZC9saXN0LXZpZXctZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctZ3JpZHMvc3JjL2xpYi9tb2R1bGVzL2xpc3Qtdmlldy1ncmlkL2xpc3Qtdmlldy1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFDTCxzQkFBc0IsRUFHdEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixrQkFBa0IsRUFFbEIseUJBQXlCLEdBQzFCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxlQUFlLEVBRWYsU0FBUyxFQUNULG1CQUFtQixFQUNuQixpQkFBaUIsR0FDbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQWEsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUdMLE9BQU8sRUFDUCxZQUFZLEdBQ2IsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQWMsT0FBTyxFQUFFLEVBQUUsSUFBSSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixHQUFHLElBQUksYUFBYSxFQUNwQixJ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dkIsZUFBZTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5R3JpZENvbHVtbkNvbXBvbmVudCxcbiAgU2t5R3JpZENvbHVtbkRlc2NyaXB0aW9uTW9kZWxDaGFuZ2UsXG4gIFNreUdyaWRDb2x1bW5IZWFkaW5nTW9kZWxDaGFuZ2UsXG4gIFNreUdyaWRDb2x1bW5Nb2RlbCxcbiAgU2t5R3JpZENvbXBvbmVudCxcbiAgU2t5R3JpZE1lc3NhZ2UsXG4gIFNreUdyaWRNZXNzYWdlVHlwZSxcbiAgU2t5R3JpZFNlbGVjdGVkUm93c01vZGVsQ2hhbmdlLFxuICBTa3lHcmlkU2VsZWN0ZWRSb3dzU291cmNlLFxufSBmcm9tICdAc2t5dXgvZ3JpZHMnO1xuaW1wb3J0IHtcbiAgTGlzdFNlYXJjaE1vZGVsLFxuICBMaXN0U2VsZWN0ZWRNb2RlbCxcbiAgTGlzdFN0YXRlLFxuICBMaXN0U3RhdGVEaXNwYXRjaGVyLFxuICBMaXN0Vmlld0NvbXBvbmVudCxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlcic7XG5pbXBvcnQgeyBBc3luY0xpc3QsIGdldFZhbHVlIH0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuaW1wb3J0IHtcbiAgTGlzdEl0ZW1Nb2RlbCxcbiAgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWwsXG4gIGdldERhdGEsXG4gIGlzT2JzZXJ2YWJsZSxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiBhcyBvYnNlcnZhYmxlT2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAgYXMgb2JzZXJ2YWJsZU1hcCxcbiAgc2NhbixcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExpc3RWaWV3R3JpZENvbHVtbnNMb2FkQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9jb2x1bW5zL2xvYWQuYWN0aW9uJztcbmltcG9ydCB7IExpc3RWaWV3RGlzcGxheWVkR3JpZENvbHVtbnNMb2FkQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9kaXNwbGF5ZWQtY29sdW1ucy9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBHcmlkU3RhdGVNb2RlbCB9IGZyb20gJy4vc3RhdGUvZ3JpZC1zdGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBHcmlkU3RhdGVEaXNwYXRjaGVyIH0gZnJvbSAnLi9zdGF0ZS9ncmlkLXN0YXRlLnJ4c3RhdGUnO1xuaW1wb3J0IHsgR3JpZFN0YXRlIH0gZnJvbSAnLi9zdGF0ZS9ncmlkLXN0YXRlLnN0YXRlLW5vZGUnO1xuaW1wb3J0IHsgU2t5TGlzdFZpZXdHcmlkTWVzc2FnZSB9IGZyb20gJy4vdHlwZXMvbGlzdC12aWV3LWdyaWQtbWVzc2FnZSc7XG5pbXBvcnQgeyBTa3lMaXN0Vmlld0dyaWRNZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvbGlzdC12aWV3LWdyaWQtbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IFNreUxpc3RWaWV3R3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3MgfSBmcm9tICcuL3R5cGVzL2xpc3Qtdmlldy1ncmlkLXJvdy1kZWxldGUtY2FuY2VsLWFyZ3MnO1xuaW1wb3J0IHsgU2t5TGlzdFZpZXdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3MgfSBmcm9tICcuL3R5cGVzL2xpc3Qtdmlldy1ncmlkLXJvdy1kZWxldGUtY29uZmlybS1hcmdzJztcblxuLyoqXG4gKiBEaXNwbGF5cyBhIGdyaWQgZm9yIGFcbiAqIFtTS1kgVVgtdGhlbWVkIGxpc3Qgb2YgZGF0YV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2xpc3Qvb3ZlcnZpZXcpXG4gKiB1c2luZyB0aGUgW2dyaWQgY29tcG9uZW50XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZ3JpZCkuXG4gKiBZb3UgbXVzdCBpbnN0YWxsIGBTa3lMaXN0TW9kdWxlYCBhcyBhIGRlcGVuZGVuY3kuXG4gKiBAZGVwcmVjYXRlZCBMaXN0IGJ1aWxkZXIgdmlldyBncmlkIGFuZCBpdHMgZmVhdHVyZXMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBkYXRhIGVudHJ5IGdyaWQgaW5zdGVhZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZGF0YS1lbnRyeS1ncmlkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktbGlzdC12aWV3LWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC12aWV3LWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LXZpZXctZ3JpZC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBMaXN0Vmlld0NvbXBvbmVudCxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreUxpc3RWaWV3R3JpZENvbXBvbmVudCksXG4gICAgfSxcbiAgICBHcmlkU3RhdGUsXG4gICAgR3JpZFN0YXRlRGlzcGF0Y2hlcixcbiAgICBHcmlkU3RhdGVNb2RlbCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RWaWV3R3JpZENvbXBvbmVudFxuICBleHRlbmRzIExpc3RWaWV3Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHZpZXcuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZpZXdOYW1lID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjb2x1bW5zIHRvIGRpc3BsYXkgYnkgZGVmYXVsdCBiYXNlZCBvbiB0aGUgSUQgb3IgZmllbGQgb2YgdGhlIGl0ZW0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzcGxheWVkQ29sdW1uczogQXJyYXk8c3RyaW5nPiB8IE9ic2VydmFibGU8QXJyYXk8c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgY29sdW1ucyB0byBoaWRlIGJ5IGRlZmF1bHQgYmFzZWQgb24gdGhlIElEIG9yIGZpZWxkIG9mIHRoZSBpdGVtLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGRlbkNvbHVtbnM6IEFycmF5PHN0cmluZz4gfCBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaG93IHRoZSBncmlkIGZpdHMgdG8gaXRzIHBhcmVudC4gYFwid2lkdGhcImAgZml0cyB0aGUgZ3JpZCB0byB0aGUgcGFyZW50J3MgZnVsbFxuICAgKiB3aWR0aCwgYW5kIGBcInNjcm9sbFwiYCBhbGxvd3MgdGhlIGdyaWQgdG8gZXhjZWVkIHRoZSBwYXJlbnQncyB3aWR0aC4gSWYgdGhlIGdyaWQgZG9lcyBub3QgaGF2ZVxuICAgKiBlbm91Z2ggY29sdW1ucyB0byBmaWxsIHRoZSBwYXJlbnQncyB3aWR0aCwgaXQgYWx3YXlzIHN0cmV0Y2hlcyB0byB0aGUgcGFyZW50J3MgZnVsbCB3aWR0aC5cbiAgICogQGRlZmF1bHQgXCJ3aWR0aFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZml0ID0gJ3dpZHRoJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB3aWR0aCBvZiB0aGUgZ3JpZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB3aWR0aDogbnVtYmVyIHwgT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGhlaWdodCBvZiB0aGUgZ3JpZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWlnaHQ6IG51bWJlciB8IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gaGlnaGxpZ2h0IHNlYXJjaCB0ZXh0IHdpdGhpbiB0aGUgZ3JpZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpZ2hsaWdodFNlYXJjaFRleHQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhbiBvYnNlcnZhYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIGdyaWQuXG4gICAqIFRoZSBjb21tYW5kcyBzaG91bGQgcmVzcGVjdCB0aGUgYFNreUxpc3RWaWV3R3JpZE1lc3NhZ2VgIHR5cGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lc3NhZ2VTdHJlYW0oc3RyZWFtOiBTdWJqZWN0PFNreUxpc3RWaWV3R3JpZE1lc3NhZ2U+KSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5fbWVzc2FnZVN0cmVhbSkge1xuICAgICAgdGhpcy5fbWVzc2FnZVN0cmVhbS51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX21lc3NhZ2VTdHJlYW0gPSBzdHJlYW07XG5cbiAgICB0aGlzLmluaXRJbmxpbmVEZWxldGVNZXNzYWdlcygpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZXNzYWdlU3RyZWFtKCk6IFN1YmplY3Q8U2t5TGlzdFZpZXdHcmlkTWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlU3RyZWFtO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgSUQgb2YgdGhlIHJvdyB0byBoaWdobGlnaHQuIFRoZSBJRCBtYXRjaGVzIHRoZSBgaWRgIHByb3BlcnR5IG9mXG4gICAqIHRoZSBgZGF0YWAgb2JqZWN0LiBUeXBpY2FsbHksIHRoaXMgcHJvcGVydHkgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZVxuICAgKiBbZmx5b3V0IGNvbXBvbmVudF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2ZseW91dCkgdG9cbiAgICogaW5kaWNhdGUgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCByb3cuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcm93SGlnaGxpZ2h0ZWRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgdGhlIG11bHRpc2VsZWN0IGZlYXR1cmUgdG8gZGlzcGxheSBhIGNvbHVtbiBvZiBjaGVja2JveGVzXG4gICAqIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGdyaWQuIE11bHRpc2VsZWN0IGFsc28gZGlzcGxheXMgYW4gYWN0aW9uIGJhciB3aXRoIGJ1dHRvbnMgdG9cbiAgICogc2VsZWN0IGFuZCBjbGVhciBhbGwgY2hlY2tib3hlcy4gTXVsdGlzZWxlY3QgZGVmYXVsdHMgdG8gdGhlIGBpZGAgcHJvcGVydHkgb24gdGhlIGxpc3Qnc1xuICAgKiBgZGF0YWAgb2JqZWN0LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZU11bHRpc2VsZWN0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHVuaXF1ZSBrZXkgZm9yIHRoZSBVSSBDb25maWcgU2VydmljZSB0byByZXRyaWV2ZSBzdG9yZWQgc2V0dGluZ3MgZnJvbVxuICAgKiBhIGRhdGFiYXNlLiBUaGUgc2VydmljZSBzYXZlcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB1c2VycyBhbmQgcmV0dXJucyBgc2VsZWN0ZWRDb2x1bW5JZHNgXG4gICAqIGZvciB0aGUgY29sdW1ucyB0byBkaXNwbGF5IGFuZCB0aGUgcHJlZmVycmVkIGNvbHVtbiBvcmRlci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGVcbiAgICogW3N0aWNreSBzZXR0aW5ncyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2dldC1zdGFydGVkL2FkdmFuY2VkL3N0aWNreS1zZXR0aW5ncykuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0dGluZ3NLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjYW5jZWwgdGhlIGRlbGV0aW9uIG9mIGEgcm93LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByb3dEZWxldGVDYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUxpc3RWaWV3R3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3M+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgY29uZmlybSB0aGUgZGVsZXRpb24gb2YgYSByb3cuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJvd0RlbGV0ZUNvbmZpcm0gPSBuZXcgRXZlbnRFbWl0dGVyPFNreUxpc3RWaWV3R3JpZFJvd0RlbGV0ZUNvbmZpcm1BcmdzPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGNvbHVtbnMgY2hhbmdlLiBUaGlzIGluY2x1ZGVzIGNoYW5nZXMgdG8gdGhlIGRpc3BsYXllZCBjb2x1bW5zIGFuZCBjaGFuZ2VzXG4gICAqIHRvIHRoZSBvcmRlciBvZiBjb2x1bW5zLiBUaGUgZXZlbnQgZW1pdHMgYW4gYXJyYXkgb2YgSURzIGZvciB0aGUgZGlzcGxheWVkIGNvbHVtbnMgdGhhdFxuICAgKiByZWZsZWN0cyB0aGUgY29sdW1uIG9yZGVyLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZENvbHVtbklkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8c3RyaW5nPj4oKTtcblxuICBAVmlld0NoaWxkKFNreUdyaWRDb21wb25lbnQpXG4gIHB1YmxpYyBncmlkQ29tcG9uZW50OiBTa3lHcmlkQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBnZXQgZ3JpZEhlaWdodCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmhlaWdodCA9PT0gJ251bWJlcidcbiAgICAgID8gb2JzZXJ2YWJsZU9mKHRoaXMuaGVpZ2h0KVxuICAgICAgOiB0aGlzLmhlaWdodDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ3JpZFdpZHRoKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdHlwZW9mIHRoaXMud2lkdGggPT09ICdudW1iZXInXG4gICAgICA/IG9ic2VydmFibGVPZih0aGlzLndpZHRoKVxuICAgICAgOiB0aGlzLndpZHRoO1xuICB9XG5cbiAgcHVibGljIGNvbHVtbnM6IE9ic2VydmFibGU8QXJyYXk8U2t5R3JpZENvbHVtbk1vZGVsPj47XG5cbiAgcHVibGljIHNlbGVjdGVkQ29sdW1uSWRzOiBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+O1xuXG4gIHB1YmxpYyBpdGVtczogT2JzZXJ2YWJsZTxMaXN0SXRlbU1vZGVsW10+O1xuXG4gIC8qKlxuICAgKiBNZXNzYWdlIHN0cmVhbSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBpbnRlcm5hbCBncmlkIGluc3RhbmNlXG4gICAqIEBpbnRlcmFsXG4gICAqL1xuICBwdWJsaWMgZ3JpZE1lc3NhZ2VTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lHcmlkTWVzc2FnZT4oKTtcblxuICBwdWJsaWMgbG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwdWJsaWMgc29ydEZpZWxkOiBPYnNlcnZhYmxlPExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsPjtcblxuICBwdWJsaWMgY3VycmVudFNlYXJjaFRleHQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwdWJsaWMgbXVsdGlzZWxlY3RTZWxlY3RlZElkczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgc2VhcmNoIGZ1bmN0aW9uIHRvIGFwcGx5IG9uIHRoZSB2aWV3IGRhdGEuXG4gICAqIEBwYXJhbSBkYXRhIFNwZWNpZmllcyB0aGUgZGF0YSB0byBzZWFyY2guXG4gICAqIEBwYXJhbSBzZWFyY2hUZXh0IFNwZWNpZmllcyBhIHRleHQgc3RyaW5nIHRvIHNlYXJjaCBmb3IuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlYXJjaCcpXG4gIHB1YmxpYyBzZWFyY2hGdW5jdGlvbjogKGRhdGE6IGFueSwgc2VhcmNoVGV4dDogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5R3JpZENvbHVtbkNvbXBvbmVudClcbiAgcHJpdmF0ZSBjb2x1bW5Db21wb25lbnRzOiBRdWVyeUxpc3Q8U2t5R3JpZENvbHVtbkNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9tZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5TGlzdFZpZXdHcmlkTWVzc2FnZT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdGF0ZTogTGlzdFN0YXRlLFxuICAgIHByaXZhdGUgZGlzcGF0Y2hlcjogTGlzdFN0YXRlRGlzcGF0Y2hlcixcbiAgICBwdWJsaWMgZ3JpZFN0YXRlOiBHcmlkU3RhdGUsXG4gICAgcHVibGljIGdyaWREaXNwYXRjaGVyOiBHcmlkU3RhdGVEaXNwYXRjaGVyLFxuICAgIGxvZ2dlcjogU2t5TG9nU2VydmljZVxuICApIHtcbiAgICBzdXBlcihzdGF0ZSwgJ0dyaWQgVmlldycpO1xuXG4gICAgbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreUxpc3RWaWV3R3JpZENvbXBvbmVudCcsIHtcbiAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA2LFxuICAgICAgbW9yZUluZm9Vcmw6XG4gICAgICAgICdodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZGF0YS1lbnRyeS1ncmlkJyxcbiAgICAgIHJlcGxhY2VtZW50UmVjb21tZW5kYXRpb246ICdVc2UgZGF0YSBlbnRyeSBncmlkIGluc3RlYWQuJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgLy8gV2F0Y2ggZm9yIHNlbGVjdGlvbiBjaGFuZ2VzIGFuZCB1cGRhdGUgbXVsdGlzZWxlY3RTZWxlY3RlZElkcyBmb3IgbG9jYWwgY29tcGFyaXNvbi5cbiAgICB0aGlzLnN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5zZWxlY3RlZC5pdGVtKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKHRoaXMuc2VsZWN0ZWRNYXBFcXVhbClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zOiBMaXN0U2VsZWN0ZWRNb2RlbCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZElkczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpdGVtcy5zZWxlY3RlZElkTWFwLmZvckVhY2goKGlzU2VsZWN0ZWQsIGlkKSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW1zLnNlbGVjdGVkSWRNYXAuZ2V0KGlkKSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRJZHMucHVzaChpZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm11bHRpc2VsZWN0U2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkcztcbiAgICAgIH0pO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodGhpcy5jb2x1bW5Db21wb25lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnR3JpZCB2aWV3IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBza3ktZ3JpZC1jb2x1bW4gdG8gcmVuZGVyLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgY29sdW1uTW9kZWxzID0gdGhpcy5jb2x1bW5Db21wb25lbnRzLm1hcCgoY29sdW1uQ29tcG9uZW50KSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFNreUdyaWRDb2x1bW5Nb2RlbChjb2x1bW5Db21wb25lbnQudGVtcGxhdGUsIGNvbHVtbkNvbXBvbmVudCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy53aWR0aCAmJiAhaXNPYnNlcnZhYmxlKHRoaXMud2lkdGgpKSB7XG4gICAgICB0aGlzLndpZHRoID0gb2JzZXJ2YWJsZU9mKHRoaXMud2lkdGgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhlaWdodCAmJiAhaXNPYnNlcnZhYmxlKHRoaXMuaGVpZ2h0KSkge1xuICAgICAgdGhpcy5oZWlnaHQgPSBvYnNlcnZhYmxlT2YodGhpcy5oZWlnaHQpO1xuICAgIH1cblxuICAgIC8vIFNldHVwIE9ic2VydmFibGVzIGZvciB0ZW1wbGF0ZVxuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuZ3JpZFN0YXRlLnBpcGUoXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLmNvbHVtbnMuaXRlbXMpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQodGhpcy5hcnJheXNFcXVhbCksXG4gICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICk7XG5cbiAgICB0aGlzLnNlbGVjdGVkQ29sdW1uSWRzID0gdGhpcy5nZXRTZWxlY3RlZElkcygpO1xuXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuZ2V0R3JpZEl0ZW1zKCk7XG5cbiAgICB0aGlzLmxvYWRpbmcgPSB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiB7XG4gICAgICAgIHJldHVybiBzLml0ZW1zLmxvYWRpbmc7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICk7XG5cbiAgICB0aGlzLnNvcnRGaWVsZCA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAgIGlmIChzLnNvcnQgJiYgcy5zb3J0LmZpZWxkU2VsZWN0b3JzKSB7XG4gICAgICAgICAgcmV0dXJuIHMuc29ydC5maWVsZFNlbGVjdG9yc1swXTtcbiAgICAgICAgfVxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpXG4gICAgKTtcblxuICAgIHRoaXMuZ3JpZFN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5jb2x1bW5zLml0ZW1zKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKHRoaXMuYXJyYXlzRXF1YWwpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjb2x1bW5zKSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICh0aGlzLmhpZGRlbkNvbHVtbnMpIHtcbiAgICAgICAgICBnZXRWYWx1ZSh0aGlzLmhpZGRlbkNvbHVtbnMsIChoaWRkZW5Db2x1bW5zOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncmlkRGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICAgICAgICBuZXcgTGlzdFZpZXdEaXNwbGF5ZWRHcmlkQ29sdW1uc0xvYWRBY3Rpb24oXG4gICAgICAgICAgICAgICAgY29sdW1ucy5maWx0ZXIoKHgpID0+IHtcbiAgICAgICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGlkID0geC5pZCB8fCB4LmZpZWxkO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGhpZGRlbkNvbHVtbnMuaW5kZXhPZihpZCkgPT09IC0xO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXllZENvbHVtbnMpIHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGdldFZhbHVlKHRoaXMuZGlzcGxheWVkQ29sdW1ucywgKGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdyaWREaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgICAgIG5ldyBMaXN0Vmlld0Rpc3BsYXllZEdyaWRDb2x1bW5zTG9hZEFjdGlvbihcbiAgICAgICAgICAgICAgICBjb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICh4KSA9PiBkaXNwbGF5ZWRDb2x1bW5zLmluZGV4T2YoeC5pZCB8fCB4LmZpZWxkKSAhPT0gLTFcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmdyaWREaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgICBuZXcgTGlzdFZpZXdEaXNwbGF5ZWRHcmlkQ29sdW1uc0xvYWRBY3Rpb24oXG4gICAgICAgICAgICAgIGNvbHVtbnMuZmlsdGVyKCh4KSA9PiAheC5oaWRkZW4pLFxuICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmN1cnJlbnRTZWFyY2hUZXh0ID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5zZWFyY2guc2VhcmNoVGV4dCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSlcbiAgICApO1xuXG4gICAgdGhpcy5ncmlkRGlzcGF0Y2hlci5uZXh0KFxuICAgICAgbmV3IExpc3RWaWV3R3JpZENvbHVtbnNMb2FkQWN0aW9uKGNvbHVtbk1vZGVscywgdHJ1ZSlcbiAgICApO1xuXG4gICAgdGhpcy5oYW5kbGVDb2x1bW5DaGFuZ2UoKTtcblxuICAgIGlmICh0aGlzLmVuYWJsZU11bHRpc2VsZWN0KSB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIudG9vbGJhclNob3dNdWx0aXNlbGVjdFRvb2xiYXIodHJ1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0SW5saW5lRGVsZXRlTWVzc2FnZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHVzZXIgbWFrZXMgc2VsZWN0aW9uLCB0ZWxsIGxpc3QtYnVpbGRlciB0byB1cGRhdGUgdGhlIGxpc3Qgc3RhdGUuXG4gICAqIFRoaXMgbG9naWMgc2hvdWxkIG9ubHkgcnVuIG9uIHVzZXIgaW50ZXJhY3Rpb24gLSBOT1QgcHJvZ3JhbW1hdGljIHVwZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgb25NdWx0aXNlbGVjdFNlbGVjdGlvbkNoYW5nZShcbiAgICBldmVudDogU2t5R3JpZFNlbGVjdGVkUm93c01vZGVsQ2hhbmdlXG4gICk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnNvdXJjZSA9PT0gU2t5R3JpZFNlbGVjdGVkUm93c1NvdXJjZS5DaGVja2JveENoYW5nZSB8fFxuICAgICAgZXZlbnQuc291cmNlID09PSBTa3lHcmlkU2VsZWN0ZWRSb3dzU291cmNlLlJvd0NsaWNrXG4gICAgKSB7XG4gICAgICB0aGlzLnN0YXRlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuaXRlbXMuaXRlbXMpLFxuICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChpdGVtczogTGlzdEl0ZW1Nb2RlbFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3SXRlbUlkcyA9IHRoaXMuYXJyYXlJbnRlcnNlY3Rpb24oXG4gICAgICAgICAgICBpdGVtcy5tYXAoKGkpID0+IGkuaWQpLFxuICAgICAgICAgICAgdGhpcy5tdWx0aXNlbGVjdFNlbGVjdGVkSWRzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBuZXdJZHMgPSBpdGVtcy5maWx0ZXIoKGkpID0+IGkuaXNTZWxlY3RlZCkubWFwKChpKSA9PiBpLmlkKTtcblxuICAgICAgICAgIC8vIENoZWNrIGZvciBkZXNlbGVjdGVkIGlkcyAmIHNlbmQgbWVzc2FnZSB0byBkaXNwYXRjaGVyLlxuICAgICAgICAgIGNvbnN0IGRlc2VsZWN0ZWRJZHMgPSB0aGlzLmFycmF5RGlmZihuZXdJdGVtSWRzLCBuZXdJZHMpO1xuICAgICAgICAgIGlmIChkZXNlbGVjdGVkSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5zZXRTZWxlY3RlZChkZXNlbGVjdGVkSWRzLCBmYWxzZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ2hlY2sgZm9yIHNlbGVjdGVkIGlkcyAmIHNlbmQgbWVzc2FnZSB0byBkaXNwYXRjaGVyLlxuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gdGhpcy5hcnJheURpZmYobmV3SWRzLCBuZXdJdGVtSWRzKTtcbiAgICAgICAgICBpZiAoc2VsZWN0ZWRJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaGVyLnNldFNlbGVjdGVkKHNlbGVjdGVkSWRzLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjb2x1bW5JZHNDaGFuZ2VkKHNlbGVjdGVkQ29sdW1uSWRzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5zZWxlY3RlZENvbHVtbklkcy5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoY3VycmVudElkcykgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFycmF5c0VxdWFsKHNlbGVjdGVkQ29sdW1uSWRzLCBjdXJyZW50SWRzKSkge1xuICAgICAgICB0aGlzLmdyaWRTdGF0ZVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5jb2x1bW5zLml0ZW1zKSxcbiAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoY29sdW1ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheWVkQ29sdW1ucyA9IHNlbGVjdGVkQ29sdW1uSWRzLm1hcChcbiAgICAgICAgICAgICAgKGNvbHVtbklkKSA9PiBjb2x1bW5zLmZpbHRlcigoYykgPT4gYy5pZCA9PT0gY29sdW1uSWQpWzBdXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5ncmlkRGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICAgICAgICBuZXcgTGlzdFZpZXdEaXNwbGF5ZWRHcmlkQ29sdW1uc0xvYWRBY3Rpb24oZGlzcGxheWVkQ29sdW1ucywgdHJ1ZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsUm93RGVsZXRlKGFyZ3M6IFNreUxpc3RWaWV3R3JpZFJvd0RlbGV0ZUNhbmNlbEFyZ3MpOiB2b2lkIHtcbiAgICB0aGlzLnJvd0RlbGV0ZUNhbmNlbC5lbWl0KGFyZ3MpO1xuICB9XG5cbiAgcHVibGljIGNvbmZpcm1Sb3dEZWxldGUoYXJnczogU2t5TGlzdFZpZXdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3MpOiB2b2lkIHtcbiAgICB0aGlzLnJvd0RlbGV0ZUNvbmZpcm0uZW1pdChhcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0RmllbGRDaGFuZ2VkKHNvcnRGaWVsZDogTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWwpIHtcbiAgICB0aGlzLmRpc3BhdGNoZXIuc29ydFNldEZpZWxkU2VsZWN0b3JzKFtzb3J0RmllbGRdKTtcbiAgfVxuXG4gIHB1YmxpYyBvblZpZXdBY3RpdmUoKSB7XG4gICAgLypcbiAgICAgIFJhbiBpbnRvIHByb2JsZW0gd2hlcmUgc3RhdGUgdXBkYXRlcyB3ZXJlIGNvbnN1bWVkIG91dCBvZiBvcmRlci4gRm9yIGV4YW1wbGUsIG9uIHNlYXJjaCB0ZXh0XG4gICAgICB1cGRhdGUsIHRoZSBzZWFyY2hUZXh0IHVwZGF0ZSB3YXMgY29uc3VtZWQgYWZ0ZXIgdGhlIHJlc3VsdGluZyBsaXN0IGl0ZW0gdXBkYXRlLiBTY2FubmluZyB0aGVcbiAgICAgIHByZXZpb3VzIHZhbHVlIG9mIGl0ZW1zIGxhc3RVcGRhdGUgZW5zdXJlcyB0aGF0IHdlIG9ubHkgcmVjZWl2ZSB0aGUgbGF0ZXN0IGl0ZW1zLlxuICAgICovXG4gICAgdGhpcy5ncmlkU3RhdGVcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgc2NhbigocHJldmlvdXNWYWx1ZTogR3JpZFN0YXRlTW9kZWwsIG5ld1ZhbHVlOiBHcmlkU3RhdGVNb2RlbCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHByZXZpb3VzVmFsdWUuZGlzcGxheWVkQ29sdW1ucy5sYXN0VXBkYXRlID5cbiAgICAgICAgICAgIG5ld1ZhbHVlLmRpc3BsYXllZENvbHVtbnMubGFzdFVwZGF0ZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLmRpc3BsYXllZENvbHVtbnMuaXRlbXMpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCh0aGlzLmFycmF5c0VxdWFsKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZGlzcGxheWVkQ29sdW1ucykgPT4ge1xuICAgICAgICBjb25zdCBzZXRGdW5jdGlvbnMgPVxuICAgICAgICAgIHRoaXMuc2VhcmNoRnVuY3Rpb24gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBbdGhpcy5zZWFyY2hGdW5jdGlvbl1cbiAgICAgICAgICAgIDogZGlzcGxheWVkQ29sdW1uc1xuICAgICAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgICAgICAoY29sdW1uKSA9PiAoZGF0YTogYW55LCBzZWFyY2hUZXh0OiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi5zZWFyY2hGdW5jdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICBnZXREYXRhKGRhdGEsIGNvbHVtbi5maWVsZCksXG4gICAgICAgICAgICAgICAgICAgICAgc2VhcmNoVGV4dFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGMpID0+IGMgIT09IHVuZGVmaW5lZCk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgocykgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5zZWFyY2hTZXRPcHRpb25zKFxuICAgICAgICAgICAgbmV3IExpc3RTZWFyY2hNb2RlbCh7XG4gICAgICAgICAgICAgIHNlYXJjaFRleHQ6IHMuc2VhcmNoLnNlYXJjaFRleHQsXG4gICAgICAgICAgICAgIGZ1bmN0aW9uczogc2V0RnVuY3Rpb25zLFxuICAgICAgICAgICAgICBmaWVsZFNlbGVjdG9yczogZGlzcGxheWVkQ29sdW1ucy5tYXAoKGQpID0+IGQuZmllbGQpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0SW5saW5lRGVsZXRlTWVzc2FnZXMoKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodGhpcy5tZXNzYWdlU3RyZWFtKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTdHJlYW0uc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lMaXN0Vmlld0dyaWRNZXNzYWdlKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IFNreUxpc3RWaWV3R3JpZE1lc3NhZ2VUeXBlLkFib3J0RGVsZXRlUm93KSB7XG4gICAgICAgICAgdGhpcy5ncmlkTWVzc2FnZVN0cmVhbS5uZXh0KHtcbiAgICAgICAgICAgIHR5cGU6IFNreUdyaWRNZXNzYWdlVHlwZS5BYm9ydERlbGV0ZVJvdyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgYWJvcnREZWxldGVSb3c6IG1lc3NhZ2UuZGF0YS5hYm9ydERlbGV0ZVJvdyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgbWVzc2FnZS50eXBlID09PSBTa3lMaXN0Vmlld0dyaWRNZXNzYWdlVHlwZS5Qcm9tcHREZWxldGVSb3dcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5ncmlkTWVzc2FnZVN0cmVhbS5uZXh0KHtcbiAgICAgICAgICAgIHR5cGU6IFNreUdyaWRNZXNzYWdlVHlwZS5Qcm9tcHREZWxldGVSb3csXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIHByb21wdERlbGV0ZVJvdzogbWVzc2FnZS5kYXRhLnByb21wdERlbGV0ZVJvdyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29sdW1uQ2hhbmdlKCkge1xuICAgIC8vIHdhdGNoIGZvciBjaGFuZ2VzIGluIGNvbHVtbiBjb21wb25lbnRzXG4gICAgdGhpcy5jb2x1bW5Db21wb25lbnRzLmNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoY29sdW1uQ29tcG9uZW50cykgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW5Nb2RlbHMgPSB0aGlzLmNvbHVtbkNvbXBvbmVudHMubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgICByZXR1cm4gbmV3IFNreUdyaWRDb2x1bW5Nb2RlbChjb2x1bW4udGVtcGxhdGUsIGNvbHVtbik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmdyaWREaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgbmV3IExpc3RWaWV3R3JpZENvbHVtbnNMb2FkQWN0aW9uKGNvbHVtbk1vZGVscywgdHJ1ZSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gV2F0Y2ggZm9yIGNvbHVtbiBoZWFkaW5nIGNoYW5nZXM6XG4gICAgdGhpcy5jb2x1bW5Db21wb25lbnRzLmZvckVhY2goKGNvbXApID0+IHtcbiAgICAgIGNvbXAuaGVhZGluZ01vZGVsQ2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlOiBTa3lHcmlkQ29sdW1uSGVhZGluZ01vZGVsQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5ncmlkQ29tcG9uZW50LnVwZGF0ZUNvbHVtbkhlYWRpbmcoY2hhbmdlKTtcbiAgICAgICAgfSk7XG4gICAgICBjb21wLmRlc2NyaXB0aW9uTW9kZWxDaGFuZ2VzXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChjaGFuZ2U6IFNreUdyaWRDb2x1bW5EZXNjcmlwdGlvbk1vZGVsQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5ncmlkQ29tcG9uZW50LnVwZGF0ZUNvbHVtbkRlc2NyaXB0aW9uKGNoYW5nZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRHcmlkSXRlbXMoKTogT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbU1vZGVsPj4ge1xuICAgIC8qXG4gICAgICBTYW1lIHByb2JsZW0gYXMgYWJvdmUuIFdlIHNob3VsZCBtb3ZlIGZyb20gaGF2aW5nIGEgc3RhdGUgb2JqZWN0IG9ic2VydmFibGUgd2l0aCBhIGJ1bmNoIG9mXG4gICAgICBzdGF0aWMgcHJvcGVydGllcyB0byBhIHN0YXRpYyBzdGF0ZSBvYmplY3Qgd2l0aCBvYnNlcnZhYmxlIHByb3BlcnRpZXMgdGhhdCB5b3UgY2FuIHN1YnNjcmliZVxuICAgICAgdG8uXG4gICAgKi9cbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4ge1xuICAgICAgICByZXR1cm4gcy5pdGVtcztcbiAgICAgIH0pLFxuICAgICAgc2NhbihcbiAgICAgICAgKFxuICAgICAgICAgIHByZXZpb3VzVmFsdWU6IEFzeW5jTGlzdDxMaXN0SXRlbU1vZGVsPixcbiAgICAgICAgICBuZXdWYWx1ZTogQXN5bmNMaXN0PExpc3RJdGVtTW9kZWw+XG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGlmIChwcmV2aW91c1ZhbHVlLmxhc3RVcGRhdGUgPiBuZXdWYWx1ZS5sYXN0VXBkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKHJlc3VsdDogQXN5bmNMaXN0PExpc3RJdGVtTW9kZWw+KSA9PiB7XG4gICAgICAgIHJldHVybiByZXN1bHQuaXRlbXM7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxlY3RlZElkcygpOiBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+IHtcbiAgICAvKlxuICAgICAgU2FtZSBwcm9ibGVtIGFzIGFib3ZlLiBXZSBzaG91bGQgbW92ZSBmcm9tIGhhdmluZyBhIHN0YXRlIG9iamVjdCBvYnNlcnZhYmxlIHdpdGggYSBidW5jaCBvZlxuICAgICAgc3RhdGljIHByb3BlcnRpZXMgdG8gYSBzdGF0aWMgc3RhdGUgb2JqZWN0IHdpdGggb2JzZXJ2YWJsZSBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbiBzdWJzY3JpYmVcbiAgICAgIHRvLlxuICAgICovXG4gICAgcmV0dXJuIHRoaXMuZ3JpZFN0YXRlLnBpcGUoXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLmRpc3BsYXllZENvbHVtbnMpLFxuICAgICAgc2NhbihcbiAgICAgICAgKFxuICAgICAgICAgIHByZXZpb3VzVmFsdWU6IEFzeW5jTGlzdDxTa3lHcmlkQ29sdW1uTW9kZWw+LFxuICAgICAgICAgIG5ld1ZhbHVlOiBBc3luY0xpc3Q8U2t5R3JpZENvbHVtbk1vZGVsPlxuICAgICAgICApID0+IHtcbiAgICAgICAgICBpZiAocHJldmlvdXNWYWx1ZS5sYXN0VXBkYXRlID4gbmV3VmFsdWUubGFzdFVwZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBvYnNlcnZhYmxlTWFwKChyZXN1bHQ6IEFzeW5jTGlzdDxTa3lHcmlkQ29sdW1uTW9kZWw+KSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICByZXR1cm4gcmVzdWx0Lml0ZW1zLm1hcCgoY29sdW1uOiBTa3lHcmlkQ29sdW1uTW9kZWwpID0+IHtcbiAgICAgICAgICByZXR1cm4gY29sdW1uLmlkIHx8IGNvbHVtbi5maWVsZDtcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2aW91c1ZhbHVlOiBzdHJpbmdbXSwgbmV3VmFsdWU6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhdmVDb2x1bW5JZHNDaGFuZ2VkKHByZXZpb3VzVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGF2ZUNvbHVtbklkc0NoYW5nZWQocHJldmlvdXNWYWx1ZTogc3RyaW5nW10sIG5ld1ZhbHVlOiBzdHJpbmdbXSkge1xuICAgIGlmIChwcmV2aW91c1ZhbHVlLmxlbmd0aCAhPT0gbmV3VmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29sdW1uSWRzQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldmlvdXNWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAocHJldmlvdXNWYWx1ZVtpXSAhPT0gbmV3VmFsdWVbaV0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbklkc0NoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0ZWRNYXBFcXVhbChcbiAgICBwcmV2OiBMaXN0U2VsZWN0ZWRNb2RlbCxcbiAgICBuZXh0OiBMaXN0U2VsZWN0ZWRNb2RlbFxuICApOiBib29sZWFuIHtcbiAgICBpZiAocHJldi5zZWxlY3RlZElkTWFwLnNpemUgIT09IG5leHQuc2VsZWN0ZWRJZE1hcC5zaXplKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBbXTtcbiAgICBuZXh0LnNlbGVjdGVkSWRNYXAuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgfSk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gbmV4dC5zZWxlY3RlZElkTWFwLmdldChrZXkpO1xuICAgICAgaWYgKHZhbHVlICE9PSBwcmV2LnNlbGVjdGVkSWRNYXAuZ2V0KGtleSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhcnJheURpZmYoYXJyQTogQXJyYXk8YW55PiwgYXJyQjogQXJyYXk8YW55Pik6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiBhcnJBLmZpbHRlcigoaSkgPT4gYXJyQi5pbmRleE9mKGkpIDwgMCk7XG4gIH1cblxuICBwcml2YXRlIGFycmF5SW50ZXJzZWN0aW9uKGFyckE6IEFycmF5PGFueT4sIGFyckI6IEFycmF5PGFueT4pOiBBcnJheTxhbnk+IHtcbiAgICByZXR1cm4gYXJyQS5maWx0ZXIoKHZhbHVlKSA9PiAtMSAhPT0gYXJyQi5pbmRleE9mKHZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIGFycmF5c0VxdWFsKGFycmF5QTogYW55W10sIGFycmF5QjogYW55W10pIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXJyYXlBLmxlbmd0aCA9PT0gYXJyYXlCLmxlbmd0aCAmJlxuICAgICAgYXJyYXlBLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBhcnJheUJbaW5kZXhdKVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJhY3RpdmUgfCBhc3luY1wiPlxuICA8c2t5LWdyaWRcbiAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgYXN5bmNcIlxuICAgIFtkYXRhXT1cIml0ZW1zIHwgYXN5bmNcIlxuICAgIFtlbmFibGVNdWx0aXNlbGVjdF09XCJlbmFibGVNdWx0aXNlbGVjdFwiXG4gICAgW2ZpdF09XCJmaXRcIlxuICAgIFtoZWlnaHRdPVwiZ3JpZEhlaWdodCB8IGFzeW5jXCJcbiAgICBbaGlnaGxpZ2h0VGV4dF09XCJcbiAgICAgIGhpZ2hsaWdodFNlYXJjaFRleHQgPyAoY3VycmVudFNlYXJjaFRleHQgfCBhc3luYykgOiB1bmRlZmluZWRcbiAgICBcIlxuICAgIFtyb3dIaWdobGlnaHRlZElkXT1cInJvd0hpZ2hsaWdodGVkSWRcIlxuICAgIFttZXNzYWdlU3RyZWFtXT1cImdyaWRNZXNzYWdlU3RyZWFtXCJcbiAgICBbc2VsZWN0ZWRDb2x1bW5JZHNdPVwic2VsZWN0ZWRDb2x1bW5JZHMgfCBhc3luY1wiXG4gICAgW3NlbGVjdGVkUm93SWRzXT1cIm11bHRpc2VsZWN0U2VsZWN0ZWRJZHNcIlxuICAgIFtzZXR0aW5nc0tleV09XCJzZXR0aW5nc0tleVwiXG4gICAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGQgfCBhc3luY1wiXG4gICAgW3dpZHRoXT1cImdyaWRXaWR0aCB8IGFzeW5jXCJcbiAgICAobXVsdGlzZWxlY3RTZWxlY3Rpb25DaGFuZ2UpPVwib25NdWx0aXNlbGVjdFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAocm93RGVsZXRlQ2FuY2VsKT1cImNhbmNlbFJvd0RlbGV0ZSgkZXZlbnQpXCJcbiAgICAocm93RGVsZXRlQ29uZmlybSk9XCJjb25maXJtUm93RGVsZXRlKCRldmVudClcIlxuICAgIChzZWxlY3RlZENvbHVtbklkc0NoYW5nZSk9XCJjb2x1bW5JZHNDaGFuZ2VkKCRldmVudClcIlxuICAgIChzb3J0RmllbGRDaGFuZ2UpPVwic29ydEZpZWxkQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAjc2t5R3JpZFxuICA+XG4gIDwvc2t5LWdyaWQ+XG4gIDxza3ktd2FpdCBbaXNXYWl0aW5nXT1cImxvYWRpbmcgfCBhc3luY1wiPiA8L3NreS13YWl0PlxuPC9kaXY+XG4iXX0=
463
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci12aWV3LWdyaWRzL3NyYy9saWIvbW9kdWxlcy9saXN0LXZpZXctZ3JpZC9saXN0LXZpZXctZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyLXZpZXctZ3JpZHMvc3JjL2xpYi9tb2R1bGVzL2xpc3Qtdmlldy1ncmlkL2xpc3Qtdmlldy1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxzQkFBc0IsRUFHdEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixrQkFBa0IsRUFFbEIseUJBQXlCLEdBQzFCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxlQUFlLEVBSWYsaUJBQWlCLEdBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFhLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFHTCxPQUFPLEVBQ1AsWUFBWSxHQUNiLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUFjLE9BQU8sRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxJQUFJLGFBQWEsRUFDcEIsSUFBSSxFQUNKLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsNkJBQTZCLEVBQUUs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Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7XG4gIFNreUdyaWRDb2x1bW5Db21wb25lbnQsXG4gIFNreUdyaWRDb2x1bW5EZXNjcmlwdGlvbk1vZGVsQ2hhbmdlLFxuICBTa3lHcmlkQ29sdW1uSGVhZGluZ01vZGVsQ2hhbmdlLFxuICBTa3lHcmlkQ29sdW1uTW9kZWwsXG4gIFNreUdyaWRDb21wb25lbnQsXG4gIFNreUdyaWRNZXNzYWdlLFxuICBTa3lHcmlkTWVzc2FnZVR5cGUsXG4gIFNreUdyaWRTZWxlY3RlZFJvd3NNb2RlbENoYW5nZSxcbiAgU2t5R3JpZFNlbGVjdGVkUm93c1NvdXJjZSxcbn0gZnJvbSAnQHNreXV4L2dyaWRzJztcbmltcG9ydCB7XG4gIExpc3RTZWFyY2hNb2RlbCxcbiAgTGlzdFNlbGVjdGVkTW9kZWwsXG4gIExpc3RTdGF0ZSxcbiAgTGlzdFN0YXRlRGlzcGF0Y2hlcixcbiAgTGlzdFZpZXdDb21wb25lbnQsXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXInO1xuaW1wb3J0IHsgQXN5bmNMaXN0LCBnZXRWYWx1ZSB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcbmltcG9ydCB7XG4gIExpc3RJdGVtTW9kZWwsXG4gIExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsLFxuICBnZXREYXRhLFxuICBpc09ic2VydmFibGUsXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgYXMgb2JzZXJ2YWJsZU9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwIGFzIG9ic2VydmFibGVNYXAsXG4gIHNjYW4sXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBMaXN0Vmlld0dyaWRDb2x1bW5zTG9hZEFjdGlvbiB9IGZyb20gJy4vc3RhdGUvY29sdW1ucy9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0Vmlld0Rpc3BsYXllZEdyaWRDb2x1bW5zTG9hZEFjdGlvbiB9IGZyb20gJy4vc3RhdGUvZGlzcGxheWVkLWNvbHVtbnMvbG9hZC5hY3Rpb24nO1xuaW1wb3J0IHsgR3JpZFN0YXRlTW9kZWwgfSBmcm9tICcuL3N0YXRlL2dyaWQtc3RhdGUubW9kZWwnO1xuaW1wb3J0IHsgR3JpZFN0YXRlRGlzcGF0Y2hlciB9IGZyb20gJy4vc3RhdGUvZ3JpZC1zdGF0ZS5yeHN0YXRlJztcbmltcG9ydCB7IEdyaWRTdGF0ZSB9IGZyb20gJy4vc3RhdGUvZ3JpZC1zdGF0ZS5zdGF0ZS1ub2RlJztcbmltcG9ydCB7IFNreUxpc3RWaWV3R3JpZE1lc3NhZ2UgfSBmcm9tICcuL3R5cGVzL2xpc3Qtdmlldy1ncmlkLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5TGlzdFZpZXdHcmlkTWVzc2FnZVR5cGUgfSBmcm9tICcuL3R5cGVzL2xpc3Qtdmlldy1ncmlkLW1lc3NhZ2UtdHlwZSc7XG5pbXBvcnQgeyBTa3lMaXN0Vmlld0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzIH0gZnJvbSAnLi90eXBlcy9saXN0LXZpZXctZ3JpZC1yb3ctZGVsZXRlLWNhbmNlbC1hcmdzJztcbmltcG9ydCB7IFNreUxpc3RWaWV3R3JpZFJvd0RlbGV0ZUNvbmZpcm1BcmdzIH0gZnJvbSAnLi90eXBlcy9saXN0LXZpZXctZ3JpZC1yb3ctZGVsZXRlLWNvbmZpcm0tYXJncyc7XG5cbi8qKlxuICogRGlzcGxheXMgYSBncmlkIGZvciBhXG4gKiBbU0tZIFVYLXRoZW1lZCBsaXN0IG9mIGRhdGFdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9saXN0L292ZXJ2aWV3KVxuICogdXNpbmcgdGhlIFtncmlkIGNvbXBvbmVudF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2dyaWQpLlxuICogWW91IG11c3QgaW5zdGFsbCBgU2t5TGlzdE1vZHVsZWAgYXMgYSBkZXBlbmRlbmN5LlxuICogQGRlcHJlY2F0ZWQgTGlzdCBidWlsZGVyIHZpZXcgZ3JpZCBhbmQgaXRzIGZlYXR1cmVzIGFyZSBkZXByZWNhdGVkLiBVc2UgZGF0YSBlbnRyeSBncmlkIGluc3RlYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGEtZW50cnktZ3JpZC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWxpc3Qtdmlldy1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3Qtdmlldy1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC12aWV3LWdyaWQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTGlzdFZpZXdDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lMaXN0Vmlld0dyaWRDb21wb25lbnQpLFxuICAgIH0sXG4gICAgR3JpZFN0YXRlLFxuICAgIEdyaWRTdGF0ZURpc3BhdGNoZXIsXG4gICAgR3JpZFN0YXRlTW9kZWwsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMaXN0Vmlld0dyaWRDb21wb25lbnRcbiAgZXh0ZW5kcyBMaXN0Vmlld0NvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSB2aWV3LlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52aWV3TmFtZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgY29sdW1ucyB0byBkaXNwbGF5IGJ5IGRlZmF1bHQgYmFzZWQgb24gdGhlIElEIG9yIGZpZWxkIG9mIHRoZSBpdGVtLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRpc3BsYXllZENvbHVtbnM6IEFycmF5PHN0cmluZz4gfCBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGNvbHVtbnMgdG8gaGlkZSBieSBkZWZhdWx0IGJhc2VkIG9uIHRoZSBJRCBvciBmaWVsZCBvZiB0aGUgaXRlbS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaWRkZW5Db2x1bW5zOiBBcnJheTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxBcnJheTxzdHJpbmc+PjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGhvdyB0aGUgZ3JpZCBmaXRzIHRvIGl0cyBwYXJlbnQuIGBcIndpZHRoXCJgIGZpdHMgdGhlIGdyaWQgdG8gdGhlIHBhcmVudCdzIGZ1bGxcbiAgICogd2lkdGgsIGFuZCBgXCJzY3JvbGxcImAgYWxsb3dzIHRoZSBncmlkIHRvIGV4Y2VlZCB0aGUgcGFyZW50J3Mgd2lkdGguIElmIHRoZSBncmlkIGRvZXMgbm90IGhhdmVcbiAgICogZW5vdWdoIGNvbHVtbnMgdG8gZmlsbCB0aGUgcGFyZW50J3Mgd2lkdGgsIGl0IGFsd2F5cyBzdHJldGNoZXMgdG8gdGhlIHBhcmVudCdzIGZ1bGwgd2lkdGguXG4gICAqIEBkZWZhdWx0IFwid2lkdGhcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGZpdCA9ICd3aWR0aCc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgd2lkdGggb2YgdGhlIGdyaWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgd2lkdGg6IG51bWJlciB8IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBoZWlnaHQgb2YgdGhlIGdyaWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVpZ2h0OiBudW1iZXIgfCBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGhpZ2hsaWdodCBzZWFyY2ggdGV4dCB3aXRoaW4gdGhlIGdyaWQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaWdobGlnaHRTZWFyY2hUZXh0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogUHJvdmlkZXMgYW4gb2JzZXJ2YWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHRoZSBncmlkLlxuICAgKiBUaGUgY29tbWFuZHMgc2hvdWxkIHJlc3BlY3QgdGhlIGBTa3lMaXN0Vmlld0dyaWRNZXNzYWdlYCB0eXBlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtZXNzYWdlU3RyZWFtKHN0cmVhbTogU3ViamVjdDxTa3lMaXN0Vmlld0dyaWRNZXNzYWdlPikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuX21lc3NhZ2VTdHJlYW0pIHtcbiAgICAgIHRoaXMuX21lc3NhZ2VTdHJlYW0udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9tZXNzYWdlU3RyZWFtID0gc3RyZWFtO1xuXG4gICAgdGhpcy5pbml0SW5saW5lRGVsZXRlTWVzc2FnZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVzc2FnZVN0cmVhbSgpOiBTdWJqZWN0PFNreUxpc3RWaWV3R3JpZE1lc3NhZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5fbWVzc2FnZVN0cmVhbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIElEIG9mIHRoZSByb3cgdG8gaGlnaGxpZ2h0LiBUaGUgSUQgbWF0Y2hlcyB0aGUgYGlkYCBwcm9wZXJ0eSBvZlxuICAgKiB0aGUgYGRhdGFgIG9iamVjdC4gVHlwaWNhbGx5LCB0aGlzIHByb3BlcnR5IGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVcbiAgICogW2ZseW91dCBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9mbHlvdXQpIHRvXG4gICAqIGluZGljYXRlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcm93LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJvd0hpZ2hsaWdodGVkSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZW5hYmxlIHRoZSBtdWx0aXNlbGVjdCBmZWF0dXJlIHRvIGRpc3BsYXkgYSBjb2x1bW4gb2YgY2hlY2tib3hlc1xuICAgKiBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBncmlkLiBNdWx0aXNlbGVjdCBhbHNvIGRpc3BsYXlzIGFuIGFjdGlvbiBiYXIgd2l0aCBidXR0b25zIHRvXG4gICAqIHNlbGVjdCBhbmQgY2xlYXIgYWxsIGNoZWNrYm94ZXMuIE11bHRpc2VsZWN0IGRlZmF1bHRzIHRvIHRoZSBgaWRgIHByb3BlcnR5IG9uIHRoZSBsaXN0J3NcbiAgICogYGRhdGFgIG9iamVjdC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbmFibGVNdWx0aXNlbGVjdCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSB1bmlxdWUga2V5IGZvciB0aGUgVUkgQ29uZmlnIFNlcnZpY2UgdG8gcmV0cmlldmUgc3RvcmVkIHNldHRpbmdzIGZyb21cbiAgICogYSBkYXRhYmFzZS4gVGhlIHNlcnZpY2Ugc2F2ZXMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdXNlcnMgYW5kIHJldHVybnMgYHNlbGVjdGVkQ29sdW1uSWRzYFxuICAgKiBmb3IgdGhlIGNvbHVtbnMgdG8gZGlzcGxheSBhbmQgdGhlIHByZWZlcnJlZCBjb2x1bW4gb3JkZXIuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlXG4gICAqIFtzdGlja3kgc2V0dGluZ3MgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9nZXQtc3RhcnRlZC9hZHZhbmNlZC9zdGlja3ktc2V0dGluZ3MpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldHRpbmdzS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgY2FuY2VsIHRoZSBkZWxldGlvbiBvZiBhIHJvdy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcm93RGVsZXRlQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lMaXN0Vmlld0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGNvbmZpcm0gdGhlIGRlbGV0aW9uIG9mIGEgcm93LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByb3dEZWxldGVDb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lMaXN0Vmlld0dyaWRSb3dEZWxldGVDb25maXJtQXJncz4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiBjb2x1bW5zIGNoYW5nZS4gVGhpcyBpbmNsdWRlcyBjaGFuZ2VzIHRvIHRoZSBkaXNwbGF5ZWQgY29sdW1ucyBhbmQgY2hhbmdlc1xuICAgKiB0byB0aGUgb3JkZXIgb2YgY29sdW1ucy4gVGhlIGV2ZW50IGVtaXRzIGFuIGFycmF5IG9mIElEcyBmb3IgdGhlIGRpc3BsYXllZCBjb2x1bW5zIHRoYXRcbiAgICogcmVmbGVjdHMgdGhlIGNvbHVtbiBvcmRlci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDb2x1bW5JZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PHN0cmluZz4+KCk7XG5cbiAgQFZpZXdDaGlsZChTa3lHcmlkQ29tcG9uZW50KVxuICBwdWJsaWMgZ3JpZENvbXBvbmVudDogU2t5R3JpZENvbXBvbmVudDtcblxuICBwdWJsaWMgZ2V0IGdyaWRIZWlnaHQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5oZWlnaHQgPT09ICdudW1iZXInXG4gICAgICA/IG9ic2VydmFibGVPZih0aGlzLmhlaWdodClcbiAgICAgIDogdGhpcy5oZWlnaHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdyaWRXaWR0aCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLndpZHRoID09PSAnbnVtYmVyJ1xuICAgICAgPyBvYnNlcnZhYmxlT2YodGhpcy53aWR0aClcbiAgICAgIDogdGhpcy53aWR0aDtcbiAgfVxuXG4gIHB1YmxpYyBjb2x1bW5zOiBPYnNlcnZhYmxlPEFycmF5PFNreUdyaWRDb2x1bW5Nb2RlbD4+O1xuXG4gIHB1YmxpYyBzZWxlY3RlZENvbHVtbklkczogT2JzZXJ2YWJsZTxBcnJheTxzdHJpbmc+PjtcblxuICBwdWJsaWMgaXRlbXM6IE9ic2VydmFibGU8TGlzdEl0ZW1Nb2RlbFtdPjtcblxuICAvKipcbiAgICogTWVzc2FnZSBzdHJlYW0gZm9yIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgaW50ZXJuYWwgZ3JpZCBpbnN0YW5jZVxuICAgKiBAaW50ZXJhbFxuICAgKi9cbiAgcHVibGljIGdyaWRNZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5R3JpZE1lc3NhZ2U+KCk7XG5cbiAgcHVibGljIGxvYWRpbmc6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHVibGljIHNvcnRGaWVsZDogT2JzZXJ2YWJsZTxMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbD47XG5cbiAgcHVibGljIGN1cnJlbnRTZWFyY2hUZXh0OiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgcHVibGljIG11bHRpc2VsZWN0U2VsZWN0ZWRJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHNlYXJjaCBmdW5jdGlvbiB0byBhcHBseSBvbiB0aGUgdmlldyBkYXRhLlxuICAgKiBAcGFyYW0gZGF0YSBTcGVjaWZpZXMgdGhlIGRhdGEgdG8gc2VhcmNoLlxuICAgKiBAcGFyYW0gc2VhcmNoVGV4dCBTcGVjaWZpZXMgYSB0ZXh0IHN0cmluZyB0byBzZWFyY2ggZm9yLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdzZWFyY2gnKVxuICBwdWJsaWMgc2VhcmNoRnVuY3Rpb246IChkYXRhOiBhbnksIHNlYXJjaFRleHQ6IHN0cmluZykgPT4gYm9vbGVhbjtcblxuICBAQ29udGVudENoaWxkcmVuKFNreUdyaWRDb2x1bW5Db21wb25lbnQpXG4gIHByaXZhdGUgY29sdW1uQ29tcG9uZW50czogUXVlcnlMaXN0PFNreUdyaWRDb2x1bW5Db21wb25lbnQ+O1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfbWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreUxpc3RWaWV3R3JpZE1lc3NhZ2U+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RhdGU6IExpc3RTdGF0ZSxcbiAgICBwcml2YXRlIGRpc3BhdGNoZXI6IExpc3RTdGF0ZURpc3BhdGNoZXIsXG4gICAgcHVibGljIGdyaWRTdGF0ZTogR3JpZFN0YXRlLFxuICAgIHB1YmxpYyBncmlkRGlzcGF0Y2hlcjogR3JpZFN0YXRlRGlzcGF0Y2hlcixcbiAgICBsb2dnZXI6IFNreUxvZ1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoc3RhdGUsICdHcmlkIFZpZXcnKTtcblxuICAgIGxvZ2dlci5kZXByZWNhdGVkKCdTa3lMaXN0Vmlld0dyaWRDb21wb25lbnQnLCB7XG4gICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogNixcbiAgICAgIG1vcmVJbmZvVXJsOlxuICAgICAgICAnaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGEtZW50cnktZ3JpZCcsXG4gICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOiAnVXNlIGRhdGEgZW50cnkgZ3JpZCBpbnN0ZWFkLicsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIC8vIFdhdGNoIGZvciBzZWxlY3Rpb24gY2hhbmdlcyBhbmQgdXBkYXRlIG11bHRpc2VsZWN0U2VsZWN0ZWRJZHMgZm9yIGxvY2FsIGNvbXBhcmlzb24uXG4gICAgdGhpcy5zdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuc2VsZWN0ZWQuaXRlbSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCh0aGlzLnNlbGVjdGVkTWFwRXF1YWwpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChpdGVtczogTGlzdFNlbGVjdGVkTW9kZWwpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgaXRlbXMuc2VsZWN0ZWRJZE1hcC5mb3JFYWNoKChpc1NlbGVjdGVkLCBpZCkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtcy5zZWxlY3RlZElkTWFwLmdldChpZCkgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSWRzLnB1c2goaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdFNlbGVjdGVkSWRzID0gc2VsZWN0ZWRJZHM7XG4gICAgICB9KTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMuY29sdW1uQ29tcG9uZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0dyaWQgdmlldyByZXF1aXJlcyBhdCBsZWFzdCBvbmUgc2t5LWdyaWQtY29sdW1uIHRvIHJlbmRlci4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbHVtbk1vZGVscyA9IHRoaXMuY29sdW1uQ29tcG9uZW50cy5tYXAoKGNvbHVtbkNvbXBvbmVudCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBTa3lHcmlkQ29sdW1uTW9kZWwoY29sdW1uQ29tcG9uZW50LnRlbXBsYXRlLCBjb2x1bW5Db21wb25lbnQpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMud2lkdGggJiYgIWlzT2JzZXJ2YWJsZSh0aGlzLndpZHRoKSkge1xuICAgICAgdGhpcy53aWR0aCA9IG9ic2VydmFibGVPZih0aGlzLndpZHRoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oZWlnaHQgJiYgIWlzT2JzZXJ2YWJsZSh0aGlzLmhlaWdodCkpIHtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gb2JzZXJ2YWJsZU9mKHRoaXMuaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyBTZXR1cCBPYnNlcnZhYmxlcyBmb3IgdGVtcGxhdGVcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmdyaWRTdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5jb2x1bW5zLml0ZW1zKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKHRoaXMuYXJyYXlzRXF1YWwpLFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSlcbiAgICApO1xuXG4gICAgdGhpcy5zZWxlY3RlZENvbHVtbklkcyA9IHRoaXMuZ2V0U2VsZWN0ZWRJZHMoKTtcblxuICAgIHRoaXMuaXRlbXMgPSB0aGlzLmdldEdyaWRJdGVtcygpO1xuXG4gICAgdGhpcy5sb2FkaW5nID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4ge1xuICAgICAgICByZXR1cm4gcy5pdGVtcy5sb2FkaW5nO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSlcbiAgICApO1xuXG4gICAgdGhpcy5zb3J0RmllbGQgPSB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICBpZiAocy5zb3J0ICYmIHMuc29ydC5maWVsZFNlbGVjdG9ycykge1xuICAgICAgICAgIHJldHVybiBzLnNvcnQuZmllbGRTZWxlY3RvcnNbMF07XG4gICAgICAgIH1cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICk7XG5cbiAgICB0aGlzLmdyaWRTdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuY29sdW1ucy5pdGVtcyksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCh0aGlzLmFycmF5c0VxdWFsKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY29sdW1ucykgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAodGhpcy5oaWRkZW5Db2x1bW5zKSB7XG4gICAgICAgICAgZ2V0VmFsdWUodGhpcy5oaWRkZW5Db2x1bW5zLCAoaGlkZGVuQ29sdW1uczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZERpc3BhdGNoZXIubmV4dChcbiAgICAgICAgICAgICAgbmV3IExpc3RWaWV3RGlzcGxheWVkR3JpZENvbHVtbnNMb2FkQWN0aW9uKFxuICAgICAgICAgICAgICAgIGNvbHVtbnMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAgICAgICAgICAgICBjb25zdCBpZCA9IHguaWQgfHwgeC5maWVsZDtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBoaWRkZW5Db2x1bW5zLmluZGV4T2YoaWQpID09PSAtMTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kaXNwbGF5ZWRDb2x1bW5zKSB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICBnZXRWYWx1ZSh0aGlzLmRpc3BsYXllZENvbHVtbnMsIChkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncmlkRGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICAgICAgICBuZXcgTGlzdFZpZXdEaXNwbGF5ZWRHcmlkQ29sdW1uc0xvYWRBY3Rpb24oXG4gICAgICAgICAgICAgICAgY29sdW1ucy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAoeCkgPT4gZGlzcGxheWVkQ29sdW1ucy5pbmRleE9mKHguaWQgfHwgeC5maWVsZCkgIT09IC0xXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5ncmlkRGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICAgICAgbmV3IExpc3RWaWV3RGlzcGxheWVkR3JpZENvbHVtbnNMb2FkQWN0aW9uKFxuICAgICAgICAgICAgICBjb2x1bW5zLmZpbHRlcigoeCkgPT4gIXguaGlkZGVuKSxcbiAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5jdXJyZW50U2VhcmNoVGV4dCA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuc2VhcmNoLnNlYXJjaFRleHQpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpXG4gICAgKTtcblxuICAgIHRoaXMuZ3JpZERpc3BhdGNoZXIubmV4dChcbiAgICAgIG5ldyBMaXN0Vmlld0dyaWRDb2x1bW5zTG9hZEFjdGlvbihjb2x1bW5Nb2RlbHMsIHRydWUpXG4gICAgKTtcblxuICAgIHRoaXMuaGFuZGxlQ29sdW1uQ2hhbmdlKCk7XG5cbiAgICBpZiAodGhpcy5lbmFibGVNdWx0aXNlbGVjdCkge1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLnRvb2xiYXJTaG93TXVsdGlzZWxlY3RUb29sYmFyKHRydWUpO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdElubGluZURlbGV0ZU1lc3NhZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB1c2VyIG1ha2VzIHNlbGVjdGlvbiwgdGVsbCBsaXN0LWJ1aWxkZXIgdG8gdXBkYXRlIHRoZSBsaXN0IHN0YXRlLlxuICAgKiBUaGlzIGxvZ2ljIHNob3VsZCBvbmx5IHJ1biBvbiB1c2VyIGludGVyYWN0aW9uIC0gTk9UIHByb2dyYW1tYXRpYyB1cGRhdGVzLlxuICAgKi9cbiAgcHVibGljIG9uTXVsdGlzZWxlY3RTZWxlY3Rpb25DaGFuZ2UoXG4gICAgZXZlbnQ6IFNreUdyaWRTZWxlY3RlZFJvd3NNb2RlbENoYW5nZVxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5zb3VyY2UgPT09IFNreUdyaWRTZWxlY3RlZFJvd3NTb3VyY2UuQ2hlY2tib3hDaGFuZ2UgfHxcbiAgICAgIGV2ZW50LnNvdXJjZSA9PT0gU2t5R3JpZFNlbGVjdGVkUm93c1NvdXJjZS5Sb3dDbGlja1xuICAgICkge1xuICAgICAgdGhpcy5zdGF0ZVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLml0ZW1zLml0ZW1zKSxcbiAgICAgICAgICB0YWtlKDEpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoaXRlbXM6IExpc3RJdGVtTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW1JZHMgPSB0aGlzLmFycmF5SW50ZXJzZWN0aW9uKFxuICAgICAgICAgICAgaXRlbXMubWFwKChpKSA9PiBpLmlkKSxcbiAgICAgICAgICAgIHRoaXMubXVsdGlzZWxlY3RTZWxlY3RlZElkc1xuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgbmV3SWRzID0gaXRlbXMuZmlsdGVyKChpKSA9PiBpLmlzU2VsZWN0ZWQpLm1hcCgoaSkgPT4gaS5pZCk7XG5cbiAgICAgICAgICAvLyBDaGVjayBmb3IgZGVzZWxlY3RlZCBpZHMgJiBzZW5kIG1lc3NhZ2UgdG8gZGlzcGF0Y2hlci5cbiAgICAgICAgICBjb25zdCBkZXNlbGVjdGVkSWRzID0gdGhpcy5hcnJheURpZmYobmV3SXRlbUlkcywgbmV3SWRzKTtcbiAgICAgICAgICBpZiAoZGVzZWxlY3RlZElkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIuc2V0U2VsZWN0ZWQoZGVzZWxlY3RlZElkcywgZmFsc2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENoZWNrIGZvciBzZWxlY3RlZCBpZHMgJiBzZW5kIG1lc3NhZ2UgdG8gZGlzcGF0Y2hlci5cbiAgICAgICAgICBjb25zdCBzZWxlY3RlZElkcyA9IHRoaXMuYXJyYXlEaWZmKG5ld0lkcywgbmV3SXRlbUlkcyk7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5zZXRTZWxlY3RlZChzZWxlY3RlZElkcywgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29sdW1uSWRzQ2hhbmdlZChzZWxlY3RlZENvbHVtbklkczogQXJyYXk8c3RyaW5nPikge1xuICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JZHMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGN1cnJlbnRJZHMpID0+IHtcbiAgICAgIGlmICghdGhpcy5hcnJheXNFcXVhbChzZWxlY3RlZENvbHVtbklkcywgY3VycmVudElkcykpIHtcbiAgICAgICAgdGhpcy5ncmlkU3RhdGVcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMuY29sdW1ucy5pdGVtcyksXG4gICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbHVtbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXllZENvbHVtbnMgPSBzZWxlY3RlZENvbHVtbklkcy5tYXAoXG4gICAgICAgICAgICAgIChjb2x1bW5JZCkgPT4gY29sdW1ucy5maWx0ZXIoKGMpID0+IGMuaWQgPT09IGNvbHVtbklkKVswXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZ3JpZERpc3BhdGNoZXIubmV4dChcbiAgICAgICAgICAgICAgbmV3IExpc3RWaWV3RGlzcGxheWVkR3JpZENvbHVtbnNMb2FkQWN0aW9uKGRpc3BsYXllZENvbHVtbnMsIHRydWUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbFJvd0RlbGV0ZShhcmdzOiBTa3lMaXN0Vmlld0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzKTogdm9pZCB7XG4gICAgdGhpcy5yb3dEZWxldGVDYW5jZWwuZW1pdChhcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maXJtUm93RGVsZXRlKGFyZ3M6IFNreUxpc3RWaWV3R3JpZFJvd0RlbGV0ZUNvbmZpcm1BcmdzKTogdm9pZCB7XG4gICAgdGhpcy5yb3dEZWxldGVDb25maXJtLmVtaXQoYXJncyk7XG4gIH1cblxuICBwdWJsaWMgc29ydEZpZWxkQ2hhbmdlZChzb3J0RmllbGQ6IExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsKSB7XG4gICAgdGhpcy5kaXNwYXRjaGVyLnNvcnRTZXRGaWVsZFNlbGVjdG9ycyhbc29ydEZpZWxkXSk7XG4gIH1cblxuICBwdWJsaWMgb25WaWV3QWN0aXZlKCkge1xuICAgIC8qXG4gICAgICBSYW4gaW50byBwcm9ibGVtIHdoZXJlIHN0YXRlIHVwZGF0ZXMgd2VyZSBjb25zdW1lZCBvdXQgb2Ygb3JkZXIuIEZvciBleGFtcGxlLCBvbiBzZWFyY2ggdGV4dFxuICAgICAgdXBkYXRlLCB0aGUgc2VhcmNoVGV4dCB1cGRhdGUgd2FzIGNvbnN1bWVkIGFmdGVyIHRoZSByZXN1bHRpbmcgbGlzdCBpdGVtIHVwZGF0ZS4gU2Nhbm5pbmcgdGhlXG4gICAgICBwcmV2aW91cyB2YWx1ZSBvZiBpdGVtcyBsYXN0VXBkYXRlIGVuc3VyZXMgdGhhdCB3ZSBvbmx5IHJlY2VpdmUgdGhlIGxhdGVzdCBpdGVtcy5cbiAgICAqL1xuICAgIHRoaXMuZ3JpZFN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIHNjYW4oKHByZXZpb3VzVmFsdWU6IEdyaWRTdGF0ZU1vZGVsLCBuZXdWYWx1ZTogR3JpZFN0YXRlTW9kZWwpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBwcmV2aW91c1ZhbHVlLmRpc3BsYXllZENvbHVtbnMubGFzdFVwZGF0ZSA+XG4gICAgICAgICAgICBuZXdWYWx1ZS5kaXNwbGF5ZWRDb2x1bW5zLmxhc3RVcGRhdGVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5kaXNwbGF5ZWRDb2x1bW5zLml0ZW1zKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQodGhpcy5hcnJheXNFcXVhbClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGRpc3BsYXllZENvbHVtbnMpID0+IHtcbiAgICAgICAgY29uc3Qgc2V0RnVuY3Rpb25zID1cbiAgICAgICAgICB0aGlzLnNlYXJjaEZ1bmN0aW9uICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gW3RoaXMuc2VhcmNoRnVuY3Rpb25dXG4gICAgICAgICAgICA6IGRpc3BsYXllZENvbHVtbnNcbiAgICAgICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgICAgICAgKGNvbHVtbikgPT4gKGRhdGE6IGFueSwgc2VhcmNoVGV4dDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4uc2VhcmNoRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgZ2V0RGF0YShkYXRhLCBjb2x1bW4uZmllbGQpLFxuICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaFRleHRcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiBjICE9PSB1bmRlZmluZWQpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHMpID0+IHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIuc2VhcmNoU2V0T3B0aW9ucyhcbiAgICAgICAgICAgIG5ldyBMaXN0U2VhcmNoTW9kZWwoe1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBzLnNlYXJjaC5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICBmdW5jdGlvbnM6IHNldEZ1bmN0aW9ucyxcbiAgICAgICAgICAgICAgZmllbGRTZWxlY3RvcnM6IGRpc3BsYXllZENvbHVtbnMubWFwKChkKSA9PiBkLmZpZWxkKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdElubGluZURlbGV0ZU1lc3NhZ2VzKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMubWVzc2FnZVN0cmVhbSkge1xuICAgICAgdGhpcy5tZXNzYWdlU3RyZWFtLnN1YnNjcmliZSgobWVzc2FnZTogU2t5TGlzdFZpZXdHcmlkTWVzc2FnZSkgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSBTa3lMaXN0Vmlld0dyaWRNZXNzYWdlVHlwZS5BYm9ydERlbGV0ZVJvdykge1xuICAgICAgICAgIHRoaXMuZ3JpZE1lc3NhZ2VTdHJlYW0ubmV4dCh7XG4gICAgICAgICAgICB0eXBlOiBTa3lHcmlkTWVzc2FnZVR5cGUuQWJvcnREZWxldGVSb3csXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIGFib3J0RGVsZXRlUm93OiBtZXNzYWdlLmRhdGEuYWJvcnREZWxldGVSb3csXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIG1lc3NhZ2UudHlwZSA9PT0gU2t5TGlzdFZpZXdHcmlkTWVzc2FnZVR5cGUuUHJvbXB0RGVsZXRlUm93XG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuZ3JpZE1lc3NhZ2VTdHJlYW0ubmV4dCh7XG4gICAgICAgICAgICB0eXBlOiBTa3lHcmlkTWVzc2FnZVR5cGUuUHJvbXB0RGVsZXRlUm93LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBwcm9tcHREZWxldGVSb3c6IG1lc3NhZ2UuZGF0YS5wcm9tcHREZWxldGVSb3csXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvbHVtbkNoYW5nZSgpIHtcbiAgICAvLyB3YXRjaCBmb3IgY2hhbmdlcyBpbiBjb2x1bW4gY29tcG9uZW50c1xuICAgIHRoaXMuY29sdW1uQ29tcG9uZW50cy5jaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvbHVtbkNvbXBvbmVudHMpID0+IHtcbiAgICAgICAgY29uc3QgY29sdW1uTW9kZWxzID0gdGhpcy5jb2x1bW5Db21wb25lbnRzLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBTa3lHcmlkQ29sdW1uTW9kZWwoY29sdW1uLnRlbXBsYXRlLCBjb2x1bW4pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ncmlkRGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICAgIG5ldyBMaXN0Vmlld0dyaWRDb2x1bW5zTG9hZEFjdGlvbihjb2x1bW5Nb2RlbHMsIHRydWUpXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgIC8vIFdhdGNoIGZvciBjb2x1bW4gaGVhZGluZyBjaGFuZ2VzOlxuICAgIHRoaXMuY29sdW1uQ29tcG9uZW50cy5mb3JFYWNoKChjb21wKSA9PiB7XG4gICAgICBjb21wLmhlYWRpbmdNb2RlbENoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZTogU2t5R3JpZENvbHVtbkhlYWRpbmdNb2RlbENoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC51cGRhdGVDb2x1bW5IZWFkaW5nKGNoYW5nZSk7XG4gICAgICAgIH0pO1xuICAgICAgY29tcC5kZXNjcmlwdGlvbk1vZGVsQ2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlOiBTa3lHcmlkQ29sdW1uRGVzY3JpcHRpb25Nb2RlbENoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC51cGRhdGVDb2x1bW5EZXNjcmlwdGlvbihjaGFuZ2UpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0R3JpZEl0ZW1zKCk6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW1Nb2RlbD4+IHtcbiAgICAvKlxuICAgICAgU2FtZSBwcm9ibGVtIGFzIGFib3ZlLiBXZSBzaG91bGQgbW92ZSBmcm9tIGhhdmluZyBhIHN0YXRlIG9iamVjdCBvYnNlcnZhYmxlIHdpdGggYSBidW5jaCBvZlxuICAgICAgc3RhdGljIHByb3BlcnRpZXMgdG8gYSBzdGF0aWMgc3RhdGUgb2JqZWN0IHdpdGggb2JzZXJ2YWJsZSBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbiBzdWJzY3JpYmVcbiAgICAgIHRvLlxuICAgICovXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHtcbiAgICAgICAgcmV0dXJuIHMuaXRlbXM7XG4gICAgICB9KSxcbiAgICAgIHNjYW4oXG4gICAgICAgIChcbiAgICAgICAgICBwcmV2aW91c1ZhbHVlOiBBc3luY0xpc3Q8TGlzdEl0ZW1Nb2RlbD4sXG4gICAgICAgICAgbmV3VmFsdWU6IEFzeW5jTGlzdDxMaXN0SXRlbU1vZGVsPlxuICAgICAgICApID0+IHtcbiAgICAgICAgICBpZiAocHJldmlvdXNWYWx1ZS5sYXN0VXBkYXRlID4gbmV3VmFsdWUubGFzdFVwZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBvYnNlcnZhYmxlTWFwKChyZXN1bHQ6IEFzeW5jTGlzdDxMaXN0SXRlbU1vZGVsPikgPT4ge1xuICAgICAgICByZXR1cm4gcmVzdWx0Lml0ZW1zO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0ZWRJZHMoKTogT2JzZXJ2YWJsZTxBcnJheTxzdHJpbmc+PiB7XG4gICAgLypcbiAgICAgIFNhbWUgcHJvYmxlbSBhcyBhYm92ZS4gV2Ugc2hvdWxkIG1vdmUgZnJvbSBoYXZpbmcgYSBzdGF0ZSBvYmplY3Qgb2JzZXJ2YWJsZSB3aXRoIGEgYnVuY2ggb2ZcbiAgICAgIHN0YXRpYyBwcm9wZXJ0aWVzIHRvIGEgc3RhdGljIHN0YXRlIG9iamVjdCB3aXRoIG9ic2VydmFibGUgcHJvcGVydGllcyB0aGF0IHlvdSBjYW4gc3Vic2NyaWJlXG4gICAgICB0by5cbiAgICAqL1xuICAgIHJldHVybiB0aGlzLmdyaWRTdGF0ZS5waXBlKFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5kaXNwbGF5ZWRDb2x1bW5zKSxcbiAgICAgIHNjYW4oXG4gICAgICAgIChcbiAgICAgICAgICBwcmV2aW91c1ZhbHVlOiBBc3luY0xpc3Q8U2t5R3JpZENvbHVtbk1vZGVsPixcbiAgICAgICAgICBuZXdWYWx1ZTogQXN5bmNMaXN0PFNreUdyaWRDb2x1bW5Nb2RlbD5cbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgaWYgKHByZXZpb3VzVmFsdWUubGFzdFVwZGF0ZSA+IG5ld1ZhbHVlLmxhc3RVcGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgb2JzZXJ2YWJsZU1hcCgocmVzdWx0OiBBc3luY0xpc3Q8U2t5R3JpZENvbHVtbk1vZGVsPikgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVtcy5tYXAoKGNvbHVtbjogU2t5R3JpZENvbHVtbk1vZGVsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvbHVtbi5pZCB8fCBjb2x1bW4uZmllbGQ7XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXNWYWx1ZTogc3RyaW5nW10sIG5ld1ZhbHVlOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXZlQ29sdW1uSWRzQ2hhbmdlZChwcmV2aW91c1ZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhdmVDb2x1bW5JZHNDaGFuZ2VkKHByZXZpb3VzVmFsdWU6IHN0cmluZ1tdLCBuZXdWYWx1ZTogc3RyaW5nW10pIHtcbiAgICBpZiAocHJldmlvdXNWYWx1ZS5sZW5ndGggIT09IG5ld1ZhbHVlLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbklkc0NoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXZpb3VzVmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKHByZXZpb3VzVmFsdWVbaV0gIT09IG5ld1ZhbHVlW2ldKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5JZHNDaGFuZ2UuZW1pdChuZXdWYWx1ZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdGVkTWFwRXF1YWwoXG4gICAgcHJldjogTGlzdFNlbGVjdGVkTW9kZWwsXG4gICAgbmV4dDogTGlzdFNlbGVjdGVkTW9kZWxcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKHByZXYuc2VsZWN0ZWRJZE1hcC5zaXplICE9PSBuZXh0LnNlbGVjdGVkSWRNYXAuc2l6ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gW107XG4gICAgbmV4dC5zZWxlY3RlZElkTWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH0pO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBjb25zdCB2YWx1ZSA9IG5leHQuc2VsZWN0ZWRJZE1hcC5nZXQoa2V5KTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gcHJldi5zZWxlY3RlZElkTWFwLmdldChrZXkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYXJyYXlEaWZmKGFyckE6IEFycmF5PGFueT4sIGFyckI6IEFycmF5PGFueT4pOiBBcnJheTxhbnk+IHtcbiAgICByZXR1cm4gYXJyQS5maWx0ZXIoKGkpID0+IGFyckIuaW5kZXhPZihpKSA8IDApO1xuICB9XG5cbiAgcHJpdmF0ZSBhcnJheUludGVyc2VjdGlvbihhcnJBOiBBcnJheTxhbnk+LCBhcnJCOiBBcnJheTxhbnk+KTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuIGFyckEuZmlsdGVyKCh2YWx1ZSkgPT4gLTEgIT09IGFyckIuaW5kZXhPZih2YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcnJheXNFcXVhbChhcnJheUE6IGFueVtdLCBhcnJheUI6IGFueVtdKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGFycmF5QS5sZW5ndGggPT09IGFycmF5Qi5sZW5ndGggJiZcbiAgICAgIGFycmF5QS5ldmVyeSgodmFsdWUsIGluZGV4KSA9PiB2YWx1ZSA9PT0gYXJyYXlCW2luZGV4XSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiYWN0aXZlIHwgYXN5bmNcIj5cbiAgPHNreS1ncmlkXG4gICAgW2NvbHVtbnNdPVwiY29sdW1ucyB8IGFzeW5jXCJcbiAgICBbZGF0YV09XCJpdGVtcyB8IGFzeW5jXCJcbiAgICBbZW5hYmxlTXVsdGlzZWxlY3RdPVwiZW5hYmxlTXVsdGlzZWxlY3RcIlxuICAgIFtmaXRdPVwiZml0XCJcbiAgICBbaGVpZ2h0XT1cImdyaWRIZWlnaHQgfCBhc3luY1wiXG4gICAgW2hpZ2hsaWdodFRleHRdPVwiXG4gICAgICBoaWdobGlnaHRTZWFyY2hUZXh0ID8gKGN1cnJlbnRTZWFyY2hUZXh0IHwgYXN5bmMpIDogdW5kZWZpbmVkXG4gICAgXCJcbiAgICBbcm93SGlnaGxpZ2h0ZWRJZF09XCJyb3dIaWdobGlnaHRlZElkXCJcbiAgICBbbWVzc2FnZVN0cmVhbV09XCJncmlkTWVzc2FnZVN0cmVhbVwiXG4gICAgW3NlbGVjdGVkQ29sdW1uSWRzXT1cInNlbGVjdGVkQ29sdW1uSWRzIHwgYXN5bmNcIlxuICAgIFtzZWxlY3RlZFJvd0lkc109XCJtdWx0aXNlbGVjdFNlbGVjdGVkSWRzXCJcbiAgICBbc2V0dGluZ3NLZXldPVwic2V0dGluZ3NLZXlcIlxuICAgIFtzb3J0RmllbGRdPVwic29ydEZpZWxkIHwgYXN5bmNcIlxuICAgIFt3aWR0aF09XCJncmlkV2lkdGggfCBhc3luY1wiXG4gICAgKG11bHRpc2VsZWN0U2VsZWN0aW9uQ2hhbmdlKT1cIm9uTXVsdGlzZWxlY3RTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgKHJvd0RlbGV0ZUNhbmNlbCk9XCJjYW5jZWxSb3dEZWxldGUoJGV2ZW50KVwiXG4gICAgKHJvd0RlbGV0ZUNvbmZpcm0pPVwiY29uZmlybVJvd0RlbGV0ZSgkZXZlbnQpXCJcbiAgICAoc2VsZWN0ZWRDb2x1bW5JZHNDaGFuZ2UpPVwiY29sdW1uSWRzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAoc29ydEZpZWxkQ2hhbmdlKT1cInNvcnRGaWVsZENoYW5nZWQoJGV2ZW50KVwiXG4gICAgI3NreUdyaWRcbiAgPlxuICA8L3NreS1ncmlkPlxuICA8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJsb2FkaW5nIHwgYXN5bmNcIj4gPC9za3ktd2FpdD5cbjwvZGl2PlxuIl19