@ardium-ui/ui 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_internal/boolean-component.mjs +1 -1
- package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +3 -3
- package/esm2022/lib/_internal/disablable-component.mjs +1 -1
- package/esm2022/lib/_internal/focusable-component.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +1 -1
- package/esm2022/lib/_internal/models/pagination.model.mjs +1 -1
- package/esm2022/lib/_internal/ngmodel-component.mjs +1 -1
- package/esm2022/lib/_internal/selectable-list-component.mjs +1 -1
- package/esm2022/lib/badge/badge.directive.mjs +1 -1
- package/esm2022/lib/badge/index.mjs +1 -1
- package/esm2022/lib/buttons/_button-base.mjs +1 -1
- package/esm2022/lib/buttons/button/button.component.mjs +5 -3
- package/esm2022/lib/buttons/button/index.mjs +1 -1
- package/esm2022/lib/buttons/fab/fab.component.mjs +5 -3
- package/esm2022/lib/buttons/fab/index.mjs +1 -1
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +5 -3
- package/esm2022/lib/buttons/icon-button/index.mjs +1 -1
- package/esm2022/lib/card/card.children.mjs +3 -3
- package/esm2022/lib/card/card.component.mjs +1 -1
- package/esm2022/lib/card/index.mjs +1 -1
- package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/checkbox/index.mjs +1 -1
- package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +3 -3
- package/esm2022/lib/checkbox-list/index.mjs +1 -1
- package/esm2022/lib/chip/chip.component.mjs +3 -3
- package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +3 -3
- package/esm2022/lib/chip/index.mjs +1 -1
- package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +3 -3
- package/esm2022/lib/color/color-display/color-display.component.mjs +3 -3
- package/esm2022/lib/color/color-display/index.mjs +1 -1
- package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
- package/esm2022/lib/dialog/dialog.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog.types.mjs +1 -1
- package/esm2022/lib/dialog/index.mjs +1 -1
- package/esm2022/lib/divider/divider.component.mjs +1 -1
- package/esm2022/lib/divider/index.mjs +1 -1
- package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +4 -4
- package/esm2022/lib/dropdown-panel/index.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +3 -3
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/index.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/file-inputs/file-input/index.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input-base.mjs +1 -1
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +3 -3
- package/esm2022/lib/form-field-frame/index.mjs +1 -1
- package/esm2022/lib/icon/icon.component.mjs +3 -3
- package/esm2022/lib/icon/index.mjs +1 -1
- package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +3 -3
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/index.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +3 -3
- package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/index.mjs +1 -1
- package/esm2022/lib/inputs/hex-input.model.mjs +1 -1
- package/esm2022/lib/inputs/input/index.mjs +1 -1
- package/esm2022/lib/inputs/input/input.component.mjs +3 -3
- package/esm2022/lib/inputs/input/input.directives.mjs +1 -1
- package/esm2022/lib/inputs/input/input.module.mjs +1 -1
- package/esm2022/lib/inputs/input-transformers.mjs +1 -1
- package/esm2022/lib/inputs/input-utils.mjs +1 -1
- package/esm2022/lib/inputs/number-input/index.mjs +1 -1
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +3 -3
- package/esm2022/lib/inputs/password-input/index.mjs +1 -1
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/index.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +3 -3
- package/esm2022/lib/kbd/index.mjs +1 -1
- package/esm2022/lib/kbd/kbd.component.mjs +3 -3
- package/esm2022/lib/kbd-shortcut/index.mjs +1 -1
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +3 -3
- package/esm2022/lib/modal/index.mjs +1 -1
- package/esm2022/lib/modal/modal.component.mjs +3 -3
- package/esm2022/lib/option/index.mjs +1 -1
- package/esm2022/lib/option/option.component.mjs +1 -1
- package/esm2022/lib/progress-bar/index.mjs +1 -1
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
- package/esm2022/lib/progress-circle/index.mjs +1 -1
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +3 -3
- package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
- package/esm2022/lib/radio/index.mjs +1 -1
- package/esm2022/lib/radio/radio/radio.component.mjs +3 -3
- package/esm2022/lib/radio/radio-group.component.mjs +1 -1
- package/esm2022/lib/search-functions.mjs +1 -1
- package/esm2022/lib/segment/index.mjs +1 -1
- package/esm2022/lib/segment/segment.component.mjs +3 -3
- package/esm2022/lib/segment/segment.directives.mjs +1 -1
- package/esm2022/lib/select/index.mjs +1 -1
- package/esm2022/lib/select/select.component.mjs +3 -3
- package/esm2022/lib/select/select.directive.mjs +1 -1
- package/esm2022/lib/select/select.types.mjs +1 -1
- package/esm2022/lib/slide-toggle/index.mjs +1 -1
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +3 -3
- package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +1 -1
- package/esm2022/lib/slider/index.mjs +1 -1
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +3 -3
- package/esm2022/lib/slider/slider.component.mjs +3 -3
- package/esm2022/lib/slider/slider.module.mjs +1 -1
- package/esm2022/lib/slider/slider.types.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/snackbar/snackbar.service.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
- package/esm2022/lib/spinner/index.mjs +1 -1
- package/esm2022/lib/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/star/index.mjs +1 -1
- package/esm2022/lib/star/star-button/index.mjs +1 -1
- package/esm2022/lib/star/star-button/star-button.component.mjs +3 -3
- package/esm2022/lib/star/star-display/index.mjs +1 -1
- package/esm2022/lib/star/star-display/star-display.component.mjs +3 -3
- package/esm2022/lib/star/star-input/index.mjs +1 -1
- package/esm2022/lib/star/star-input/star-input.component.mjs +3 -3
- package/esm2022/lib/star/star.component.mjs +3 -3
- package/esm2022/lib/statebox/index.mjs +1 -1
- package/esm2022/lib/statebox/statebox.component.mjs +3 -3
- package/esm2022/lib/statebox/statebox.types.mjs +1 -1
- package/esm2022/lib/tabber/index.mjs +1 -1
- package/esm2022/lib/tabber/tab/tab.component.mjs +3 -3
- package/esm2022/lib/tabber/tabber.component.mjs +3 -3
- package/esm2022/lib/tabber/tabber.module.mjs +1 -1
- package/esm2022/lib/table/index.mjs +1 -1
- package/esm2022/lib/table/table-item-storage.mjs +1 -1
- package/esm2022/lib/table/table.component.mjs +3 -3
- package/esm2022/lib/table/table.directives.mjs +1 -1
- package/esm2022/lib/table-from-csv/index.mjs +1 -1
- package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +3 -3
- package/esm2022/lib/table-pagination/index.mjs +1 -1
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +3 -3
- package/esm2022/lib/types/button.types.mjs +6 -0
- package/esm2022/lib/types/item-storage.types.mjs +1 -1
- package/esm2022/lib/types/utility.types.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/ardium-ui-ui.mjs +102 -93
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/buttons/button/button.component.d.ts +3 -1
- package/lib/buttons/fab/fab.component.d.ts +3 -1
- package/lib/buttons/icon-button/icon-button.component.d.ts +3 -1
- package/lib/types/button.types.d.ts +6 -0
- package/package.json +1 -1
- package/prebuilt-themes/default/buttons/button.css +9 -0
- package/prebuilt-themes/default/buttons/button.css.map +1 -1
- package/prebuilt-themes/default/buttons/icon-button.css +4 -2
- package/prebuilt-themes/default/buttons/icon-button.css.map +1 -1
- package/prebuilt-themes/default/card.css +3 -0
- package/prebuilt-themes/default/card.css.map +1 -1
- package/themes/default/_clear-button.scss +73 -73
- package/themes/default/badge.scss +94 -94
- package/themes/default/buttons/button.scss +72 -62
- package/themes/default/buttons/fab.scss +74 -74
- package/themes/default/buttons/icon-button.scss +62 -59
- package/themes/default/card.scss +129 -126
- package/themes/default/chips.scss +200 -200
- package/themes/default/core.scss +99 -99
- package/themes/default/inputs/digit-input.scss +56 -56
- package/themes/default/inputs/file-input.scss +85 -85
- package/themes/default/inputs/hex-input.scss +27 -27
- package/themes/default/modal.scss +93 -93
- package/themes/default/segment.scss +340 -340
- package/themes/default/select.scss +255 -255
- package/themes/default/snackbar.scss +58 -58
- package/themes/default/tabber.scss +86 -86
|
@@ -335,14 +335,14 @@ export class ArdiumTableComponent extends _FocusableComponentBase {
|
|
|
335
335
|
};
|
|
336
336
|
}
|
|
337
337
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
338
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ArdiumTableComponent, selector: "ard-table", inputs: { rowDisabledFrom: { classPropertyName: "rowDisabledFrom", publicName: "rowDisabledFrom", isSignal: true, isRequired: false, transformFunction: null }, rowBoldFrom: { classPropertyName: "rowBoldFrom", publicName: "rowBoldFrom", isSignal: true, isRequired: false, transformFunction: null }, invertRowDisabled: { classPropertyName: "invertRowDisabled", publicName: "invertRowDisabled", isSignal: true, isRequired: false, transformFunction: null }, invertRowBold: { classPropertyName: "invertRowBold", publicName: "invertRowBold", isSignal: true, isRequired: false, transformFunction: null }, selectableRows: { classPropertyName: "selectableRows", publicName: "selectableRows", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, clickableRows: { classPropertyName: "clickableRows", publicName: "clickableRows", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, loadingProgress: { classPropertyName: "loadingProgress", publicName: "loadingProgress", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, headerAlign: { classPropertyName: "headerAlign", publicName: "headerAlign", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, zebra: { classPropertyName: "zebra", publicName: "zebra", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, paginationStrategy: { classPropertyName: "paginationStrategy", publicName: "paginationStrategy", isSignal: true, isRequired: false, transformFunction: null }, paginationOptions: { classPropertyName: "paginationOptions", publicName: "paginationOptions", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, paginationColor: { classPropertyName: "paginationColor", publicName: "paginationColor", isSignal: true, isRequired: false, transformFunction: null }, paginationAlign: { classPropertyName: "paginationAlign", publicName: "paginationAlign", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPageText: { classPropertyName: "itemsPerPageText", publicName: "itemsPerPageText", isSignal: true, isRequired: false, transformFunction: null }, currentItemsFormatFn: { classPropertyName: "currentItemsFormatFn", publicName: "currentItemsFormatFn", isSignal: true, isRequired: false, transformFunction: null }, pageFillRemaining: { classPropertyName: "pageFillRemaining", publicName: "pageFillRemaining", isSignal: true, isRequired: false, transformFunction: null }, paginationDisabled: { classPropertyName: "paginationDisabled", publicName: "paginationDisabled", isSignal: true, isRequired: false, transformFunction: null }, useFirstLastButtons: { classPropertyName: "useFirstLastButtons", publicName: "useFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, treatDataSourceAsString: { classPropertyName: "treatDataSourceAsString", publicName: "treatDataSourceAsString", isSignal: true, isRequired: false, transformFunction: null }, _suppressErrors: { classPropertyName: "_suppressErrors", publicName: "_suppressErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsPerPage: "itemsPerPageChange", page: "pageChange", selectedRowsChangeEvent: "selectedRowsChange", failedSelectRowEvent: "failedSelectRow", selectRowEvent: "selectRow", unselectRowEvent: "unselectRow", clickRowEvent: "clickRow" }, queries: [{ propertyName: "checkboxTemplate", first: true, predicate: ArdiumTableCheckboxTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerCheckboxTemplate", first: true, predicate: ArdiumTableHeaderCheckboxTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "captionTemplate", first: true, predicate: ArdiumTableCaptionTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "templateChildren", predicate: ArdiumTableTemplateDirective, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\n class=\"ard-table\"\n [ngClass]=\"ngClasses()\"\n>\n @if (caption()) {\n <caption class=\"ard-table__caption\">\n <div class=\"ard-table__caption-container\">\n <ng-template\n #defaultCaptionTemplate\n let-captionText\n >\n {{ captionText }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"captionTemplate() ?? defaultCaptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: caption() }\"\n />\n </div>\n </caption>\n }\n <thead class=\"ard-table__header\">\n @for (row of headerCells(); track $index) {\n <tr class=\"ard-table__header-row\">\n @for (cell of row; track $index) {\n <th\n class=\"ard-table__header-cell\"\n [ngClass]=\"cell.cell().cellClass\"\n [class.ard-table__checkbox-cell]=\"isHeaderCellCheckbox(cell)\"\n [attr.colspan]=\"cell.colspan()\"\n [attr.rowspan]=\"cell.rowspan()\"\n [scope]=\"cell.colspan() > 1 ? 'colgroup' : 'col'\"\n >\n <div\n class=\"ard-table__cell-container\"\n [class.ard-table__sortable]=\"isHeaderCellSortable(cell)\"\n [style.width]=\"cell.width\"\n [style.minWidth]=\"cell.minWidth\"\n >\n @if (isHeaderCellCheckbox(cell)) {\n <ng-template\n #defaultHeaderCheckboxTemplate\n let-state\n let-onChange=\"onChange\"\n >\n <ard-checkbox\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\n [state]=\"state\"\n [color]=\"getHeaderCheckboxColor()\"\n unselectedColor=\"currentColor\"\n (change)=\"onChange()\"\n />\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"headerCheckboxTemplate() ?? defaultHeaderCheckboxTemplate\"\n [ngTemplateOutletContext]=\"getHeaderCheckboxContext()\"\n />\n } @else {\n <ng-template\n #defaultHeaderCellTemplate\n let-content\n let-sortable=\"sortable\"\n let-sortType=\"sortType\"\n let-onTriggerSort=\"onTriggerSort\"\n let-onTriggerResetSort=\"onTriggerResetSort\"\n >\n <div\n class=\"ard-table__header-template-container\"\n [class.ard-sortable]=\"sortable\"\n [class.ard-nonsortable]=\"!sortable\"\n >\n @if (sortable) {\n <button\n class=\"ard-table__header-content-container\"\n (click)=\"onTriggerSort($event)\"\n [tabindex]=\"tabIndex()\"\n (keydown.Esc)=\"onTriggerResetSort($event)\"\n >\n <div class=\"ard-table__header-content\">{{ content }}</div>\n @if (sortType !== null) {\n <div class=\"ard-table__header-sort-icon\">\n @if (sortType === 'ascending') {\n <ard-icon>south</ard-icon>\n } @else if (sortType === 'descending') {\n <ard-icon>north</ard-icon>\n }\n </div>\n }\n </button>\n } @else {\n <div class=\"ard-table__header-content-container\">\n <div class=\"ard-table__header-content\">{{ content }}</div>\n </div>\n }\n </div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"getHeaderTemplate(cell.cell().header) ?? defaultHeaderCellTemplate\"\n [ngTemplateOutletContext]=\"getHeaderContext(cell.cell(), $index)\"\n />\n }\n </div>\n </th>\n }\n </tr>\n }\n </thead>\n <tbody class=\"ard-table__body\">\n @for (row of dataRows(); track $index) {\n @if (row.isEmpty()) {\n <tr class=\"ard-table__empty-row\">\n <td\n class=\"ard-table__empty-cell\"\n colspan=\"9999\"\n ></td>\n </tr>\n } @else {\n <tr\n class=\"ard-table__body-row\"\n [class.ard-table__selected-row]=\"row.selected()\"\n [class.ard-table__highlighted-row]=\"row.highlighted()\"\n [class.ard-table__disabled-row]=\"row.disabled()\"\n [class.ard-table__bold-row]=\"row.bold()\"\n (click)=\"onRowClick(row, $event)\"\n (mouseover)=\"onRowMouseOver($event)\"\n (mouseenter)=\"onRowMouseEnter(row.index(), $event)\"\n (mouseleave)=\"onRowMouseLeave(row.index(), $event)\"\n >\n @for (cell of row.data(); track $index) {\n <ng-template #cellTmp>\n <div\n class=\"ard-table__cell-container\"\n [style]=\"getCellStyle(row.dataColumns()[$index])\"\n >\n @if (isCellCheckbox(cell)) {\n <ng-template\n #defaultCheckboxTemplate\n let-isChecked\n let-onChange=\"onChange\"\n let-disabled=\"disabled\"\n >\n <ard-checkbox\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\n [selected]=\"isChecked\"\n [color]=\"color()\"\n [disabled]=\"disabled\"\n (change)=\"onChange()\"\n (click)=\"$event.stopPropagation()\"\n />\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"checkboxTemplate() ?? defaultCheckboxTemplate\"\n [ngTemplateOutletContext]=\"getCheckboxContext(row.index())\"\n />\n } @else {\n <ng-template\n #defaultCellTemplate\n let-content\n >\n {{ content }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"getCellTemplate(row.dataColumns()[$index].template) ?? defaultCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: cell }\"\n />\n }\n </div>\n </ng-template>\n @if (!row.dataColumns()[$index].isRowHeader) {\n <td\n class=\"ard-table__body-cell\"\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\n >\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\n </td>\n } @else {\n <th\n class=\"ard-table__body-cell ard-table__row-header\"\n scope=\"row\"\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\n >\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\n </th>\n }\n }\n </tr>\n }\n }\n </tbody>\n @if (canDisplayPagination()) {\n <tfoot class=\"ard-table__foot\">\n <tr class=\"ard-table__foot-row\">\n <td\n class=\"ard-table__pagination-cell\"\n colspan=\"9999\"\n >\n <ard-table-pagination\n [options]=\"paginationOptions()\"\n [totalItems]=\"totalItems()!\"\n [disabled]=\"paginationDisabled()\"\n [(itemsPerPage)]=\"itemsPerPage\"\n [(page)]=\"page\"\n [align]=\"paginationAlign()\"\n [isLoading]=\"isLoading()\"\n [itemsPerPageText]=\"itemsPerPageText()\"\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\n />\n </td>\n </tr>\n </tfoot>\n }\n</table>\n", styles: [".ard-table__cell-container,.ard-table__header-template-container{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumCheckboxComponent, selector: "ard-checkbox", inputs: ["wrapperClasses", "htmlId", "color", "unselectedColor", "state"], outputs: ["stateChange"] }, { kind: "component", type: i3.ArdiumTablePaginationComponent, selector: "ard-table-pagination", inputs: ["totalItems", "options", "itemsPerPage", "page", "color", "align", "compact", "useFirstLastButtons", "isLoading", "itemsPerPageText", "currentItemsFormatFn"], outputs: ["itemsPerPageChange", "pageChange"] }, { kind: "component", type: i4.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
338
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ArdiumTableComponent, selector: "ard-table", inputs: { rowDisabledFrom: { classPropertyName: "rowDisabledFrom", publicName: "rowDisabledFrom", isSignal: true, isRequired: false, transformFunction: null }, rowBoldFrom: { classPropertyName: "rowBoldFrom", publicName: "rowBoldFrom", isSignal: true, isRequired: false, transformFunction: null }, invertRowDisabled: { classPropertyName: "invertRowDisabled", publicName: "invertRowDisabled", isSignal: true, isRequired: false, transformFunction: null }, invertRowBold: { classPropertyName: "invertRowBold", publicName: "invertRowBold", isSignal: true, isRequired: false, transformFunction: null }, selectableRows: { classPropertyName: "selectableRows", publicName: "selectableRows", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, clickableRows: { classPropertyName: "clickableRows", publicName: "clickableRows", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, loadingProgress: { classPropertyName: "loadingProgress", publicName: "loadingProgress", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, headerAlign: { classPropertyName: "headerAlign", publicName: "headerAlign", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, zebra: { classPropertyName: "zebra", publicName: "zebra", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, paginationStrategy: { classPropertyName: "paginationStrategy", publicName: "paginationStrategy", isSignal: true, isRequired: false, transformFunction: null }, paginationOptions: { classPropertyName: "paginationOptions", publicName: "paginationOptions", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, paginationColor: { classPropertyName: "paginationColor", publicName: "paginationColor", isSignal: true, isRequired: false, transformFunction: null }, paginationAlign: { classPropertyName: "paginationAlign", publicName: "paginationAlign", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPageText: { classPropertyName: "itemsPerPageText", publicName: "itemsPerPageText", isSignal: true, isRequired: false, transformFunction: null }, currentItemsFormatFn: { classPropertyName: "currentItemsFormatFn", publicName: "currentItemsFormatFn", isSignal: true, isRequired: false, transformFunction: null }, pageFillRemaining: { classPropertyName: "pageFillRemaining", publicName: "pageFillRemaining", isSignal: true, isRequired: false, transformFunction: null }, paginationDisabled: { classPropertyName: "paginationDisabled", publicName: "paginationDisabled", isSignal: true, isRequired: false, transformFunction: null }, useFirstLastButtons: { classPropertyName: "useFirstLastButtons", publicName: "useFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, treatDataSourceAsString: { classPropertyName: "treatDataSourceAsString", publicName: "treatDataSourceAsString", isSignal: true, isRequired: false, transformFunction: null }, _suppressErrors: { classPropertyName: "_suppressErrors", publicName: "_suppressErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsPerPage: "itemsPerPageChange", page: "pageChange", selectedRowsChangeEvent: "selectedRowsChange", failedSelectRowEvent: "failedSelectRow", selectRowEvent: "selectRow", unselectRowEvent: "unselectRow", clickRowEvent: "clickRow" }, queries: [{ propertyName: "checkboxTemplate", first: true, predicate: ArdiumTableCheckboxTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerCheckboxTemplate", first: true, predicate: ArdiumTableHeaderCheckboxTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "captionTemplate", first: true, predicate: ArdiumTableCaptionTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "templateChildren", predicate: ArdiumTableTemplateDirective, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n class=\"ard-table\"\r\n [ngClass]=\"ngClasses()\"\r\n>\r\n @if (caption()) {\r\n <caption class=\"ard-table__caption\">\r\n <div class=\"ard-table__caption-container\">\r\n <ng-template\r\n #defaultCaptionTemplate\r\n let-captionText\r\n >\r\n {{ captionText }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"captionTemplate() ?? defaultCaptionTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: caption() }\"\r\n />\r\n </div>\r\n </caption>\r\n }\r\n <thead class=\"ard-table__header\">\r\n @for (row of headerCells(); track $index) {\r\n <tr class=\"ard-table__header-row\">\r\n @for (cell of row; track $index) {\r\n <th\r\n class=\"ard-table__header-cell\"\r\n [ngClass]=\"cell.cell().cellClass\"\r\n [class.ard-table__checkbox-cell]=\"isHeaderCellCheckbox(cell)\"\r\n [attr.colspan]=\"cell.colspan()\"\r\n [attr.rowspan]=\"cell.rowspan()\"\r\n [scope]=\"cell.colspan() > 1 ? 'colgroup' : 'col'\"\r\n >\r\n <div\r\n class=\"ard-table__cell-container\"\r\n [class.ard-table__sortable]=\"isHeaderCellSortable(cell)\"\r\n [style.width]=\"cell.width\"\r\n [style.minWidth]=\"cell.minWidth\"\r\n >\r\n @if (isHeaderCellCheckbox(cell)) {\r\n <ng-template\r\n #defaultHeaderCheckboxTemplate\r\n let-state\r\n let-onChange=\"onChange\"\r\n >\r\n <ard-checkbox\r\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\r\n [state]=\"state\"\r\n [color]=\"getHeaderCheckboxColor()\"\r\n unselectedColor=\"currentColor\"\r\n (change)=\"onChange()\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"headerCheckboxTemplate() ?? defaultHeaderCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"getHeaderCheckboxContext()\"\r\n />\r\n } @else {\r\n <ng-template\r\n #defaultHeaderCellTemplate\r\n let-content\r\n let-sortable=\"sortable\"\r\n let-sortType=\"sortType\"\r\n let-onTriggerSort=\"onTriggerSort\"\r\n let-onTriggerResetSort=\"onTriggerResetSort\"\r\n >\r\n <div\r\n class=\"ard-table__header-template-container\"\r\n [class.ard-sortable]=\"sortable\"\r\n [class.ard-nonsortable]=\"!sortable\"\r\n >\r\n @if (sortable) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-table__header-content-container\"\r\n (click)=\"onTriggerSort($event)\"\r\n [tabindex]=\"tabIndex()\"\r\n (keydown.Esc)=\"onTriggerResetSort($event)\"\r\n >\r\n <div class=\"ard-table__header-content\">{{ content }}</div>\r\n @if (sortType !== null) {\r\n <div class=\"ard-table__header-sort-icon\">\r\n @if (sortType === 'ascending') {\r\n <ard-icon>south</ard-icon>\r\n } @else if (sortType === 'descending') {\r\n <ard-icon>north</ard-icon>\r\n }\r\n </div>\r\n }\r\n </button>\r\n } @else {\r\n <div class=\"ard-table__header-content-container\">\r\n <div class=\"ard-table__header-content\">{{ content }}</div>\r\n </div>\r\n }\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"getHeaderTemplate(cell.cell().header) ?? defaultHeaderCellTemplate\"\r\n [ngTemplateOutletContext]=\"getHeaderContext(cell.cell(), $index)\"\r\n />\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n }\r\n </thead>\r\n <tbody class=\"ard-table__body\">\r\n @for (row of dataRows(); track $index) { @if (row.isEmpty()) {\r\n <tr class=\"ard-table__empty-row\">\r\n <td\r\n class=\"ard-table__empty-cell\"\r\n colspan=\"9999\"\r\n ></td>\r\n </tr>\r\n } @else {\r\n <tr\r\n class=\"ard-table__body-row\"\r\n [class.ard-table__selected-row]=\"row.selected()\"\r\n [class.ard-table__highlighted-row]=\"row.highlighted()\"\r\n [class.ard-table__disabled-row]=\"row.disabled()\"\r\n [class.ard-table__bold-row]=\"row.bold()\"\r\n (click)=\"onRowClick(row, $event)\"\r\n (mouseover)=\"onRowMouseOver($event)\"\r\n (mouseenter)=\"onRowMouseEnter(row.index(), $event)\"\r\n (mouseleave)=\"onRowMouseLeave(row.index(), $event)\"\r\n >\r\n @for (cell of row.data(); track $index) {\r\n <ng-template #cellTmp>\r\n <div\r\n class=\"ard-table__cell-container\"\r\n [style]=\"getCellStyle(row.dataColumns()[$index])\"\r\n >\r\n @if (isCellCheckbox(cell)) {\r\n <ng-template\r\n #defaultCheckboxTemplate\r\n let-isChecked\r\n let-onChange=\"onChange\"\r\n let-disabled=\"disabled\"\r\n >\r\n <ard-checkbox\r\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\r\n [selected]=\"isChecked\"\r\n [color]=\"color()\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChange()\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"checkboxTemplate() ?? defaultCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"getCheckboxContext(row.index())\"\r\n />\r\n } @else {\r\n <ng-template\r\n #defaultCellTemplate\r\n let-content\r\n >\r\n {{ content }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"getCellTemplate(row.dataColumns()[$index].template) ?? defaultCellTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: cell }\"\r\n />\r\n }\r\n </div>\r\n </ng-template>\r\n @if (!row.dataColumns()[$index].isRowHeader) {\r\n <td\r\n class=\"ard-table__body-cell\"\r\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\r\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\r\n </td>\r\n } @else {\r\n <th\r\n class=\"ard-table__body-cell ard-table__row-header\"\r\n scope=\"row\"\r\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\r\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\r\n </th>\r\n } }\r\n </tr>\r\n } }\r\n </tbody>\r\n @if (canDisplayPagination()) {\r\n <tfoot class=\"ard-table__foot\">\r\n <tr class=\"ard-table__foot-row\">\r\n <td\r\n class=\"ard-table__pagination-cell\"\r\n colspan=\"9999\"\r\n >\r\n <ard-table-pagination\r\n [options]=\"paginationOptions()\"\r\n [totalItems]=\"totalItems()!\"\r\n [disabled]=\"paginationDisabled()\"\r\n [(itemsPerPage)]=\"itemsPerPage\"\r\n [(page)]=\"page\"\r\n [align]=\"paginationAlign()\"\r\n [isLoading]=\"isLoading()\"\r\n [itemsPerPageText]=\"itemsPerPageText()\"\r\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\r\n />\r\n </td>\r\n </tr>\r\n </tfoot>\r\n }\r\n</table>\r\n", styles: [".ard-table__cell-container,.ard-table__header-template-container{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumCheckboxComponent, selector: "ard-checkbox", inputs: ["wrapperClasses", "htmlId", "color", "unselectedColor", "state"], outputs: ["stateChange"] }, { kind: "component", type: i3.ArdiumTablePaginationComponent, selector: "ard-table-pagination", inputs: ["totalItems", "options", "itemsPerPage", "page", "color", "align", "compact", "useFirstLastButtons", "isLoading", "itemsPerPageText", "currentItemsFormatFn"], outputs: ["itemsPerPageChange", "pageChange"] }, { kind: "component", type: i4.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
339
339
|
}
|
|
340
340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableComponent, decorators: [{
|
|
341
341
|
type: Component,
|
|
342
|
-
args: [{ selector: 'ard-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\n class=\"ard-table\"\n [ngClass]=\"ngClasses()\"\n>\n @if (caption()) {\n
|
|
342
|
+
args: [{ selector: 'ard-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n class=\"ard-table\"\r\n [ngClass]=\"ngClasses()\"\r\n>\r\n @if (caption()) {\r\n <caption class=\"ard-table__caption\">\r\n <div class=\"ard-table__caption-container\">\r\n <ng-template\r\n #defaultCaptionTemplate\r\n let-captionText\r\n >\r\n {{ captionText }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"captionTemplate() ?? defaultCaptionTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: caption() }\"\r\n />\r\n </div>\r\n </caption>\r\n }\r\n <thead class=\"ard-table__header\">\r\n @for (row of headerCells(); track $index) {\r\n <tr class=\"ard-table__header-row\">\r\n @for (cell of row; track $index) {\r\n <th\r\n class=\"ard-table__header-cell\"\r\n [ngClass]=\"cell.cell().cellClass\"\r\n [class.ard-table__checkbox-cell]=\"isHeaderCellCheckbox(cell)\"\r\n [attr.colspan]=\"cell.colspan()\"\r\n [attr.rowspan]=\"cell.rowspan()\"\r\n [scope]=\"cell.colspan() > 1 ? 'colgroup' : 'col'\"\r\n >\r\n <div\r\n class=\"ard-table__cell-container\"\r\n [class.ard-table__sortable]=\"isHeaderCellSortable(cell)\"\r\n [style.width]=\"cell.width\"\r\n [style.minWidth]=\"cell.minWidth\"\r\n >\r\n @if (isHeaderCellCheckbox(cell)) {\r\n <ng-template\r\n #defaultHeaderCheckboxTemplate\r\n let-state\r\n let-onChange=\"onChange\"\r\n >\r\n <ard-checkbox\r\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\r\n [state]=\"state\"\r\n [color]=\"getHeaderCheckboxColor()\"\r\n unselectedColor=\"currentColor\"\r\n (change)=\"onChange()\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"headerCheckboxTemplate() ?? defaultHeaderCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"getHeaderCheckboxContext()\"\r\n />\r\n } @else {\r\n <ng-template\r\n #defaultHeaderCellTemplate\r\n let-content\r\n let-sortable=\"sortable\"\r\n let-sortType=\"sortType\"\r\n let-onTriggerSort=\"onTriggerSort\"\r\n let-onTriggerResetSort=\"onTriggerResetSort\"\r\n >\r\n <div\r\n class=\"ard-table__header-template-container\"\r\n [class.ard-sortable]=\"sortable\"\r\n [class.ard-nonsortable]=\"!sortable\"\r\n >\r\n @if (sortable) {\r\n <button\r\n type=\"button\"\r\n class=\"ard-table__header-content-container\"\r\n (click)=\"onTriggerSort($event)\"\r\n [tabindex]=\"tabIndex()\"\r\n (keydown.Esc)=\"onTriggerResetSort($event)\"\r\n >\r\n <div class=\"ard-table__header-content\">{{ content }}</div>\r\n @if (sortType !== null) {\r\n <div class=\"ard-table__header-sort-icon\">\r\n @if (sortType === 'ascending') {\r\n <ard-icon>south</ard-icon>\r\n } @else if (sortType === 'descending') {\r\n <ard-icon>north</ard-icon>\r\n }\r\n </div>\r\n }\r\n </button>\r\n } @else {\r\n <div class=\"ard-table__header-content-container\">\r\n <div class=\"ard-table__header-content\">{{ content }}</div>\r\n </div>\r\n }\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"getHeaderTemplate(cell.cell().header) ?? defaultHeaderCellTemplate\"\r\n [ngTemplateOutletContext]=\"getHeaderContext(cell.cell(), $index)\"\r\n />\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n }\r\n </thead>\r\n <tbody class=\"ard-table__body\">\r\n @for (row of dataRows(); track $index) { @if (row.isEmpty()) {\r\n <tr class=\"ard-table__empty-row\">\r\n <td\r\n class=\"ard-table__empty-cell\"\r\n colspan=\"9999\"\r\n ></td>\r\n </tr>\r\n } @else {\r\n <tr\r\n class=\"ard-table__body-row\"\r\n [class.ard-table__selected-row]=\"row.selected()\"\r\n [class.ard-table__highlighted-row]=\"row.highlighted()\"\r\n [class.ard-table__disabled-row]=\"row.disabled()\"\r\n [class.ard-table__bold-row]=\"row.bold()\"\r\n (click)=\"onRowClick(row, $event)\"\r\n (mouseover)=\"onRowMouseOver($event)\"\r\n (mouseenter)=\"onRowMouseEnter(row.index(), $event)\"\r\n (mouseleave)=\"onRowMouseLeave(row.index(), $event)\"\r\n >\r\n @for (cell of row.data(); track $index) {\r\n <ng-template #cellTmp>\r\n <div\r\n class=\"ard-table__cell-container\"\r\n [style]=\"getCellStyle(row.dataColumns()[$index])\"\r\n >\r\n @if (isCellCheckbox(cell)) {\r\n <ng-template\r\n #defaultCheckboxTemplate\r\n let-isChecked\r\n let-onChange=\"onChange\"\r\n let-disabled=\"disabled\"\r\n >\r\n <ard-checkbox\r\n [tabIndex]=\"isLoading() ? -1 : tabIndex()\"\r\n [selected]=\"isChecked\"\r\n [color]=\"color()\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChange()\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"checkboxTemplate() ?? defaultCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"getCheckboxContext(row.index())\"\r\n />\r\n } @else {\r\n <ng-template\r\n #defaultCellTemplate\r\n let-content\r\n >\r\n {{ content }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"getCellTemplate(row.dataColumns()[$index].template) ?? defaultCellTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: cell }\"\r\n />\r\n }\r\n </div>\r\n </ng-template>\r\n @if (!row.dataColumns()[$index].isRowHeader) {\r\n <td\r\n class=\"ard-table__body-cell\"\r\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\r\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\r\n </td>\r\n } @else {\r\n <th\r\n class=\"ard-table__body-cell ard-table__row-header\"\r\n scope=\"row\"\r\n [ngClass]=\"row.dataColumns()[$index].cellClass\"\r\n [class.ard-table__checkbox-cell]=\"isCellCheckbox(cell)\"\r\n >\r\n <ng-template [ngTemplateOutlet]=\"cellTmp\"></ng-template>\r\n </th>\r\n } }\r\n </tr>\r\n } }\r\n </tbody>\r\n @if (canDisplayPagination()) {\r\n <tfoot class=\"ard-table__foot\">\r\n <tr class=\"ard-table__foot-row\">\r\n <td\r\n class=\"ard-table__pagination-cell\"\r\n colspan=\"9999\"\r\n >\r\n <ard-table-pagination\r\n [options]=\"paginationOptions()\"\r\n [totalItems]=\"totalItems()!\"\r\n [disabled]=\"paginationDisabled()\"\r\n [(itemsPerPage)]=\"itemsPerPage\"\r\n [(page)]=\"page\"\r\n [align]=\"paginationAlign()\"\r\n [isLoading]=\"isLoading()\"\r\n [itemsPerPageText]=\"itemsPerPageText()\"\r\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\r\n />\r\n </td>\r\n </tr>\r\n </tfoot>\r\n }\r\n</table>\r\n", styles: [".ard-table__cell-container,.ard-table__header-template-container{width:100%;height:100%}\n"] }]
|
|
343
343
|
}], propDecorators: { columns: [{
|
|
344
344
|
type: Input
|
|
345
345
|
}], data: [{
|
|
346
346
|
type: Input
|
|
347
347
|
}] } });
|
|
348
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQXdCLGVBQWUsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RSxPQUFPLEVBQUUsV0FBVyxFQUFjLGdCQUFnQixFQUF3QixNQUFNLHNCQUFzQixDQUFDO0FBQ3ZHLE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLDBDQUEwQyxFQUMxQyw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0wsY0FBYyxFQUNkLGVBQWUsRUFNZix1QkFBdUIsRUFHdkIsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFB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Z0JBTUYsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbiAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5pbXBvcnQgeyBpc0RlZmluZWQsIGlzTnVtYmVyIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuaW1wb3J0IHsgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9faW50ZXJuYWwvZm9jdXNhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveFN0YXRlIH0gZnJvbSAnLi4vY2hlY2tib3gvY2hlY2tib3gudHlwZXMnO1xuaW1wb3J0IHsgQ3VycmVudEl0ZW1zRm9ybWF0Rm4sIFBhZ2luYXRpb25BbGlnbiB9IGZyb20gJy4uL3RhYmxlLXBhZ2luYXRpb24vdGFibGUtcGFnaW5hdGlvbi50eXBlcyc7XG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciwgU2ltcGxlQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi90eXBlcy91dGlsaXR5LnR5cGVzJztcbmltcG9ydCB7IEFyZFRhYmxlUm93LCBIZWFkZXJDZWxsLCBUYWJsZUl0ZW1TdG9yYWdlLCBUYWJsZUl0ZW1TdG9yYWdlSG9zdCB9IGZyb20gJy4vdGFibGUtaXRlbS1zdG9yYWdlJztcbmltcG9ydCB7XG4gIEFyZGl1bVRhYmxlQ2FwdGlvblRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRpdW1UYWJsZUNoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZGl1bVRhYmxlSGVhZGVyQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkaXVtVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi90YWJsZS5kaXJlY3RpdmVzJztcbmltcG9ydCB7XG4gIFRhYmxlQWxpZ25UeXBlLFxuICBUYWJsZUFwcGVhcmFuY2UsXG4gIFRhYmxlQ2FwdGlvbkNvbnRleHQsXG4gIFRhYmxlQ2hlY2tib3hDb250ZXh0LFxuICBUYWJsZURhdGFDb2x1bW4sXG4gIFRhYmxlSGVhZGVyQ2hlY2tib3hDb250ZXh0LFxuICBUYWJsZUhlYWRlckNvbnRleHQsXG4gIFRhYmxlUGFnaW5hdGlvblN0cmF0ZWd5LFxuICBUYWJsZVN1YmhlYWRlcixcbiAgVGFibGVTdWJoZWFkZXJDb250ZXh0LFxuICBUYWJsZVZhcmlhbnQsXG59IGZyb20gJy4vdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgaXNUYWJsZVN1YmhlYWRlciB9IGZyb20gJy4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmQtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtVGFibGVDb21wb25lbnQgZXh0ZW5kcyBfRm9jdXNhYmxlQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIFRhYmxlSXRlbVN0b3JhZ2VIb3N0LCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IF9pdGVtU3RvcmFnZSA9IG5ldyBUYWJsZUl0ZW1TdG9yYWdlKHRoaXMpO1xuXG4gIHJlYWRvbmx5IERFRkFVTFRTID0ge1xuICAgIHJvd0Rpc2FibGVkRnJvbTogJ2Rpc2FibGVkJyxcbiAgICByb3dCb2xkRnJvbTogJ2JvbGQnLFxuICB9O1xuXG4gIHJlYWRvbmx5IHJvd0Rpc2FibGVkRnJvbSA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHJvd0JvbGRGcm9tID0gaW5wdXQ8TnVsbGFibGU8c3RyaW5nPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaW52ZXJ0Um93RGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IGludmVydFJvd0JvbGQgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0YWJsZVJvd3MgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IG1heFNlbGVjdGVkSXRlbXMgPSBpbnB1dDxOdWxsYWJsZTxudW1iZXI+LCBhbnk+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdW5kZWZpbmVkKSB9KTtcblxuICByZWFkb25seSBjbGlja2FibGVSb3dzID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IGNhcHRpb24gPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcbiAgcmVhZG9ubHkgbG9hZGluZ1Byb2dyZXNzID0gaW5wdXQ8bnVtYmVyLCBhbnk+KDAsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIDApIH0pOyAvL1RPRE8gYWRkIHByb2dyZXNzIGJhclxuXG4gIC8vISBhcHBlYXJhbmNlXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxUYWJsZUFwcGVhcmFuY2U+KFRhYmxlQXBwZWFyYW5jZS5TdHJvbmcpO1xuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8VGFibGVWYXJpYW50PihUYWJsZVZhcmlhbnQuUm91bmRlZCk7XG4gIHJlYWRvbmx5IGNvbG9yID0gaW5wdXQ8Q29tcG9uZW50Q29sb3I+KENvbXBvbmVudENvbG9yLlByaW1hcnkpO1xuICByZWFkb25seSBhbGlnbiA9IGlucHV0PFRhYmxlQWxpZ25UeXBlPihUYWJsZUFsaWduVHlwZS5DZW50ZXJMZWZ0KTtcbiAgcmVhZG9ubHkgaGVhZGVyQWxpZ24gPSBpbnB1dDxUYWJsZUFsaWduVHlwZT4oVGFibGVBbGlnblR5cGUuQ2VudGVyTGVmdCk7XG5cbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcbiAgcmVhZG9ubHkgemVicmEgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHN0aWNreUhlYWRlciA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcblxuICByZWFkb25seSBuZ0NsYXNzZXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIFtcbiAgICAgIGBhcmQtYXBwZWFyYW5jZS0ke3RoaXMuYXBwZWFyYW5jZSgpfWAsXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxuICAgICAgYGFyZC1jb2xvci0ke3RoaXMuY29sb3IoKX1gLFxuICAgICAgYGFyZC1hbGlnbi0ke3RoaXMuYWxpZ24oKX1gLFxuICAgICAgYGFyZC1oZWFkZXItYWxpZ24tJHt0aGlzLmhlYWRlckFsaWduKCl9YCxcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxuICAgICAgdGhpcy56ZWJyYSgpID8gJ2FyZC16ZWJyYS10YWJsZScgOiAnJyxcbiAgICAgIHRoaXMuc2VsZWN0YWJsZVJvd3MoKSA/ICdhcmQtc2VsZWN0YWJsZS1yb3dzJyA6ICcnLFxuICAgICAgdGhpcy5zdGlja3lIZWFkZXIoKSA/ICdhcmQtc3RpY2t5LWhlYWRlcicgOiAnJyxcbiAgICAgIHRoaXMuaXNMb2FkaW5nKCkgPyAnYXJkLXRhYmxlLWxvYWRpbmcnIDogJycsXG4gICAgXS5qb2luKCcgJylcbiAgKTtcblxuICAvLyEgcGFnaW5hdGlvblxuICByZWFkb25seSBwYWdpbmF0ZWQgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHBhZ2luYXRpb25TdHJhdGVneSA9IGlucHV0PFRhYmxlUGFnaW5hdGlvblN0cmF0ZWd5PihUYWJsZVBhZ2luYXRpb25TdHJhdGVneS5Ob29wKTtcbiAgcmVhZG9ubHkgcGFnaW5hdGlvbk9wdGlvbnMgPSBpbnB1dDxcbiAgICBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10sXG4gICAgbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdXG4gID4oWzEwLCAyNSwgNTBdLCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IHtcbiAgICAgIHJldHVybiB2LmZpbHRlcihlbCA9PiB7XG4gICAgICAgIGNvbnN0IG9wdCA9IGlzTnVtYmVyKGVsKSA/IGVsIDogZWwudmFsdWU7XG4gICAgICAgIGlmIChvcHQgPD0gMCB8fCBvcHQgJSAxICE9PSAwKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYEFSRC1ORjUwNTI6IGVhY2ggaXRlbSBvZiA8YXJkLXRhYmxlPidzIFtwYWdpbmF0aW9uT3B0aW9uc10gbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIFRoZSBcIiR7b3B0fVwiIG9wdGlvbiB3aWxsIGJlIGlnbm9yZWQuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSkgYXMgbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdO1xuICAgIH0sXG4gIH0pO1xuICByZWFkb25seSB0b3RhbEl0ZW1zID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIHVuZGVmaW5lZCkgfSk7XG4gIHJlYWRvbmx5IHBhZ2luYXRpb25Db2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPihDb21wb25lbnRDb2xvci5Ob25lKTtcbiAgcmVhZG9ubHkgcGFnaW5hdGlvbkFsaWduID0gaW5wdXQ8UGFnaW5hdGlvbkFsaWduPihQYWdpbmF0aW9uQWxpZ24uU3BsaXQpO1xuICByZWFkb25seSBpdGVtc1BlclBhZ2VUZXh0ID0gaW5wdXQ8c3RyaW5nPignSXRlbXMgcGVyIHBhZ2U6Jyk7XG4gIHJlYWRvbmx5IGN1cnJlbnRJdGVtc0Zvcm1hdEZuID0gaW5wdXQ8Q3VycmVudEl0ZW1zRm9ybWF0Rm4+KFxuICAgICh7IGN1cnJlbnRJdGVtc0ZpcnN0LCBjdXJyZW50SXRlbXNMYXN0LCB0b3RhbEl0ZW1zIH0pID0+IGAke2N1cnJlbnRJdGVtc0ZpcnN0fSDigJMgJHtjdXJyZW50SXRlbXNMYXN0fSBvZiAke3RvdGFsSXRlbXN9YFxuICApO1xuXG4gIHJlYWRvbmx5IHBhZ2VGaWxsUmVtYWluaW5nID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBwYWdpbmF0aW9uRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHVzZUZpcnN0TGFzdEJ1dHRvbnMgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlID0gbW9kZWw8bnVtYmVyPig1MCk7XG4gIHJlYWRvbmx5IHBhZ2UgPSBtb2RlbDxudW1iZXI+KDEpO1xuXG4gIHJlYWRvbmx5IGlzRGVmaW5lZFRvdGFsSXRlbXMgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLnBhZ2luYXRpb25TdHJhdGVneSgpICE9PSBUYWJsZVBhZ2luYXRpb25TdHJhdGVneS5Ob29wIHx8IGlzRGVmaW5lZCh0aGlzLnRvdGFsSXRlbXMoKSlcbiAgKTtcbiAgcmVhZG9ubHkgY2FuRGlzcGxheVBhZ2luYXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBhZ2luYXRlZCgpICYmIHRoaXMuaXNEZWZpbmVkVG90YWxJdGVtcygpKTtcblxuICAvLyEgcHJpbnQgZXJyb3JzIGlmIG5lZWRlZFxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zUGVyUGFnZSddKSB7XG4gICAgICBjb25zdCBpcHAgPSBjaGFuZ2VzWydpdGVtc1BlclBhZ2UnXS5jdXJyZW50VmFsdWU7XG4gICAgICBjb25zdCBvcHRpb25zID1cbiAgICAgICAgKGNoYW5nZXNbJ3BhZ2luYXRpb25PcHRpb25zJ10/LmN1cnJlbnRWYWx1ZSBhcyBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10pIHx8XG4gICAgICAgICh0aGlzLnBhZ2luYXRpb25PcHRpb25zKCkgYXMgbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdKTtcbiAgICAgIGlmICghb3B0aW9ucy5maW5kKHYgPT4gKHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgPT09IGlwcCA6IHYudmFsdWUgPT09IGlwcCkpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEFSRC1ORjUwNTE6IHZhbHVlIG9mIFwiJHtpcHB9XCIgaW4gPGFyZC10YWJsZT4ncyBbaXRlbXNQZXJQYWdlXSBkb2VzIG5vdCBhcHBlYXIgaW4gW3BhZ2luYXRpb25PcHRpb25zXSBhcnJheSBbJHtvcHRpb25zXG4gICAgICAgICAgICAgIC5tYXAodiA9PiAodHlwZW9mIHYgPT09ICdudW1iZXInID8gdiA6IHYudmFsdWUpKVxuICAgICAgICAgICAgICAuam9pbignLCAnKX1dYFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3BhZ2UnXSkge1xuICAgICAgY29uc3QgcGFnZSA9IGNoYW5nZXNbJ3BhZ2UnXS5jdXJyZW50VmFsdWUgYXMgbnVtYmVyO1xuICAgICAgaWYgKHBhZ2UgPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtRlQ1MDUzYTogPGFyZC10YWJsZT4ncyBbcGFnZV0gdXNlcyAxLWluZGV4ZWQgbnVtYmVyaW5nIHN5c3RlbS4gVGhlIHZhbHVlIDAgaXMgbm90IGFjY2VwdGVkLmApO1xuICAgICAgfSBlbHNlIGlmIChwYWdlIDwgMCB8fCBwYWdlICUgMSAhPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDUwNTNiOiB2YWx1ZSBvZiA8YXJkLXRhYmxlPidzIFtwYWdlXSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgZ290IFwiJHtwYWdlfVwiLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vISBpdGVtIHN0b3JhZ2UgZ2V0dGVyc1xuICByZWFkb25seSBoZWFkZXJDZWxscyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2l0ZW1TdG9yYWdlLmhlYWRlckNlbGxzKCkpO1xuXG4gIHJlYWRvbmx5IGRhdGFSb3dzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zOiBBcmRUYWJsZVJvd1tdID0gdGhpcy5faXRlbVN0b3JhZ2UucGFnaW5hdGVkSXRlbXMoKTtcblxuICAgIGlmICghdGhpcy5wYWdlRmlsbFJlbWFpbmluZygpKSByZXR1cm4gaXRlbXM7XG4gICAgaWYgKCF0aGlzLmlzRGVmaW5lZFRvdGFsSXRlbXMoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUkQtRlQ1MDUwOiA8YXJkLXRhYmxlPiByZXF1aXJlcyBbdG90YWxJdGVtc10gdG8gYmUgZGVmaW5lZCB3aGVuIHVzaW5nIFwic2xpY2VcIiBwYWdpbmF0aW9uIHN0cmF0ZWd5LicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wYWdlKCkgPT09IDEpIHJldHVybiBpdGVtcztcblxuICAgIGNvbnN0IGlwcCA9IHRoaXMuaXRlbXNQZXJQYWdlKCk7XG4gICAgZm9yIChsZXQgaSA9IGl0ZW1zLmxlbmd0aDsgaSA8IGlwcDsgaSsrKSB7XG4gICAgICBpdGVtcy5wdXNoKEFyZFRhYmxlUm93Lm5ld0VtcHR5Q2VsbChpKSk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfSk7XG5cbiAgLy8hIGNvbHVtbnMvZGF0YSBzZXR0ZXJzXG4gIEBJbnB1dCgpXG4gIHNldCBjb2x1bW5zKHY6IChUYWJsZURhdGFDb2x1bW4gfCBUYWJsZVN1YmhlYWRlcilbXSkge1xuICAgIHRoaXMuX2l0ZW1TdG9yYWdlLnNldENvbHVtbnModik7XG4gIH1cbiAgcHJpdmF0ZSBfZGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KClcbiAgc2V0IGRhdGEodjogYW55W10pIHtcbiAgICB0aGlzLl9kYXRhID0gdjtcbiAgICB0aGlzLl9pdGVtU3RvcmFnZS5zZXRJdGVtcyh2KTtcbiAgfVxuICBnZXQgZGF0YSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICByZWFkb25seSB0cmVhdERhdGFTb3VyY2VBc1N0cmluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcbiAgcmVhZG9ubHkgX3N1cHByZXNzRXJyb3JzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8vISB0ZW1wbGF0ZXNcbiAgcmVhZG9ubHkgY2hlY2tib3hUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZDxBcmRpdW1UYWJsZUNoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUsIFRlbXBsYXRlUmVmPFRhYmxlQ2hlY2tib3hDb250ZXh0Pj4oXG4gICAgQXJkaXVtVGFibGVDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIHtcbiAgICAgIHJlYWQ6IFRlbXBsYXRlUmVmPFRhYmxlQ2hlY2tib3hDb250ZXh0PixcbiAgICB9XG4gICk7XG4gIHJlYWRvbmx5IGhlYWRlckNoZWNrYm94VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8XG4gICAgQXJkaXVtVGFibGVIZWFkZXJDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIFRlbXBsYXRlUmVmPFRhYmxlSGVhZGVyQ2hlY2tib3hDb250ZXh0PlxuICA+KEFyZGl1bVRhYmxlSGVhZGVyQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmPFRhYmxlSGVhZGVyQ2hlY2tib3hDb250ZXh0PixcbiAgfSk7XG4gIHJlYWRvbmx5IGNhcHRpb25UZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZDxBcmRpdW1UYWJsZUNhcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSwgVGVtcGxhdGVSZWY8VGFibGVDYXB0aW9uQ29udGV4dD4+KFxuICAgIEFyZGl1bVRhYmxlQ2FwdGlvblRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIHtcbiAgICAgIHJlYWQ6IFRlbXBsYXRlUmVmPFRhYmxlQ2FwdGlvbkNvbnRleHQ+LFxuICAgIH1cbiAgKTtcblxuICBwcml2YXRlIF9pdGVtVGVtcGxhdGVzOiBSZWNvcmQ8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PiA9IHt9O1xuICByZWFkb25seSB0ZW1wbGF0ZUNoaWxkcmVuID0gY29udGVudENoaWxkcmVuPEFyZGl1bVRhYmxlVGVtcGxhdGVEaXJlY3RpdmU+KEFyZGl1bVRhYmxlVGVtcGxhdGVEaXJlY3RpdmUpO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSBBcnJheS5mcm9tKHRoaXMudGVtcGxhdGVDaGlsZHJlbigpKTtcbiAgICBmb3IgKGNvbnN0IGluc3RhbmNlIG9mIHRlbXBsYXRlcykge1xuICAgICAgY29uc3QgbmFtZSA9IGluc3RhbmNlLm5hbWUoKTtcbiAgICAgIGlmICghbmFtZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKG5ldyBFcnJvcignQVJELUZUNTA1NDogW2FyZC10YWJsZS10bXBdIHJlcXVpcmVzIGEgdmFsdWUgdG8gYmUgc3BlY2lmaWVkLicpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aGlzLl9pdGVtVGVtcGxhdGVzW25hbWVdID0gaW5zdGFuY2UudGVtcGxhdGU7XG4gICAgfVxuICB9XG5cbiAgZ2V0SGVhZGVyVGVtcGxhdGUodG1wOiBzdHJpbmcgfCB7IHRlbXBsYXRlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IH0pOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHRtcCA9PT0gJ3N0cmluZycpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2VsbFRlbXBsYXRlKHRtcC50ZW1wbGF0ZSk7XG4gIH1cbiAgZ2V0SGVhZGVyQ2hlY2tib3hDb2xvcigpOiBTaW1wbGVDb21wb25lbnRDb2xvciB7XG4gICAgaWYgKHRoaXMuYXBwZWFyYW5jZSgpID09PSBUYWJsZUFwcGVhcmFuY2UuU3Ryb25nKSByZXR1cm4gU2ltcGxlQ29tcG9uZW50Q29sb3IuQ3VycmVudENvbG9yO1xuICAgIHJldHVybiB0aGlzLmNvbG9yKCk7XG4gIH1cbiAgZ2V0Q2VsbFRlbXBsYXRlKHRtcD86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAvL3JldHVybiB1bmRlZmluZWRcbiAgICBpZiAoIXRtcCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAvL3JldHVybiB0ZW1wbGF0ZSwgaWYgaXQgaXMgb25lXG4gICAgaWYgKHRtcCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSByZXR1cm4gdG1wO1xuICAgIC8vY2hlY2sgaWYgdGhlIG5hbWUgY2FuIGJlIGZvdW5kXG4gICAgaWYgKCEodG1wIGluIHRoaXMuX2l0ZW1UZW1wbGF0ZXMpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG5ldyBFcnJvcihgQVJELU5GNTA1NTogPGFyZC10YWJsZT4gZXJyb3I6IGNhbm5vdCBmaW5kIHRlbXBsYXRlIG5hbWVkIFwiJHt0bXB9XCJgKSk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvL3JldHVybiB0aGUgdGVtcGxhdGVcbiAgICByZXR1cm4gdGhpcy5faXRlbVRlbXBsYXRlc1t0bXBdO1xuICB9XG4gIGdldENlbGxTdHlsZShjZWxsOiBUYWJsZURhdGFDb2x1bW4gfCBUYWJsZVN1YmhlYWRlcik6IHN0cmluZyB7XG4gICAgaWYgKGlzVGFibGVTdWJoZWFkZXIoY2VsbCkpIHJldHVybiAnd2lkdGg6dW5zZXQ7bWluLXdpZHRoOnVuc2V0JztcbiAgICBjb25zdCB3aWR0aCA9IHR5cGVvZiBjZWxsLndpZHRoID09PSAnbnVtYmVyJyA/IGAke2NlbGwud2lkdGh9cHhgIDogY2VsbC53aWR0aDtcbiAgICBjb25zdCBtaW5XaWR0aCA9IHR5cGVvZiBjZWxsLm1pbldpZHRoID09PSAnbnVtYmVyJyA/IGAke2NlbGwubWluV2lkdGh9cHhgIDogY2VsbC5taW5XaWR0aDtcbiAgICByZXR1cm4gW2B3aWR0aDoke3dpZHRoID8/ICd1bnNldCd9YCwgYG1pbi13aWR0aDoke21pbldpZHRoID8/ICd1bnNldCd9YF0uam9pbignOycpO1xuICB9XG5cbiAgLy8hIGNsaWNrICYgaG92ZXIgaGFuZGxlcnNcbiAgb25DaGVja2JveENsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVJvd1NlbGVjdGVkKGluZGV4KTtcbiAgfVxuICBvblJvd0NsaWNrKHJvdzogQXJkVGFibGVSb3csIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xpY2thYmxlUm93cygpKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuY2xpY2tSb3dFdmVudC5lbWl0KHJvdy5pdGVtRGF0YSgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZVJvd3MoKSkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLnRvZ2dsZVJvd1NlbGVjdGVkKHJvdy5pbmRleCgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgb25Sb3dNb3VzZU92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuICBvblJvd01vdXNlRW50ZXIoaW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0YWJsZVJvd3MoKSAmJiAhdGhpcy5jbGlja2FibGVSb3dzKCkpIHJldHVybjtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLl9pdGVtU3RvcmFnZS5oaWdobGlnaHRTaW5nbGVJdGVtKGluZGV4KTtcbiAgfVxuICBvblJvd01vdXNlTGVhdmUoaW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0YWJsZVJvd3MoKSAmJiAhdGhpcy5jbGlja2FibGVSb3dzKCkpIHJldHVybjtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLl9pdGVtU3RvcmFnZS51bmhpZ2hsaWdodEl0ZW0oaW5kZXgpO1xuICB9XG5cbiAgLy8hIHNlbGVjdCBoYW5kbGVyc1xuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgc2VsZWN0aW9uIHN0YXRlIG9mIGEgcm93IGluIHRoZSB0YWJsZS5cbiAgICogQHBhcmFtIHNlbGVjdGVkIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIGlmIHRoZSByb3cgaXMgY3VycmVudGx5IHNlbGVjdGVkLlxuICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSByb3cgaW4gdGhlIHRhYmxlLlxuICAgKi9cbiAgdG9nZ2xlUm93U2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pdGVtU3RvcmFnZS5pc0l0ZW1TZWxlY3RlZChpbmRleCkpIHtcbiAgICAgIGNvbnN0IHVuc2VsZWN0ZWQgPSB0aGlzLl9pdGVtU3RvcmFnZS51bnNlbGVjdEl0ZW0oaW5kZXgpO1xuICAgICAgaWYgKHVuc2VsZWN0ZWQubGVuZ3RoKSB0aGlzLnVuc2VsZWN0Um93RXZlbnQuZW1pdCh1bnNlbGVjdGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgW3NlbGVjdGVkLCBmYWlsZWRdID0gdGhpcy5faXRlbVN0b3JhZ2Uuc2VsZWN0SXRlbShpbmRleCk7XG4gICAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoKSB0aGlzLnNlbGVjdFJvd0V2ZW50LmVtaXQoc2VsZWN0ZWQpO1xuICAgICAgaWYgKGZhaWxlZC5sZW5ndGgpIHRoaXMuZmFpbGVkU2VsZWN0Um93RXZlbnQuZW1pdChmYWlsZWQpO1xuICAgIH1cbiAgICB0aGlzLl9lbWl0U2VsZWN0KCk7XG4gIH1cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBhbGwgcm93cyBpbiB0aGUgdGFibGUuXG4gICAqL1xuICB0b2dnbGVBbGxSb3dzU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2l0ZW1TdG9yYWdlLmFyZUFsbFNlbGVjdGVkKCkpIHtcbiAgICAgIGNvbnN0IHVuc2VsZWN0ZWQgPSB0aGlzLl9pdGVtU3RvcmFnZS51bnNlbGVjdEFsbCgpO1xuICAgICAgaWYgKHVuc2VsZWN0ZWQubGVuZ3RoKSB0aGlzLnVuc2VsZWN0Um93RXZlbnQuZW1pdCh1bnNlbGVjdGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgW3NlbGVjdGVkLCBmYWlsZWRdID0gdGhpcy5faXRlbVN0b3JhZ2Uuc2VsZWN0QWxsKCk7XG4gICAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoKSB0aGlzLnNlbGVjdFJvd0V2ZW50LmVtaXQoc2VsZWN0ZWQpO1xuICAgICAgaWYgKGZhaWxlZC5sZW5ndGgpIHRoaXMuZmFpbGVkU2VsZWN0Um93RXZlbnQuZW1pdChmYWlsZWQpO1xuICAgIH1cbiAgICB0aGlzLl9lbWl0U2VsZWN0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfZW1pdFNlbGVjdCgpOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy5faXRlbVN0b3JhZ2UudmFsdWUoKTtcbiAgICB0aGlzLnNlbGVjdGVkUm93c0NoYW5nZUV2ZW50LmVtaXQodik7XG4gIH1cbiAgaXNDZWxsQ2hlY2tib3goY2VsbDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBjZWxsID09PSAnb2JqZWN0JyAmJiAnX2FyZENoZWNrYm94JyBpbiBjZWxsICYmICdpbmRleCcgaW4gY2VsbDtcbiAgfVxuICBpc0hlYWRlckNlbGxDaGVja2JveChjZWxsOiBIZWFkZXJDZWxsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGF0YUNlbGwgPSBjZWxsLmNlbGwoKTtcbiAgICBpZiAoaXNUYWJsZVN1YmhlYWRlcihkYXRhQ2VsbCkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodHlwZW9mIGRhdGFDZWxsLmRhdGFTb3VyY2UgPT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGRhdGFDZWxsLmRhdGFTb3VyY2UudHlwZSA9PT0gJ2NoZWNrYm94JztcbiAgfVxuICBpc0hlYWRlckNlbGxTb3J0YWJsZShjZWxsOiBIZWFkZXJDZWxsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGF0YUNlbGwgPSBjZWxsLmNlbGwoKTtcbiAgICBpZiAoaXNUYWJsZVN1YmhlYWRlcihkYXRhQ2VsbCkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZGF0YUNlbGwuc29ydGFibGUgPz8gZmFsc2U7XG4gIH1cblxuICByZWFkb25seSBzZWxlY3RlZFJvd3NDaGFuZ2VFdmVudCA9IG91dHB1dDxhbnlbXT4oeyBhbGlhczogJ3NlbGVjdGVkUm93c0NoYW5nZScgfSk7XG4gIHJlYWRvbmx5IGZhaWxlZFNlbGVjdFJvd0V2ZW50ID0gb3V0cHV0PGFueVtdPih7IGFsaWFzOiAnZmFpbGVkU2VsZWN0Um93JyB9KTtcbiAgcmVhZG9ubHkgc2VsZWN0Um93RXZlbnQgPSBvdXRwdXQ8YW55W10+KHsgYWxpYXM6ICdzZWxlY3RSb3cnIH0pO1xuICByZWFkb25seSB1bnNlbGVjdFJvd0V2ZW50ID0gb3V0cHV0PGFueVtdPih7IGFsaWFzOiAndW5zZWxlY3RSb3cnIH0pO1xuICByZWFkb25seSBjbGlja1Jvd0V2ZW50ID0gb3V0cHV0PGFueT4oeyBhbGlhczogJ2NsaWNrUm93JyB9KTtcblxuICAvLyEgY29udGV4dHNcbiAgZ2V0SGVhZGVyQ29udGV4dChjZWxsOiBUYWJsZURhdGFDb2x1bW4sIGluZGV4OiBudW1iZXIpOiBUYWJsZUhlYWRlckNvbnRleHQgfCBudWxsO1xuICBnZXRIZWFkZXJDb250ZXh0KGNlbGw6IFRhYmxlU3ViaGVhZGVyLCBpbmRleDogbnVtYmVyKTogVGFibGVTdWJoZWFkZXJDb250ZXh0IHwgbnVsbDtcbiAgZ2V0SGVhZGVyQ29udGV4dChjZWxsOiBUYWJsZURhdGFDb2x1bW4gfCBUYWJsZVN1YmhlYWRlciwgaW5kZXg6IG51bWJlcik6IFRhYmxlSGVhZGVyQ29udGV4dCB8IFRhYmxlU3ViaGVhZGVyQ29udGV4dCB8IG51bGw7XG4gIGdldEhlYWRlckNvbnRleHQoY2VsbDogVGFibGVEYXRhQ29sdW1uIHwgVGFibGVTdWJoZWFkZXIsIGluZGV4OiBudW1iZXIpOiBUYWJsZUhlYWRlckNvbnRleHQgfCBUYWJsZVN1YmhlYWRlckNvbnRleHQgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGNlbGwuaGVhZGVyICE9PSAnc3RyaW5nJykgcmV0dXJuIG51bGw7XG4gICAgaWYgKGlzVGFibGVTdWJoZWFkZXIoY2VsbCkpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAkaW1wbGljaXQ6IGNlbGwuaGVhZGVyLFxuICAgICAgICBoZWFkZXI6IGNlbGwuaGVhZGVyLFxuICAgICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiBjZWxsLmhlYWRlcixcbiAgICAgIGhlYWRlcjogY2VsbC5oZWFkZXIsXG4gICAgICBzb3J0YWJsZTogY2VsbC5zb3J0YWJsZSA/PyBmYWxzZSxcbiAgICAgIHNvcnRUeXBlOiB0aGlzLl9pdGVtU3RvcmFnZS5nZXRDb2x1bW5Tb3J0VHlwZShpbmRleCksXG4gICAgICBvblRyaWdnZXJTb3J0OiAoKSA9PiB0aGlzLl9pdGVtU3RvcmFnZS50b2dnbGVDdXJyZW50U29ydENvbHVtbihpbmRleCksXG4gICAgICBvblRyaWdnZXJSZXNldFNvcnQ6IChldmVudD86IEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2l0ZW1TdG9yYWdlLnJlc2V0U29ydCgpO1xuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHJlYWRvbmx5IGdldEhlYWRlckNoZWNrYm94Q29udGV4dCA9IGNvbXB1dGVkPFRhYmxlSGVhZGVyQ2hlY2tib3hDb250ZXh0PigoKSA9PiB7XG4gICAgbGV0IHN0YXRlOiBDaGVja2JveFN0YXRlID0gQ2hlY2tib3hTdGF0ZS5VbnNlbGVjdGVkO1xuICAgIGlmICh0aGlzLl9pdGVtU3RvcmFnZS5pc0FueUl0ZW1TZWxlY3RlZCgpKSB7XG4gICAgICBzdGF0ZSA9IENoZWNrYm94U3RhdGUuSW5kZXRlcm1pbmF0ZTtcbiAgICAgIGlmICh0aGlzLl9pdGVtU3RvcmFnZS5hcmVBbGxTZWxlY3RlZCgpKSB7XG4gICAgICAgIHN0YXRlID0gQ2hlY2tib3hTdGF0ZS5TZWxlY3RlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDogc3RhdGUsXG4gICAgICBzdGF0ZSxcbiAgICAgIG9uQ2hhbmdlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudG9nZ2xlQWxsUm93c1NlbGVjdGVkKCk7XG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xuICBnZXRDaGVja2JveENvbnRleHQoaW5kZXg6IG51bWJlcik6IFRhYmxlQ2hlY2tib3hDb250ZXh0IHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5faXRlbVN0b3JhZ2UuaXRlbXMoKS5maW5kKHYgPT4gdi5pbmRleCgpID09PSBpbmRleCkhO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gaXRlbS5zZWxlY3RlZCgpO1xuICAgIHJldHVybiB7XG4gICAgICAkaW1wbGljaXQ6IHNlbGVjdGVkLFxuICAgICAgc2VsZWN0ZWQ6IHNlbGVjdGVkLFxuICAgICAgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQoKSxcbiAgICAgIG9uQ2hhbmdlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMub25DaGVja2JveENsaWNrKGluZGV4KTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIiwiPHRhYmxlXG4gIGNsYXNzPVwiYXJkLXRhYmxlXCJcbiAgW25nQ2xhc3NdPVwibmdDbGFzc2VzKClcIlxuPlxuICBAaWYgKGNhcHRpb24oKSkge1xuICAgIDxjYXB0aW9uIGNsYXNzPVwiYXJkLXRhYmxlX19jYXB0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLXRhYmxlX19jYXB0aW9uLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAjZGVmYXVsdENhcHRpb25UZW1wbGF0ZVxuICAgICAgICAgIGxldC1jYXB0aW9uVGV4dFxuICAgICAgICA+XG4gICAgICAgICAge3sgY2FwdGlvblRleHQgfX1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjYXB0aW9uVGVtcGxhdGUoKSA/PyBkZWZhdWx0Q2FwdGlvblRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNhcHRpb24oKSB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvY2FwdGlvbj5cbiAgfVxuICA8dGhlYWQgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlclwiPlxuICAgIEBmb3IgKHJvdyBvZiBoZWFkZXJDZWxscygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDx0ciBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLXJvd1wiPlxuICAgICAgICBAZm9yIChjZWxsIG9mIHJvdzsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPHRoXG4gICAgICAgICAgICBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLWNlbGxcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2VsbC5jZWxsKCkuY2VsbENsYXNzXCJcbiAgICAgICAgICAgIFtjbGFzcy5hcmQtdGFibGVfX2NoZWNrYm94LWNlbGxdPVwiaXNIZWFkZXJDZWxsQ2hlY2tib3goY2VsbClcIlxuICAgICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJjZWxsLmNvbHNwYW4oKVwiXG4gICAgICAgICAgICBbYXR0ci5yb3dzcGFuXT1cImNlbGwucm93c3BhbigpXCJcbiAgICAgICAgICAgIFtzY29wZV09XCJjZWxsLmNvbHNwYW4oKSA+IDEgPyAnY29sZ3JvdXAnIDogJ2NvbCdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2NlbGwtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmFyZC10YWJsZV9fc29ydGFibGVdPVwiaXNIZWFkZXJDZWxsU29ydGFibGUoY2VsbClcIlxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY2VsbC53aWR0aFwiXG4gICAgICAgICAgICAgIFtzdHlsZS5taW5XaWR0aF09XCJjZWxsLm1pbldpZHRoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmIChpc0hlYWRlckNlbGxDaGVja2JveChjZWxsKSkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgI2RlZmF1bHRIZWFkZXJDaGVja2JveFRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICBsZXQtc3RhdGVcbiAgICAgICAgICAgICAgICAgIGxldC1vbkNoYW5nZT1cIm9uQ2hhbmdlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8YXJkLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJpc0xvYWRpbmcoKSA/IC0xIDogdGFiSW5kZXgoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJnZXRIZWFkZXJDaGVja2JveENvbG9yKClcIlxuICAgICAgICAgICAgICAgICAgICB1bnNlbGVjdGVkQ29sb3I9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJDaGVja2JveFRlbXBsYXRlKCkgPz8gZGVmYXVsdEhlYWRlckNoZWNrYm94VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldEhlYWRlckNoZWNrYm94Q29udGV4dCgpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICNkZWZhdWx0SGVhZGVyQ2VsbFRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICBsZXQtY29udGVudFxuICAgICAgICAgICAgICAgICAgbGV0LXNvcnRhYmxlPVwic29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgbGV0LXNvcnRUeXBlPVwic29ydFR5cGVcIlxuICAgICAgICAgICAgICAgICAgbGV0LW9uVHJpZ2dlclNvcnQ9XCJvblRyaWdnZXJTb3J0XCJcbiAgICAgICAgICAgICAgICAgIGxldC1vblRyaWdnZXJSZXNldFNvcnQ9XCJvblRyaWdnZXJSZXNldFNvcnRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci10ZW1wbGF0ZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXJkLXNvcnRhYmxlXT1cInNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFyZC1ub25zb3J0YWJsZV09XCIhc29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHNvcnRhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jb250ZW50LWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25UcmlnZ2VyU29ydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLkVzYyk9XCJvblRyaWdnZXJSZXNldFNvcnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLWNvbnRlbnRcIj57eyBjb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNvcnRUeXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1zb3J0LWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNvcnRUeXBlID09PSAnYXNjZW5kaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uPnNvdXRoPC9hcmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChzb3J0VHlwZSA9PT0gJ2Rlc2NlbmRpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXJkLWljb24+bm9ydGg8L2FyZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLWNvbnRlbnRcIj57eyBjb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdldEhlYWRlclRlbXBsYXRlKGNlbGwuY2VsbCgpLmhlYWRlcikgPz8gZGVmYXVsdEhlYWRlckNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SGVhZGVyQ29udGV4dChjZWxsLmNlbGwoKSwgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgfVxuICAgICAgPC90cj5cbiAgICB9XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keSBjbGFzcz1cImFyZC10YWJsZV9fYm9keVwiPlxuICAgIEBmb3IgKHJvdyBvZiBkYXRhUm93cygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIEBpZiAocm93LmlzRW1wdHkoKSkge1xuICAgICAgICA8dHIgY2xhc3M9XCJhcmQtdGFibGVfX2VtcHR5LXJvd1wiPlxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2VtcHR5LWNlbGxcIlxuICAgICAgICAgICAgY29sc3Bhbj1cIjk5OTlcIlxuICAgICAgICAgID48L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDx0clxuICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19ib2R5LXJvd1wiXG4gICAgICAgICAgW2NsYXNzLmFyZC10YWJsZV9fc2VsZWN0ZWQtcm93XT1cInJvdy5zZWxlY3RlZCgpXCJcbiAgICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19oaWdobGlnaHRlZC1yb3ddPVwicm93LmhpZ2hsaWdodGVkKClcIlxuICAgICAgICAgIFtjbGFzcy5hcmQtdGFibGVfX2Rpc2FibGVkLXJvd109XCJyb3cuZGlzYWJsZWQoKVwiXG4gICAgICAgICAgW2NsYXNzLmFyZC10YWJsZV9fYm9sZC1yb3ddPVwicm93LmJvbGQoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2socm93LCAkZXZlbnQpXCJcbiAgICAgICAgICAobW91c2VvdmVyKT1cIm9uUm93TW91c2VPdmVyKCRldmVudClcIlxuICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uUm93TW91c2VFbnRlcihyb3cuaW5kZXgoKSwgJGV2ZW50KVwiXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwib25Sb3dNb3VzZUxlYXZlKHJvdy5pbmRleCgpLCAkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBmb3IgKGNlbGwgb2Ygcm93LmRhdGEoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGxUbXA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFyZC10YWJsZV9fY2VsbC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIFtzdHlsZV09XCJnZXRDZWxsU3R5bGUocm93LmRhdGFDb2x1bW5zKClbJGluZGV4XSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChpc0NlbGxDaGVja2JveChjZWxsKSkge1xuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICNkZWZhdWx0Q2hlY2tib3hUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBsZXQtaXNDaGVja2VkXG4gICAgICAgICAgICAgICAgICAgIGxldC1vbkNoYW5nZT1cIm9uQ2hhbmdlXCJcbiAgICAgICAgICAgICAgICAgICAgbGV0LWRpc2FibGVkPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YXJkLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cImlzTG9hZGluZygpID8gLTEgOiB0YWJJbmRleCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3IoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoZWNrYm94VGVtcGxhdGUoKSA/PyBkZWZhdWx0Q2hlY2tib3hUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRDaGVja2JveENvbnRleHQocm93LmluZGV4KCkpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgI2RlZmF1bHRDZWxsVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgbGV0LWNvbnRlbnRcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgY29udGVudCB9fVxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdldENlbGxUZW1wbGF0ZShyb3cuZGF0YUNvbHVtbnMoKVskaW5kZXhdLnRlbXBsYXRlKSA/PyBkZWZhdWx0Q2VsbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjZWxsIH1cIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIEBpZiAoIXJvdy5kYXRhQ29sdW1ucygpWyRpbmRleF0uaXNSb3dIZWFkZXIpIHtcbiAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2JvZHktY2VsbFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicm93LmRhdGFDb2x1bW5zKClbJGluZGV4XS5jZWxsQ2xhc3NcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtdGFibGVfX2NoZWNrYm94LWNlbGxdPVwiaXNDZWxsQ2hlY2tib3goY2VsbClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUbXBcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19ib2R5LWNlbGwgYXJkLXRhYmxlX19yb3ctaGVhZGVyXCJcbiAgICAgICAgICAgICAgICBzY29wZT1cInJvd1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicm93LmRhdGFDb2x1bW5zKClbJGluZGV4XS5jZWxsQ2xhc3NcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtdGFibGVfX2NoZWNrYm94LWNlbGxdPVwiaXNDZWxsQ2hlY2tib3goY2VsbClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUbXBcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC90cj5cbiAgICAgIH1cbiAgICB9XG4gIDwvdGJvZHk+XG4gIEBpZiAoY2FuRGlzcGxheVBhZ2luYXRpb24oKSkge1xuICAgIDx0Zm9vdCBjbGFzcz1cImFyZC10YWJsZV9fZm9vdFwiPlxuICAgICAgPHRyIGNsYXNzPVwiYXJkLXRhYmxlX19mb290LXJvd1wiPlxuICAgICAgICA8dGRcbiAgICAgICAgICBjbGFzcz1cImFyZC10YWJsZV9fcGFnaW5hdGlvbi1jZWxsXCJcbiAgICAgICAgICBjb2xzcGFuPVwiOTk5OVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXJkLXRhYmxlLXBhZ2luYXRpb25cbiAgICAgICAgICAgIFtvcHRpb25zXT1cInBhZ2luYXRpb25PcHRpb25zKClcIlxuICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtcygpIVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicGFnaW5hdGlvbkRpc2FibGVkKClcIlxuICAgICAgICAgICAgWyhpdGVtc1BlclBhZ2UpXT1cIml0ZW1zUGVyUGFnZVwiXG4gICAgICAgICAgICBbKHBhZ2UpXT1cInBhZ2VcIlxuICAgICAgICAgICAgW2FsaWduXT1cInBhZ2luYXRpb25BbGlnbigpXCJcbiAgICAgICAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nKClcIlxuICAgICAgICAgICAgW2l0ZW1zUGVyUGFnZVRleHRdPVwiaXRlbXNQZXJQYWdlVGV4dCgpXCJcbiAgICAgICAgICAgIFtjdXJyZW50SXRlbXNGb3JtYXRGbl09XCJjdXJyZW50SXRlbXNGb3JtYXRGbigpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rmb290PlxuICB9XG48L3RhYmxlPlxuIl19
|
|
348
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQXdCLGVBQWUsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RSxPQUFPLEVBQUUsV0FBVyxFQUFjLGdCQUFnQixFQUF3QixNQUFNLHNCQUFzQixDQUFDO0FBQ3ZHLE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLDBDQUEwQyxFQUMxQyw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0wsY0FBYyxFQUNkLGVBQWUsRUFNZix1QkFBdUIsRUFHdkIsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFB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Z0JBTUYsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBjb250ZW50Q2hpbGRyZW4sXHJcbiAgaW5wdXQsXHJcbiAgbW9kZWwsXHJcbiAgb3V0cHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgaXNEZWZpbmVkLCBpc051bWJlciB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHsgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9faW50ZXJuYWwvZm9jdXNhYmxlLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94U3RhdGUgfSBmcm9tICcuLi9jaGVja2JveC9jaGVja2JveC50eXBlcyc7XHJcbmltcG9ydCB7IEN1cnJlbnRJdGVtc0Zvcm1hdEZuLCBQYWdpbmF0aW9uQWxpZ24gfSBmcm9tICcuLi90YWJsZS1wYWdpbmF0aW9uL3RhYmxlLXBhZ2luYXRpb24udHlwZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciwgU2ltcGxlQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBBcmRUYWJsZVJvdywgSGVhZGVyQ2VsbCwgVGFibGVJdGVtU3RvcmFnZSwgVGFibGVJdGVtU3RvcmFnZUhvc3QgfSBmcm9tICcuL3RhYmxlLWl0ZW0tc3RvcmFnZSc7XHJcbmltcG9ydCB7XHJcbiAgQXJkaXVtVGFibGVDYXB0aW9uVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkaXVtVGFibGVDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZGl1bVRhYmxlSGVhZGVyQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRpdW1UYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vdGFibGUuZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7XHJcbiAgVGFibGVBbGlnblR5cGUsXHJcbiAgVGFibGVBcHBlYXJhbmNlLFxyXG4gIFRhYmxlQ2FwdGlvbkNvbnRleHQsXHJcbiAgVGFibGVDaGVja2JveENvbnRleHQsXHJcbiAgVGFibGVEYXRhQ29sdW1uLFxyXG4gIFRhYmxlSGVhZGVyQ2hlY2tib3hDb250ZXh0LFxyXG4gIFRhYmxlSGVhZGVyQ29udGV4dCxcclxuICBUYWJsZVBhZ2luYXRpb25TdHJhdGVneSxcclxuICBUYWJsZVN1YmhlYWRlcixcclxuICBUYWJsZVN1YmhlYWRlckNvbnRleHQsXHJcbiAgVGFibGVWYXJpYW50LFxyXG59IGZyb20gJy4vdGFibGUudHlwZXMnO1xyXG5pbXBvcnQgeyBpc1RhYmxlU3ViaGVhZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZUNvbXBvbmVudCBleHRlbmRzIF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIGltcGxlbWVudHMgVGFibGVJdGVtU3RvcmFnZUhvc3QsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfaXRlbVN0b3JhZ2UgPSBuZXcgVGFibGVJdGVtU3RvcmFnZSh0aGlzKTtcclxuXHJcbiAgcmVhZG9ubHkgREVGQVVMVFMgPSB7XHJcbiAgICByb3dEaXNhYmxlZEZyb206ICdkaXNhYmxlZCcsXHJcbiAgICByb3dCb2xkRnJvbTogJ2JvbGQnLFxyXG4gIH07XHJcblxyXG4gIHJlYWRvbmx5IHJvd0Rpc2FibGVkRnJvbSA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgcm93Qm9sZEZyb20gPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGludmVydFJvd0Rpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG4gIHJlYWRvbmx5IGludmVydFJvd0JvbGQgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IHNlbGVjdGFibGVSb3dzID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG4gIHJlYWRvbmx5IG1heFNlbGVjdGVkSXRlbXMgPSBpbnB1dDxOdWxsYWJsZTxudW1iZXI+LCBhbnk+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdW5kZWZpbmVkKSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgY2xpY2thYmxlUm93cyA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgY2FwdGlvbiA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCk7XHJcblxyXG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBsb2FkaW5nUHJvZ3Jlc3MgPSBpbnB1dDxudW1iZXIsIGFueT4oMCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgMCkgfSk7IC8vVE9ETyBhZGQgcHJvZ3Jlc3MgYmFyXHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PFRhYmxlQXBwZWFyYW5jZT4oVGFibGVBcHBlYXJhbmNlLlN0cm9uZyk7XHJcbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PFRhYmxlVmFyaWFudD4oVGFibGVWYXJpYW50LlJvdW5kZWQpO1xyXG4gIHJlYWRvbmx5IGNvbG9yID0gaW5wdXQ8Q29tcG9uZW50Q29sb3I+KENvbXBvbmVudENvbG9yLlByaW1hcnkpO1xyXG4gIHJlYWRvbmx5IGFsaWduID0gaW5wdXQ8VGFibGVBbGlnblR5cGU+KFRhYmxlQWxpZ25UeXBlLkNlbnRlckxlZnQpO1xyXG4gIHJlYWRvbmx5IGhlYWRlckFsaWduID0gaW5wdXQ8VGFibGVBbGlnblR5cGU+KFRhYmxlQWxpZ25UeXBlLkNlbnRlckxlZnQpO1xyXG5cclxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG4gIHJlYWRvbmx5IHplYnJhID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG4gIHJlYWRvbmx5IHN0aWNreUhlYWRlciA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQoKCkgPT5cclxuICAgIFtcclxuICAgICAgYGFyZC1hcHBlYXJhbmNlLSR7dGhpcy5hcHBlYXJhbmNlKCl9YCxcclxuICAgICAgYGFyZC12YXJpYW50LSR7dGhpcy52YXJpYW50KCl9YCxcclxuICAgICAgYGFyZC1jb2xvci0ke3RoaXMuY29sb3IoKX1gLFxyXG4gICAgICBgYXJkLWFsaWduLSR7dGhpcy5hbGlnbigpfWAsXHJcbiAgICAgIGBhcmQtaGVhZGVyLWFsaWduLSR7dGhpcy5oZWFkZXJBbGlnbigpfWAsXHJcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxyXG4gICAgICB0aGlzLnplYnJhKCkgPyAnYXJkLXplYnJhLXRhYmxlJyA6ICcnLFxyXG4gICAgICB0aGlzLnNlbGVjdGFibGVSb3dzKCkgPyAnYXJkLXNlbGVjdGFibGUtcm93cycgOiAnJyxcclxuICAgICAgdGhpcy5zdGlja3lIZWFkZXIoKSA/ICdhcmQtc3RpY2t5LWhlYWRlcicgOiAnJyxcclxuICAgICAgdGhpcy5pc0xvYWRpbmcoKSA/ICdhcmQtdGFibGUtbG9hZGluZycgOiAnJyxcclxuICAgIF0uam9pbignICcpXHJcbiAgKTtcclxuXHJcbiAgLy8hIHBhZ2luYXRpb25cclxuICByZWFkb25seSBwYWdpbmF0ZWQgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcbiAgcmVhZG9ubHkgcGFnaW5hdGlvblN0cmF0ZWd5ID0gaW5wdXQ8VGFibGVQYWdpbmF0aW9uU3RyYXRlZ3k+KFRhYmxlUGFnaW5hdGlvblN0cmF0ZWd5Lk5vb3ApO1xyXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25PcHRpb25zID0gaW5wdXQ8XHJcbiAgICBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10sXHJcbiAgICBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W11cclxuICA+KFsxMCwgMjUsIDUwXSwge1xyXG4gICAgdHJhbnNmb3JtOiB2ID0+IHtcclxuICAgICAgcmV0dXJuIHYuZmlsdGVyKGVsID0+IHtcclxuICAgICAgICBjb25zdCBvcHQgPSBpc051bWJlcihlbCkgPyBlbCA6IGVsLnZhbHVlO1xyXG4gICAgICAgIGlmIChvcHQgPD0gMCB8fCBvcHQgJSAxICE9PSAwKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgYEFSRC1ORjUwNTI6IGVhY2ggaXRlbSBvZiA8YXJkLXRhYmxlPidzIFtwYWdpbmF0aW9uT3B0aW9uc10gbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIFRoZSBcIiR7b3B0fVwiIG9wdGlvbiB3aWxsIGJlIGlnbm9yZWQuYFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSkgYXMgbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdO1xyXG4gICAgfSxcclxuICB9KTtcclxuICByZWFkb25seSB0b3RhbEl0ZW1zID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIHVuZGVmaW5lZCkgfSk7XHJcbiAgcmVhZG9ubHkgcGFnaW5hdGlvbkNvbG9yID0gaW5wdXQ8Q29tcG9uZW50Q29sb3I+KENvbXBvbmVudENvbG9yLk5vbmUpO1xyXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25BbGlnbiA9IGlucHV0PFBhZ2luYXRpb25BbGlnbj4oUGFnaW5hdGlvbkFsaWduLlNwbGl0KTtcclxuICByZWFkb25seSBpdGVtc1BlclBhZ2VUZXh0ID0gaW5wdXQ8c3RyaW5nPignSXRlbXMgcGVyIHBhZ2U6Jyk7XHJcbiAgcmVhZG9ubHkgY3VycmVudEl0ZW1zRm9ybWF0Rm4gPSBpbnB1dDxDdXJyZW50SXRlbXNGb3JtYXRGbj4oXHJcbiAgICAoeyBjdXJyZW50SXRlbXNGaXJzdCwgY3VycmVudEl0ZW1zTGFzdCwgdG90YWxJdGVtcyB9KSA9PiBgJHtjdXJyZW50SXRlbXNGaXJzdH0g4oCTICR7Y3VycmVudEl0ZW1zTGFzdH0gb2YgJHt0b3RhbEl0ZW1zfWBcclxuICApO1xyXG5cclxuICByZWFkb25seSBwYWdlRmlsbFJlbWFpbmluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBwYWdpbmF0aW9uRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcbiAgcmVhZG9ubHkgdXNlRmlyc3RMYXN0QnV0dG9ucyA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlID0gbW9kZWw8bnVtYmVyPig1MCk7XHJcbiAgcmVhZG9ubHkgcGFnZSA9IG1vZGVsPG51bWJlcj4oMSk7XHJcblxyXG4gIHJlYWRvbmx5IGlzRGVmaW5lZFRvdGFsSXRlbXMgPSBjb21wdXRlZChcclxuICAgICgpID0+IHRoaXMucGFnaW5hdGlvblN0cmF0ZWd5KCkgIT09IFRhYmxlUGFnaW5hdGlvblN0cmF0ZWd5Lk5vb3AgfHwgaXNEZWZpbmVkKHRoaXMudG90YWxJdGVtcygpKVxyXG4gICk7XHJcbiAgcmVhZG9ubHkgY2FuRGlzcGxheVBhZ2luYXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBhZ2luYXRlZCgpICYmIHRoaXMuaXNEZWZpbmVkVG90YWxJdGVtcygpKTtcclxuXHJcbiAgLy8hIHByaW50IGVycm9ycyBpZiBuZWVkZWRcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snaXRlbXNQZXJQYWdlJ10pIHtcclxuICAgICAgY29uc3QgaXBwID0gY2hhbmdlc1snaXRlbXNQZXJQYWdlJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICBjb25zdCBvcHRpb25zID1cclxuICAgICAgICAoY2hhbmdlc1sncGFnaW5hdGlvbk9wdGlvbnMnXT8uY3VycmVudFZhbHVlIGFzIG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSkgfHxcclxuICAgICAgICAodGhpcy5wYWdpbmF0aW9uT3B0aW9ucygpIGFzIG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSk7XHJcbiAgICAgIGlmICghb3B0aW9ucy5maW5kKHYgPT4gKHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgPT09IGlwcCA6IHYudmFsdWUgPT09IGlwcCkpKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICAgYEFSRC1ORjUwNTE6IHZhbHVlIG9mIFwiJHtpcHB9XCIgaW4gPGFyZC10YWJsZT4ncyBbaXRlbXNQZXJQYWdlXSBkb2VzIG5vdCBhcHBlYXIgaW4gW3BhZ2luYXRpb25PcHRpb25zXSBhcnJheSBbJHtvcHRpb25zXHJcbiAgICAgICAgICAgICAgLm1hcCh2ID0+ICh0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdi52YWx1ZSkpXHJcbiAgICAgICAgICAgICAgLmpvaW4oJywgJyl9XWBcclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1sncGFnZSddKSB7XHJcbiAgICAgIGNvbnN0IHBhZ2UgPSBjaGFuZ2VzWydwYWdlJ10uY3VycmVudFZhbHVlIGFzIG51bWJlcjtcclxuICAgICAgaWYgKHBhZ2UgPT09IDApIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDUwNTNhOiA8YXJkLXRhYmxlPidzIFtwYWdlXSB1c2VzIDEtaW5kZXhlZCBudW1iZXJpbmcgc3lzdGVtLiBUaGUgdmFsdWUgMCBpcyBub3QgYWNjZXB0ZWQuYCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocGFnZSA8IDAgfHwgcGFnZSAlIDEgIT09IDApIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDUwNTNiOiB2YWx1ZSBvZiA8YXJkLXRhYmxlPidzIFtwYWdlXSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgZ290IFwiJHtwYWdlfVwiLmApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyEgaXRlbSBzdG9yYWdlIGdldHRlcnNcclxuICByZWFkb25seSBoZWFkZXJDZWxscyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2l0ZW1TdG9yYWdlLmhlYWRlckNlbGxzKCkpO1xyXG5cclxuICByZWFkb25seSBkYXRhUm93cyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGl0ZW1zOiBBcmRUYWJsZVJvd1tdID0gdGhpcy5faXRlbVN0b3JhZ2UucGFnaW5hdGVkSXRlbXMoKTtcclxuXHJcbiAgICBpZiAoIXRoaXMucGFnZUZpbGxSZW1haW5pbmcoKSkgcmV0dXJuIGl0ZW1zO1xyXG4gICAgaWYgKCF0aGlzLmlzRGVmaW5lZFRvdGFsSXRlbXMoKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FSRC1GVDUwNTA6IDxhcmQtdGFibGU+IHJlcXVpcmVzIFt0b3RhbEl0ZW1zXSB0byBiZSBkZWZpbmVkIHdoZW4gdXNpbmcgXCJzbGljZVwiIHBhZ2luYXRpb24gc3RyYXRlZ3kuJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wYWdlKCkgPT09IDEpIHJldHVybiBpdGVtcztcclxuXHJcbiAgICBjb25zdCBpcHAgPSB0aGlzLml0ZW1zUGVyUGFnZSgpO1xyXG4gICAgZm9yIChsZXQgaSA9IGl0ZW1zLmxlbmd0aDsgaSA8IGlwcDsgaSsrKSB7XHJcbiAgICAgIGl0ZW1zLnB1c2goQXJkVGFibGVSb3cubmV3RW1wdHlDZWxsKGkpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtcztcclxuICB9KTtcclxuXHJcbiAgLy8hIGNvbHVtbnMvZGF0YSBzZXR0ZXJzXHJcbiAgQElucHV0KClcclxuICBzZXQgY29sdW1ucyh2OiAoVGFibGVEYXRhQ29sdW1uIHwgVGFibGVTdWJoZWFkZXIpW10pIHtcclxuICAgIHRoaXMuX2l0ZW1TdG9yYWdlLnNldENvbHVtbnModik7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RhdGE6IGFueVtdID0gW107XHJcbiAgQElucHV0KClcclxuICBzZXQgZGF0YSh2OiBhbnlbXSkge1xyXG4gICAgdGhpcy5fZGF0YSA9IHY7XHJcbiAgICB0aGlzLl9pdGVtU3RvcmFnZS5zZXRJdGVtcyh2KTtcclxuICB9XHJcbiAgZ2V0IGRhdGEoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSB0cmVhdERhdGFTb3VyY2VBc1N0cmluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBfc3VwcHJlc3NFcnJvcnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8vISB0ZW1wbGF0ZXNcclxuICByZWFkb25seSBjaGVja2JveFRlbXBsYXRlID0gY29udGVudENoaWxkPEFyZGl1bVRhYmxlQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSwgVGVtcGxhdGVSZWY8VGFibGVDaGVja2JveENvbnRleHQ+PihcclxuICAgIEFyZGl1bVRhYmxlQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIHtcclxuICAgICAgcmVhZDogVGVtcGxhdGVSZWY8VGFibGVDaGVja2JveENvbnRleHQ+LFxyXG4gICAgfVxyXG4gICk7XHJcbiAgcmVhZG9ubHkgaGVhZGVyQ2hlY2tib3hUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZDxcclxuICAgIEFyZGl1bVRhYmxlSGVhZGVyQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIFRlbXBsYXRlUmVmPFRhYmxlSGVhZGVyQ2hlY2tib3hDb250ZXh0PlxyXG4gID4oQXJkaXVtVGFibGVIZWFkZXJDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlLCB7XHJcbiAgICByZWFkOiBUZW1wbGF0ZVJlZjxUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dD4sXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgY2FwdGlvblRlbXBsYXRlID0gY29udGVudENoaWxkPEFyZGl1bVRhYmxlQ2FwdGlvblRlbXBsYXRlRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZjxUYWJsZUNhcHRpb25Db250ZXh0Pj4oXHJcbiAgICBBcmRpdW1UYWJsZUNhcHRpb25UZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIHtcclxuICAgICAgcmVhZDogVGVtcGxhdGVSZWY8VGFibGVDYXB0aW9uQ29udGV4dD4sXHJcbiAgICB9XHJcbiAgKTtcclxuXHJcbiAgcHJpdmF0ZSBfaXRlbVRlbXBsYXRlczogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSB7fTtcclxuICByZWFkb25seSB0ZW1wbGF0ZUNoaWxkcmVuID0gY29udGVudENoaWxkcmVuPEFyZGl1bVRhYmxlVGVtcGxhdGVEaXJlY3RpdmU+KEFyZGl1bVRhYmxlVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSBBcnJheS5mcm9tKHRoaXMudGVtcGxhdGVDaGlsZHJlbigpKTtcclxuICAgIGZvciAoY29uc3QgaW5zdGFuY2Ugb2YgdGVtcGxhdGVzKSB7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSBpbnN0YW5jZS5uYW1lKCk7XHJcbiAgICAgIGlmICghbmFtZSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IobmV3IEVycm9yKCdBUkQtRlQ1MDU0OiBbYXJkLXRhYmxlLXRtcF0gcmVxdWlyZXMgYSB2YWx1ZSB0byBiZSBzcGVjaWZpZWQuJykpO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2l0ZW1UZW1wbGF0ZXNbbmFtZV0gPSBpbnN0YW5jZS50ZW1wbGF0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEhlYWRlclRlbXBsYXRlKHRtcDogc3RyaW5nIHwgeyB0ZW1wbGF0ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB9KTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAodHlwZW9mIHRtcCA9PT0gJ3N0cmluZycpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDZWxsVGVtcGxhdGUodG1wLnRlbXBsYXRlKTtcclxuICB9XHJcbiAgZ2V0SGVhZGVyQ2hlY2tib3hDb2xvcigpOiBTaW1wbGVDb21wb25lbnRDb2xvciB7XHJcbiAgICBpZiAodGhpcy5hcHBlYXJhbmNlKCkgPT09IFRhYmxlQXBwZWFyYW5jZS5TdHJvbmcpIHJldHVybiBTaW1wbGVDb21wb25lbnRDb2xvci5DdXJyZW50Q29sb3I7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xvcigpO1xyXG4gIH1cclxuICBnZXRDZWxsVGVtcGxhdGUodG1wPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pik6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xyXG4gICAgLy9yZXR1cm4gdW5kZWZpbmVkXHJcbiAgICBpZiAoIXRtcCkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIC8vcmV0dXJuIHRlbXBsYXRlLCBpZiBpdCBpcyBvbmVcclxuICAgIGlmICh0bXAgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikgcmV0dXJuIHRtcDtcclxuICAgIC8vY2hlY2sgaWYgdGhlIG5hbWUgY2FuIGJlIGZvdW5kXHJcbiAgICBpZiAoISh0bXAgaW4gdGhpcy5faXRlbVRlbXBsYXRlcykpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihuZXcgRXJyb3IoYEFSRC1ORjUwNTU6IDxhcmQtdGFibGU+IGVycm9yOiBjYW5ub3QgZmluZCB0ZW1wbGF0ZSBuYW1lZCBcIiR7dG1wfVwiYCkpO1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgLy9yZXR1cm4gdGhlIHRlbXBsYXRlXHJcbiAgICByZXR1cm4gdGhpcy5faXRlbVRlbXBsYXRlc1t0bXBdO1xyXG4gIH1cclxuICBnZXRDZWxsU3R5bGUoY2VsbDogVGFibGVEYXRhQ29sdW1uIHwgVGFibGVTdWJoZWFkZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGlzVGFibGVTdWJoZWFkZXIoY2VsbCkpIHJldHVybiAnd2lkdGg6dW5zZXQ7bWluLXdpZHRoOnVuc2V0JztcclxuICAgIGNvbnN0IHdpZHRoID0gdHlwZW9mIGNlbGwud2lkdGggPT09ICdudW1iZXInID8gYCR7Y2VsbC53aWR0aH1weGAgOiBjZWxsLndpZHRoO1xyXG4gICAgY29uc3QgbWluV2lkdGggPSB0eXBlb2YgY2VsbC5taW5XaWR0aCA9PT0gJ251bWJlcicgPyBgJHtjZWxsLm1pbldpZHRofXB4YCA6IGNlbGwubWluV2lkdGg7XHJcbiAgICByZXR1cm4gW2B3aWR0aDoke3dpZHRoID8/ICd1bnNldCd9YCwgYG1pbi13aWR0aDoke21pbldpZHRoID8/ICd1bnNldCd9YF0uam9pbignOycpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGNsaWNrICYgaG92ZXIgaGFuZGxlcnNcclxuICBvbkNoZWNrYm94Q2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy50b2dnbGVSb3dTZWxlY3RlZChpbmRleCk7XHJcbiAgfVxyXG4gIG9uUm93Q2xpY2socm93OiBBcmRUYWJsZVJvdywgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNsaWNrYWJsZVJvd3MoKSkge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5jbGlja1Jvd0V2ZW50LmVtaXQocm93Lml0ZW1EYXRhKCkpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RhYmxlUm93cygpKSB7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLnRvZ2dsZVJvd1NlbGVjdGVkKHJvdy5pbmRleCgpKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICBvblJvd01vdXNlT3ZlcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIG9uUm93TW91c2VFbnRlcihpbmRleDogbnVtYmVyLCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGFibGVSb3dzKCkgJiYgIXRoaXMuY2xpY2thYmxlUm93cygpKSByZXR1cm47XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuX2l0ZW1TdG9yYWdlLmhpZ2hsaWdodFNpbmdsZUl0ZW0oaW5kZXgpO1xyXG4gIH1cclxuICBvblJvd01vdXNlTGVhdmUoaW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RhYmxlUm93cygpICYmICF0aGlzLmNsaWNrYWJsZVJvd3MoKSkgcmV0dXJuO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLl9pdGVtU3RvcmFnZS51bmhpZ2hsaWdodEl0ZW0oaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgLy8hIHNlbGVjdCBoYW5kbGVyc1xyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBhIHJvdyBpbiB0aGUgdGFibGUuXHJcbiAgICogQHBhcmFtIHNlbGVjdGVkIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIGlmIHRoZSByb3cgaXMgY3VycmVudGx5IHNlbGVjdGVkLlxyXG4gICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIHJvdyBpbiB0aGUgdGFibGUuXHJcbiAgICovXHJcbiAgdG9nZ2xlUm93U2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2l0ZW1TdG9yYWdlLmlzSXRlbVNlbGVjdGVkKGluZGV4KSkge1xyXG4gICAgICBjb25zdCB1bnNlbGVjdGVkID0gdGhpcy5faXRlbVN0b3JhZ2UudW5zZWxlY3RJdGVtKGluZGV4KTtcclxuICAgICAgaWYgKHVuc2VsZWN0ZWQubGVuZ3RoKSB0aGlzLnVuc2VsZWN0Um93RXZlbnQuZW1pdCh1bnNlbGVjdGVkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IFtzZWxlY3RlZCwgZmFpbGVkXSA9IHRoaXMuX2l0ZW1TdG9yYWdlLnNlbGVjdEl0ZW0oaW5kZXgpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoKSB0aGlzLnNlbGVjdFJvd0V2ZW50LmVtaXQoc2VsZWN0ZWQpO1xyXG4gICAgICBpZiAoZmFpbGVkLmxlbmd0aCkgdGhpcy5mYWlsZWRTZWxlY3RSb3dFdmVudC5lbWl0KGZhaWxlZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9lbWl0U2VsZWN0KCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBhbGwgcm93cyBpbiB0aGUgdGFibGUuXHJcbiAgICovXHJcbiAgdG9nZ2xlQWxsUm93c1NlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2l0ZW1TdG9yYWdlLmFyZUFsbFNlbGVjdGVkKCkpIHtcclxuICAgICAgY29uc3QgdW5zZWxlY3RlZCA9IHRoaXMuX2l0ZW1TdG9yYWdlLnVuc2VsZWN0QWxsKCk7XHJcbiAgICAgIGlmICh1bnNlbGVjdGVkLmxlbmd0aCkgdGhpcy51bnNlbGVjdFJvd0V2ZW50LmVtaXQodW5zZWxlY3RlZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBbc2VsZWN0ZWQsIGZhaWxlZF0gPSB0aGlzLl9pdGVtU3RvcmFnZS5zZWxlY3RBbGwoKTtcclxuICAgICAgaWYgKHNlbGVjdGVkLmxlbmd0aCkgdGhpcy5zZWxlY3RSb3dFdmVudC5lbWl0KHNlbGVjdGVkKTtcclxuICAgICAgaWYgKGZhaWxlZC5sZW5ndGgpIHRoaXMuZmFpbGVkU2VsZWN0Um93RXZlbnQuZW1pdChmYWlsZWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZW1pdFNlbGVjdCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9lbWl0U2VsZWN0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMuX2l0ZW1TdG9yYWdlLnZhbHVlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93c0NoYW5nZUV2ZW50LmVtaXQodik7XHJcbiAgfVxyXG4gIGlzQ2VsbENoZWNrYm94KGNlbGw6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiBjZWxsID09PSAnb2JqZWN0JyAmJiAnX2FyZENoZWNrYm94JyBpbiBjZWxsICYmICdpbmRleCcgaW4gY2VsbDtcclxuICB9XHJcbiAgaXNIZWFkZXJDZWxsQ2hlY2tib3goY2VsbDogSGVhZGVyQ2VsbCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZGF0YUNlbGwgPSBjZWxsLmNlbGwoKTtcclxuICAgIGlmIChpc1RhYmxlU3ViaGVhZGVyKGRhdGFDZWxsKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKHR5cGVvZiBkYXRhQ2VsbC5kYXRhU291cmNlID09PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIGRhdGFDZWxsLmRhdGFTb3VyY2UudHlwZSA9PT0gJ2NoZWNrYm94JztcclxuICB9XHJcbiAgaXNIZWFkZXJDZWxsU29ydGFibGUoY2VsbDogSGVhZGVyQ2VsbCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZGF0YUNlbGwgPSBjZWxsLmNlbGwoKTtcclxuICAgIGlmIChpc1RhYmxlU3ViaGVhZGVyKGRhdGFDZWxsKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIGRhdGFDZWxsLnNvcnRhYmxlID8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgc2VsZWN0ZWRSb3dzQ2hhbmdlRXZlbnQgPSBvdXRwdXQ8YW55W10+KHsgYWxpYXM6ICdzZWxlY3RlZFJvd3NDaGFuZ2UnIH0pO1xyXG4gIHJlYWRvbmx5IGZhaWxlZFNlbGVjdFJvd0V2ZW50ID0gb3V0cHV0PGFueVtdPih7IGFsaWFzOiAnZmFpbGVkU2VsZWN0Um93JyB9KTtcclxuICByZWFkb25seSBzZWxlY3RSb3dFdmVudCA9IG91dHB1dDxhbnlbXT4oeyBhbGlhczogJ3NlbGVjdFJvdycgfSk7XHJcbiAgcmVhZG9ubHkgdW5zZWxlY3RSb3dFdmVudCA9IG91dHB1dDxhbnlbXT4oeyBhbGlhczogJ3Vuc2VsZWN0Um93JyB9KTtcclxuICByZWFkb25seSBjbGlja1Jvd0V2ZW50ID0gb3V0cHV0PGFueT4oeyBhbGlhczogJ2NsaWNrUm93JyB9KTtcclxuXHJcbiAgLy8hIGNvbnRleHRzXHJcbiAgZ2V0SGVhZGVyQ29udGV4dChjZWxsOiBUYWJsZURhdGFDb2x1bW4sIGluZGV4OiBudW1iZXIpOiBUYWJsZUhlYWRlckNvbnRleHQgfCBudWxsO1xyXG4gIGdldEhlYWRlckNvbnRleHQoY2VsbDogVGFibGVTdWJoZWFkZXIsIGluZGV4OiBudW1iZXIpOiBUYWJsZVN1YmhlYWRlckNvbnRleHQgfCBudWxsO1xyXG4gIGdldEhlYWRlckNvbnRleHQoY2VsbDogVGFibGVEYXRhQ29sdW1uIHwgVGFibGVTdWJoZWFkZXIsIGluZGV4OiBudW1iZXIpOiBUYWJsZUhlYWRlckNvbnRleHQgfCBUYWJsZVN1YmhlYWRlckNvbnRleHQgfCBudWxsO1xyXG4gIGdldEhlYWRlckNvbnRleHQoY2VsbDogVGFibGVEYXRhQ29sdW1uIHwgVGFibGVTdWJoZWFkZXIsIGluZGV4OiBudW1iZXIpOiBUYWJsZUhlYWRlckNvbnRleHQgfCBUYWJsZVN1YmhlYWRlckNvbnRleHQgfCBudWxsIHtcclxuICAgIGlmICh0eXBlb2YgY2VsbC5oZWFkZXIgIT09ICdzdHJpbmcnKSByZXR1cm4gbnVsbDtcclxuICAgIGlmIChpc1RhYmxlU3ViaGVhZGVyKGNlbGwpKVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgICRpbXBsaWNpdDogY2VsbC5oZWFkZXIsXHJcbiAgICAgICAgaGVhZGVyOiBjZWxsLmhlYWRlcixcclxuICAgICAgfTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICRpbXBsaWNpdDogY2VsbC5oZWFkZXIsXHJcbiAgICAgIGhlYWRlcjogY2VsbC5oZWFkZXIsXHJcbiAgICAgIHNvcnRhYmxlOiBjZWxsLnNvcnRhYmxlID8/IGZhbHNlLFxyXG4gICAgICBzb3J0VHlwZTogdGhpcy5faXRlbVN0b3JhZ2UuZ2V0Q29sdW1uU29ydFR5cGUoaW5kZXgpLFxyXG4gICAgICBvblRyaWdnZXJTb3J0OiAoKSA9PiB0aGlzLl9pdGVtU3RvcmFnZS50b2dnbGVDdXJyZW50U29ydENvbHVtbihpbmRleCksXHJcbiAgICAgIG9uVHJpZ2dlclJlc2V0U29ydDogKGV2ZW50PzogRXZlbnQpID0+IHtcclxuICAgICAgICB0aGlzLl9pdGVtU3RvcmFnZS5yZXNldFNvcnQoKTtcclxuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuICByZWFkb25seSBnZXRIZWFkZXJDaGVja2JveENvbnRleHQgPSBjb21wdXRlZDxUYWJsZUhlYWRlckNoZWNrYm94Q29udGV4dD4oKCkgPT4ge1xyXG4gICAgbGV0IHN0YXRlOiBDaGVja2JveFN0YXRlID0gQ2hlY2tib3hTdGF0ZS5VbnNlbGVjdGVkO1xyXG4gICAgaWYgKHRoaXMuX2l0ZW1TdG9yYWdlLmlzQW55SXRlbVNlbGVjdGVkKCkpIHtcclxuICAgICAgc3RhdGUgPSBDaGVja2JveFN0YXRlLkluZGV0ZXJtaW5hdGU7XHJcbiAgICAgIGlmICh0aGlzLl9pdGVtU3RvcmFnZS5hcmVBbGxTZWxlY3RlZCgpKSB7XHJcbiAgICAgICAgc3RhdGUgPSBDaGVja2JveFN0YXRlLlNlbGVjdGVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAkaW1wbGljaXQ6IHN0YXRlLFxyXG4gICAgICBzdGF0ZSxcclxuICAgICAgb25DaGFuZ2U6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnRvZ2dsZUFsbFJvd3NTZWxlY3RlZCgpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9KTtcclxuICBnZXRDaGVja2JveENvbnRleHQoaW5kZXg6IG51bWJlcik6IFRhYmxlQ2hlY2tib3hDb250ZXh0IHtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLl9pdGVtU3RvcmFnZS5pdGVtcygpLmZpbmQodiA9PiB2LmluZGV4KCkgPT09IGluZGV4KSE7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IGl0ZW0uc2VsZWN0ZWQoKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICRpbXBsaWNpdDogc2VsZWN0ZWQsXHJcbiAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcclxuICAgICAgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQoKSxcclxuICAgICAgb25DaGFuZ2U6ICgpID0+IHtcclxuICAgICAgICB0aGlzLm9uQ2hlY2tib3hDbGljayhpbmRleCk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8dGFibGVcclxuICBjbGFzcz1cImFyZC10YWJsZVwiXHJcbiAgW25nQ2xhc3NdPVwibmdDbGFzc2VzKClcIlxyXG4+XHJcbiAgQGlmIChjYXB0aW9uKCkpIHtcclxuICA8Y2FwdGlvbiBjbGFzcz1cImFyZC10YWJsZV9fY2FwdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9fY2FwdGlvbi1jb250YWluZXJcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgI2RlZmF1bHRDYXB0aW9uVGVtcGxhdGVcclxuICAgICAgICBsZXQtY2FwdGlvblRleHRcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGNhcHRpb25UZXh0IH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjYXB0aW9uVGVtcGxhdGUoKSA/PyBkZWZhdWx0Q2FwdGlvblRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNhcHRpb24oKSB9XCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvY2FwdGlvbj5cclxuICB9XHJcbiAgPHRoZWFkIGNsYXNzPVwiYXJkLXRhYmxlX19oZWFkZXJcIj5cclxuICAgIEBmb3IgKHJvdyBvZiBoZWFkZXJDZWxscygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgIDx0ciBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLXJvd1wiPlxyXG4gICAgICBAZm9yIChjZWxsIG9mIHJvdzsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgIDx0aFxyXG4gICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19oZWFkZXItY2VsbFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiY2VsbC5jZWxsKCkuY2VsbENsYXNzXCJcclxuICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19jaGVja2JveC1jZWxsXT1cImlzSGVhZGVyQ2VsbENoZWNrYm94KGNlbGwpXCJcclxuICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImNlbGwuY29sc3BhbigpXCJcclxuICAgICAgICBbYXR0ci5yb3dzcGFuXT1cImNlbGwucm93c3BhbigpXCJcclxuICAgICAgICBbc2NvcGVdPVwiY2VsbC5jb2xzcGFuKCkgPiAxID8gJ2NvbGdyb3VwJyA6ICdjb2wnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19jZWxsLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19zb3J0YWJsZV09XCJpc0hlYWRlckNlbGxTb3J0YWJsZShjZWxsKVwiXHJcbiAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY2VsbC53aWR0aFwiXHJcbiAgICAgICAgICBbc3R5bGUubWluV2lkdGhdPVwiY2VsbC5taW5XaWR0aFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgQGlmIChpc0hlYWRlckNlbGxDaGVja2JveChjZWxsKSkge1xyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICNkZWZhdWx0SGVhZGVyQ2hlY2tib3hUZW1wbGF0ZVxyXG4gICAgICAgICAgICBsZXQtc3RhdGVcclxuICAgICAgICAgICAgbGV0LW9uQ2hhbmdlPVwib25DaGFuZ2VcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YXJkLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgW3RhYkluZGV4XT1cImlzTG9hZGluZygpID8gLTEgOiB0YWJJbmRleCgpXCJcclxuICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxyXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJnZXRIZWFkZXJDaGVja2JveENvbG9yKClcIlxyXG4gICAgICAgICAgICAgIHVuc2VsZWN0ZWRDb2xvcj1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlckNoZWNrYm94VGVtcGxhdGUoKSA/PyBkZWZhdWx0SGVhZGVyQ2hlY2tib3hUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRIZWFkZXJDaGVja2JveENvbnRleHQoKVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgI2RlZmF1bHRIZWFkZXJDZWxsVGVtcGxhdGVcclxuICAgICAgICAgICAgbGV0LWNvbnRlbnRcclxuICAgICAgICAgICAgbGV0LXNvcnRhYmxlPVwic29ydGFibGVcIlxyXG4gICAgICAgICAgICBsZXQtc29ydFR5cGU9XCJzb3J0VHlwZVwiXHJcbiAgICAgICAgICAgIGxldC1vblRyaWdnZXJTb3J0PVwib25UcmlnZ2VyU29ydFwiXHJcbiAgICAgICAgICAgIGxldC1vblRyaWdnZXJSZXNldFNvcnQ9XCJvblRyaWdnZXJSZXNldFNvcnRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci10ZW1wbGF0ZS1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5hcmQtc29ydGFibGVdPVwic29ydGFibGVcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5hcmQtbm9uc29ydGFibGVdPVwiIXNvcnRhYmxlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIEBpZiAoc29ydGFibGUpIHtcclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19oZWFkZXItY29udGVudC1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVHJpZ2dlclNvcnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5Fc2MpPVwib25UcmlnZ2VyUmVzZXRTb3J0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jb250ZW50XCI+e3sgY29udGVudCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgQGlmIChzb3J0VHlwZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLXNvcnQtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICBAaWYgKHNvcnRUeXBlID09PSAnYXNjZW5kaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICA8YXJkLWljb24+c291dGg8L2FyZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChzb3J0VHlwZSA9PT0gJ2Rlc2NlbmRpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxhcmQtaWNvbj5ub3J0aDwvYXJkLWljb24+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtdGFibGVfX2hlYWRlci1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC10YWJsZV9faGVhZGVyLWNvbnRlbnRcIj57eyBjb250ZW50IH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdldEhlYWRlclRlbXBsYXRlKGNlbGwuY2VsbCgpLmhlYWRlcikgPz8gZGVmYXVsdEhlYWRlckNlbGxUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRIZWFkZXJDb250ZXh0KGNlbGwuY2VsbCgpLCAkaW5kZXgpXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIH1cclxuICAgIDwvdHI+XHJcbiAgICB9XHJcbiAgPC90aGVhZD5cclxuICA8dGJvZHkgY2xhc3M9XCJhcmQtdGFibGVfX2JvZHlcIj5cclxuICAgIEBmb3IgKHJvdyBvZiBkYXRhUm93cygpOyB0cmFjayAkaW5kZXgpIHsgQGlmIChyb3cuaXNFbXB0eSgpKSB7XHJcbiAgICA8dHIgY2xhc3M9XCJhcmQtdGFibGVfX2VtcHR5LXJvd1wiPlxyXG4gICAgICA8dGRcclxuICAgICAgICBjbGFzcz1cImFyZC10YWJsZV9fZW1wdHktY2VsbFwiXHJcbiAgICAgICAgY29sc3Bhbj1cIjk5OTlcIlxyXG4gICAgICA+PC90ZD5cclxuICAgIDwvdHI+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgIDx0clxyXG4gICAgICBjbGFzcz1cImFyZC10YWJsZV9fYm9keS1yb3dcIlxyXG4gICAgICBbY2xhc3MuYXJkLXRhYmxlX19zZWxlY3RlZC1yb3ddPVwicm93LnNlbGVjdGVkKClcIlxyXG4gICAgICBbY2xhc3MuYXJkLXRhYmxlX19oaWdobGlnaHRlZC1yb3ddPVwicm93LmhpZ2hsaWdodGVkKClcIlxyXG4gICAgICBbY2xhc3MuYXJkLXRhYmxlX19kaXNhYmxlZC1yb3ddPVwicm93LmRpc2FibGVkKClcIlxyXG4gICAgICBbY2xhc3MuYXJkLXRhYmxlX19ib2xkLXJvd109XCJyb3cuYm9sZCgpXCJcclxuICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2socm93LCAkZXZlbnQpXCJcclxuICAgICAgKG1vdXNlb3Zlcik9XCJvblJvd01vdXNlT3ZlcigkZXZlbnQpXCJcclxuICAgICAgKG1vdXNlZW50ZXIpPVwib25Sb3dNb3VzZUVudGVyKHJvdy5pbmRleCgpLCAkZXZlbnQpXCJcclxuICAgICAgKG1vdXNlbGVhdmUpPVwib25Sb3dNb3VzZUxlYXZlKHJvdy5pbmRleCgpLCAkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgQGZvciAoY2VsbCBvZiByb3cuZGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgPG5nLXRlbXBsYXRlICNjZWxsVG1wPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19jZWxsLWNvbnRhaW5lclwiXHJcbiAgICAgICAgICBbc3R5bGVdPVwiZ2V0Q2VsbFN0eWxlKHJvdy5kYXRhQ29sdW1ucygpWyRpbmRleF0pXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBAaWYgKGlzQ2VsbENoZWNrYm94KGNlbGwpKSB7XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgI2RlZmF1bHRDaGVja2JveFRlbXBsYXRlXHJcbiAgICAgICAgICAgIGxldC1pc0NoZWNrZWRcclxuICAgICAgICAgICAgbGV0LW9uQ2hhbmdlPVwib25DaGFuZ2VcIlxyXG4gICAgICAgICAgICBsZXQtZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxhcmQtY2hlY2tib3hcclxuICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiaXNMb2FkaW5nKCkgPyAtMSA6IHRhYkluZGV4KClcIlxyXG4gICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpc0NoZWNrZWRcIlxyXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvcigpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGVja2JveFRlbXBsYXRlKCkgPz8gZGVmYXVsdENoZWNrYm94VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0Q2hlY2tib3hDb250ZXh0KHJvdy5pbmRleCgpKVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgI2RlZmF1bHRDZWxsVGVtcGxhdGVcclxuICAgICAgICAgICAgbGV0LWNvbnRlbnRcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY29udGVudCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ2V0Q2VsbFRlbXBsYXRlKHJvdy5kYXRhQ29sdW1ucygpWyRpbmRleF0udGVtcGxhdGUpID8/IGRlZmF1bHRDZWxsVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNlbGwgfVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICBAaWYgKCFyb3cuZGF0YUNvbHVtbnMoKVskaW5kZXhdLmlzUm93SGVhZGVyKSB7XHJcbiAgICAgIDx0ZFxyXG4gICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19ib2R5LWNlbGxcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInJvdy5kYXRhQ29sdW1ucygpWyRpbmRleF0uY2VsbENsYXNzXCJcclxuICAgICAgICBbY2xhc3MuYXJkLXRhYmxlX19jaGVja2JveC1jZWxsXT1cImlzQ2VsbENoZWNrYm94KGNlbGwpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjZWxsVG1wXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC90ZD5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgIDx0aFxyXG4gICAgICAgIGNsYXNzPVwiYXJkLXRhYmxlX19ib2R5LWNlbGwgYXJkLXRhYmxlX19yb3ctaGVhZGVyXCJcclxuICAgICAgICBzY29wZT1cInJvd1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwicm93LmRhdGFDb2x1bW5zKClbJGluZGV4XS5jZWxsQ2xhc3NcIlxyXG4gICAgICAgIFtjbGFzcy5hcmQtdGFibGVfX2NoZWNrYm94LWNlbGxdPVwiaXNDZWxsQ2hlY2tib3goY2VsbClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUbXBcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3RoPlxyXG4gICAgICB9IH1cclxuICAgIDwvdHI+XHJcbiAgICB9IH1cclxuICA8L3Rib2R5PlxyXG4gIEBpZiAoY2FuRGlzcGxheVBhZ2luYXRpb24oKSkge1xyXG4gIDx0Zm9vdCBjbGFzcz1cImFyZC10YWJsZV9fZm9vdFwiPlxyXG4gICAgPHRyIGNsYXNzPVwiYXJkLXRhYmxlX19mb290LXJvd1wiPlxyXG4gICAgICA8dGRcclxuICAgICAgICBjbGFzcz1cImFyZC10YWJsZV9fcGFnaW5hdGlvbi1jZWxsXCJcclxuICAgICAgICBjb2xzcGFuPVwiOTk5OVwiXHJcbiAgICAgID5cclxuICAgICAgICA8YXJkLXRhYmxlLXBhZ2luYXRpb25cclxuICAgICAgICAgIFtvcHRpb25zXT1cInBhZ2luYXRpb25PcHRpb25zKClcIlxyXG4gICAgICAgICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtcygpIVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwicGFnaW5hdGlvbkRpc2FibGVkKClcIlxyXG4gICAgICAgICAgWyhpdGVtc1BlclBhZ2UpXT1cIml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgICBbKHBhZ2UpXT1cInBhZ2VcIlxyXG4gICAgICAgICAgW2FsaWduXT1cInBhZ2luYXRpb25BbGlnbigpXCJcclxuICAgICAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nKClcIlxyXG4gICAgICAgICAgW2l0ZW1zUGVyUGFnZVRleHRdPVwiaXRlbXNQZXJQYWdlVGV4dCgpXCJcclxuICAgICAgICAgIFtjdXJyZW50SXRlbXNGb3JtYXRGbl09XCJjdXJyZW50SXRlbXNGb3JtYXRGbigpXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L3Rmb290PlxyXG4gIH1cclxuPC90YWJsZT5cclxuIl19
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
59
59
|
type: Directive,
|
|
60
60
|
args: [{ selector: 'ard-table > ng-template[ard-table-pagination-tmp]' }]
|
|
61
61
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvdGFibGUvdGFibGUuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLDRCQUE0QjtJQUd2QyxZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUZwQyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBbUIsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUU3QixDQUFDOzhHQUh0Qyw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3Q0FBd0MsRUFBRTs7QUFRakUsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxZQUFtQixRQUEyQztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFtQztJQUFHLENBQUM7OEdBRHZELG9DQUFvQztrR0FBcEMsb0NBQW9DOzsyRkFBcEMsb0NBQW9DO2tCQURoRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGlEQUFpRCxFQUFFOztBQVExRSxNQUFNLE9BQU8sMENBQTBDO0lBQ3JELFlBQW1CLFFBQTJDO1FBQTNDLGFBQVEsR0FBUixRQUFRLENBQW1DO0lBQUcsQ0FBQzs4R0FEdkQsMENBQTBDO2tHQUExQywwQ0FBMEM7OzJGQUExQywwQ0FBMEM7a0JBSHRELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdEQUF3RDtpQkFDbkU7O0FBTUQsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxZQUFtQixRQUEwQztRQUExQyxhQUFRLEdBQVIsUUFBUSxDQUFrQztJQUFHLENBQUM7OEdBRHRELG1DQUFtQztrR0FBbkMsbUNBQW1DOzsyRkFBbkMsbUNBQW1DO2tCQUQvQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdEQUFnRCxFQUFFOztBQUt6RSxlQUFlO0FBRWYsTUFBTSxPQUFPLHNDQUFzQztJQUNqRCxZQUFtQixRQUF3QztRQUF4QyxhQUFRLEdBQVIsUUFBUSxDQUFnQztJQUFHLENBQUM7OEdBRHBELHNDQUFzQztrR0FBdEMsc0NBQXNDOzsyRkFBdEMsc0NBQXNDO2tCQURsRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1EQUFtRCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbnRleHQgfSBmcm9tICcuLi9faW50ZXJuYWwvbW9kZWxzL3BhZ2luYXRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBUYWJsZUNhcHRpb25Db250ZXh0LCBUYWJsZUNoZWNrYm94Q29udGV4dCB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLXRhYmxlID4gbmctdGVtcGxhdGVbYXJkLXRhYmxlLXRtcF0nIH0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZVRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICByZWFkb25seSBuYW1lID0gaW5wdXQucmVxdWlyZWQ8TnVsbGFibGU8c3RyaW5nPj4oeyBhbGlhczogJ2FyZC10YWJsZS10bXAnIH0pO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHt9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC10YWJsZSA+IG5nLXRlbXBsYXRlW2FyZC10YWJsZS1jaGVja2JveC10bXBdJyB9KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtVGFibGVDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFRhYmxlQ2hlY2tib3hDb250ZXh0Pikge31cclxufVxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtdGFibGUgPiBuZy10ZW1wbGF0ZVthcmQtdGFibGUtaGVhZGVyLWNoZWNrYm94LXRtcF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtVGFibGVIZWFkZXJDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFRhYmxlQ2hlY2tib3hDb250ZXh0Pikge31cclxufVxyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLXRhYmxlID4gbmctdGVtcGxhdGVbYXJkLXRhYmxlLWNhcHRpb24tdG1wXScgfSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bVRhYmxlQ2FwdGlvblRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFRhYmxlQ2FwdGlvbkNvbnRleHQ+KSB7fVxyXG59XHJcblxyXG4vLyEgcGFnaW5hdGlvbnNcclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLXRhYmxlID4gbmctdGVtcGxhdGVbYXJkLXRhYmxlLXBhZ2luYXRpb24tdG1wXScgfSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bVRhYmxlUGFnaW5hdGlvblRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pikge31cclxufVxyXG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './table-from-csv.module';
|
|
2
2
|
export * from './table-from-csv.component';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmxlLWZyb20tY3N2L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGFibGUtZnJvbS1jc3YubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1mcm9tLWNzdi5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -111,10 +111,10 @@ export class ArdiumTableFromCsvComponent {
|
|
|
111
111
|
return dataRows;
|
|
112
112
|
}
|
|
113
113
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableFromCsvComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.2", type: ArdiumTableFromCsvComponent, selector: "ard-table-from-csv", inputs: { selectableRows: { classPropertyName: "selectableRows", publicName: "selectableRows", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, clickableRows: { classPropertyName: "clickableRows", publicName: "clickableRows", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, loadingProgress: { classPropertyName: "loadingProgress", publicName: "loadingProgress", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, headerAlign: { classPropertyName: "headerAlign", publicName: "headerAlign", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, zebra: { classPropertyName: "zebra", publicName: "zebra", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, paginationStrategy: { classPropertyName: "paginationStrategy", publicName: "paginationStrategy", isSignal: true, isRequired: false, transformFunction: null }, paginationOptions: { classPropertyName: "paginationOptions", publicName: "paginationOptions", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, paginationColor: { classPropertyName: "paginationColor", publicName: "paginationColor", isSignal: true, isRequired: false, transformFunction: null }, paginationAlign: { classPropertyName: "paginationAlign", publicName: "paginationAlign", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPageText: { classPropertyName: "itemsPerPageText", publicName: "itemsPerPageText", isSignal: true, isRequired: false, transformFunction: null }, currentItemsFormatFn: { classPropertyName: "currentItemsFormatFn", publicName: "currentItemsFormatFn", isSignal: true, isRequired: false, transformFunction: null }, pageFillRemaining: { classPropertyName: "pageFillRemaining", publicName: "pageFillRemaining", isSignal: true, isRequired: false, transformFunction: null }, paginationDisabled: { classPropertyName: "paginationDisabled", publicName: "paginationDisabled", isSignal: true, isRequired: false, transformFunction: null }, useFirstLastButtons: { classPropertyName: "useFirstLastButtons", publicName: "useFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsPerPage: "itemsPerPageChange", page: "pageChange" }, usesOnChanges: true, ngImport: i0, template: "<ard-table\n treatDataSourceAsString\n [columns]=\"headers()\"\n [data]=\"dataRows()\"\n [selectableRows]=\"selectableRows()\"\n [maxSelectedItems]=\"maxSelectedItems()\"\n [clickableRows]=\"clickableRows()\"\n [isLoading]=\"isLoading()\"\n [loadingProgress]=\"loadingProgress()\"\n [caption]=\"caption()\"\n [appearance]=\"appearance()\"\n [variant]=\"variant()\"\n [color]=\"color()\"\n [align]=\"align()\"\n [headerAlign]=\"headerAlign()\"\n [compact]=\"compact()\"\n [zebra]=\"zebra()\"\n [stickyHeader]=\"stickyHeader()\"\n [paginated]=\"paginated()\"\n [paginationStrategy]=\"paginationStrategy()\"\n [totalItems]=\"totalItems()\"\n [paginationColor]=\"paginationColor()\"\n [paginationAlign]=\"paginationAlign()\"\n [itemsPerPageText]=\"itemsPerPageText()\"\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\n [pageFillRemaining]=\"pageFillRemaining()\"\n [paginationDisabled]=\"paginationDisabled()\"\n [useFirstLastButtons]=\"useFirstLastButtons()\"\n [(itemsPerPage)]=\"itemsPerPage\"\n [(page)]=\"page\"\n/>\n", dependencies: [{ kind: "component", type: i1.ArdiumTableComponent, selector: "ard-table", inputs: ["rowDisabledFrom", "rowBoldFrom", "invertRowDisabled", "invertRowBold", "selectableRows", "maxSelectedItems", "clickableRows", "caption", "isLoading", "loadingProgress", "appearance", "variant", "color", "align", "headerAlign", "compact", "zebra", "stickyHeader", "paginated", "paginationStrategy", "paginationOptions", "totalItems", "paginationColor", "paginationAlign", "itemsPerPageText", "currentItemsFormatFn", "pageFillRemaining", "paginationDisabled", "useFirstLastButtons", "itemsPerPage", "page", "columns", "data", "treatDataSourceAsString", "_suppressErrors"], outputs: ["itemsPerPageChange", "pageChange", "selectedRowsChange", "failedSelectRow", "selectRow", "unselectRow", "clickRow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.2", type: ArdiumTableFromCsvComponent, selector: "ard-table-from-csv", inputs: { selectableRows: { classPropertyName: "selectableRows", publicName: "selectableRows", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: "maxSelectedItems", publicName: "maxSelectedItems", isSignal: true, isRequired: false, transformFunction: null }, clickableRows: { classPropertyName: "clickableRows", publicName: "clickableRows", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, loadingProgress: { classPropertyName: "loadingProgress", publicName: "loadingProgress", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, headerAlign: { classPropertyName: "headerAlign", publicName: "headerAlign", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, zebra: { classPropertyName: "zebra", publicName: "zebra", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, paginated: { classPropertyName: "paginated", publicName: "paginated", isSignal: true, isRequired: false, transformFunction: null }, paginationStrategy: { classPropertyName: "paginationStrategy", publicName: "paginationStrategy", isSignal: true, isRequired: false, transformFunction: null }, paginationOptions: { classPropertyName: "paginationOptions", publicName: "paginationOptions", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, paginationColor: { classPropertyName: "paginationColor", publicName: "paginationColor", isSignal: true, isRequired: false, transformFunction: null }, paginationAlign: { classPropertyName: "paginationAlign", publicName: "paginationAlign", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPageText: { classPropertyName: "itemsPerPageText", publicName: "itemsPerPageText", isSignal: true, isRequired: false, transformFunction: null }, currentItemsFormatFn: { classPropertyName: "currentItemsFormatFn", publicName: "currentItemsFormatFn", isSignal: true, isRequired: false, transformFunction: null }, pageFillRemaining: { classPropertyName: "pageFillRemaining", publicName: "pageFillRemaining", isSignal: true, isRequired: false, transformFunction: null }, paginationDisabled: { classPropertyName: "paginationDisabled", publicName: "paginationDisabled", isSignal: true, isRequired: false, transformFunction: null }, useFirstLastButtons: { classPropertyName: "useFirstLastButtons", publicName: "useFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsPerPage: "itemsPerPageChange", page: "pageChange" }, usesOnChanges: true, ngImport: i0, template: "<ard-table\r\n treatDataSourceAsString\r\n [columns]=\"headers()\"\r\n [data]=\"dataRows()\"\r\n [selectableRows]=\"selectableRows()\"\r\n [maxSelectedItems]=\"maxSelectedItems()\"\r\n [clickableRows]=\"clickableRows()\"\r\n [isLoading]=\"isLoading()\"\r\n [loadingProgress]=\"loadingProgress()\"\r\n [caption]=\"caption()\"\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [color]=\"color()\"\r\n [align]=\"align()\"\r\n [headerAlign]=\"headerAlign()\"\r\n [compact]=\"compact()\"\r\n [zebra]=\"zebra()\"\r\n [stickyHeader]=\"stickyHeader()\"\r\n [paginated]=\"paginated()\"\r\n [paginationStrategy]=\"paginationStrategy()\"\r\n [totalItems]=\"totalItems()\"\r\n [paginationColor]=\"paginationColor()\"\r\n [paginationAlign]=\"paginationAlign()\"\r\n [itemsPerPageText]=\"itemsPerPageText()\"\r\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\r\n [pageFillRemaining]=\"pageFillRemaining()\"\r\n [paginationDisabled]=\"paginationDisabled()\"\r\n [useFirstLastButtons]=\"useFirstLastButtons()\"\r\n [(itemsPerPage)]=\"itemsPerPage\"\r\n [(page)]=\"page\"\r\n/>\r\n", dependencies: [{ kind: "component", type: i1.ArdiumTableComponent, selector: "ard-table", inputs: ["rowDisabledFrom", "rowBoldFrom", "invertRowDisabled", "invertRowBold", "selectableRows", "maxSelectedItems", "clickableRows", "caption", "isLoading", "loadingProgress", "appearance", "variant", "color", "align", "headerAlign", "compact", "zebra", "stickyHeader", "paginated", "paginationStrategy", "paginationOptions", "totalItems", "paginationColor", "paginationAlign", "itemsPerPageText", "currentItemsFormatFn", "pageFillRemaining", "paginationDisabled", "useFirstLastButtons", "itemsPerPage", "page", "columns", "data", "treatDataSourceAsString", "_suppressErrors"], outputs: ["itemsPerPageChange", "pageChange", "selectedRowsChange", "failedSelectRow", "selectRow", "unselectRow", "clickRow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
115
115
|
}
|
|
116
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumTableFromCsvComponent, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
|
-
args: [{ selector: 'ard-table-from-csv', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ard-table\n treatDataSourceAsString\n [columns]=\"headers()\"\n [data]=\"dataRows()\"\n [selectableRows]=\"selectableRows()\"\n [maxSelectedItems]=\"maxSelectedItems()\"\n [clickableRows]=\"clickableRows()\"\n [isLoading]=\"isLoading()\"\n [loadingProgress]=\"loadingProgress()\"\n [caption]=\"caption()\"\n [appearance]=\"appearance()\"\n [variant]=\"variant()\"\n [color]=\"color()\"\n [align]=\"align()\"\n [headerAlign]=\"headerAlign()\"\n [compact]=\"compact()\"\n [zebra]=\"zebra()\"\n [stickyHeader]=\"stickyHeader()\"\n [paginated]=\"paginated()\"\n [paginationStrategy]=\"paginationStrategy()\"\n [totalItems]=\"totalItems()\"\n [paginationColor]=\"paginationColor()\"\n [paginationAlign]=\"paginationAlign()\"\n [itemsPerPageText]=\"itemsPerPageText()\"\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\n [pageFillRemaining]=\"pageFillRemaining()\"\n [paginationDisabled]=\"paginationDisabled()\"\n [useFirstLastButtons]=\"useFirstLastButtons()\"\n [(itemsPerPage)]=\"itemsPerPage\"\n [(page)]=\"page\"\n/>\n" }]
|
|
118
|
+
args: [{ selector: 'ard-table-from-csv', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ard-table\r\n treatDataSourceAsString\r\n [columns]=\"headers()\"\r\n [data]=\"dataRows()\"\r\n [selectableRows]=\"selectableRows()\"\r\n [maxSelectedItems]=\"maxSelectedItems()\"\r\n [clickableRows]=\"clickableRows()\"\r\n [isLoading]=\"isLoading()\"\r\n [loadingProgress]=\"loadingProgress()\"\r\n [caption]=\"caption()\"\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [color]=\"color()\"\r\n [align]=\"align()\"\r\n [headerAlign]=\"headerAlign()\"\r\n [compact]=\"compact()\"\r\n [zebra]=\"zebra()\"\r\n [stickyHeader]=\"stickyHeader()\"\r\n [paginated]=\"paginated()\"\r\n [paginationStrategy]=\"paginationStrategy()\"\r\n [totalItems]=\"totalItems()\"\r\n [paginationColor]=\"paginationColor()\"\r\n [paginationAlign]=\"paginationAlign()\"\r\n [itemsPerPageText]=\"itemsPerPageText()\"\r\n [currentItemsFormatFn]=\"currentItemsFormatFn()\"\r\n [pageFillRemaining]=\"pageFillRemaining()\"\r\n [paginationDisabled]=\"paginationDisabled()\"\r\n [useFirstLastButtons]=\"useFirstLastButtons()\"\r\n [(itemsPerPage)]=\"itemsPerPage\"\r\n [(page)]=\"page\"\r\n/>\r\n" }]
|
|
119
119
|
}] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZnJvbS1jc3YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi90YWJsZS1mcm9tLWNzdi90YWJsZS1mcm9tLWNzdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmxlLWZyb20tY3N2L3RhYmxlLWZyb20tY3N2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUdULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBd0IsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7OztBQVFuRyxNQUFNLE9BQU8sMkJBQTJCO0lBTnhDO1FBT1csbUJBQWMsR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRTdCLGNBQVMsR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUN6QixvQkFBZSxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRS9CLFlBQU8sR0FBRyxLQUFLLENBQW1CLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLGVBQVUsR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUMxQixZQUFPLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFDdkIsVUFBSyxHQUFHLEtBQUssRUFBTyxDQUFDO1FBQ3JCLFVBQUssR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUNyQixnQkFBVyxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRTNCLFlBQU8sR0FBRyxLQUFL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LENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFvQixDQUFDO2dCQUMvQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs4R0FySVUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsOG5JQ3RCeEMsNmhDQStCQTs7MkZEVGEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLG9CQUFvQixpQkFFZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29tcHV0ZWQsXG4gIGlucHV0LFxuICBtb2RlbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZURhdGFDb2x1bW4sIFRhYmxlUGFnaW5hdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vdGFibGUvdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi90eXBlcy91dGlsaXR5LnR5cGVzJztcbmltcG9ydCB7IENvbXBvbmVudENvbG9yIH0gZnJvbSAnLi4vdHlwZXMvY29sb3JzLnR5cGVzJztcbmltcG9ydCB7IEN1cnJlbnRJdGVtc0Zvcm1hdEZuLCBQYWdpbmF0aW9uQWxpZ24gfSBmcm9tICcuLi90YWJsZS1wYWdpbmF0aW9uL3RhYmxlLXBhZ2luYXRpb24udHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmQtdGFibGUtZnJvbS1jc3YnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZnJvbS1jc3YuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtVGFibGVGcm9tQ3N2Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcbiAgcmVhZG9ubHkgc2VsZWN0YWJsZVJvd3MgPSBpbnB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IG1heFNlbGVjdGVkSXRlbXMgPSBpbnB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IGNsaWNrYWJsZVJvd3MgPSBpbnB1dDxhbnk+KCk7XG5cbiAgcmVhZG9ubHkgaXNMb2FkaW5nID0gaW5wdXQ8YW55PigpO1xuICByZWFkb25seSBsb2FkaW5nUHJvZ3Jlc3MgPSBpbnB1dDxhbnk+KCk7XG5cbiAgcmVhZG9ubHkgY2FwdGlvbiA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PGFueT4oKTtcbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PGFueT4oKTtcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IGFsaWduID0gaW5wdXQ8YW55PigpO1xuICByZWFkb25seSBoZWFkZXJBbGlnbiA9IGlucHV0PGFueT4oKTtcblxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8YW55PigpO1xuICByZWFkb25seSB6ZWJyYSA9IGlucHV0PGFueT4oKTtcbiAgcmVhZG9ubHkgc3RpY2t5SGVhZGVyID0gaW5wdXQ8YW55PigpO1xuXG4gIC8vISBwYWdpbmF0aW9uXG4gIHJlYWRvbmx5IHBhZ2luYXRlZCA9IGlucHV0PGFueT4oKTtcblxuICByZWFkb25seSBwYWdpbmF0aW9uU3RyYXRlZ3kgPSBpbnB1dDxUYWJsZVBhZ2luYXRpb25TdHJhdGVneT4oVGFibGVQYWdpbmF0aW9uU3RyYXRlZ3kuU2xpY2UpO1xuXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25PcHRpb25zID0gaW5wdXQ8bnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdPihbMTAsIDI1LCA1MF0pO1xuICByZWFkb25seSB0b3RhbEl0ZW1zID0gaW5wdXQ8YW55PigpO1xuICByZWFkb25seSBwYWdpbmF0aW9uQ29sb3IgPSBpbnB1dDxDb21wb25lbnRDb2xvcj4oQ29tcG9uZW50Q29sb3IuTm9uZSk7XG4gIHJlYWRvbmx5IHBhZ2luYXRpb25BbGlnbiA9IGlucHV0PFBhZ2luYXRpb25BbGlnbj4oUGFnaW5hdGlvbkFsaWduLlNwbGl0KTtcbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlVGV4dCA9IGlucHV0PHN0cmluZz4oJ0l0ZW1zIHBlciBwYWdlOicpO1xuICByZWFkb25seSBjdXJyZW50SXRlbXNGb3JtYXRGbiA9IGlucHV0PEN1cnJlbnRJdGVtc0Zvcm1hdEZuPihcbiAgICAoeyBjdXJyZW50SXRlbXNGaXJzdCwgY3VycmVudEl0ZW1zTGFzdCwgdG90YWxJdGVtcyB9KSA9PiBgJHtjdXJyZW50SXRlbXNGaXJzdH0g4oCTICR7Y3VycmVudEl0ZW1zTGFzdH0gb2YgJHt0b3RhbEl0ZW1zfWBcbiAgKTtcblxuICByZWFkb25seSBwYWdlRmlsbFJlbWFpbmluZyA9IGlucHV0PGFueT4oKTtcbiAgcmVhZG9ubHkgcGFnaW5hdGlvbkRpc2FibGVkID0gaW5wdXQ8YW55PigpO1xuICByZWFkb25seSB1c2VGaXJzdExhc3RCdXR0b25zID0gaW5wdXQ8YW55PigpO1xuXG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZSA9IG1vZGVsPG51bWJlcj4oNTApO1xuICByZWFkb25seSBwYWdlID0gbW9kZWw8bnVtYmVyPigxKTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zUGVyUGFnZSddKSB7XG4gICAgICBjb25zdCBpcHAgPSBjaGFuZ2VzWydpdGVtc1BlclBhZ2UnXS5jdXJyZW50VmFsdWU7XG4gICAgICBjb25zdCBvcHRpb25zID1cbiAgICAgICAgKGNoYW5nZXNbJ3BhZ2luYXRpb25PcHRpb25zJ10/LmN1cnJlbnRWYWx1ZSBhcyBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10pIHx8XG4gICAgICAgICh0aGlzLnBhZ2luYXRpb25PcHRpb25zKCkgYXMgbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdKTtcbiAgICAgIGlmICghb3B0aW9ucy5maW5kKHYgPT4gKHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgPT09IGlwcCA6IHYudmFsdWUgPT09IGlwcCkpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEFSRC1ORjUwNzE6IHZhbHVlIG9mIFwiJHtpcHB9XCIgaW4gPGFyZC10YWJsZS1mcm9tLWNzdj4ncyBbaXRlbXNQZXJQYWdlXSBkb2VzIG5vdCBhcHBlYXIgaW4gW3BhZ2luYXRpb25PcHRpb25zXSBhcnJheSBbJHtvcHRpb25zXG4gICAgICAgICAgICAgIC5tYXAodiA9PiAodHlwZW9mIHYgPT09ICdudW1iZXInID8gdiA6IHYudmFsdWUpKVxuICAgICAgICAgICAgICAuam9pbignLCAnKX1dYFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3BhZ2luYXRpb25PcHRpb25zJ10pIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBjaGFuZ2VzWydwYWdpbmF0aW9uT3B0aW9ucyddLmN1cnJlbnRWYWx1ZS5tYXAoKHY6IG51bWJlciB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9KSA9PlxuICAgICAgICB0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdi52YWx1ZVxuICAgICAgKSBhcyBudW1iZXJbXTtcbiAgICAgIGZvciAoY29uc3Qgb3B0IG9mIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdCA8PSAwIHx8IG9wdCAlIDEgIT09IDApIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgQVJELU5GNTA3MjogZWFjaCBpdGVtIG9mIDxhcmQtdGFibGUtZnJvbS1jc3Y+J3MgW3BhZ2luYXRpb25PcHRpb25zXSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4gVGhlIFwiJHtvcHR9XCIgb3B0aW9uIHdpbGwgYmUgaWdub3JlZC5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sncGFnZSddKSB7XG4gICAgICBjb25zdCBwYWdlID0gY2hhbmdlc1sncGFnZSddLmN1cnJlbnRWYWx1ZSBhcyBudW1iZXI7XG4gICAgICBpZiAocGFnZSA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEFSRC1GVDUwNzNhOiA8YXJkLXRhYmxlLWZyb20tY3N2PidzIFtwYWdlXSB1c2VzIDEtaW5kZXhlZCBudW1iZXJpbmcgc3lzdGVtLiBUaGUgdmFsdWUgMCBpcyBub3QgYWNjZXB0ZWQuYFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChwYWdlIDwgMCB8fCBwYWdlICUgMSAhPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDUwNzNiOiB2YWx1ZSBvZiA8YXJkLXRhYmxlLWZyb20tY3N2PidzIFtwYWdlXSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgZ290IFwiJHtwYWdlfVwiLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vISBkYXRhXG4gIHJlYWRvbmx5IHNlcGFyYXRvciA9IGlucHV0PHN0cmluZz4oJywnKTtcblxuICByZWFkb25seSBkYXRhID0gaW5wdXQ8eyBoZWFkZXJzOiBUYWJsZURhdGFDb2x1bW5bXTsgZGF0YVJvd3M6IGFueVtdIH0gfCBudWxsLCBzdHJpbmc+KG51bGwsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9pc0NzdlZhbGlkKHYpKSByZXR1cm4gbnVsbDtcbiAgICAgIGNvbnN0IGxpbmVzID0gdi5zcGxpdCgnXFxuJyk7XG4gICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5fY29udmVydENzdlRvSGVhZGVycyhsaW5lcy5zaGlmdCgpISk7XG4gICAgICBjb25zdCBkYXRhUm93cyA9IHRoaXMuX2NvbnZlcnRDc3ZUb0FycmF5KGxpbmVzLCBoZWFkZXJzKTtcbiAgICAgIHJldHVybiB7IGhlYWRlcnMsIGRhdGFSb3dzIH07XG4gICAgfSxcbiAgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzRGF0YU9rYXkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGEoKSAhPT0gbnVsbCk7XG5cbiAgcmVhZG9ubHkgaGVhZGVycyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGF0YSgpPy5oZWFkZXJzID8/IFtdKTtcbiAgcmVhZG9ubHkgZGF0YVJvd3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGEoKT8uZGF0YVJvd3MgPz8gW10pO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzRGF0YU9rYXkoKSkge1xuICAgICAgY29uc29sZS5lcnJvcihuZXcgRXJyb3IoYEFSRC1GVDUwNzA6IEV4cGVjdGVkIDxhcmQtdGFibGUtZnJvbS1jc3Y+J3MgW2RhdGFdIGF0dHJpYnV0ZSB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmcsIGdvdCBcIlwiLmApKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc0NzdlZhbGlkKGNzdjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNzdi5sZW5ndGggPiAxO1xuICB9XG4gIHByaXZhdGUgX2NvbnZlcnRDc3ZUb0hlYWRlcnMobGluZTogc3RyaW5nKTogVGFibGVEYXRhQ29sdW1uW10ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBsaW5lLnNwbGl0KHRoaXMuc2VwYXJhdG9yKCkpO1xuICAgIHJldHVybiBoZWFkZXJzLm1hcChoZWFkZXIgPT4ge1xuICAgICAgaGVhZGVyID0gaGVhZGVyLnRyaW0oKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhlYWRlcixcbiAgICAgICAgZGF0YVNvdXJjZTogaGVhZGVyLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIF9jb252ZXJ0Q3N2VG9BcnJheShsaW5lczogc3RyaW5nW10sIGhlYWRlcnM6IFRhYmxlRGF0YUNvbHVtbltdKTogYW55W10ge1xuICAgIGNvbnN0IGRhdGFSb3dzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgY29uc3QgbGluZUFyciA9IGxpbmUuc3BsaXQodGhpcy5zZXBhcmF0b3IoKSk7XG5cbiAgICAgIGNvbnN0IG9iajogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWFkZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGhlYWRlcnNbaV0uZGF0YVNvdXJjZSBhcyBzdHJpbmc7XG4gICAgICAgIG9ialtzb3VyY2VdID0gbGluZUFycltpXT8udHJpbSgpID8/ICcnO1xuICAgICAgfVxuICAgICAgZGF0YVJvd3MucHVzaChvYmopO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YVJvd3M7XG4gIH1cbn1cbiIsIjxhcmQtdGFibGVcbiAgdHJlYXREYXRhU291cmNlQXNTdHJpbmdcbiAgW2NvbHVtbnNdPVwiaGVhZGVycygpXCJcbiAgW2RhdGFdPVwiZGF0YVJvd3MoKVwiXG4gIFtzZWxlY3RhYmxlUm93c109XCJzZWxlY3RhYmxlUm93cygpXCJcbiAgW21heFNlbGVjdGVkSXRlbXNdPVwibWF4U2VsZWN0ZWRJdGVtcygpXCJcbiAgW2NsaWNrYWJsZVJvd3NdPVwiY2xpY2thYmxlUm93cygpXCJcbiAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmcoKVwiXG4gIFtsb2FkaW5nUHJvZ3Jlc3NdPVwibG9hZGluZ1Byb2dyZXNzKClcIlxuICBbY2FwdGlvbl09XCJjYXB0aW9uKClcIlxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxuICBbdmFyaWFudF09XCJ2YXJpYW50KClcIlxuICBbY29sb3JdPVwiY29sb3IoKVwiXG4gIFthbGlnbl09XCJhbGlnbigpXCJcbiAgW2hlYWRlckFsaWduXT1cImhlYWRlckFsaWduKClcIlxuICBbY29tcGFjdF09XCJjb21wYWN0KClcIlxuICBbemVicmFdPVwiemVicmEoKVwiXG4gIFtzdGlja3lIZWFkZXJdPVwic3RpY2t5SGVhZGVyKClcIlxuICBbcGFnaW5hdGVkXT1cInBhZ2luYXRlZCgpXCJcbiAgW3BhZ2luYXRpb25TdHJhdGVneV09XCJwYWdpbmF0aW9uU3RyYXRlZ3koKVwiXG4gIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXMoKVwiXG4gIFtwYWdpbmF0aW9uQ29sb3JdPVwicGFnaW5hdGlvbkNvbG9yKClcIlxuICBbcGFnaW5hdGlvbkFsaWduXT1cInBhZ2luYXRpb25BbGlnbigpXCJcbiAgW2l0ZW1zUGVyUGFnZVRleHRdPVwiaXRlbXNQZXJQYWdlVGV4dCgpXCJcbiAgW2N1cnJlbnRJdGVtc0Zvcm1hdEZuXT1cImN1cnJlbnRJdGVtc0Zvcm1hdEZuKClcIlxuICBbcGFnZUZpbGxSZW1haW5pbmddPVwicGFnZUZpbGxSZW1haW5pbmcoKVwiXG4gIFtwYWdpbmF0aW9uRGlzYWJsZWRdPVwicGFnaW5hdGlvbkRpc2FibGVkKClcIlxuICBbdXNlRmlyc3RMYXN0QnV0dG9uc109XCJ1c2VGaXJzdExhc3RCdXR0b25zKClcIlxuICBbKGl0ZW1zUGVyUGFnZSldPVwiaXRlbXNQZXJQYWdlXCJcbiAgWyhwYWdlKV09XCJwYWdlXCJcbi8+XG4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZnJvbS1jc3YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi90YWJsZS1mcm9tLWNzdi90YWJsZS1mcm9tLWNzdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmxlLWZyb20tY3N2L3RhYmxlLWZyb20tY3N2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUdULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBd0IsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7OztBQVFuRyxNQUFNLE9BQU8sMkJBQTJCO0lBTnhDO1FBT1csbUJBQWMsR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRTdCLGNBQVMsR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUN6QixvQkFBZSxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRS9CLFlBQU8sR0FBRyxLQUFLLENBQW1CLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLGVBQVUsR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUMxQixZQUFPLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFDdkIsVUFBSyxHQUFHLEtBQUssRUFBTyxDQUFDO1FBQ3JCLFVBQUssR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUNyQixnQkFBVyxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRTNCLFlBQU8sR0FBRyxLQUFL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LENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFvQixDQUFDO2dCQUMvQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs4R0FySVUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsOG5JQ3RCeEMsMmxDQStCQTs7MkZEVGEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLG9CQUFvQixpQkFFZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBjb21wdXRlZCxcclxuICBpbnB1dCxcclxuICBtb2RlbCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGFibGVEYXRhQ29sdW1uLCBUYWJsZVBhZ2luYXRpb25TdHJhdGVneSB9IGZyb20gJy4uL3RhYmxlL3RhYmxlLnR5cGVzJztcclxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi90eXBlcy91dGlsaXR5LnR5cGVzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBDdXJyZW50SXRlbXNGb3JtYXRGbiwgUGFnaW5hdGlvbkFsaWduIH0gZnJvbSAnLi4vdGFibGUtcGFnaW5hdGlvbi90YWJsZS1wYWdpbmF0aW9uLnR5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLXRhYmxlLWZyb20tY3N2JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZnJvbS1jc3YuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1UYWJsZUZyb21Dc3ZDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMge1xyXG4gIHJlYWRvbmx5IHNlbGVjdGFibGVSb3dzID0gaW5wdXQ8YW55PigpO1xyXG4gIHJlYWRvbmx5IG1heFNlbGVjdGVkSXRlbXMgPSBpbnB1dDxhbnk+KCk7XHJcbiAgcmVhZG9ubHkgY2xpY2thYmxlUm93cyA9IGlucHV0PGFueT4oKTtcclxuXHJcbiAgcmVhZG9ubHkgaXNMb2FkaW5nID0gaW5wdXQ8YW55PigpO1xyXG4gIHJlYWRvbmx5IGxvYWRpbmdQcm9ncmVzcyA9IGlucHV0PGFueT4oKTtcclxuXHJcbiAgcmVhZG9ubHkgY2FwdGlvbiA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCk7XHJcblxyXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxhbnk+KCk7XHJcbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PGFueT4oKTtcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PGFueT4oKTtcclxuICByZWFkb25seSBhbGlnbiA9IGlucHV0PGFueT4oKTtcclxuICByZWFkb25seSBoZWFkZXJBbGlnbiA9IGlucHV0PGFueT4oKTtcclxuXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGFueT4oKTtcclxuICByZWFkb25seSB6ZWJyYSA9IGlucHV0PGFueT4oKTtcclxuICByZWFkb25seSBzdGlja3lIZWFkZXIgPSBpbnB1dDxhbnk+KCk7XHJcblxyXG4gIC8vISBwYWdpbmF0aW9uXHJcbiAgcmVhZG9ubHkgcGFnaW5hdGVkID0gaW5wdXQ8YW55PigpO1xyXG5cclxuICByZWFkb25seSBwYWdpbmF0aW9uU3RyYXRlZ3kgPSBpbnB1dDxUYWJsZVBhZ2luYXRpb25TdHJhdGVneT4oVGFibGVQYWdpbmF0aW9uU3RyYXRlZ3kuU2xpY2UpO1xyXG5cclxuICByZWFkb25seSBwYWdpbmF0aW9uT3B0aW9ucyA9IGlucHV0PG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXT4oWzEwLCAyNSwgNTBdKTtcclxuICByZWFkb25seSB0b3RhbEl0ZW1zID0gaW5wdXQ8YW55PigpO1xyXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25Db2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPihDb21wb25lbnRDb2xvci5Ob25lKTtcclxuICByZWFkb25seSBwYWdpbmF0aW9uQWxpZ24gPSBpbnB1dDxQYWdpbmF0aW9uQWxpZ24+KFBhZ2luYXRpb25BbGlnbi5TcGxpdCk7XHJcbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlVGV4dCA9IGlucHV0PHN0cmluZz4oJ0l0ZW1zIHBlciBwYWdlOicpO1xyXG4gIHJlYWRvbmx5IGN1cnJlbnRJdGVtc0Zvcm1hdEZuID0gaW5wdXQ8Q3VycmVudEl0ZW1zRm9ybWF0Rm4+KFxyXG4gICAgKHsgY3VycmVudEl0ZW1zRmlyc3QsIGN1cnJlbnRJdGVtc0xhc3QsIHRvdGFsSXRlbXMgfSkgPT4gYCR7Y3VycmVudEl0ZW1zRmlyc3R9IOKAkyAke2N1cnJlbnRJdGVtc0xhc3R9IG9mICR7dG90YWxJdGVtc31gXHJcbiAgKTtcclxuXHJcbiAgcmVhZG9ubHkgcGFnZUZpbGxSZW1haW5pbmcgPSBpbnB1dDxhbnk+KCk7XHJcbiAgcmVhZG9ubHkgcGFnaW5hdGlvbkRpc2FibGVkID0gaW5wdXQ8YW55PigpO1xyXG4gIHJlYWRvbmx5IHVzZUZpcnN0TGFzdEJ1dHRvbnMgPSBpbnB1dDxhbnk+KCk7XHJcblxyXG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZSA9IG1vZGVsPG51bWJlcj4oNTApO1xyXG4gIHJlYWRvbmx5IHBhZ2UgPSBtb2RlbDxudW1iZXI+KDEpO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snaXRlbXNQZXJQYWdlJ10pIHtcclxuICAgICAgY29uc3QgaXBwID0gY2hhbmdlc1snaXRlbXNQZXJQYWdlJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICBjb25zdCBvcHRpb25zID1cclxuICAgICAgICAoY2hhbmdlc1sncGFnaW5hdGlvbk9wdGlvbnMnXT8uY3VycmVudFZhbHVlIGFzIG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSkgfHxcclxuICAgICAgICAodGhpcy5wYWdpbmF0aW9uT3B0aW9ucygpIGFzIG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSk7XHJcbiAgICAgIGlmICghb3B0aW9ucy5maW5kKHYgPT4gKHR5cGVvZiB2ID09PSAnbnVtYmVyJyA/IHYgPT09IGlwcCA6IHYudmFsdWUgPT09IGlwcCkpKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICAgYEFSRC1ORjUwNzE6IHZhbHVlIG9mIFwiJHtpcHB9XCIgaW4gPGFyZC10YWJsZS1mcm9tLWNzdj4ncyBbaXRlbXNQZXJQYWdlXSBkb2VzIG5vdCBhcHBlYXIgaW4gW3BhZ2luYXRpb25PcHRpb25zXSBhcnJheSBbJHtvcHRpb25zXHJcbiAgICAgICAgICAgICAgLm1hcCh2ID0+ICh0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdi52YWx1ZSkpXHJcbiAgICAgICAgICAgICAgLmpvaW4oJywgJyl9XWBcclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1sncGFnaW5hdGlvbk9wdGlvbnMnXSkge1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gY2hhbmdlc1sncGFnaW5hdGlvbk9wdGlvbnMnXS5jdXJyZW50VmFsdWUubWFwKCh2OiBudW1iZXIgfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfSkgPT5cclxuICAgICAgICB0eXBlb2YgdiA9PT0gJ251bWJlcicgPyB2IDogdi52YWx1ZVxyXG4gICAgICApIGFzIG51bWJlcltdO1xyXG4gICAgICBmb3IgKGNvbnN0IG9wdCBvZiBvcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKG9wdCA8PSAwIHx8IG9wdCAlIDEgIT09IDApIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICBgQVJELU5GNTA3MjogZWFjaCBpdGVtIG9mIDxhcmQtdGFibGUtZnJvbS1jc3Y+J3MgW3BhZ2luYXRpb25PcHRpb25zXSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4gVGhlIFwiJHtvcHR9XCIgb3B0aW9uIHdpbGwgYmUgaWdub3JlZC5gXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1sncGFnZSddKSB7XHJcbiAgICAgIGNvbnN0IHBhZ2UgPSBjaGFuZ2VzWydwYWdlJ10uY3VycmVudFZhbHVlIGFzIG51bWJlcjtcclxuICAgICAgaWYgKHBhZ2UgPT09IDApIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICBgQVJELUZUNTA3M2E6IDxhcmQtdGFibGUtZnJvbS1jc3Y+J3MgW3BhZ2VdIHVzZXMgMS1pbmRleGVkIG51bWJlcmluZyBzeXN0ZW0uIFRoZSB2YWx1ZSAwIGlzIG5vdCBhY2NlcHRlZC5gXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIGlmIChwYWdlIDwgMCB8fCBwYWdlICUgMSAhPT0gMCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQVJELUZUNTA3M2I6IHZhbHVlIG9mIDxhcmQtdGFibGUtZnJvbS1jc3Y+J3MgW3BhZ2VdIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBnb3QgXCIke3BhZ2V9XCIuYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISBkYXRhXHJcbiAgcmVhZG9ubHkgc2VwYXJhdG9yID0gaW5wdXQ8c3RyaW5nPignLCcpO1xyXG5cclxuICByZWFkb25seSBkYXRhID0gaW5wdXQ8eyBoZWFkZXJzOiBUYWJsZURhdGFDb2x1bW5bXTsgZGF0YVJvd3M6IGFueVtdIH0gfCBudWxsLCBzdHJpbmc+KG51bGwsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5faXNDc3ZWYWxpZCh2KSkgcmV0dXJuIG51bGw7XHJcbiAgICAgIGNvbnN0IGxpbmVzID0gdi5zcGxpdCgnXFxuJyk7XHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLl9jb252ZXJ0Q3N2VG9IZWFkZXJzKGxpbmVzLnNoaWZ0KCkhKTtcclxuICAgICAgY29uc3QgZGF0YVJvd3MgPSB0aGlzLl9jb252ZXJ0Q3N2VG9BcnJheShsaW5lcywgaGVhZGVycyk7XHJcbiAgICAgIHJldHVybiB7IGhlYWRlcnMsIGRhdGFSb3dzIH07XHJcbiAgICB9LFxyXG4gIH0pO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzRGF0YU9rYXkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGEoKSAhPT0gbnVsbCk7XHJcblxyXG4gIHJlYWRvbmx5IGhlYWRlcnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGEoKT8uaGVhZGVycyA/PyBbXSk7XHJcbiAgcmVhZG9ubHkgZGF0YVJvd3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGEoKT8uZGF0YVJvd3MgPz8gW10pO1xyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2lzRGF0YU9rYXkoKSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKG5ldyBFcnJvcihgQVJELUZUNTA3MDogRXhwZWN0ZWQgPGFyZC10YWJsZS1mcm9tLWNzdj4ncyBbZGF0YV0gYXR0cmlidXRlIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZywgZ290IFwiXCIuYCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNDc3ZWYWxpZChjc3Y6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGNzdi5sZW5ndGggPiAxO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb252ZXJ0Q3N2VG9IZWFkZXJzKGxpbmU6IHN0cmluZyk6IFRhYmxlRGF0YUNvbHVtbltdIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBsaW5lLnNwbGl0KHRoaXMuc2VwYXJhdG9yKCkpO1xyXG4gICAgcmV0dXJuIGhlYWRlcnMubWFwKGhlYWRlciA9PiB7XHJcbiAgICAgIGhlYWRlciA9IGhlYWRlci50cmltKCk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGVhZGVyLFxyXG4gICAgICAgIGRhdGFTb3VyY2U6IGhlYWRlcixcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb252ZXJ0Q3N2VG9BcnJheShsaW5lczogc3RyaW5nW10sIGhlYWRlcnM6IFRhYmxlRGF0YUNvbHVtbltdKTogYW55W10ge1xyXG4gICAgY29uc3QgZGF0YVJvd3M6IFJlY29yZDxzdHJpbmcsIGFueT5bXSA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xyXG4gICAgICBjb25zdCBsaW5lQXJyID0gbGluZS5zcGxpdCh0aGlzLnNlcGFyYXRvcigpKTtcclxuXHJcbiAgICAgIGNvbnN0IG9iajogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhlYWRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBoZWFkZXJzW2ldLmRhdGFTb3VyY2UgYXMgc3RyaW5nO1xyXG4gICAgICAgIG9ialtzb3VyY2VdID0gbGluZUFycltpXT8udHJpbSgpID8/ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGRhdGFSb3dzLnB1c2gob2JqKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhUm93cztcclxuICB9XHJcbn1cclxuIiwiPGFyZC10YWJsZVxyXG4gIHRyZWF0RGF0YVNvdXJjZUFzU3RyaW5nXHJcbiAgW2NvbHVtbnNdPVwiaGVhZGVycygpXCJcclxuICBbZGF0YV09XCJkYXRhUm93cygpXCJcclxuICBbc2VsZWN0YWJsZVJvd3NdPVwic2VsZWN0YWJsZVJvd3MoKVwiXHJcbiAgW21heFNlbGVjdGVkSXRlbXNdPVwibWF4U2VsZWN0ZWRJdGVtcygpXCJcclxuICBbY2xpY2thYmxlUm93c109XCJjbGlja2FibGVSb3dzKClcIlxyXG4gIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nKClcIlxyXG4gIFtsb2FkaW5nUHJvZ3Jlc3NdPVwibG9hZGluZ1Byb2dyZXNzKClcIlxyXG4gIFtjYXB0aW9uXT1cImNhcHRpb24oKVwiXHJcbiAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZSgpXCJcclxuICBbdmFyaWFudF09XCJ2YXJpYW50KClcIlxyXG4gIFtjb2xvcl09XCJjb2xvcigpXCJcclxuICBbYWxpZ25dPVwiYWxpZ24oKVwiXHJcbiAgW2hlYWRlckFsaWduXT1cImhlYWRlckFsaWduKClcIlxyXG4gIFtjb21wYWN0XT1cImNvbXBhY3QoKVwiXHJcbiAgW3plYnJhXT1cInplYnJhKClcIlxyXG4gIFtzdGlja3lIZWFkZXJdPVwic3RpY2t5SGVhZGVyKClcIlxyXG4gIFtwYWdpbmF0ZWRdPVwicGFnaW5hdGVkKClcIlxyXG4gIFtwYWdpbmF0aW9uU3RyYXRlZ3ldPVwicGFnaW5hdGlvblN0cmF0ZWd5KClcIlxyXG4gIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXMoKVwiXHJcbiAgW3BhZ2luYXRpb25Db2xvcl09XCJwYWdpbmF0aW9uQ29sb3IoKVwiXHJcbiAgW3BhZ2luYXRpb25BbGlnbl09XCJwYWdpbmF0aW9uQWxpZ24oKVwiXHJcbiAgW2l0ZW1zUGVyUGFnZVRleHRdPVwiaXRlbXNQZXJQYWdlVGV4dCgpXCJcclxuICBbY3VycmVudEl0ZW1zRm9ybWF0Rm5dPVwiY3VycmVudEl0ZW1zRm9ybWF0Rm4oKVwiXHJcbiAgW3BhZ2VGaWxsUmVtYWluaW5nXT1cInBhZ2VGaWxsUmVtYWluaW5nKClcIlxyXG4gIFtwYWdpbmF0aW9uRGlzYWJsZWRdPVwicGFnaW5hdGlvbkRpc2FibGVkKClcIlxyXG4gIFt1c2VGaXJzdExhc3RCdXR0b25zXT1cInVzZUZpcnN0TGFzdEJ1dHRvbnMoKVwiXHJcbiAgWyhpdGVtc1BlclBhZ2UpXT1cIml0ZW1zUGVyUGFnZVwiXHJcbiAgWyhwYWdlKV09XCJwYWdlXCJcclxuLz5cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './table-pagination.module';
|
|
2
2
|
export * from './table-pagination.component';
|
|
3
3
|
export * from './table-pagination.types';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3RhYmxlLXBhZ2luYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYmxlLXBhZ2luYXRpb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtcGFnaW5hdGlvbi50eXBlcyc7XHJcbiJdfQ==
|