@fundamental-ngx/platform 0.43.0-rc.9 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/esm2020/dynamic-page/dynamic-page.component.mjs +1 -1
  2. package/esm2020/form/combobox/combobox/combobox.component.mjs +1 -1
  3. package/esm2020/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +2 -2
  4. package/esm2020/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +1 -1
  5. package/esm2020/form/multi-input/multi-input.component.mjs +7 -4
  6. package/esm2020/form/step-input/number/number-step-input.component.mjs +1 -1
  7. package/esm2020/settings-generator/settings-generator-content/settings-generator-content.component.mjs +1 -1
  8. package/esm2020/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +4 -3
  9. package/esm2020/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
  10. package/esm2020/smart-filter-bar/smart-filter-bar.component.mjs +3 -3
  11. package/esm2020/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +3 -3
  12. package/esm2020/table/components/table-header-row/table-header-row.component.mjs +8 -4
  13. package/esm2020/table/components/table-p13-dialog/sorting/sorting.component.mjs +3 -3
  14. package/esm2020/table/components/table-row/table-row.component.mjs +4 -3
  15. package/esm2020/table/table.component.mjs +29 -11
  16. package/esm2020/table-helpers/constants/index.mjs +3 -2
  17. package/esm2020/table-helpers/directives/table-scrollable.directive.mjs +9 -1
  18. package/esm2020/table-helpers/directives/table-virtual-scroll.directive.mjs +6 -2
  19. package/esm2020/table-helpers/interfaces/table-state.interface.mjs +1 -1
  20. package/esm2020/table-helpers/services/table-scroll-dispatcher.service.mjs +1 -1
  21. package/esm2020/table-helpers/services/table.service.mjs +3 -2
  22. package/esm2020/upload-collection/upload-collection/upload-collection.component.mjs +1 -1
  23. package/esm2020/value-help-dialog/components/define-tab/define-tab.component.mjs +1 -1
  24. package/esm2020/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
  25. package/fesm2015/fundamental-ngx-platform-dynamic-page.mjs +1 -1
  26. package/fesm2015/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  27. package/fesm2015/fundamental-ngx-platform-form.mjs +9 -7
  28. package/fesm2015/fundamental-ngx-platform-form.mjs.map +1 -1
  29. package/fesm2015/fundamental-ngx-platform-settings-generator.mjs +1 -1
  30. package/fesm2015/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  31. package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs +5 -5
  32. package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  33. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +14 -3
  34. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  35. package/fesm2015/fundamental-ngx-platform-table.mjs +41 -19
  36. package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
  37. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs +1 -1
  38. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  39. package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
  40. package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  41. package/fesm2015/fundamental-ngx-platform-variant-management.mjs +1 -1
  42. package/fesm2015/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  43. package/fesm2020/fundamental-ngx-platform-dynamic-page.mjs +1 -1
  44. package/fesm2020/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  45. package/fesm2020/fundamental-ngx-platform-form.mjs +10 -7
  46. package/fesm2020/fundamental-ngx-platform-form.mjs.map +1 -1
  47. package/fesm2020/fundamental-ngx-platform-settings-generator.mjs +1 -1
  48. package/fesm2020/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  49. package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs +5 -5
  50. package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  51. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +17 -3
  52. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  53. package/fesm2020/fundamental-ngx-platform-table.mjs +41 -19
  54. package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
  55. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs +1 -1
  56. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  57. package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
  58. package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  59. package/fesm2020/fundamental-ngx-platform-variant-management.mjs +1 -1
  60. package/fesm2020/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  61. package/form/multi-input/multi-input.component.d.ts +3 -1
  62. package/fundamental-ngx-platform-v0.43.0.tgz +0 -0
  63. package/package.json +4 -4
  64. package/schematics/ng-add/index.js +1 -1
  65. package/table/components/table-header-row/table-header-row.component.d.ts +3 -1
  66. package/table/table.component.d.ts +7 -1
  67. package/table-helpers/directives/table-scrollable.directive.d.ts +2 -0
  68. package/table-helpers/interfaces/table-state.interface.d.ts +1 -0
  69. package/table-helpers/services/table-scroll-dispatcher.service.d.ts +2 -0
  70. package/fundamental-ngx-platform-v0.43.0-rc.9.tgz +0 -0
@@ -93,10 +93,10 @@ export class TableCellHeaderPopoverComponent {
93
93
  }
94
94
  }
95
95
  TableCellHeaderPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableCellHeaderPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
- TableCellHeaderPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableCellHeaderPopoverComponent, selector: "fdp-table-cell-header-popover", inputs: { column: "column", popoverTemplate: "popoverTemplate", disabled: "disabled", columnFrozen: "columnFrozen", filteringFromHeaderDisabled: "filteringFromHeaderDisabled" }, outputs: { freezeToColumn: "freezeToColumn", unFreeze: "unFreeze" }, providers: [DestroyedService], viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "_popoverItems", predicate: TemplateDirective, descendants: true }], ngImport: i0, template: "<fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n *ngIf=\"!popoverTemplate; else projectedPopover\"\n [triggers]=\"_headerPopoverTriggers\"\n>\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n <fdp-free-content-list-item *ngFor=\"let item of _popoverItems$.asObservable() | async\">\n <ng-template [ngTemplateOutlet]=\"item\" [ngTemplateOutletContext]=\"{ popover: popover }\"></ng-template>\n </fdp-free-content-list-item>\n </fdp-list>\n</fd-popover>\n<ng-template #projectedPopover>\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asObservable() }\"\n ></ng-template>\n</ng-template>\n\n<ng-container *ngIf=\"column?.sortable\">\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC); popover?.close()\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC); popover?.close()\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.groupable\">\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderGroupBy(column.key); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key); popover?.close()\"\n >\n <span fd-list-icon></span>\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.freezable || column?.endFreezable\">\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n <ng-container *ngIf=\"columnFrozen; else unfreezeTpl\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"\n freezeToColumn.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n (keyup.enter)=\"\n freezeToColumn.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n >\n <span></span>\n <span fd-list-title *ngIf=\"!column.endFreezable\">{{\n 'platformTable.headerMenuFreeze' | fdTranslate\n }}</span>\n <span fd-list-title *ngIf=\"column.endFreezable\">{{\n 'platformTable.headerMenuEndFreeze' | fdTranslate\n }}</span>\n </a>\n </ng-container>\n <ng-template #unfreezeTpl>\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"unFreeze.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\"\n (keyup.enter)=\"\n unFreeze.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n >\n <span></span>\n <span fd-list-title>{{ 'platformTable.headerMenuUnfreeze' | fdTranslate }}</span>\n </a>\n </ng-template>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.filterable && !filteringFromHeaderDisabled\">\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value); popover?.close()\"\n />\n </div>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TablePopoverDirective, selector: "[fdTablePopover], [fd-table-popover]" }, { kind: "component", type: i3.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i3.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "component", type: i3.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i3.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i5.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator"], outputs: ["selectedItemChange"] }, { kind: "component", type: i7.FreeContentListItemComponent, selector: "fdp-free-content-list-item" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
96
+ TableCellHeaderPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableCellHeaderPopoverComponent, selector: "fdp-table-cell-header-popover", inputs: { column: "column", popoverTemplate: "popoverTemplate", disabled: "disabled", columnFrozen: "columnFrozen", filteringFromHeaderDisabled: "filteringFromHeaderDisabled" }, outputs: { freezeToColumn: "freezeToColumn", unFreeze: "unFreeze" }, providers: [DestroyedService], viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "_popoverItems", predicate: TemplateDirective, descendants: true }], ngImport: i0, template: "<fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n *ngIf=\"!popoverTemplate; else projectedPopover\"\n [triggers]=\"_headerPopoverTriggers\"\n>\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n <fdp-free-content-list-item *ngFor=\"let item of _popoverItems$.asObservable() | async\">\n <ng-template [ngTemplateOutlet]=\"item\" [ngTemplateOutletContext]=\"{ popover: popover }\"></ng-template>\n </fdp-free-content-list-item>\n </fdp-list>\n</fd-popover>\n<ng-template #projectedPopover>\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asObservable() }\"\n ></ng-template>\n</ng-template>\n\n<ng-container *ngIf=\"column?.sortable\">\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC); popover?.close()\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC); popover?.close()\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.groupable\">\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderGroupBy(column.key); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key); popover?.close()\"\n >\n <span fd-list-icon></span>\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.freezable || column?.endFreezable\">\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n <ng-container *ngIf=\"columnFrozen; else unfreezeTpl\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"\n freezeToColumn.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n (keyup.enter)=\"\n freezeToColumn.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n >\n <span></span>\n <span fd-list-title *ngIf=\"!column.endFreezable\">{{\n 'platformTable.headerMenuFreeze' | fdTranslate\n }}</span>\n <span fd-list-title *ngIf=\"column.endFreezable\">{{\n 'platformTable.headerMenuEndFreeze' | fdTranslate\n }}</span>\n </a>\n </ng-container>\n <ng-template #unfreezeTpl>\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"unFreeze.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\"\n (keyup.enter)=\"\n unFreeze.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n >\n <span></span>\n <span fd-list-title>{{ 'platformTable.headerMenuUnfreeze' | fdTranslate }}</span>\n </a>\n </ng-template>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.filterable && !filteringFromHeaderDisabled\">\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <div fd-list-link style=\"cursor: auto\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value); popover?.close()\"\n />\n </div>\n </div>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TablePopoverDirective, selector: "[fdTablePopover], [fd-table-popover]" }, { kind: "component", type: i3.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i3.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "component", type: i3.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i3.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i5.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator"], outputs: ["selectedItemChange"] }, { kind: "component", type: i7.FreeContentListItemComponent, selector: "fdp-free-content-list-item" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
97
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableCellHeaderPopoverComponent, decorators: [{
98
98
  type: Component,
99
- args: [{ selector: 'fdp-table-cell-header-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DestroyedService], template: "<fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n *ngIf=\"!popoverTemplate; else projectedPopover\"\n [triggers]=\"_headerPopoverTriggers\"\n>\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n <fdp-free-content-list-item *ngFor=\"let item of _popoverItems$.asObservable() | async\">\n <ng-template [ngTemplateOutlet]=\"item\" [ngTemplateOutletContext]=\"{ popover: popover }\"></ng-template>\n </fdp-free-content-list-item>\n </fdp-list>\n</fd-popover>\n<ng-template #projectedPopover>\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asObservable() }\"\n ></ng-template>\n</ng-template>\n\n<ng-container *ngIf=\"column?.sortable\">\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC); popover?.close()\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC); popover?.close()\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.groupable\">\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderGroupBy(column.key); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key); popover?.close()\"\n >\n <span fd-list-icon></span>\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.freezable || column?.endFreezable\">\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n <ng-container *ngIf=\"columnFrozen; else unfreezeTpl\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"\n freezeToColumn.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n (keyup.enter)=\"\n freezeToColumn.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n >\n <span></span>\n <span fd-list-title *ngIf=\"!column.endFreezable\">{{\n 'platformTable.headerMenuFreeze' | fdTranslate\n }}</span>\n <span fd-list-title *ngIf=\"column.endFreezable\">{{\n 'platformTable.headerMenuEndFreeze' | fdTranslate\n }}</span>\n </a>\n </ng-container>\n <ng-template #unfreezeTpl>\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"unFreeze.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\"\n (keyup.enter)=\"\n unFreeze.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n >\n <span></span>\n <span fd-list-title>{{ 'platformTable.headerMenuUnfreeze' | fdTranslate }}</span>\n </a>\n </ng-template>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.filterable && !filteringFromHeaderDisabled\">\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value); popover?.close()\"\n />\n </div>\n </ng-template>\n</ng-container>\n" }]
99
+ args: [{ selector: 'fdp-table-cell-header-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DestroyedService], template: "<fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n *ngIf=\"!popoverTemplate; else projectedPopover\"\n [triggers]=\"_headerPopoverTriggers\"\n>\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n <fdp-free-content-list-item *ngFor=\"let item of _popoverItems$.asObservable() | async\">\n <ng-template [ngTemplateOutlet]=\"item\" [ngTemplateOutletContext]=\"{ popover: popover }\"></ng-template>\n </fdp-free-content-list-item>\n </fdp-list>\n</fd-popover>\n<ng-template #projectedPopover>\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asObservable() }\"\n ></ng-template>\n</ng-template>\n\n<ng-container *ngIf=\"column?.sortable\">\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC); popover?.close()\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC); popover?.close()\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.groupable\">\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderGroupBy(column.key); popover?.close()\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key); popover?.close()\"\n >\n <span fd-list-icon></span>\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.freezable || column?.endFreezable\">\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n <ng-container *ngIf=\"columnFrozen; else unfreezeTpl\">\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"\n freezeToColumn.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n (keyup.enter)=\"\n freezeToColumn.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n >\n <span></span>\n <span fd-list-title *ngIf=\"!column.endFreezable\">{{\n 'platformTable.headerMenuFreeze' | fdTranslate\n }}</span>\n <span fd-list-title *ngIf=\"column.endFreezable\">{{\n 'platformTable.headerMenuEndFreeze' | fdTranslate\n }}</span>\n </a>\n </ng-container>\n <ng-template #unfreezeTpl>\n <a\n fd-list-link\n [focusable]=\"true\"\n (click)=\"unFreeze.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\"\n (keyup.enter)=\"\n unFreeze.emit({ name: column.name, endFreezable: column.endFreezable }); popover?.close()\n \"\n >\n <span></span>\n <span fd-list-title>{{ 'platformTable.headerMenuUnfreeze' | fdTranslate }}</span>\n </a>\n </ng-template>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"column?.filterable && !filteringFromHeaderDisabled\">\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <div fd-list-link style=\"cursor: auto\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value); popover?.close()\"\n />\n </div>\n </div>\n </ng-template>\n</ng-container>\n" }]
100
100
  }], propDecorators: { column: [{
101
101
  type: Input
102
102
  }], popoverTemplate: [{
@@ -118,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
118
118
  type: ViewChildren,
119
119
  args: [TemplateDirective]
120
120
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyL3RhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFZLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLCtCQUErQixDQUFDO0FBQ2hGLE9BQU8sRUFFSCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYixXQUFXLEVBQ1gsWUFBWSxFQUNmLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBU3RELE1BQU0sT0FBTywrQkFBK0I7SUFQNUM7UUFnQkksdUNBQXVDO1FBRXZDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsb0NBQW9DO1FBRXBDLGlCQUFZLEdBQUcsS0FB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RUFBRSxLQUFLO1NBQ2pCLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs0SEE3R1EsK0JBQStCO2dIQUEvQiwrQkFBK0IsK1NBRjdCLENBQUMsZ0JBQWdCLENBQUMsbUVBZ0NsQixnQkFBZ0IsbUVBSWIsaUJBQWlCLGdEQ3BFbkMsdTZKQWtIQTsyRkRoRmEsK0JBQStCO2tCQVAzQyxTQUFTOytCQUNJLCtCQUErQixpQkFFMUIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGdCQUFnQixDQUFDOzhCQUs3QixNQUFNO3NCQURMLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sMkJBQTJCO3NCQUQxQixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsTUFBTTtnQkFLUCxRQUFRO3NCQURQLE1BQU07Z0JBS1AsT0FBTztzQkFETixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLOUMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlLCBOdWxsYWJsZSwgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50LCBUcmlnZ2VyQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uU3RyaW5nRmlsdGVyLFxuICAgIEZJTFRFUl9TVFJJTkdfU1RSQVRFR1ksXG4gICAgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLFxuICAgIFNvcnREaXJlY3Rpb24sXG4gICAgVGFibGVDb2x1bW4sXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtEZXN0cm95ZWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNlbGxIZWFkZXJQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIENvbHVtbiBkZWZpbml0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uOiBUYWJsZUNvbHVtbjtcblxuICAgIC8qKiBDdXN0b20gcG9wb3ZlciB0ZW1wbGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBvcG92ZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29sdW1uIGlzIGZyb3plbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbkZyb3plbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGZpbHRlcmluZyBmcm9tIGhlYWRlciBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZDogTnVsbGFibGU8Ym9vbGVhbj4gPSBmYWxzZTtcblxuICAgIC8qKiBDb2x1bW4gZnJlZXppbmcuICovXG4gICAgQE91dHB1dCgpXG4gICAgZnJlZXplVG9Db2x1bW4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogVGFibGVDb2x1bW5bJ25hbWUnXTsgZW5kRnJlZXphYmxlOiBUYWJsZUNvbHVtblsnZW5kRnJlZXphYmxlJ10gfT4oKTtcblxuICAgIC8qKiBDb2x1bW4gdW5mcmVlemluZy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB1bkZyZWV6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBUYWJsZUNvbHVtblsnbmFtZSddOyBlbmRGcmVlemFibGU6IFRhYmxlQ29sdW1uWydlbmRGcmVlemFibGUnXSB9PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKFBvcG92ZXJDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHBvcG92ZXI6IE51bGxhYmxlPFBvcG92ZXJDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIF9wb3BvdmVySXRlbXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3BvdmVySXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+W10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBpbmplY3QoRGVzdHJveWVkU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGVhZGVyUG9wb3ZlclRyaWdnZXJzOiBUcmlnZ2VyQ29uZmlnW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdjbGljaycsXG4gICAgICAgICAgICBvcGVuQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWUsXG4gICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2tleWRvd24uZW50ZXInLFxuICAgICAgICAgICAgb3BlbkFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdrZXlkb3duLnNwYWNlJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVySXRlbXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJJdGVtcyQubmV4dCh0aGlzLl9wb3BvdmVySXRlbXMubWFwKCh0KSA9PiB0LnRlbXBsYXRlUmVmKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldENvbHVtbkhlYWRlclNvcnRCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddLCBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLnNldFNvcnQoW3sgZmllbGQsIGRpcmVjdGlvbiB9XSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0Q29sdW1uSGVhZGVyR3JvdXBCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fdGFibGVTZXJ2aWNlLmdldFRhYmxlU3RhdGUoKTtcbiAgICAgICAgaWYgKHN0YXRlLmdyb3VwQnk/Lmxlbmd0aCA9PT0gMSAmJiBzdGF0ZS5ncm91cEJ5WzBdLmZpZWxkID09PSBmaWVsZCkge1xuICAgICAgICAgICAgLy8gcmVzZXQgZ3JvdXBpbmcsIGlmIGFscmVhZHkgZ3JvdXBlZCBieSB0aGlzIGZpZWxkXG4gICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2Uuc2V0R3JvdXBzKFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRHcm91cHMoW3sgZmllbGQsIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbi5OT05FLCBzaG93QXNDb2x1bW46IHRydWUgfV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0Q29sdW1uSGVhZGVyRmlsdGVyQnkoZmllbGQ6IFRhYmxlQ29sdW1uWydrZXknXSwgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2UucmVtb3ZlRmlsdGVycyhbZmllbGRdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xsZWN0aW9uRmlsdGVyOiBDb2xsZWN0aW9uU3RyaW5nRmlsdGVyID0ge1xuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICBzdHJhdGVneTogRklMVEVSX1NUUklOR19TVFJBVEVHWS5DT05UQUlOUyxcbiAgICAgICAgICAgIGV4Y2x1ZGU6IGZhbHNlXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLmFkZEZpbHRlcnMoW2NvbGxlY3Rpb25GaWx0ZXJdKTtcbiAgICB9XG59XG4iLCI8ZmQtcG9wb3ZlclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25vQXJyb3ddPVwidHJ1ZVwiXG4gICAgZmQtdGFibGUtcG9wb3ZlclxuICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgKm5nSWY9XCIhcG9wb3ZlclRlbXBsYXRlOyBlbHNlIHByb2plY3RlZFBvcG92ZXJcIlxuICAgIFt0cmlnZ2Vyc109XCJfaGVhZGVyUG9wb3ZlclRyaWdnZXJzXCJcbj5cbiAgICA8ZmRwLWxpc3QgW25vQm9yZGVyXT1cInRydWVcIiBbbmF2aWdhdGVkXT1cInRydWVcIj5cbiAgICAgICAgPGZkcC1mcmVlLWNvbnRlbnQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9wb3BvdmVySXRlbXMkLmFzT2JzZXJ2YWJsZSgpIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcG9wb3ZlcjogcG9wb3ZlciB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9mZHAtZnJlZS1jb250ZW50LWxpc3QtaXRlbT5cbiAgICA8L2ZkcC1saXN0PlxuPC9mZC1wb3BvdmVyPlxuPG5nLXRlbXBsYXRlICNwcm9qZWN0ZWRQb3BvdmVyPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb3BvdmVyVGVtcGxhdGUhXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBfcG9wb3Zlckl0ZW1zJC5hc09ic2VydmFibGUoKSB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LnNvcnRhYmxlXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwic29ydGluZ0FzY1BvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBmZC1saXN0LWxpbmtcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5BU0MpOyBwb3BvdmVyPy5jbG9zZSgpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoY29sdW1uLmtleSwgU09SVF9ESVJFQ1RJT04uQVNDKTsgcG9wb3Zlcj8uY2xvc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtaWNvbiBnbHlwaD1cInNvcnQtYXNjZW5kaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51U29ydEFzYycgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwic29ydGluZ0Rlc2NQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoY29sdW1uLmtleSwgU09SVF9ESVJFQ1RJT04uREVTQyk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5ERVNDKTsgcG9wb3Zlcj8uY2xvc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtaWNvbiBnbHlwaD1cInNvcnQtZGVzY2VuZGluZ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudVNvcnREZXNjJyB8IGZkVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uPy5ncm91cGFibGVcIj5cbiAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJncm91cFBvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBmZC1saXN0LWxpbmtcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlckdyb3VwQnkoY29sdW1uLmtleSk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiX3NldENvbHVtbkhlYWRlckdyb3VwQnkoY29sdW1uLmtleSk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LWljb24+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51R3JvdXAnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmZyZWV6YWJsZSB8fCBjb2x1bW4/LmVuZEZyZWV6YWJsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZyZWV6ZVBvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5Gcm96ZW47IGVsc2UgdW5mcmVlemVUcGxcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIGZyZWV6ZVRvQ29sdW1uLmVtaXQoeyBuYW1lOiBjb2x1bW4ubmFtZSwgZW5kRnJlZXphYmxlOiBjb2x1bW4uZW5kRnJlZXphYmxlIH0pOyBwb3BvdmVyPy5jbG9zZSgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiXG4gICAgICAgICAgICAgICAgICAgIGZyZWV6ZVRvQ29sdW1uLmVtaXQoeyBuYW1lOiBjb2x1bW4ubmFtZSwgZW5kRnJlZXphYmxlOiBjb2x1bW4uZW5kRnJlZXphYmxlIH0pOyBwb3BvdmVyPy5jbG9zZSgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZSAqbmdJZj1cIiFjb2x1bW4uZW5kRnJlZXphYmxlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudUZyZWV6ZScgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGUgKm5nSWY9XCJjb2x1bW4uZW5kRnJlZXphYmxlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudUVuZEZyZWV6ZScgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN1bmZyZWV6ZVRwbD5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidW5GcmVlemUuZW1pdCh7IG5hbWU6IGNvbHVtbi5uYW1lLCBlbmRGcmVlemFibGU6IGNvbHVtbi5lbmRGcmVlemFibGUgfSk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJcbiAgICAgICAgICAgICAgICAgICAgdW5GcmVlemUuZW1pdCh7IG5hbWU6IGNvbHVtbi5uYW1lLCBlbmRGcmVlemFibGU6IGNvbHVtbi5lbmRGcmVlemFibGUgfSk7IHBvcG92ZXI/LmNsb3NlKClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICdwbGF0Zm9ybVRhYmxlLmhlYWRlck1lbnVVbmZyZWV6ZScgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmZpbHRlcmFibGUgJiYgIWZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZpbHRlcmluZ1BvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxpIGZkLWxpc3QtaWNvbiBnbHlwaD1cImZpbHRlclwiPjwvaT5cbiAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0gW2hvcml6b250YWxdPVwidHJ1ZVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIFtmb3JdPVwiJ2ZkcC10YWJsZS1jb2x1bW4tZmlsdGVyaW5nLScgKyBjb2x1bW4ubmFtZVwiPnt7XG4gICAgICAgICAgICAgICAgJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudUZpbHRlcicgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgW2lkXT1cIidmZHAtdGFibGUtY29sdW1uLWZpbHRlcmluZy0nICsgY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJGaWx0ZXJCeShjb2x1bW4ua2V5LCAkYW55KCRldmVudC50YXJnZXQpPy52YWx1ZSk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyL3RhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFZLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLCtCQUErQixDQUFDO0FBQ2hGLE9BQU8sRUFFSCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYixXQUFXLEVBQ1gsWUFBWSxFQUNmLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBU3RELE1BQU0sT0FBTywrQkFBK0I7SUFQNUM7UUFnQkksdUNBQXVDO1FBRXZDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsb0NBQW9DO1FBRXBDLGlCQUFZLEdBQUcsS0FB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RUFBRSxLQUFLO1NBQ2pCLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs0SEE3R1EsK0JBQStCO2dIQUEvQiwrQkFBK0IsK1NBRjdCLENBQUMsZ0JBQWdCLENBQUMsbUVBZ0NsQixnQkFBZ0IsbUVBSWIsaUJBQWlCLGdEQ3BFbkMsc2hLQW9IQTsyRkRsRmEsK0JBQStCO2tCQVAzQyxTQUFTOytCQUNJLCtCQUErQixpQkFFMUIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGdCQUFnQixDQUFDOzhCQUs3QixNQUFNO3NCQURMLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sMkJBQTJCO3NCQUQxQixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsTUFBTTtnQkFLUCxRQUFRO3NCQURQLE1BQU07Z0JBS1AsT0FBTztzQkFETixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLOUMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlLCBOdWxsYWJsZSwgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50LCBUcmlnZ2VyQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uU3RyaW5nRmlsdGVyLFxuICAgIEZJTFRFUl9TVFJJTkdfU1RSQVRFR1ksXG4gICAgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLFxuICAgIFNvcnREaXJlY3Rpb24sXG4gICAgVGFibGVDb2x1bW4sXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtEZXN0cm95ZWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNlbGxIZWFkZXJQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIENvbHVtbiBkZWZpbml0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uOiBUYWJsZUNvbHVtbjtcblxuICAgIC8qKiBDdXN0b20gcG9wb3ZlciB0ZW1wbGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBvcG92ZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29sdW1uIGlzIGZyb3plbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbkZyb3plbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGZpbHRlcmluZyBmcm9tIGhlYWRlciBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZDogTnVsbGFibGU8Ym9vbGVhbj4gPSBmYWxzZTtcblxuICAgIC8qKiBDb2x1bW4gZnJlZXppbmcuICovXG4gICAgQE91dHB1dCgpXG4gICAgZnJlZXplVG9Db2x1bW4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogVGFibGVDb2x1bW5bJ25hbWUnXTsgZW5kRnJlZXphYmxlOiBUYWJsZUNvbHVtblsnZW5kRnJlZXphYmxlJ10gfT4oKTtcblxuICAgIC8qKiBDb2x1bW4gdW5mcmVlemluZy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB1bkZyZWV6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBUYWJsZUNvbHVtblsnbmFtZSddOyBlbmRGcmVlemFibGU6IFRhYmxlQ29sdW1uWydlbmRGcmVlemFibGUnXSB9PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKFBvcG92ZXJDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHBvcG92ZXI6IE51bGxhYmxlPFBvcG92ZXJDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIF9wb3BvdmVySXRlbXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3BvdmVySXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+W10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBpbmplY3QoRGVzdHJveWVkU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGVhZGVyUG9wb3ZlclRyaWdnZXJzOiBUcmlnZ2VyQ29uZmlnW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdjbGljaycsXG4gICAgICAgICAgICBvcGVuQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWUsXG4gICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2tleWRvd24uZW50ZXInLFxuICAgICAgICAgICAgb3BlbkFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdrZXlkb3duLnNwYWNlJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVySXRlbXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJJdGVtcyQubmV4dCh0aGlzLl9wb3BvdmVySXRlbXMubWFwKCh0KSA9PiB0LnRlbXBsYXRlUmVmKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldENvbHVtbkhlYWRlclNvcnRCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddLCBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLnNldFNvcnQoW3sgZmllbGQsIGRpcmVjdGlvbiB9XSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0Q29sdW1uSGVhZGVyR3JvdXBCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fdGFibGVTZXJ2aWNlLmdldFRhYmxlU3RhdGUoKTtcbiAgICAgICAgaWYgKHN0YXRlLmdyb3VwQnk/Lmxlbmd0aCA9PT0gMSAmJiBzdGF0ZS5ncm91cEJ5WzBdLmZpZWxkID09PSBmaWVsZCkge1xuICAgICAgICAgICAgLy8gcmVzZXQgZ3JvdXBpbmcsIGlmIGFscmVhZHkgZ3JvdXBlZCBieSB0aGlzIGZpZWxkXG4gICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2Uuc2V0R3JvdXBzKFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRHcm91cHMoW3sgZmllbGQsIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbi5OT05FLCBzaG93QXNDb2x1bW46IHRydWUgfV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0Q29sdW1uSGVhZGVyRmlsdGVyQnkoZmllbGQ6IFRhYmxlQ29sdW1uWydrZXknXSwgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2UucmVtb3ZlRmlsdGVycyhbZmllbGRdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xsZWN0aW9uRmlsdGVyOiBDb2xsZWN0aW9uU3RyaW5nRmlsdGVyID0ge1xuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICBzdHJhdGVneTogRklMVEVSX1NUUklOR19TVFJBVEVHWS5DT05UQUlOUyxcbiAgICAgICAgICAgIGV4Y2x1ZGU6IGZhbHNlXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLmFkZEZpbHRlcnMoW2NvbGxlY3Rpb25GaWx0ZXJdKTtcbiAgICB9XG59XG4iLCI8ZmQtcG9wb3ZlclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25vQXJyb3ddPVwidHJ1ZVwiXG4gICAgZmQtdGFibGUtcG9wb3ZlclxuICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgIFtmb2N1c1RyYXBwZWRdPVwidHJ1ZVwiXG4gICAgKm5nSWY9XCIhcG9wb3ZlclRlbXBsYXRlOyBlbHNlIHByb2plY3RlZFBvcG92ZXJcIlxuICAgIFt0cmlnZ2Vyc109XCJfaGVhZGVyUG9wb3ZlclRyaWdnZXJzXCJcbj5cbiAgICA8ZmRwLWxpc3QgW25vQm9yZGVyXT1cInRydWVcIiBbbmF2aWdhdGVkXT1cInRydWVcIj5cbiAgICAgICAgPGZkcC1mcmVlLWNvbnRlbnQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9wb3BvdmVySXRlbXMkLmFzT2JzZXJ2YWJsZSgpIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcG9wb3ZlcjogcG9wb3ZlciB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9mZHAtZnJlZS1jb250ZW50LWxpc3QtaXRlbT5cbiAgICA8L2ZkcC1saXN0PlxuPC9mZC1wb3BvdmVyPlxuPG5nLXRlbXBsYXRlICNwcm9qZWN0ZWRQb3BvdmVyPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb3BvdmVyVGVtcGxhdGUhXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBfcG9wb3Zlckl0ZW1zJC5hc09ic2VydmFibGUoKSB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LnNvcnRhYmxlXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwic29ydGluZ0FzY1BvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBmZC1saXN0LWxpbmtcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5BU0MpOyBwb3BvdmVyPy5jbG9zZSgpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoY29sdW1uLmtleSwgU09SVF9ESVJFQ1RJT04uQVNDKTsgcG9wb3Zlcj8uY2xvc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtaWNvbiBnbHlwaD1cInNvcnQtYXNjZW5kaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51U29ydEFzYycgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwic29ydGluZ0Rlc2NQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoY29sdW1uLmtleSwgU09SVF9ESVJFQ1RJT04uREVTQyk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5ERVNDKTsgcG9wb3Zlcj8uY2xvc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtaWNvbiBnbHlwaD1cInNvcnQtZGVzY2VuZGluZ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudVNvcnREZXNjJyB8IGZkVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uPy5ncm91cGFibGVcIj5cbiAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJncm91cFBvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBmZC1saXN0LWxpbmtcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlckdyb3VwQnkoY29sdW1uLmtleSk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiX3NldENvbHVtbkhlYWRlckdyb3VwQnkoY29sdW1uLmtleSk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LWljb24+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51R3JvdXAnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmZyZWV6YWJsZSB8fCBjb2x1bW4/LmVuZEZyZWV6YWJsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZyZWV6ZVBvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5Gcm96ZW47IGVsc2UgdW5mcmVlemVUcGxcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIGZyZWV6ZVRvQ29sdW1uLmVtaXQoeyBuYW1lOiBjb2x1bW4ubmFtZSwgZW5kRnJlZXphYmxlOiBjb2x1bW4uZW5kRnJlZXphYmxlIH0pOyBwb3BvdmVyPy5jbG9zZSgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiXG4gICAgICAgICAgICAgICAgICAgIGZyZWV6ZVRvQ29sdW1uLmVtaXQoeyBuYW1lOiBjb2x1bW4ubmFtZSwgZW5kRnJlZXphYmxlOiBjb2x1bW4uZW5kRnJlZXphYmxlIH0pOyBwb3BvdmVyPy5jbG9zZSgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZSAqbmdJZj1cIiFjb2x1bW4uZW5kRnJlZXphYmxlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudUZyZWV6ZScgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGUgKm5nSWY9XCJjb2x1bW4uZW5kRnJlZXphYmxlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudUVuZEZyZWV6ZScgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN1bmZyZWV6ZVRwbD5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidW5GcmVlemUuZW1pdCh7IG5hbWU6IGNvbHVtbi5uYW1lLCBlbmRGcmVlemFibGU6IGNvbHVtbi5lbmRGcmVlemFibGUgfSk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJcbiAgICAgICAgICAgICAgICAgICAgdW5GcmVlemUuZW1pdCh7IG5hbWU6IGNvbHVtbi5uYW1lLCBlbmRGcmVlemFibGU6IGNvbHVtbi5lbmRGcmVlemFibGUgfSk7IHBvcG92ZXI/LmNsb3NlKClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICdwbGF0Zm9ybVRhYmxlLmhlYWRlck1lbnVVbmZyZWV6ZScgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmZpbHRlcmFibGUgJiYgIWZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZpbHRlcmluZ1BvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIDxkaXYgZmQtbGlzdC1saW5rIHN0eWxlPVwiY3Vyc29yOiBhdXRvXCI+XG4gICAgICAgICAgICA8aSBmZC1saXN0LWljb24gZ2x5cGg9XCJmaWx0ZXJcIj48L2k+XG4gICAgICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbSBbaG9yaXpvbnRhbF09XCJ0cnVlXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIFtmb3JdPVwiJ2ZkcC10YWJsZS1jb2x1bW4tZmlsdGVyaW5nLScgKyBjb2x1bW4ubmFtZVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybVRhYmxlLmhlYWRlck1lbnVGaWx0ZXInIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGZkLWZvcm0tY29udHJvbFxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZkcC10YWJsZS1jb2x1bW4tZmlsdGVyaW5nLScgKyBjb2x1bW4ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJGaWx0ZXJCeShjb2x1bW4ua2V5LCAkYW55KCRldmVudC50YXJnZXQpPy52YWx1ZSk7IHBvcG92ZXI/LmNsb3NlKClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -24,6 +24,8 @@ export class TableHeaderRowComponent extends TableRowDirective {
24
24
  constructor() {
25
25
  super();
26
26
  /** @hidden */
27
+ this.disableSelectionCheckbox = false;
28
+ /** @hidden */
27
29
  this._rtl = false;
28
30
  /** @hidden */
29
31
  this.SELECTION_MODE = SelectionMode;
@@ -66,13 +68,13 @@ export class TableHeaderRowComponent extends TableRowDirective {
66
68
  }
67
69
  }
68
70
  TableHeaderRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableHeaderRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
69
- TableHeaderRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableHeaderRowComponent, selector: "[fdp-table-header-row]", inputs: { rowId: "rowId", fixed: "fixed", isShownSelectionColumn: "isShownSelectionColumn", checkedState: "checkedState", selectionMode: "selectionMode", selectionColumnWidth: "selectionColumnWidth", freezeColumnsTo: "freezeColumnsTo", freezeEndColumnsTo: "freezeEndColumnsTo" }, providers: [
71
+ TableHeaderRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableHeaderRowComponent, selector: "[fdp-table-header-row]", inputs: { rowId: "rowId", fixed: "fixed", isShownSelectionColumn: "isShownSelectionColumn", checkedState: "checkedState", selectionMode: "selectionMode", selectionColumnWidth: "selectionColumnWidth", freezeColumnsTo: "freezeColumnsTo", freezeEndColumnsTo: "freezeEndColumnsTo", disableSelectionCheckbox: "disableSelectionCheckbox" }, providers: [
70
72
  {
71
73
  provide: FDK_FOCUSABLE_LIST_DIRECTIVE,
72
74
  useExisting: TableHeaderRowComponent
73
75
  },
74
76
  DestroyedService
75
- ], viewQueries: [{ propertyName: "_focusableCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }], usesInheritance: true, ngImport: i0, template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (keydown.space)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-labelledby]=\"rowId + '-header-cell-' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n _isColumnHasHeaderMenu(column) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"tablePopover.popover\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column?.headerOverflows ? column.label : null\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!_isColumnHasHeaderMenu(column)\"\n [column]=\"column\"\n [popoverTemplate]=\"column.headerCellPopoverTemplate\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i3.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i5.PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "directive", type: i6.DisabledBehaviorDirective, selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "directive", type: i7.PlatformTableCellResizableDirective, selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "component", type: i8.TableHeaderCellContentComponent, selector: "fdp-table-header-cell-content", inputs: ["id", "column", "hasSorting", "hasFilter", "sorting"] }, { kind: "component", type: i9.TableCellHeaderPopoverComponent, selector: "fdp-table-cell-header-popover", inputs: ["column", "popoverTemplate", "disabled", "columnFrozen", "filteringFromHeaderDisabled"], outputs: ["freezeToColumn", "unFreeze"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: i7.SelectionCellStylesPipe, name: "selectionCellStyles" }, { kind: "pipe", type: i7.TableCellStylesPipe, name: "tableCellStyles" }, { kind: "pipe", type: i7.ColumnResizableSidePipe, name: "columnResizableSide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
77
+ ], viewQueries: [{ propertyName: "_focusableCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }], usesInheritance: true, ngImport: i0, template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (keydown.space)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n _isColumnHasHeaderMenu(column) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"tablePopover.popover\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column?.headerOverflows ? column.label : null\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!_isColumnHasHeaderMenu(column)\"\n [column]=\"column\"\n [popoverTemplate]=\"column.headerCellPopoverTemplate\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i3.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i5.PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "directive", type: i6.DisabledBehaviorDirective, selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "directive", type: i7.PlatformTableCellResizableDirective, selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "component", type: i8.TableHeaderCellContentComponent, selector: "fdp-table-header-cell-content", inputs: ["id", "column", "hasSorting", "hasFilter", "sorting"] }, { kind: "component", type: i9.TableCellHeaderPopoverComponent, selector: "fdp-table-cell-header-popover", inputs: ["column", "popoverTemplate", "disabled", "columnFrozen", "filteringFromHeaderDisabled"], outputs: ["freezeToColumn", "unFreeze"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: i7.SelectionCellStylesPipe, name: "selectionCellStyles" }, { kind: "pipe", type: i7.TableCellStylesPipe, name: "tableCellStyles" }, { kind: "pipe", type: i7.ColumnResizableSidePipe, name: "columnResizableSide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
76
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableHeaderRowComponent, decorators: [{
77
79
  type: Component,
78
80
  args: [{ selector: '[fdp-table-header-row]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -81,7 +83,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
81
83
  useExisting: TableHeaderRowComponent
82
84
  },
83
85
  DestroyedService
84
- ], template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (keydown.space)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-labelledby]=\"rowId + '-header-cell-' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n _isColumnHasHeaderMenu(column) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"tablePopover.popover\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column?.headerOverflows ? column.label : null\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!_isColumnHasHeaderMenu(column)\"\n [column]=\"column\"\n [popoverTemplate]=\"column.headerCellPopoverTemplate\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n" }]
86
+ ], template: "<th\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async\"\n [class.fd-table__cell--fixed]=\"fixed\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [style.min-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n [style.max-width]=\"_fdpTableService._semanticHighlightingColumnWidth$ | async\"\n></th>\n\n<th\n *ngIf=\"isShownSelectionColumn\"\n fd-table-cell\n [focusable]=\"true\"\n [class.fd-table__cell--fixed]=\"fixed\"\n class=\"fd-table__cell--checkbox\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n (keydown.enter)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n (keydown.space)=\"_tableRowService.toggleAllSelectableRows(!checkedState)\"\n>\n <fd-checkbox\n tabIndexValue=\"-1\"\n *ngIf=\"selectionMode === SELECTION_MODE.MULTIPLE\"\n labelClass=\"fd-table__checkbox-label\"\n [fdkDisabled]=\"_fdpTableService.visibleColumnsLength === 0 || disableSelectionCheckbox\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"checkedState\"\n (ngModelChange)=\"_tableRowService.toggleAllSelectableRows($event)\"\n [attr.aria-description]=\"\n !checkedState\n ? ('platformTable.selectAllCheckboxLabel' | fdTranslate)\n : ('platformTable.deselectAllCheckboxLabel' | fdTranslate)\n \"\n ></fd-checkbox>\n</th>\n\n<ng-container\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n trackBy: _columnTrackBy;\n last as isLast\n \"\n>\n <th\n [focusable]=\"true\"\n role=\"columnheader\"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async)\n \"\n [columnName]=\"column.name\"\n [id]=\"rowId + '__' + column.name\"\n [attr.aria-colindex]=\"colIdx\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) !== true ? 'is-last-child' : '',\n _isColumnHasHeaderMenu(column) ? 'fd-table__item--clickable' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [fdPopoverTrigger]=\"tablePopover.popover\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n >\n <fdp-table-header-cell-content\n [id]=\"rowId\"\n [column]=\"column\"\n [hasFilter]=\"(_fdpTableService.filterRules$ | async)?.has(column.key) === true\"\n [hasSorting]=\"(_fdpTableService.sortRules$ | async)?.has(column.key) === true\"\n [sorting]=\"(_fdpTableService.sortRules$ | async)?.get(column.key)\"\n [attr.title]=\"column?.headerOverflows ? column.label : null\"\n >\n <!-- Header menu -->\n <fdp-table-cell-header-popover\n #tablePopover\n [disabled]=\"!_isColumnHasHeaderMenu(column)\"\n [column]=\"column\"\n [popoverTemplate]=\"column.headerCellPopoverTemplate\"\n [filteringFromHeaderDisabled]=\"_fdpTableService._isFilteringFromHeaderDisabled$ | async\"\n ></fdp-table-cell-header-popover>\n </fdp-table-header-cell-content>\n </th>\n</ng-container>\n\n<th\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n role=\"columnheader\"\n></th>\n\n<th\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n></th>\n" }]
85
87
  }], ctorParameters: function () { return []; }, propDecorators: { rowId: [{
86
88
  type: Input
87
89
  }], fixed: [{
@@ -98,8 +100,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
98
100
  type: Input
99
101
  }], freezeEndColumnsTo: [{
100
102
  type: Input
103
+ }], disableSelectionCheckbox: [{
104
+ type: Input
101
105
  }], _focusableCellItems: [{
102
106
  type: ViewChildren,
103
107
  args: [FDK_FOCUSABLE_ITEM_DIRECTIVE]
104
108
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXItcm93L3RhYmxlLWhlYWRlci1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLXJvdy90YWJsZS1oZWFkZXItcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUU1QixVQUFVLEVBQ2IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0gsYUFBYSxFQUdiLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsWUFBWSxFQUNmLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFnQjNDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUE2QzFELGNBQWM7SUFDZCxJQUNZLG1CQUFtQixDQUFDLEtBQXdDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQTRCRCxjQUFjO0lBQ2Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQTVCWixjQUFjO1FBQ2QsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUViLGNBQWM7UUFDTCxtQkFBYyxHQUFHLGFBQWEsQ0FBQztRQUV4QyxjQUFjO1FBQ0wsOEJBQXlCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFdEUsY0FBYztRQUNMLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVqRCxjQUFjO1FBQ0wsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFbEUsY0FBYztRQUNMLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwRCxjQUFjO1FBQ0csZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQzlDLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILGNBQWM7UUFDRyxTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFLOUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO0lBQ2QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN2RixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7SUFDZCxjQUFjLENBQUMsS0FBYSxFQUFFLE1BQW1CO1FBQzdDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztJQUNkLHNCQUFzQixDQUFDLE1BQW1CO1FBQ3RDLE9BQU8sQ0FDSCxNQUFNLENBQUMsUUFBUTtZQUNmLE1BQU0sQ0FBQyxTQUFTO1lBQ2hCLE1BQU0sQ0FBQyxTQUFTO1lBQ2hCLE1BQU0sQ0FBQyxZQUFZO1lBQ25CLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FDdEYsQ0FBQztJQUNOLENBQUM7O29IQTNHUSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix5VUFSckI7UUFDUDtZQUNJLE9BQU8sRUFBRSw0QkFBNEI7WUFDckMsV0FBVyxFQUFFLHVCQUF1QjtTQUN2QztRQUNELGdCQUFnQjtLQUNuQixrRUFnRGEsNEJBQTRCLHVFQzFGOUMsNDVKQXlIQTsyRkQ3RWEsdUJBQXVCO2tCQWRuQyxTQUFTOytCQUVJLHdCQUF3QixpQkFFbkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLHlCQUF5Qjt5QkFDdkM7d0JBQ0QsZ0JBQWdCO3FCQUNuQjswRUFLRCxLQUFLO3NCQURKLEtBQUs7Z0JBU04sS0FBSztzQkFESixLQUFLO2dCQU9OLHNCQUFzQjtzQkFEckIsS0FBSztnQkFPTixZQUFZO3NCQURYLEtBQUs7Z0JBT04sYUFBYTtzQkFEWixLQUFLO2dCQU9OLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtNLG1CQUFtQjtzQkFEOUIsWUFBWTt1QkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSxcbiAgICBGREtfRk9DVVNBQkxFX0xJU1RfRElSRUNUSVZFLFxuICAgIEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsXG4gICAgUnRsU2VydmljZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBUYWJsZVJvd0RpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90YWJsZSc7XG5pbXBvcnQge1xuICAgIFNlbGVjdGlvbk1vZGUsXG4gICAgU2VsZWN0aW9uTW9kZVZhbHVlLFxuICAgIFRhYmxlQ29sdW1uLFxuICAgIFRhYmxlQ29sdW1uUmVzaXplU2VydmljZSxcbiAgICBUYWJsZVJvd1NlcnZpY2UsXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRwLXRhYmxlLWhlYWRlci1yb3ddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUYWJsZUhlYWRlclJvd0NvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRlclJvd0NvbXBvbmVudCBleHRlbmRzIFRhYmxlUm93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogVGFibGUgSUQuICovXG4gICAgQElucHV0KClcbiAgICByb3dJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBmaXggdGhlIHRhYmxlIGhlYWRlciBhbmQgZm9vdGVyLiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICogTm90ZSB0aGF0IGlmIHRoZSB0YWJsZSBjb250YWlucyBmcmVlemFibGUgY29sdW1ucywgdGhlIGhlYWRlciBhbmRcbiAgICAgKiBmb290ZXIgd2lsbCBiZSBmaXhlZCBhdXRvbWF0aWNhbGx5LCByZWdhcmRsZXNzIG9mIHRoaXMgaW5wdXQgdmFsdWUuXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHNlbGVjdGlvbiBjb2x1bW4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1Nob3duU2VsZWN0aW9uQ29sdW1uOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUm93IGNoZWNrZWQgc3RhdGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjaGVja2VkU3RhdGU6IGJvb2xlYW4gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0aW9uIG1vZGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlVmFsdWU7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3Rpb24gY29sdW1uIHdpZHRoLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0aW9uQ29sdW1uV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBUaGUgY29sdW1uIGBuYW1lYCB0byBmcmVlemUgY29sdW1ucyB1cCB0byBhbmQgaW5jbHVkaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZnJlZXplQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGNvbHVtbiBgbmFtZWAgdG8gZnJlZXplIGNvbHVtbnMgYWZ0ZXIgYW5kIGluY2x1ZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZyZWV6ZUVuZENvbHVtbnNUbzogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUpXG4gICAgcHJpdmF0ZSBzZXQgX2ZvY3VzYWJsZUNlbGxJdGVtcyhpdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmU+KSB7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMoaXRlbXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3J0bCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBTRUxFQ1RJT05fTU9ERSA9IFNlbGVjdGlvbk1vZGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2ZkcFRhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlciA9IGluamVjdChDb250ZW50RGVuc2l0eU9ic2VydmVyKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYmxlUm93U2VydmljZSA9IGluamVjdChUYWJsZVJvd1NlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlID0gaW5qZWN0KFJ0bFNlcnZpY2UsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoaXNSdGwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3J0bCA9IGlzUnRsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UubWFya0ZvckNoZWNrLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NvbHVtblRyYWNrQnkoaW5kZXg6IG51bWJlciwgY29sdW1uOiBUYWJsZUNvbHVtbik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc0NvbHVtbkhhc0hlYWRlck1lbnUoY29sdW1uOiBUYWJsZUNvbHVtbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY29sdW1uLnNvcnRhYmxlIHx8XG4gICAgICAgICAgICBjb2x1bW4uZ3JvdXBhYmxlIHx8XG4gICAgICAgICAgICBjb2x1bW4uZnJlZXphYmxlIHx8XG4gICAgICAgICAgICBjb2x1bW4uZW5kRnJlZXphYmxlIHx8XG4gICAgICAgICAgICAoY29sdW1uLmZpbHRlcmFibGUgJiYgIXRoaXMuX2ZkcFRhYmxlU2VydmljZS5faXNGaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWQkLnZhbHVlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjx0aFxuICAgICpuZ0lmPVwiX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmckIHwgYXN5bmNcIlxuICAgIFtjbGFzcy5mZC10YWJsZV9fY2VsbC0tZml4ZWRdPVwiZml4ZWRcIlxuICAgIGZkLXRhYmxlLWNlbGxcbiAgICBmZC10YWJsZS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgZmRrRGlzYWJsZWRcbiAgICBbc3R5bGUubWluLXdpZHRoXT1cIl9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmNcIlxuICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luY1wiXG4+PC90aD5cblxuPHRoXG4gICAgKm5nSWY9XCJpc1Nob3duU2VsZWN0aW9uQ29sdW1uXCJcbiAgICBmZC10YWJsZS1jZWxsXG4gICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLWZpeGVkXT1cImZpeGVkXCJcbiAgICBjbGFzcz1cImZkLXRhYmxlX19jZWxsLS1jaGVja2JveFwiXG4gICAgW3N0eWxlXT1cIlxuICAgICAgICBfY29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgfCBzZWxlY3Rpb25DZWxsU3R5bGVzIDogX3J0bCA6IChfZmRwVGFibGVTZXJ2aWNlLl9zZW1hbnRpY0hpZ2hsaWdodGluZ0NvbHVtbldpZHRoJCB8IGFzeW5jKVxuICAgIFwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cyghY2hlY2tlZFN0YXRlKVwiXG4gICAgKGtleWRvd24uc3BhY2UpPVwiX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cyghY2hlY2tlZFN0YXRlKVwiXG4+XG4gICAgPGZkLWNoZWNrYm94XG4gICAgICAgIHRhYkluZGV4VmFsdWU9XCItMVwiXG4gICAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuTVVMVElQTEVcIlxuICAgICAgICBsYWJlbENsYXNzPVwiZmQtdGFibGVfX2NoZWNrYm94LWxhYmVsXCJcbiAgICAgICAgW3RyaXN0YXRlXT1cInRydWVcIlxuICAgICAgICBbdHJpc3RhdGVTZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW25nTW9kZWxdPVwiY2hlY2tlZFN0YXRlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cygkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmlwdGlvbl09XCJcbiAgICAgICAgICAgICFjaGVja2VkU3RhdGVcbiAgICAgICAgICAgICAgICA/ICgncGxhdGZvcm1UYWJsZS5zZWxlY3RBbGxDaGVja2JveExhYmVsJyB8IGZkVHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgIDogKCdwbGF0Zm9ybVRhYmxlLmRlc2VsZWN0QWxsQ2hlY2tib3hMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcbiAgICAgICAgXCJcbiAgICA+PC9mZC1jaGVja2JveD5cbjwvdGg+XG5cbjxuZy1jb250YWluZXJcbiAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGNvbHVtbiBvZiBfZmRwVGFibGVTZXJ2aWNlLnZpc2libGVDb2x1bW5zJCB8IGFzeW5jO1xuICAgICAgICBsZXQgY29sSWR4ID0gaW5kZXg7XG4gICAgICAgIHRyYWNrQnk6IF9jb2x1bW5UcmFja0J5O1xuICAgICAgICBsYXN0IGFzIGlzTGFzdFxuICAgIFwiXG4+XG4gICAgPHRoXG4gICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICBbZmRwVGFibGVDZWxsUmVzaXphYmxlXT1cIlxuICAgICAgICAgICAgY29sSWR4XG4gICAgICAgICAgICAgICAgfCBjb2x1bW5SZXNpemFibGVTaWRlXG4gICAgICAgICAgICAgICAgICAgIDogX2ZkcFRhYmxlU2VydmljZS52aXNpYmxlQ29sdW1uc0xlbmd0aFxuICAgICAgICAgICAgICAgICAgICA6IChfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luYylcbiAgICAgICAgXCJcbiAgICAgICAgW2NvbHVtbk5hbWVdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICBbaWRdPVwicm93SWQgKyAnX18nICsgY29sdW1uLm5hbWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwicm93SWQgKyAnLWhlYWRlci1jZWxsLScgKyBjb2x1bW4ubmFtZVwiXG4gICAgICAgIFthdHRyLmFyaWEtY29saW5kZXhdPVwiY29sSWR4XCJcbiAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgJ2ZkcC10YWJsZV9fY29sLS0nICsgY29sdW1uLm5hbWUsXG4gICAgICAgICAgICBjb2x1bW4uX2ZyZWV6ZWQgPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkJyA6ICcnLFxuICAgICAgICAgICAgY29sdW1uLm5hbWUgPT09IGZyZWV6ZUNvbHVtbnNUbyA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtbGFzdCcgOiAnJyxcbiAgICAgICAgICAgIGNvbHVtbi5fZW5kRnJlZXplZCA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtZW5kJyA6ICcnLFxuICAgICAgICAgICAgY29sdW1uLm5hbWUgPT09IGZyZWV6ZUVuZENvbHVtbnNUbyA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtZW5kLWxhc3QnIDogJycsXG4gICAgICAgICAgICBpc0xhc3QgJiYgKF9mZHBUYWJsZVNlcnZpY2UuX2lzU2hvd25OYXZpZ2F0aW9uQ29sdW1uJCB8IGFzeW5jKSAhPT0gdHJ1ZSA/ICdpcy1sYXN0LWNoaWxkJyA6ICcnLFxuICAgICAgICAgICAgX2lzQ29sdW1uSGFzSGVhZGVyTWVudShjb2x1bW4pID8gJ2ZkLXRhYmxlX19pdGVtLS1jbGlja2FibGUnIDogJydcbiAgICAgICAgXVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgY29sdW1uXG4gICAgICAgICAgICAgICAgfCB0YWJsZUNlbGxTdHlsZXNcbiAgICAgICAgICAgICAgICAgICAgOiBfcnRsXG4gICAgICAgICAgICAgICAgICAgIDogKF9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmMpXG4gICAgICAgICAgICAgICAgICAgIDogc2VsZWN0aW9uQ29sdW1uV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4uX2ZyZWV6ZWRcbiAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4uX2VuZEZyZWV6ZWRcbiAgICAgICAgICAgICAgICAgICAgOiBfdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLmdldFByZXZDb2x1bW5zV2lkdGgoY29sdW1uLm5hbWUpXG4gICAgICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXRDb2x1bW5XaWR0aFN0eWxlKGNvbHVtbi5uYW1lKVxuICAgICAgICAgICAgICAgICAgICA6IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UuZ2V0TmV4dENvbHVtbnNXaWR0aChjb2x1bW4ubmFtZSlcbiAgICAgICAgXCJcbiAgICAgICAgW2ZkUG9wb3ZlclRyaWdnZXJdPVwidGFibGVQb3BvdmVyLnBvcG92ZXJcIlxuICAgICAgICBbY2VsbEZvY3VzZWRFdmVudEFubm91bmNlcl09XCJudWxsXCJcbiAgICAgICAgKGNlbGxGb2N1c2VkKT1cIl90YWJsZVJvd1NlcnZpY2UuY2VsbEZvY3VzZWQoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmFycm93TGVmdCk9XCJfdGFibGVSb3dTZXJ2aWNlLnNjcm9sbFRvT3ZlcmxhcHBlZENlbGwoKVwiXG4gICAgICAgIChrZXlkb3duLmFycm93UmlnaHQpPVwiX3RhYmxlUm93U2VydmljZS5zY3JvbGxUb092ZXJsYXBwZWRDZWxsKClcIlxuICAgID5cbiAgICAgICAgPGZkcC10YWJsZS1oZWFkZXItY2VsbC1jb250ZW50XG4gICAgICAgICAgICBbaWRdPVwicm93SWRcIlxuICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgW2hhc0ZpbHRlcl09XCIoX2ZkcFRhYmxlU2VydmljZS5maWx0ZXJSdWxlcyQgfCBhc3luYyk/Lmhhcyhjb2x1bW4ua2V5KSA9PT0gdHJ1ZVwiXG4gICAgICAgICAgICBbaGFzU29ydGluZ109XCIoX2ZkcFRhYmxlU2VydmljZS5zb3J0UnVsZXMkIHwgYXN5bmMpPy5oYXMoY29sdW1uLmtleSkgPT09IHRydWVcIlxuICAgICAgICAgICAgW3NvcnRpbmddPVwiKF9mZHBUYWJsZVNlcnZpY2Uuc29ydFJ1bGVzJCB8IGFzeW5jKT8uZ2V0KGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImNvbHVtbj8uaGVhZGVyT3ZlcmZsb3dzID8gY29sdW1uLmxhYmVsIDogbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDwhLS0gSGVhZGVyIG1lbnUgLS0+XG4gICAgICAgICAgICA8ZmRwLXRhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXJcbiAgICAgICAgICAgICAgICAjdGFibGVQb3BvdmVyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFfaXNDb2x1bW5IYXNIZWFkZXJNZW51KGNvbHVtbilcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbcG9wb3ZlclRlbXBsYXRlXT1cImNvbHVtbi5oZWFkZXJDZWxsUG9wb3ZlclRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbZmlsdGVyaW5nRnJvbUhlYWRlckRpc2FibGVkXT1cIl9mZHBUYWJsZVNlcnZpY2UuX2lzRmlsdGVyaW5nRnJvbUhlYWRlckRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L2ZkcC10YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyPlxuICAgICAgICA8L2ZkcC10YWJsZS1oZWFkZXItY2VsbC1jb250ZW50PlxuICAgIDwvdGg+XG48L25nLWNvbnRhaW5lcj5cblxuPHRoXG4gICAgKm5nSWY9XCJfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luY1wiXG4gICAgZmQtdGFibGUtY2VsbFxuICAgIGNsYXNzPVwiZmRwLXRhYmxlX19jZWxsLS1uYXZpZ2F0aW9uIGlzLWxhc3QtY2hpbGRcIlxuICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuPjwvdGg+XG5cbjx0aFxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgY2xhc3M9XCJmZC10YWJsZV9fY2VsbCBmZC10YWJsZV9fY2VsbC0tbW9ja1wiXG4gICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1tb2NrLWJvcmRlcmxlc3NdPVwiKF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UuY2VsbE1vY2tWaXNpYmxlJCB8IGFzeW5jKSAhPT0gdHJ1ZVwiXG4gICAgZmRrRGlzYWJsZWRcbj48L3RoPlxuIl19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXItcm93L3RhYmxlLWhlYWRlci1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLXJvdy90YWJsZS1oZWFkZXItcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUU1QixVQUFVLEVBQ2IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0gsYUFBYSxFQUdiLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsWUFBWSxFQUNmLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFnQjNDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFpRDFELGNBQWM7SUFDZCxJQUNZLG1CQUFtQixDQUFDLEtBQXdDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQTRCRCxjQUFjO0lBQ2Q7UUFDSSxLQUFLLEVB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cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSxcbiAgICBGREtfRk9DVVNBQkxFX0xJU1RfRElSRUNUSVZFLFxuICAgIEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsXG4gICAgUnRsU2VydmljZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBUYWJsZVJvd0RpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90YWJsZSc7XG5pbXBvcnQge1xuICAgIFNlbGVjdGlvbk1vZGUsXG4gICAgU2VsZWN0aW9uTW9kZVZhbHVlLFxuICAgIFRhYmxlQ29sdW1uLFxuICAgIFRhYmxlQ29sdW1uUmVzaXplU2VydmljZSxcbiAgICBUYWJsZVJvd1NlcnZpY2UsXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRwLXRhYmxlLWhlYWRlci1yb3ddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZGVyLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUYWJsZUhlYWRlclJvd0NvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRlclJvd0NvbXBvbmVudCBleHRlbmRzIFRhYmxlUm93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogVGFibGUgSUQuICovXG4gICAgQElucHV0KClcbiAgICByb3dJZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBmaXggdGhlIHRhYmxlIGhlYWRlciBhbmQgZm9vdGVyLiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICogTm90ZSB0aGF0IGlmIHRoZSB0YWJsZSBjb250YWlucyBmcmVlemFibGUgY29sdW1ucywgdGhlIGhlYWRlciBhbmRcbiAgICAgKiBmb290ZXIgd2lsbCBiZSBmaXhlZCBhdXRvbWF0aWNhbGx5LCByZWdhcmRsZXNzIG9mIHRoaXMgaW5wdXQgdmFsdWUuXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHNlbGVjdGlvbiBjb2x1bW4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1Nob3duU2VsZWN0aW9uQ29sdW1uOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUm93IGNoZWNrZWQgc3RhdGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjaGVja2VkU3RhdGU6IGJvb2xlYW4gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0aW9uIG1vZGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlVmFsdWU7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3Rpb24gY29sdW1uIHdpZHRoLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0aW9uQ29sdW1uV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBUaGUgY29sdW1uIGBuYW1lYCB0byBmcmVlemUgY29sdW1ucyB1cCB0byBhbmQgaW5jbHVkaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZnJlZXplQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGNvbHVtbiBgbmFtZWAgdG8gZnJlZXplIGNvbHVtbnMgYWZ0ZXIgYW5kIGluY2x1ZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZyZWV6ZUVuZENvbHVtbnNUbzogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVTZWxlY3Rpb25DaGVja2JveCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUpXG4gICAgcHJpdmF0ZSBzZXQgX2ZvY3VzYWJsZUNlbGxJdGVtcyhpdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmU+KSB7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMoaXRlbXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3J0bCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBTRUxFQ1RJT05fTU9ERSA9IFNlbGVjdGlvbk1vZGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2ZkcFRhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlciA9IGluamVjdChDb250ZW50RGVuc2l0eU9ic2VydmVyKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYmxlUm93U2VydmljZSA9IGluamVjdChUYWJsZVJvd1NlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlID0gaW5qZWN0KFJ0bFNlcnZpY2UsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoaXNSdGwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3J0bCA9IGlzUnRsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UubWFya0ZvckNoZWNrLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NvbHVtblRyYWNrQnkoaW5kZXg6IG51bWJlciwgY29sdW1uOiBUYWJsZUNvbHVtbik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc0NvbHVtbkhhc0hlYWRlck1lbnUoY29sdW1uOiBUYWJsZUNvbHVtbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY29sdW1uLnNvcnRhYmxlIHx8XG4gICAgICAgICAgICBjb2x1bW4uZ3JvdXBhYmxlIHx8XG4gICAgICAgICAgICBjb2x1bW4uZnJlZXphYmxlIHx8XG4gICAgICAgICAgICBjb2x1bW4uZW5kRnJlZXphYmxlIHx8XG4gICAgICAgICAgICAoY29sdW1uLmZpbHRlcmFibGUgJiYgIXRoaXMuX2ZkcFRhYmxlU2VydmljZS5faXNGaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWQkLnZhbHVlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjx0aFxuICAgICpuZ0lmPVwiX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmckIHwgYXN5bmNcIlxuICAgIFtjbGFzcy5mZC10YWJsZV9fY2VsbC0tZml4ZWRdPVwiZml4ZWRcIlxuICAgIGZkLXRhYmxlLWNlbGxcbiAgICBmZC10YWJsZS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgZmRrRGlzYWJsZWRcbiAgICBbc3R5bGUubWluLXdpZHRoXT1cIl9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmNcIlxuICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwiX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luY1wiXG4+PC90aD5cblxuPHRoXG4gICAgKm5nSWY9XCJpc1Nob3duU2VsZWN0aW9uQ29sdW1uXCJcbiAgICBmZC10YWJsZS1jZWxsXG4gICAgW2ZvY3VzYWJsZV09XCJ0cnVlXCJcbiAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLWZpeGVkXT1cImZpeGVkXCJcbiAgICBjbGFzcz1cImZkLXRhYmxlX19jZWxsLS1jaGVja2JveFwiXG4gICAgW3N0eWxlXT1cIlxuICAgICAgICBfY29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgfCBzZWxlY3Rpb25DZWxsU3R5bGVzIDogX3J0bCA6IChfZmRwVGFibGVTZXJ2aWNlLl9zZW1hbnRpY0hpZ2hsaWdodGluZ0NvbHVtbldpZHRoJCB8IGFzeW5jKVxuICAgIFwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cyghY2hlY2tlZFN0YXRlKVwiXG4gICAgKGtleWRvd24uc3BhY2UpPVwiX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cyghY2hlY2tlZFN0YXRlKVwiXG4+XG4gICAgPGZkLWNoZWNrYm94XG4gICAgICAgIHRhYkluZGV4VmFsdWU9XCItMVwiXG4gICAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PT0gU0VMRUNUSU9OX01PREUuTVVMVElQTEVcIlxuICAgICAgICBsYWJlbENsYXNzPVwiZmQtdGFibGVfX2NoZWNrYm94LWxhYmVsXCJcbiAgICAgICAgW2Zka0Rpc2FibGVkXT1cIl9mZHBUYWJsZVNlcnZpY2UudmlzaWJsZUNvbHVtbnNMZW5ndGggPT09IDAgfHwgZGlzYWJsZVNlbGVjdGlvbkNoZWNrYm94XCJcbiAgICAgICAgW3RyaXN0YXRlXT1cInRydWVcIlxuICAgICAgICBbdHJpc3RhdGVTZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW25nTW9kZWxdPVwiY2hlY2tlZFN0YXRlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX3RhYmxlUm93U2VydmljZS50b2dnbGVBbGxTZWxlY3RhYmxlUm93cygkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmlwdGlvbl09XCJcbiAgICAgICAgICAgICFjaGVja2VkU3RhdGVcbiAgICAgICAgICAgICAgICA/ICgncGxhdGZvcm1UYWJsZS5zZWxlY3RBbGxDaGVja2JveExhYmVsJyB8IGZkVHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgIDogKCdwbGF0Zm9ybVRhYmxlLmRlc2VsZWN0QWxsQ2hlY2tib3hMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcbiAgICAgICAgXCJcbiAgICA+PC9mZC1jaGVja2JveD5cbjwvdGg+XG5cbjxuZy1jb250YWluZXJcbiAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGNvbHVtbiBvZiBfZmRwVGFibGVTZXJ2aWNlLnZpc2libGVDb2x1bW5zJCB8IGFzeW5jO1xuICAgICAgICBsZXQgY29sSWR4ID0gaW5kZXg7XG4gICAgICAgIHRyYWNrQnk6IF9jb2x1bW5UcmFja0J5O1xuICAgICAgICBsYXN0IGFzIGlzTGFzdFxuICAgIFwiXG4+XG4gICAgPHRoXG4gICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICBbZmRwVGFibGVDZWxsUmVzaXphYmxlXT1cIlxuICAgICAgICAgICAgY29sSWR4XG4gICAgICAgICAgICAgICAgfCBjb2x1bW5SZXNpemFibGVTaWRlXG4gICAgICAgICAgICAgICAgICAgIDogX2ZkcFRhYmxlU2VydmljZS52aXNpYmxlQ29sdW1uc0xlbmd0aFxuICAgICAgICAgICAgICAgICAgICA6IChfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luYylcbiAgICAgICAgXCJcbiAgICAgICAgW2NvbHVtbk5hbWVdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICBbaWRdPVwicm93SWQgKyAnX18nICsgY29sdW1uLm5hbWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbGluZGV4XT1cImNvbElkeFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAgICdmZHAtdGFibGVfX2NvbC0tJyArIGNvbHVtbi5uYW1lLFxuICAgICAgICAgICAgY29sdW1uLl9mcmVlemVkID8gJ2ZkLXRhYmxlX19jZWxsLS1maXhlZCcgOiAnJyxcbiAgICAgICAgICAgIGNvbHVtbi5uYW1lID09PSBmcmVlemVDb2x1bW5zVG8gPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWxhc3QnIDogJycsXG4gICAgICAgICAgICBjb2x1bW4uX2VuZEZyZWV6ZWQgPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWVuZCcgOiAnJyxcbiAgICAgICAgICAgIGNvbHVtbi5uYW1lID09PSBmcmVlemVFbmRDb2x1bW5zVG8gPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWVuZC1sYXN0JyA6ICcnLFxuICAgICAgICAgICAgaXNMYXN0ICYmIChfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luYykgIT09IHRydWUgPyAnaXMtbGFzdC1jaGlsZCcgOiAnJyxcbiAgICAgICAgICAgIF9pc0NvbHVtbkhhc0hlYWRlck1lbnUoY29sdW1uKSA/ICdmZC10YWJsZV9faXRlbS0tY2xpY2thYmxlJyA6ICcnXG4gICAgICAgIF1cIlxuICAgICAgICBbbmdTdHlsZV09XCJcbiAgICAgICAgICAgIGNvbHVtblxuICAgICAgICAgICAgICAgIHwgdGFibGVDZWxsU3R5bGVzXG4gICAgICAgICAgICAgICAgICAgIDogX3J0bFxuICAgICAgICAgICAgICAgICAgICA6IChfZmRwVGFibGVTZXJ2aWNlLl9zZW1hbnRpY0hpZ2hsaWdodGluZ0NvbHVtbldpZHRoJCB8IGFzeW5jKVxuICAgICAgICAgICAgICAgICAgICA6IHNlbGVjdGlvbkNvbHVtbldpZHRoXG4gICAgICAgICAgICAgICAgICAgIDogY29sdW1uLl9mcmVlemVkXG4gICAgICAgICAgICAgICAgICAgIDogY29sdW1uLl9lbmRGcmVlemVkXG4gICAgICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXRQcmV2Q29sdW1uc1dpZHRoKGNvbHVtbi5uYW1lKVxuICAgICAgICAgICAgICAgICAgICA6IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UuZ2V0Q29sdW1uV2lkdGhTdHlsZShjb2x1bW4ubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgOiBfdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLmdldE5leHRDb2x1bW5zV2lkdGgoY29sdW1uLm5hbWUpXG4gICAgICAgIFwiXG4gICAgICAgIFtmZFBvcG92ZXJUcmlnZ2VyXT1cInRhYmxlUG9wb3Zlci5wb3BvdmVyXCJcbiAgICAgICAgW2NlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXJdPVwibnVsbFwiXG4gICAgICAgIChjZWxsRm9jdXNlZCk9XCJfdGFibGVSb3dTZXJ2aWNlLmNlbGxGb2N1c2VkKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd0xlZnQpPVwiX3RhYmxlUm93U2VydmljZS5zY3JvbGxUb092ZXJsYXBwZWRDZWxsKClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd1JpZ2h0KT1cIl90YWJsZVJvd1NlcnZpY2Uuc2Nyb2xsVG9PdmVybGFwcGVkQ2VsbCgpXCJcbiAgICA+XG4gICAgICAgIDxmZHAtdGFibGUtaGVhZGVyLWNlbGwtY29udGVudFxuICAgICAgICAgICAgW2lkXT1cInJvd0lkXCJcbiAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgIFtoYXNGaWx0ZXJdPVwiKF9mZHBUYWJsZVNlcnZpY2UuZmlsdGVyUnVsZXMkIHwgYXN5bmMpPy5oYXMoY29sdW1uLmtleSkgPT09IHRydWVcIlxuICAgICAgICAgICAgW2hhc1NvcnRpbmddPVwiKF9mZHBUYWJsZVNlcnZpY2Uuc29ydFJ1bGVzJCB8IGFzeW5jKT8uaGFzKGNvbHVtbi5rZXkpID09PSB0cnVlXCJcbiAgICAgICAgICAgIFtzb3J0aW5nXT1cIihfZmRwVGFibGVTZXJ2aWNlLnNvcnRSdWxlcyQgfCBhc3luYyk/LmdldChjb2x1bW4ua2V5KVwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJjb2x1bW4/LmhlYWRlck92ZXJmbG93cyA/IGNvbHVtbi5sYWJlbCA6IG51bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIEhlYWRlciBtZW51IC0tPlxuICAgICAgICAgICAgPGZkcC10YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgI3RhYmxlUG9wb3ZlclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhX2lzQ29sdW1uSGFzSGVhZGVyTWVudShjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgW3BvcG92ZXJUZW1wbGF0ZV09XCJjb2x1bW4uaGVhZGVyQ2VsbFBvcG92ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2ZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZF09XCJfZmRwVGFibGVTZXJ2aWNlLl9pc0ZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICAgICAgICA+PC9mZHAtdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlcj5cbiAgICAgICAgPC9mZHAtdGFibGUtaGVhZGVyLWNlbGwtY29udGVudD5cbiAgICA8L3RoPlxuPC9uZy1jb250YWluZXI+XG5cbjx0aFxuICAgICpuZ0lmPVwiX2ZkcFRhYmxlU2VydmljZS5faXNTaG93bk5hdmlnYXRpb25Db2x1bW4kIHwgYXN5bmNcIlxuICAgIGZkLXRhYmxlLWNlbGxcbiAgICBjbGFzcz1cImZkcC10YWJsZV9fY2VsbC0tbmF2aWdhdGlvbiBpcy1sYXN0LWNoaWxkXCJcbiAgICByb2xlPVwiY29sdW1uaGVhZGVyXCJcbj48L3RoPlxuXG48dGhcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGNsYXNzPVwiZmQtdGFibGVfX2NlbGwgZmQtdGFibGVfX2NlbGwtLW1vY2tcIlxuICAgIFtjbGFzcy5mZC10YWJsZV9fY2VsbC0tbW9jay1ib3JkZXJsZXNzXT1cIihfdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLmNlbGxNb2NrVmlzaWJsZSQgfCBhc3luYykgIT09IHRydWVcIlxuICAgIGZka0Rpc2FibGVkXG4+PC90aD5cbiJdfQ==
@@ -122,10 +122,10 @@ export class P13SortingDialogComponent {
122
122
  }
123
123
  }
124
124
  P13SortingDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: P13SortingDialogComponent, deps: [{ token: i1.DialogRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
125
- P13SortingDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: P13SortingDialogComponent, selector: "ng-component", providers: [{ provide: RESETTABLE_TOKEN, useExisting: P13SortingDialogComponent }], ngImport: i0, template: "<fd-dialog class=\"fdp-table-p13-sorting-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">\n {{ 'platformTable.P13SortDialogHeader' | fdTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"sort-row\" *ngFor=\"let rule of rules; let i = index; trackBy: _trackByColumnKey\">\n <fd-select\n class=\"sort-row__select\"\n [value]=\"rule.columnKey\"\n (valueChange)=\"_onRuleColumnKeyChange(rule, $event)\"\n [placeholder]=\"'platformTable.P13SortDialogNoneSelectedColumn' | fdTranslate\"\n >\n <li\n fd-option\n *ngFor=\"let column of columns | getAvailableSortColumns : rules : rule.columnKey\"\n [value]=\"column.key\"\n >\n {{ column.label }}\n </li>\n </fd-select>\n\n <fd-select\n class=\"sort-row__select\"\n [value]=\"rule.direction\"\n (valueChange)=\"_onRuleDirectionChange(rule, $event)\"\n [placeholder]=\"'platformTable.P13SortDialogNoneSelectedSorting' | fdTranslate\"\n >\n <li fd-option [value]=\"SORT_DIRECTION.ASC\">\n {{ 'platformTable.P13SortDialogSortOrderSelectOptionAsc' | fdTranslate }}\n </li>\n <li fd-option [value]=\"SORT_DIRECTION.DESC\">\n {{ 'platformTable.P13SortDialogSortOrderSelectOptionDesc' | fdTranslate }}\n </li>\n </fd-select>\n\n <div class=\"sort-row__actions\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"'platformTable.P13SortDialogRemoveSortBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13SortDialogRemoveSortBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule)\"\n ></button>\n\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"'platformTable.P13SortDialogAddNewSortBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13SortDialogAddNewSortBtnTitle' | fdTranslate\"\n (click)=\"_addNew(i)\"\n ></button>\n </div>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"emphasized\"\n fd-dialog-decisive-button\n [label]=\"'platformTable.P13SortDialogConfirmationBtnLabel' | fdTranslate\"\n (click)=\"confirm()\"\n ></button>\n </fd-dialog-footer-button>\n\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"transparent\"\n fd-dialog-decisive-button\n fdkInitialFocus\n [label]=\"'platformTable.P13SortDialogCancelBtnLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fdp-table-p13-sorting-dialog .sort-row{display:flex;margin-bottom:.5rem}.fdp-table-p13-sorting-dialog .sort-row .fd-popover-custom{display:block}.fdp-table-p13-sorting-dialog .sort-row__select{flex:1 1 0;margin-right:1rem}.fdp-table-p13-sorting-dialog .sort-row__actions{margin-left:1rem}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(function () { return i3.ButtonComponent; }), selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogComponent; }), selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogBodyComponent; }), selector: "fd-dialog-body" }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogFooterComponent; }), selector: "fd-dialog-footer" }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogHeaderComponent; }), selector: "fd-dialog-header" }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogFooterButtonComponent; }), selector: "fd-dialog-footer-button" }, { kind: "directive", type: i0.forwardRef(function () { return i1.DialogDecisiveButtonDirective; }), selector: "[fd-dialog-decisive-button]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.BarLeftDirective; }), selector: "[fd-bar-left]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.BarRightDirective; }), selector: "[fd-bar-right]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.BarElementDirective; }), selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i0.forwardRef(function () { return i5.TitleComponent; }), selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.TemplateDirective; }), selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.InitialFocusDirective; }), selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "component", type: i0.forwardRef(function () { return i7.SelectComponent; }), selector: "fd-select", inputs: ["controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "extendedBodyTemplate", "maxHeight", "glyph", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i0.forwardRef(function () { return i7.OptionComponent; }), selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "component", type: i0.forwardRef(function () { return i8.ResetButtonComponent; }), selector: "fdp-table-reset-button" }, { kind: "pipe", type: i0.forwardRef(function () { return i9.FdTranslatePipe; }), name: "fdTranslate" }, { kind: "pipe", type: i0.forwardRef(function () { return GetAvailableSortColumnsPipe; }), name: "getAvailableSortColumns" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
125
+ P13SortingDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: P13SortingDialogComponent, selector: "ng-component", providers: [{ provide: RESETTABLE_TOKEN, useExisting: P13SortingDialogComponent }], ngImport: i0, template: "<fd-dialog class=\"fdp-table-p13-sorting-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">\n {{ 'platformTable.P13SortDialogHeader' | fdTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"sort-row\" *ngFor=\"let rule of rules; let i = index; trackBy: _trackByColumnKey\">\n <fd-select\n class=\"sort-row__select\"\n [value]=\"rule.columnKey\"\n (valueChange)=\"_onRuleColumnKeyChange(rule, $event)\"\n [placeholder]=\"'platformTable.P13SortDialogNoneSelectedColumn' | fdTranslate\"\n >\n <li\n fd-option\n *ngFor=\"let column of columns | getAvailableSortColumns : rules : rule.columnKey\"\n [value]=\"column.key\"\n >\n {{ column.label }}\n </li>\n </fd-select>\n\n <fd-select\n class=\"sort-row__select\"\n [value]=\"rule.direction\"\n (valueChange)=\"_onRuleDirectionChange(rule, $event)\"\n [placeholder]=\"'platformTable.P13SortDialogNoneSelectedSorting' | fdTranslate\"\n >\n <li fd-option [value]=\"SORT_DIRECTION.ASC\">\n {{ 'platformTable.P13SortDialogSortOrderSelectOptionAsc' | fdTranslate }}\n </li>\n <li fd-option [value]=\"SORT_DIRECTION.DESC\">\n {{ 'platformTable.P13SortDialogSortOrderSelectOptionDesc' | fdTranslate }}\n </li>\n </fd-select>\n\n <div class=\"sort-row__actions\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"'platformTable.P13SortDialogRemoveSortBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13SortDialogRemoveSortBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule)\"\n ></button>\n\n <button\n fd-button\n [fdkDisabled]=\"rules.length === columns.length\"\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"'platformTable.P13SortDialogAddNewSortBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13SortDialogAddNewSortBtnTitle' | fdTranslate\"\n (click)=\"_addNew(i)\"\n ></button>\n </div>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"emphasized\"\n fd-dialog-decisive-button\n [label]=\"'platformTable.P13SortDialogConfirmationBtnLabel' | fdTranslate\"\n (click)=\"confirm()\"\n ></button>\n </fd-dialog-footer-button>\n\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"transparent\"\n fd-dialog-decisive-button\n fdkInitialFocus\n [label]=\"'platformTable.P13SortDialogCancelBtnLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fdp-table-p13-sorting-dialog .sort-row{display:flex;margin-bottom:.5rem}.fdp-table-p13-sorting-dialog .sort-row .fd-popover-custom{display:block}.fdp-table-p13-sorting-dialog .sort-row__select{flex:1 1 0;margin-right:1rem}.fdp-table-p13-sorting-dialog .sort-row__actions{margin-left:1rem}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(function () { return i3.ButtonComponent; }), selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogComponent; }), selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogBodyComponent; }), selector: "fd-dialog-body" }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogFooterComponent; }), selector: "fd-dialog-footer" }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogHeaderComponent; }), selector: "fd-dialog-header" }, { kind: "component", type: i0.forwardRef(function () { return i1.DialogFooterButtonComponent; }), selector: "fd-dialog-footer-button" }, { kind: "directive", type: i0.forwardRef(function () { return i1.DialogDecisiveButtonDirective; }), selector: "[fd-dialog-decisive-button]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.BarLeftDirective; }), selector: "[fd-bar-left]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.BarRightDirective; }), selector: "[fd-bar-right]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.BarElementDirective; }), selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i0.forwardRef(function () { return i5.TitleComponent; }), selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.TemplateDirective; }), selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.InitialFocusDirective; }), selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "component", type: i0.forwardRef(function () { return i7.SelectComponent; }), selector: "fd-select", inputs: ["controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "extendedBodyTemplate", "maxHeight", "glyph", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i0.forwardRef(function () { return i7.OptionComponent; }), selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "directive", type: i0.forwardRef(function () { return i6.DisabledBehaviorDirective; }), selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "component", type: i0.forwardRef(function () { return i8.ResetButtonComponent; }), selector: "fdp-table-reset-button" }, { kind: "pipe", type: i0.forwardRef(function () { return i9.FdTranslatePipe; }), name: "fdTranslate" }, { kind: "pipe", type: i0.forwardRef(function () { return GetAvailableSortColumnsPipe; }), name: "getAvailableSortColumns" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: P13SortingDialogComponent, decorators: [{
127
127
  type: Component,
128
- args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: RESETTABLE_TOKEN, useExisting: P13SortingDialogComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog class=\"fdp-table-p13-sorting-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">\n {{ 'platformTable.P13SortDialogHeader' | fdTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"sort-row\" *ngFor=\"let rule of rules; let i = index; trackBy: _trackByColumnKey\">\n <fd-select\n class=\"sort-row__select\"\n [value]=\"rule.columnKey\"\n (valueChange)=\"_onRuleColumnKeyChange(rule, $event)\"\n [placeholder]=\"'platformTable.P13SortDialogNoneSelectedColumn' | fdTranslate\"\n >\n <li\n fd-option\n *ngFor=\"let column of columns | getAvailableSortColumns : rules : rule.columnKey\"\n [value]=\"column.key\"\n >\n {{ column.label }}\n </li>\n </fd-select>\n\n <fd-select\n class=\"sort-row__select\"\n [value]=\"rule.direction\"\n (valueChange)=\"_onRuleDirectionChange(rule, $event)\"\n [placeholder]=\"'platformTable.P13SortDialogNoneSelectedSorting' | fdTranslate\"\n >\n <li fd-option [value]=\"SORT_DIRECTION.ASC\">\n {{ 'platformTable.P13SortDialogSortOrderSelectOptionAsc' | fdTranslate }}\n </li>\n <li fd-option [value]=\"SORT_DIRECTION.DESC\">\n {{ 'platformTable.P13SortDialogSortOrderSelectOptionDesc' | fdTranslate }}\n </li>\n </fd-select>\n\n <div class=\"sort-row__actions\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"'platformTable.P13SortDialogRemoveSortBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13SortDialogRemoveSortBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule)\"\n ></button>\n\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"'platformTable.P13SortDialogAddNewSortBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13SortDialogAddNewSortBtnTitle' | fdTranslate\"\n (click)=\"_addNew(i)\"\n ></button>\n </div>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"emphasized\"\n fd-dialog-decisive-button\n [label]=\"'platformTable.P13SortDialogConfirmationBtnLabel' | fdTranslate\"\n (click)=\"confirm()\"\n ></button>\n </fd-dialog-footer-button>\n\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"transparent\"\n fd-dialog-decisive-button\n fdkInitialFocus\n [label]=\"'platformTable.P13SortDialogCancelBtnLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fdp-table-p13-sorting-dialog .sort-row{display:flex;margin-bottom:.5rem}.fdp-table-p13-sorting-dialog .sort-row .fd-popover-custom{display:block}.fdp-table-p13-sorting-dialog .sort-row__select{flex:1 1 0;margin-right:1rem}.fdp-table-p13-sorting-dialog .sort-row__actions{margin-left:1rem}\n"] }]
128
+ args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: RESETTABLE_TOKEN, useExisting: P13SortingDialogComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog class=\"fdp-table-p13-sorting-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 fd-title [headerSize]=\"4\">\n {{ 'platformTable.P13SortDialogHeader' | fdTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"sort-row\" *ngFor=\"let rule of rules; let i = index; trackBy: _trackByColumnKey\">\n <fd-select\n class=\"sort-row__select\"\n [value]=\"rule.columnKey\"\n (valueChange)=\"_onRuleColumnKeyChange(rule, $event)\"\n [placeholder]=\"'platformTable.P13SortDialogNoneSelectedColumn' | fdTranslate\"\n >\n <li\n fd-option\n *ngFor=\"let column of columns | getAvailableSortColumns : rules : rule.columnKey\"\n [value]=\"column.key\"\n >\n {{ column.label }}\n </li>\n </fd-select>\n\n <fd-select\n class=\"sort-row__select\"\n [value]=\"rule.direction\"\n (valueChange)=\"_onRuleDirectionChange(rule, $event)\"\n [placeholder]=\"'platformTable.P13SortDialogNoneSelectedSorting' | fdTranslate\"\n >\n <li fd-option [value]=\"SORT_DIRECTION.ASC\">\n {{ 'platformTable.P13SortDialogSortOrderSelectOptionAsc' | fdTranslate }}\n </li>\n <li fd-option [value]=\"SORT_DIRECTION.DESC\">\n {{ 'platformTable.P13SortDialogSortOrderSelectOptionDesc' | fdTranslate }}\n </li>\n </fd-select>\n\n <div class=\"sort-row__actions\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"sys-cancel\"\n [attr.aria-label]=\"'platformTable.P13SortDialogRemoveSortBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13SortDialogRemoveSortBtnTitle' | fdTranslate\"\n (click)=\"_removeRule(rule)\"\n ></button>\n\n <button\n fd-button\n [fdkDisabled]=\"rules.length === columns.length\"\n fdType=\"transparent\"\n glyph=\"add\"\n [attr.aria-label]=\"'platformTable.P13SortDialogAddNewSortBtnTitle' | fdTranslate\"\n [title]=\"'platformTable.P13SortDialogAddNewSortBtnTitle' | fdTranslate\"\n (click)=\"_addNew(i)\"\n ></button>\n </div>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"emphasized\"\n fd-dialog-decisive-button\n [label]=\"'platformTable.P13SortDialogConfirmationBtnLabel' | fdTranslate\"\n (click)=\"confirm()\"\n ></button>\n </fd-dialog-footer-button>\n\n <fd-dialog-footer-button>\n <button\n fd-button\n fdType=\"transparent\"\n fd-dialog-decisive-button\n fdkInitialFocus\n [label]=\"'platformTable.P13SortDialogCancelBtnLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fdp-table-p13-sorting-dialog .sort-row{display:flex;margin-bottom:.5rem}.fdp-table-p13-sorting-dialog .sort-row .fd-popover-custom{display:block}.fdp-table-p13-sorting-dialog .sort-row__select{flex:1 1 0;margin-right:1rem}.fdp-table-p13-sorting-dialog .sort-row__actions{margin-left:1rem}\n"] }]
129
129
  }], ctorParameters: function () { return [{ type: i1.DialogRef }, { type: i0.ChangeDetectorRef }]; } });
130
130
  export class GetAvailableSortColumnsPipe {
131
131
  /** @hidden */
@@ -140,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
140
140
  type: Pipe,
141
141
  args: [{ name: 'getAvailableSortColumns', pure: false }]
142
142
  }] });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL3NvcnRpbmcvc29ydGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL3NvcnRpbmcvc29ydGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsSUFBSSxFQUVKLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsd0JBQXdCLEVBQ3hCLGFBQWEsRUFFaEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RCxPQUFPLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7Ozs7Ozs7QUFxQnpGLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDO0FBRXZDLE1BQU0saUJBQWlCO0lBQ25CLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyx5QkFBeUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLHlCQUF5QixDQUFDO0lBQ3hHLENBQUM7SUFFRDtJQUNJLHFDQUFxQztJQUM5QixZQUEyQix5QkFBeUI7SUFDM0QscUJBQXFCO0lBQ2QsWUFBMkIsYUFBYSxDQUFDLEdBQUc7UUFGNUMsY0FBUyxHQUFULFNBQVMsQ0FBMkM7UUFFcEQsY0FBUyxHQUFULFNBQVMsQ0FBbUM7SUFDcEQsQ0FBQztDQUNQ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QUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7SUFDTixlQUFlLENBQUMsS0FBMEI7UUFDOUMsT0FBTyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7c0hBakhRLHlCQUF5QjswR0FBekIseUJBQXlCLHVDQUh2QixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRSxDQUFDLDBCQzFEdEYseXVIQThGQSxvOEdEdUZhLDJCQUEyQjsyRkF4SDNCLHlCQUF5QjtrQkFQckMsU0FBUztvQ0FHUyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVywyQkFBMkIsRUFBRSxDQUFDLG1CQUNqRSx1QkFBdUIsQ0FBQyxNQUFNOztBQTBIbkQsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxjQUFjO0lBQ2QsU0FBUyxDQUFDLE9BQTJCLEVBQUUsS0FBaUIsRUFBRSxVQUF5QjtRQUMvRSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvRSxDQUFDOzt3SEFMUSwyQkFBMkI7c0hBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUR2QyxJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBQaXBlLFxuICAgIFBpcGVUcmFuc2Zvcm0sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENvbGxlY3Rpb25Tb3J0LFxuICAgIGdldFVuaXF1ZUxpc3RWYWx1ZXNCeUtleSxcbiAgICBTb3J0RGlyZWN0aW9uLFxuICAgIFRhYmxlRGlhbG9nQ29tbW9uRGF0YVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuXG5pbXBvcnQgeyBSZXNldHRhYmxlLCBSRVNFVFRBQkxFX1RPS0VOIH0gZnJvbSAnLi4vLi4vcmVzZXQtYnV0dG9uL3Jlc2V0LWJ1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnREaWFsb2dDb2x1bW4ge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAga2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydERpYWxvZ0RhdGEgZXh0ZW5kcyBUYWJsZURpYWxvZ0NvbW1vbkRhdGEge1xuICAgIGNvbGxlY3Rpb25Tb3J0OiBDb2xsZWN0aW9uU29ydFtdO1xuICAgIGNvbHVtbnM6IFNvcnREaWFsb2dDb2x1bW5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3J0RGlhbG9nUmVzdWx0RGF0YSB7XG4gICAgY29sbGVjdGlvblNvcnQ6IENvbGxlY3Rpb25Tb3J0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydFJ1bGUge1xuICAgIGNvbHVtbktleTogc3RyaW5nIHwgbnVsbDtcbiAgICBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb247XG59XG5cbmNvbnN0IE5PVF9TRUxFQ1RFRF9PUFRJT05fVkFMVUUgPSBudWxsO1xuXG5jbGFzcyBWYWxpZGF0ZWRTb3J0UnVsZSBpbXBsZW1lbnRzIFNvcnRSdWxlIHtcbiAgICBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uS2V5ICE9PSBOT1RfU0VMRUNURURfT1BUSU9OX1ZBTFVFICYmIHRoaXMuZGlyZWN0aW9uICE9PSBOT1RfU0VMRUNURURfT1BUSU9OX1ZBTFVFO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAvKiogQ29sdW1uIGtleSB0aGUgcnVsZSBiZWxvbmdzIHRvICovXG4gICAgICAgIHB1YmxpYyBjb2x1bW5LZXk6IHN0cmluZyB8IG51bGwgPSBOT1RfU0VMRUNURURfT1BUSU9OX1ZBTFVFLFxuICAgICAgICAvKiogU29ydCBkaXJlY3Rpb24gKi9cbiAgICAgICAgcHVibGljIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9IFNvcnREaXJlY3Rpb24uQVNDXG4gICAgKSB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vc29ydGluZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc29ydGluZy5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBSRVNFVFRBQkxFX1RPS0VOLCB1c2VFeGlzdGluZzogUDEzU29ydGluZ0RpYWxvZ0NvbXBvbmVudCB9XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQMTNTb3J0aW5nRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgUmVzZXR0YWJsZSB7XG4gICAgLyoqIFRhYmxlIGNvbHVtbnMgYXZhaWxhYmxlIGZvciBzb3J0aW5nICovXG4gICAgcmVhZG9ubHkgY29sdW1uczogU29ydERpYWxvZ0NvbHVtbltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgLyoqIEluZGljYXRlcyB3aGVuIHJlc2V0IGNvbW1hbmQgaXMgYXZhaWxhYmxlICovXG4gICAgcmVhZG9ubHkgaXNSZXNldEF2YWlsYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBTb3J0IHJ1bGVzIHRvIHJlbmRlciAqL1xuICAgIHJ1bGVzOiBWYWxpZGF0ZWRTb3J0UnVsZVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZjxTb3J0RGlhbG9nRGF0YT4sIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBjb25zdCB7IGNvbHVtbnMsIGNvbGxlY3Rpb25Tb3J0IH0gPSB0aGlzLmRpYWxvZ1JlZi5kYXRhO1xuXG4gICAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnMgfHwgW107XG5cbiAgICAgICAgdGhpcy5faW5pdGlhdGVSdWxlcyhjb2xsZWN0aW9uU29ydCk7XG4gICAgfVxuXG4gICAgLyoqIFJlc2V0IGNoYW5nZXMgdG8gdGhlIGluaXRpYWwgc3RhdGUgKi9cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdGlhdGVSdWxlcygpO1xuICAgICAgICB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIENsb3NlIGRpYWxvZyAqL1xuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UobnVsbCk7XG4gICAgfVxuXG4gICAgLyoqIENvbmZpcm0gY2hhbmdlcyBhbmQgY2xvc2UgZGlhbG9nICovXG4gICAgY29uZmlybSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvblNvcnQgPSB0aGlzLl9nZXRDb2xsZWN0aW9uU29ydEZyb21Tb3J0UnVsZXModGhpcy5fZ2V0VW5pcXVlUnVsZXModGhpcy5ydWxlcykpO1xuICAgICAgICBjb25zdCByZXN1bHQ6IFNvcnREaWFsb2dSZXN1bHREYXRhID0geyBjb2xsZWN0aW9uU29ydCB9O1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3JlbW92ZVJ1bGUocnVsZTogVmFsaWRhdGVkU29ydFJ1bGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydWxlcyA9IHRoaXMucnVsZXMuZmlsdGVyKChfcnVsZSkgPT4gX3J1bGUgIT09IHJ1bGUpO1xuXG4gICAgICAgIC8vIEtlZXAgYXQgbGVhc3Qgb25lIGl0ZW0gaW4gdGhlIGxpc3RcbiAgICAgICAgaWYgKHRoaXMucnVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bGVzLnB1c2gobmV3IFZhbGlkYXRlZFNvcnRSdWxlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVjYWxjdWxhdGVSZXNldEF2YWlsYWJpbGl0eSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2FkZE5ldyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgbmV3IFZhbGlkYXRlZFNvcnRSdWxlKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUnVsZUNvbHVtbktleUNoYW5nZShydWxlOiBWYWxpZGF0ZWRTb3J0UnVsZSwgY29sdW1uS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgcnVsZS5jb2x1bW5LZXkgPSBjb2x1bW5LZXk7XG4gICAgICAgIHRoaXMuX3JlY2FsY3VsYXRlUmVzZXRBdmFpbGFiaWxpdHkoKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUnVsZURpcmVjdGlvbkNoYW5nZShydWxlOiBWYWxpZGF0ZWRTb3J0UnVsZSwgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIHJ1bGUuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgICAgICB0aGlzLl9yZWNhbGN1bGF0ZVJlc2V0QXZhaWxhYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmVjYWxjdWxhdGVSZXNldEF2YWlsYWJpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFzT25seU9uZUVtcHR5UnVsZSA9IHRoaXMucnVsZXMubGVuZ3RoID09PSAxICYmICF0aGlzLnJ1bGVzWzBdLmlzVmFsaWQ7XG4gICAgICAgIHRoaXMuX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JC5uZXh0KCFoYXNPbmx5T25lRW1wdHlSdWxlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90cmFja0J5Q29sdW1uS2V5KGluZGV4OiBudW1iZXIsIHJ1bGU6IFZhbGlkYXRlZFNvcnRSdWxlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBydWxlLmNvbHVtbktleTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYXRlUnVsZXMoY29sbGVjdGlvblNvcnQ/OiBDb2xsZWN0aW9uU29ydFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZXMgPSB0aGlzLl9jcmVhdGVSdWxlcyhjb2xsZWN0aW9uU29ydCk7XG5cbiAgICAgICAgLy8gS2VlcCBhdCBsZWFzdCBvbmUgaXRlbSBpbiB0aGUgbGlzdFxuICAgICAgICBpZiAodGhpcy5ydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMucnVsZXMucHVzaChuZXcgVmFsaWRhdGVkU29ydFJ1bGUoKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZWNhbGN1bGF0ZVJlc2V0QXZhaWxhYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jcmVhdGVSdWxlcyhjb2xsZWN0aW9uU29ydDogQ29sbGVjdGlvblNvcnRbXSA9IFtdKTogVmFsaWRhdGVkU29ydFJ1bGVbXSB7XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uU29ydC5tYXAoKHsgZmllbGQsIGRpcmVjdGlvbiB9KTogVmFsaWRhdGVkU29ydFJ1bGUgPT4gbmV3IFZhbGlkYXRlZFNvcnRSdWxlKGZpZWxkLCBkaXJlY3Rpb24pKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldENvbGxlY3Rpb25Tb3J0RnJvbVNvcnRSdWxlcyhydWxlcyA9IHRoaXMucnVsZXMpOiBDb2xsZWN0aW9uU29ydFtdIHtcbiAgICAgICAgcmV0dXJuIHJ1bGVzLmZpbHRlcih0aGlzLl9pc1J1bGVWYWxpZCkubWFwKFxuICAgICAgICAgICAgKHsgY29sdW1uS2V5LCBkaXJlY3Rpb24gfSk6IENvbGxlY3Rpb25Tb3J0ID0+ICh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbktleSxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRVbmlxdWVSdWxlcyhydWxlczogVmFsaWRhdGVkU29ydFJ1bGVbXSk6IFZhbGlkYXRlZFNvcnRSdWxlW10ge1xuICAgICAgICByZXR1cm4gZ2V0VW5pcXVlTGlzdFZhbHVlc0J5S2V5KHJ1bGVzLCAnY29sdW1uS2V5Jyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1J1bGVWYWxpZCA9IChydWxlOiBWYWxpZGF0ZWRTb3J0UnVsZSk6IGJvb2xlYW4gPT4gcnVsZT8uaXNWYWxpZDtcbn1cblxuQFBpcGUoeyBuYW1lOiAnZ2V0QXZhaWxhYmxlU29ydENvbHVtbnMnLCBwdXJlOiBmYWxzZSB9KVxuZXhwb3J0IGNsYXNzIEdldEF2YWlsYWJsZVNvcnRDb2x1bW5zUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdHJhbnNmb3JtKGNvbHVtbnM6IFNvcnREaWFsb2dDb2x1bW5bXSwgcnVsZXM6IFNvcnRSdWxlW10sIGN1cnJlbnRLZXk6IHN0cmluZyB8IG51bGwpOiBTb3J0RGlhbG9nQ29sdW1uW10ge1xuICAgICAgICBjb25zdCB1c2VkS2V5cyA9IG5ldyBTZXQocnVsZXMubWFwKChyKSA9PiByLmNvbHVtbktleSkpO1xuICAgICAgICByZXR1cm4gY29sdW1ucy5maWx0ZXIoKGMpID0+ICF1c2VkS2V5cy5oYXMoYy5rZXkpIHx8IGN1cnJlbnRLZXkgPT09IGMua2V5KTtcbiAgICB9XG59XG4iLCI8ZmQtZGlhbG9nIGNsYXNzPVwiZmRwLXRhYmxlLXAxMy1zb3J0aW5nLWRpYWxvZ1wiPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICA8aDQgZmQtdGl0bGUgW2hlYWRlclNpemVdPVwiNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ0hlYWRlcicgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC10YWJsZS1yZXNldC1idXR0b24+PC9mZHAtdGFibGUtcmVzZXQtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzb3J0LXJvd1wiICpuZ0Zvcj1cImxldCBydWxlIG9mIHJ1bGVzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiBfdHJhY2tCeUNvbHVtbktleVwiPlxuICAgICAgICAgICAgPGZkLXNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwic29ydC1yb3dfX3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJ1bGUuY29sdW1uS2V5XCJcbiAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiX29uUnVsZUNvbHVtbktleUNoYW5nZShydWxlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ05vbmVTZWxlY3RlZENvbHVtbicgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgIGZkLW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnMgfCBnZXRBdmFpbGFibGVTb3J0Q29sdW1ucyA6IHJ1bGVzIDogcnVsZS5jb2x1bW5LZXlcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9mZC1zZWxlY3Q+XG5cbiAgICAgICAgICAgIDxmZC1zZWxlY3RcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNvcnQtcm93X19zZWxlY3RcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJydWxlLmRpcmVjdGlvblwiXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIl9vblJ1bGVEaXJlY3Rpb25DaGFuZ2UocnVsZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidwbGF0Zm9ybVRhYmxlLlAxM1NvcnREaWFsb2dOb25lU2VsZWN0ZWRTb3J0aW5nJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGkgZmQtb3B0aW9uIFt2YWx1ZV09XCJTT1JUX0RJUkVDVElPTi5BU0NcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ1NvcnRPcmRlclNlbGVjdE9wdGlvbkFzYycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwiU09SVF9ESVJFQ1RJT04uREVTQ1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1UYWJsZS5QMTNTb3J0RGlhbG9nU29ydE9yZGVyU2VsZWN0T3B0aW9uRGVzYycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L2ZkLXNlbGVjdD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNvcnQtcm93X19hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cInN5cy1jYW5jZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLlAxM1NvcnREaWFsb2dSZW1vdmVTb3J0QnRuVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ1JlbW92ZVNvcnRCdG5UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfcmVtb3ZlUnVsZShydWxlKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImFkZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ0FkZE5ld1NvcnRCdG5UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UYWJsZS5QMTNTb3J0RGlhbG9nQWRkTmV3U29ydEJ0blRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9hZGROZXcoaSlcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICBmZC1kaWFsb2ctZGVjaXNpdmUtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLlAxM1NvcnREaWFsb2dDb25maXJtYXRpb25CdG5MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbmZpcm0oKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBmZC1kaWFsb2ctZGVjaXNpdmUtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRrSW5pdGlhbEZvY3VzXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLlAxM1NvcnREaWFsb2dDYW5jZWxCdG5MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cbiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL3NvcnRpbmcvc29ydGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL3NvcnRpbmcvc29ydGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsSUFBSSxFQUVKLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsd0JBQXdCLEVBQ3hCLGFBQWEsRUFFaEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RCxPQUFPLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7Ozs7Ozs7QUFxQnpGLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDO0FBRXZDLE1BQU0saUJBQWlCO0lBQ25CLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyx5QkFBeUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLHlCQUF5QixDQUFDO0lBQ3hHLENBQUM7SUFFRDtJQUNJLHFDQUFxQztJQUM5QixZQUEyQix5QkFBeUI7SUFDM0QscUJBQXFCO0lBQ2QsWUFBMkIsYUFBYSxDQUFDLEdBQUc7UUFGNUMsY0FBUyxHQUFULFNBQVMsQ0FBMkM7UUFFcEQsY0FBUyxHQUFULFNBQVMsQ0FBbUM7SUFDcEQsQ0FBQztDQUNQ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QUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWM7SUFDTixlQUFlLENBQUMsS0FBMEI7UUFDOUMsT0FBTyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7c0hBakhRLHlCQUF5QjswR0FBekIseUJBQXlCLHVDQUh2QixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRSxDQUFDLDBCQzFEdEYsZ3pIQStGQSwrbkhEc0ZhLDJCQUEyQjsyRkF4SDNCLHlCQUF5QjtrQkFQckMsU0FBUztvQ0FHUyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVywyQkFBMkIsRUFBRSxDQUFDLG1CQUNqRSx1QkFBdUIsQ0FBQyxNQUFNOztBQTBIbkQsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxjQUFjO0lBQ2QsU0FBUyxDQUFDLE9BQTJCLEVBQUUsS0FBaUIsRUFBRSxVQUF5QjtRQUMvRSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvRSxDQUFDOzt3SEFMUSwyQkFBMkI7c0hBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUR2QyxJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBQaXBlLFxuICAgIFBpcGVUcmFuc2Zvcm0sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENvbGxlY3Rpb25Tb3J0LFxuICAgIGdldFVuaXF1ZUxpc3RWYWx1ZXNCeUtleSxcbiAgICBTb3J0RGlyZWN0aW9uLFxuICAgIFRhYmxlRGlhbG9nQ29tbW9uRGF0YVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuXG5pbXBvcnQgeyBSZXNldHRhYmxlLCBSRVNFVFRBQkxFX1RPS0VOIH0gZnJvbSAnLi4vLi4vcmVzZXQtYnV0dG9uL3Jlc2V0LWJ1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnREaWFsb2dDb2x1bW4ge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAga2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydERpYWxvZ0RhdGEgZXh0ZW5kcyBUYWJsZURpYWxvZ0NvbW1vbkRhdGEge1xuICAgIGNvbGxlY3Rpb25Tb3J0OiBDb2xsZWN0aW9uU29ydFtdO1xuICAgIGNvbHVtbnM6IFNvcnREaWFsb2dDb2x1bW5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3J0RGlhbG9nUmVzdWx0RGF0YSB7XG4gICAgY29sbGVjdGlvblNvcnQ6IENvbGxlY3Rpb25Tb3J0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydFJ1bGUge1xuICAgIGNvbHVtbktleTogc3RyaW5nIHwgbnVsbDtcbiAgICBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb247XG59XG5cbmNvbnN0IE5PVF9TRUxFQ1RFRF9PUFRJT05fVkFMVUUgPSBudWxsO1xuXG5jbGFzcyBWYWxpZGF0ZWRTb3J0UnVsZSBpbXBsZW1lbnRzIFNvcnRSdWxlIHtcbiAgICBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uS2V5ICE9PSBOT1RfU0VMRUNURURfT1BUSU9OX1ZBTFVFICYmIHRoaXMuZGlyZWN0aW9uICE9PSBOT1RfU0VMRUNURURfT1BUSU9OX1ZBTFVFO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAvKiogQ29sdW1uIGtleSB0aGUgcnVsZSBiZWxvbmdzIHRvICovXG4gICAgICAgIHB1YmxpYyBjb2x1bW5LZXk6IHN0cmluZyB8IG51bGwgPSBOT1RfU0VMRUNURURfT1BUSU9OX1ZBTFVFLFxuICAgICAgICAvKiogU29ydCBkaXJlY3Rpb24gKi9cbiAgICAgICAgcHVibGljIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9IFNvcnREaXJlY3Rpb24uQVNDXG4gICAgKSB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vc29ydGluZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc29ydGluZy5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBSRVNFVFRBQkxFX1RPS0VOLCB1c2VFeGlzdGluZzogUDEzU29ydGluZ0RpYWxvZ0NvbXBvbmVudCB9XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQMTNTb3J0aW5nRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgUmVzZXR0YWJsZSB7XG4gICAgLyoqIFRhYmxlIGNvbHVtbnMgYXZhaWxhYmxlIGZvciBzb3J0aW5nICovXG4gICAgcmVhZG9ubHkgY29sdW1uczogU29ydERpYWxvZ0NvbHVtbltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgLyoqIEluZGljYXRlcyB3aGVuIHJlc2V0IGNvbW1hbmQgaXMgYXZhaWxhYmxlICovXG4gICAgcmVhZG9ubHkgaXNSZXNldEF2YWlsYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBTb3J0IHJ1bGVzIHRvIHJlbmRlciAqL1xuICAgIHJ1bGVzOiBWYWxpZGF0ZWRTb3J0UnVsZVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IERpYWxvZ1JlZjxTb3J0RGlhbG9nRGF0YT4sIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBjb25zdCB7IGNvbHVtbnMsIGNvbGxlY3Rpb25Tb3J0IH0gPSB0aGlzLmRpYWxvZ1JlZi5kYXRhO1xuXG4gICAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnMgfHwgW107XG5cbiAgICAgICAgdGhpcy5faW5pdGlhdGVSdWxlcyhjb2xsZWN0aW9uU29ydCk7XG4gICAgfVxuXG4gICAgLyoqIFJlc2V0IGNoYW5nZXMgdG8gdGhlIGluaXRpYWwgc3RhdGUgKi9cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdGlhdGVSdWxlcygpO1xuICAgICAgICB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIENsb3NlIGRpYWxvZyAqL1xuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UobnVsbCk7XG4gICAgfVxuXG4gICAgLyoqIENvbmZpcm0gY2hhbmdlcyBhbmQgY2xvc2UgZGlhbG9nICovXG4gICAgY29uZmlybSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvblNvcnQgPSB0aGlzLl9nZXRDb2xsZWN0aW9uU29ydEZyb21Tb3J0UnVsZXModGhpcy5fZ2V0VW5pcXVlUnVsZXModGhpcy5ydWxlcykpO1xuICAgICAgICBjb25zdCByZXN1bHQ6IFNvcnREaWFsb2dSZXN1bHREYXRhID0geyBjb2xsZWN0aW9uU29ydCB9O1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3JlbW92ZVJ1bGUocnVsZTogVmFsaWRhdGVkU29ydFJ1bGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydWxlcyA9IHRoaXMucnVsZXMuZmlsdGVyKChfcnVsZSkgPT4gX3J1bGUgIT09IHJ1bGUpO1xuXG4gICAgICAgIC8vIEtlZXAgYXQgbGVhc3Qgb25lIGl0ZW0gaW4gdGhlIGxpc3RcbiAgICAgICAgaWYgKHRoaXMucnVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bGVzLnB1c2gobmV3IFZhbGlkYXRlZFNvcnRSdWxlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVjYWxjdWxhdGVSZXNldEF2YWlsYWJpbGl0eSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2FkZE5ldyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgbmV3IFZhbGlkYXRlZFNvcnRSdWxlKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUnVsZUNvbHVtbktleUNoYW5nZShydWxlOiBWYWxpZGF0ZWRTb3J0UnVsZSwgY29sdW1uS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgcnVsZS5jb2x1bW5LZXkgPSBjb2x1bW5LZXk7XG4gICAgICAgIHRoaXMuX3JlY2FsY3VsYXRlUmVzZXRBdmFpbGFiaWxpdHkoKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUnVsZURpcmVjdGlvbkNoYW5nZShydWxlOiBWYWxpZGF0ZWRTb3J0UnVsZSwgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIHJ1bGUuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgICAgICB0aGlzLl9yZWNhbGN1bGF0ZVJlc2V0QXZhaWxhYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmVjYWxjdWxhdGVSZXNldEF2YWlsYWJpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFzT25seU9uZUVtcHR5UnVsZSA9IHRoaXMucnVsZXMubGVuZ3RoID09PSAxICYmICF0aGlzLnJ1bGVzWzBdLmlzVmFsaWQ7XG4gICAgICAgIHRoaXMuX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JC5uZXh0KCFoYXNPbmx5T25lRW1wdHlSdWxlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90cmFja0J5Q29sdW1uS2V5KGluZGV4OiBudW1iZXIsIHJ1bGU6IFZhbGlkYXRlZFNvcnRSdWxlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBydWxlLmNvbHVtbktleTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYXRlUnVsZXMoY29sbGVjdGlvblNvcnQ/OiBDb2xsZWN0aW9uU29ydFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZXMgPSB0aGlzLl9jcmVhdGVSdWxlcyhjb2xsZWN0aW9uU29ydCk7XG5cbiAgICAgICAgLy8gS2VlcCBhdCBsZWFzdCBvbmUgaXRlbSBpbiB0aGUgbGlzdFxuICAgICAgICBpZiAodGhpcy5ydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMucnVsZXMucHVzaChuZXcgVmFsaWRhdGVkU29ydFJ1bGUoKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZWNhbGN1bGF0ZVJlc2V0QXZhaWxhYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jcmVhdGVSdWxlcyhjb2xsZWN0aW9uU29ydDogQ29sbGVjdGlvblNvcnRbXSA9IFtdKTogVmFsaWRhdGVkU29ydFJ1bGVbXSB7XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uU29ydC5tYXAoKHsgZmllbGQsIGRpcmVjdGlvbiB9KTogVmFsaWRhdGVkU29ydFJ1bGUgPT4gbmV3IFZhbGlkYXRlZFNvcnRSdWxlKGZpZWxkLCBkaXJlY3Rpb24pKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldENvbGxlY3Rpb25Tb3J0RnJvbVNvcnRSdWxlcyhydWxlcyA9IHRoaXMucnVsZXMpOiBDb2xsZWN0aW9uU29ydFtdIHtcbiAgICAgICAgcmV0dXJuIHJ1bGVzLmZpbHRlcih0aGlzLl9pc1J1bGVWYWxpZCkubWFwKFxuICAgICAgICAgICAgKHsgY29sdW1uS2V5LCBkaXJlY3Rpb24gfSk6IENvbGxlY3Rpb25Tb3J0ID0+ICh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbktleSxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRVbmlxdWVSdWxlcyhydWxlczogVmFsaWRhdGVkU29ydFJ1bGVbXSk6IFZhbGlkYXRlZFNvcnRSdWxlW10ge1xuICAgICAgICByZXR1cm4gZ2V0VW5pcXVlTGlzdFZhbHVlc0J5S2V5KHJ1bGVzLCAnY29sdW1uS2V5Jyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1J1bGVWYWxpZCA9IChydWxlOiBWYWxpZGF0ZWRTb3J0UnVsZSk6IGJvb2xlYW4gPT4gcnVsZT8uaXNWYWxpZDtcbn1cblxuQFBpcGUoeyBuYW1lOiAnZ2V0QXZhaWxhYmxlU29ydENvbHVtbnMnLCBwdXJlOiBmYWxzZSB9KVxuZXhwb3J0IGNsYXNzIEdldEF2YWlsYWJsZVNvcnRDb2x1bW5zUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdHJhbnNmb3JtKGNvbHVtbnM6IFNvcnREaWFsb2dDb2x1bW5bXSwgcnVsZXM6IFNvcnRSdWxlW10sIGN1cnJlbnRLZXk6IHN0cmluZyB8IG51bGwpOiBTb3J0RGlhbG9nQ29sdW1uW10ge1xuICAgICAgICBjb25zdCB1c2VkS2V5cyA9IG5ldyBTZXQocnVsZXMubWFwKChyKSA9PiByLmNvbHVtbktleSkpO1xuICAgICAgICByZXR1cm4gY29sdW1ucy5maWx0ZXIoKGMpID0+ICF1c2VkS2V5cy5oYXMoYy5rZXkpIHx8IGN1cnJlbnRLZXkgPT09IGMua2V5KTtcbiAgICB9XG59XG4iLCI8ZmQtZGlhbG9nIGNsYXNzPVwiZmRwLXRhYmxlLXAxMy1zb3J0aW5nLWRpYWxvZ1wiPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICA8aDQgZmQtdGl0bGUgW2hlYWRlclNpemVdPVwiNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ0hlYWRlcicgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC10YWJsZS1yZXNldC1idXR0b24+PC9mZHAtdGFibGUtcmVzZXQtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzb3J0LXJvd1wiICpuZ0Zvcj1cImxldCBydWxlIG9mIHJ1bGVzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiBfdHJhY2tCeUNvbHVtbktleVwiPlxuICAgICAgICAgICAgPGZkLXNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwic29ydC1yb3dfX3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJ1bGUuY29sdW1uS2V5XCJcbiAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiX29uUnVsZUNvbHVtbktleUNoYW5nZShydWxlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ05vbmVTZWxlY3RlZENvbHVtbicgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgIGZkLW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnMgfCBnZXRBdmFpbGFibGVTb3J0Q29sdW1ucyA6IHJ1bGVzIDogcnVsZS5jb2x1bW5LZXlcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9mZC1zZWxlY3Q+XG5cbiAgICAgICAgICAgIDxmZC1zZWxlY3RcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNvcnQtcm93X19zZWxlY3RcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJydWxlLmRpcmVjdGlvblwiXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIl9vblJ1bGVEaXJlY3Rpb25DaGFuZ2UocnVsZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidwbGF0Zm9ybVRhYmxlLlAxM1NvcnREaWFsb2dOb25lU2VsZWN0ZWRTb3J0aW5nJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGkgZmQtb3B0aW9uIFt2YWx1ZV09XCJTT1JUX0RJUkVDVElPTi5BU0NcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ1NvcnRPcmRlclNlbGVjdE9wdGlvbkFzYycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwiU09SVF9ESVJFQ1RJT04uREVTQ1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1UYWJsZS5QMTNTb3J0RGlhbG9nU29ydE9yZGVyU2VsZWN0T3B0aW9uRGVzYycgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L2ZkLXNlbGVjdD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNvcnQtcm93X19hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cInN5cy1jYW5jZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLlAxM1NvcnREaWFsb2dSZW1vdmVTb3J0QnRuVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ1JlbW92ZVNvcnRCdG5UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfcmVtb3ZlUnVsZShydWxlKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2Zka0Rpc2FibGVkXT1cInJ1bGVzLmxlbmd0aCA9PT0gY29sdW1ucy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYWRkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1UYWJsZS5QMTNTb3J0RGlhbG9nQWRkTmV3U29ydEJ0blRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRhYmxlLlAxM1NvcnREaWFsb2dBZGROZXdTb3J0QnRuVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2FkZE5ldyhpKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmQtZGlhbG9nLWJvZHk+XG5cbiAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ0NvbmZpcm1hdGlvbkJ0bkxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cblxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cbiAgICAgICAgICAgICAgICBmZGtJbml0aWFsRm9jdXNcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUuUDEzU29ydERpYWxvZ0NhbmNlbEJ0bkxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbjwvZmQtZGlhbG9nPlxuIl19