barsa-sap-ui 2.0.41 → 2.0.43
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/barsa-table-header/barsa-table-header.component.mjs +3 -3
- package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +3 -3
- package/esm2022/lib/models/grid-data-provider.mjs +4 -4
- package/esm2022/lib/search-panel/search-panel.component.mjs +26 -5
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +2 -1
- package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +3 -3
- package/fesm2022/barsa-sap-ui.mjs +33 -11
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/search-panel/search-panel.component.d.ts +5 -2
- package/package.json +1 -1
|
@@ -130,11 +130,11 @@ export class BarsaTableHeaderComponent extends BaseComponent {
|
|
|
130
130
|
return `${column.Name}${index}`;
|
|
131
131
|
}
|
|
132
132
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaTableHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: { allChecked: "allChecked", isCheckList: "isCheckList", columns: "columns", fitWidth: "fitWidth", contextMenuItems: "contextMenuItems", contextMenuWidth: "contextMenuWidth", showViewButton: "showViewButton", hasSelected: "hasSelected", hideOpenIcon: "hideOpenIcon", disableOverflowContextMenu: "disableOverflowContextMenu", inlineEditMode: "inlineEditMode", hideHeader: "hideHeader", showDetailsInRow: "showDetailsInRow", viewSetting: "viewSetting", tableWidth: "tableWidth", resizedByUser: "resizedByUser", disableResponsive: "disableResponsive", actionList: "actionList", rowIndicator: "rowIndicator", rtl: "rtl", showRowNumber: "showRowNumber", disableResize: "disableResize", disableHeaderContextMenu: "disableHeaderContextMenu", deviceSize: "deviceSize", tableHeaderMode: "tableHeaderMode" }, outputs: { allCheckbox: "allCheckbox", columnResize: "columnResize", fitToContent: "fitToContent", fitToContainer: "fitToContainer", fitToColumn: "fitToColumn", sortAscending: "sortAscending", sortDescending: "sortDescending", filter: "filter", resetGridSettings: "resetGridSettings" }, viewQueries: [{ propertyName: "thList", predicate: ["thRef"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead\n fd-table-header\n [class.inline-edit]=\"inlineEditMode\"\n [class.smallColumns]=\"columnsSmallerThanTableWidth\"\n [attr.columnsWidth]=\"columnsWidth\"\n [attr.tableWidth]=\"tableWidth\"\n>\n <tr fd-table-row>\n @if (!hideHeader) { @if (rowIndicator) {\n <th fd-table-cell fd-table-status-indicator></th>\n } @if (showRowNumber) {\n <th fd-table-cell style=\"width: 40px; max-width: 40px\"></th>\n } @if (isCheckList) {\n <th fd-table-cell>\n <fd-checkbox\n name=\"allCheckbox\"\n [ngModel]=\"allChecked\"\n (ngModelChange)=\"onAllCheckbox($event)\"\n ></fd-checkbox>\n </th>\n } @if (!isCheckList && !showRowNumber) {\n <th fd-table-cell class=\"single-select\"></th>\n } @for (column of columns; track _trackByColumn(i, column); let i = $index; let last = $last) { @if (startIndex\n <= i) {\n <th\n #thRef\n [columnIndex]=\"i\"\n fd-table-cell\n [style.width]=\"\n inlineEditMode\n ? column.FieldTypeId === 5\n ? column.$Width2\n : last\n ? '100%'\n : '210px'\n : last && column.$Width !== '100%'\n ? null\n : column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n ? '40px'\n : column.$Width2 || column.$Width\n \"\n [style.min-width]=\"last ? null : inlineEditMode ? '210px' : last ? '100%' : 'auto'\"\n resizable\n [rtl]=\"rtl\"\n [disableResize]=\"\n disableResize ||\n last ||\n column.Extra?.IconDisplayTypeEnum === 'Image' ||\n column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) && column.Extra?.IconDisplayTypeEnum)\n \"\n (widthChange)=\"onColumnWidthChange(column)\"\n (widthChanging)=\"onColumnWidthChanging(i, column, $event)\"\n [disableResponsive]=\"disableResponsive\"\n [tableWidth]=\"tableWidth\"\n [columnsWidth]=\"columnsWidth\"\n [attr.columnName]=\"column.Name\"\n [attr.index]=\"i\"\n [ngClass]=\"column.$CSSClassName + ' column__' + column.Caption\"\n [class.displayIcon]=\"column.Extra?.IconDisplayTypeEnum\"\n >\n @if(!disableHeaderContextMenu){\n <fd-popover #menu>\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortAscending(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"sort-ascending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Ascending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortDescending(column, menu)\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort-descending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Descending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContent.emit(column)\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Fit Column To Content' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContainer.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('All Columns In Page' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToColumn.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Free Columns Size' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onResetColumnsSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"reset\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ 'GridSettingBase' | bbbTranslate }}</span>\n </a>\n </li>\n <!-- <li fd-list-item>\n <a fd-list-link (click)=\"onFilter(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"filter\"></fd-menu-addon>\n <span fd-list-title>{{ 'Filter' | bbbTranslate }}</span>\n </a>\n </li> -->\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @else{\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n }\n </th>\n } } @if (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode) {\n <th\n class=\"col-header col-context-menu\"\n fd-table-cell\n [fitContent]=\"disableOverflowContextMenu\"\n [style.width.px]=\"contextMenuWidth\"\n ></th>\n } @if (showDetailsInRow && !inlineEditMode) {\n <th class=\"col-header col-details\" [style.width]=\"deviceSize === 's' ? 'auto' : '120px'\" fd-table-cell></th>\n } @if (showViewButton) {\n <th class=\"col-header col-view\" [style.width.px]=\"26.5 * (actionList?.length ?? 0) + 8\" fd-table-cell></th>\n } }\n </tr>\n</thead>\n<ng-template #headerValue let-column>\n <div style=\"display: flex\">\n <!-- FieldTypeId 38 means it is auto row number field-->\n @if ( (column.Extra?.IconDisplayTypeEnum === 'Image' || column.FieldTypeId === 42) && column.Icon) {\n <img [src]=\"column.Icon\" />\n } @else {\n {{ column.Caption | bbbTranslate }}\n }\n </div>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host.has-toolbar thead{border-top:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role"] }, { kind: "directive", type: i5.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i6.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i8.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i8.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i8.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i8.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "component", type: i3.ResizableComponent, selector: "th[resizable]", inputs: ["disableResize", "rtl"], outputs: ["widthChange", "widthChanging"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
133
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: { allChecked: "allChecked", isCheckList: "isCheckList", columns: "columns", fitWidth: "fitWidth", contextMenuItems: "contextMenuItems", contextMenuWidth: "contextMenuWidth", showViewButton: "showViewButton", hasSelected: "hasSelected", hideOpenIcon: "hideOpenIcon", disableOverflowContextMenu: "disableOverflowContextMenu", inlineEditMode: "inlineEditMode", hideHeader: "hideHeader", showDetailsInRow: "showDetailsInRow", viewSetting: "viewSetting", tableWidth: "tableWidth", resizedByUser: "resizedByUser", disableResponsive: "disableResponsive", actionList: "actionList", rowIndicator: "rowIndicator", rtl: "rtl", showRowNumber: "showRowNumber", disableResize: "disableResize", disableHeaderContextMenu: "disableHeaderContextMenu", deviceSize: "deviceSize", tableHeaderMode: "tableHeaderMode" }, outputs: { allCheckbox: "allCheckbox", columnResize: "columnResize", fitToContent: "fitToContent", fitToContainer: "fitToContainer", fitToColumn: "fitToColumn", sortAscending: "sortAscending", sortDescending: "sortDescending", filter: "filter", resetGridSettings: "resetGridSettings" }, viewQueries: [{ propertyName: "thList", predicate: ["thRef"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<thead\n fd-table-header\n [class.inline-edit]=\"inlineEditMode\"\n [class.smallColumns]=\"columnsSmallerThanTableWidth\"\n [attr.columnsWidth]=\"columnsWidth\"\n [attr.tableWidth]=\"tableWidth\"\n>\n <tr fd-table-row>\n @if (!hideHeader) { @if (rowIndicator) {\n <th fd-table-cell fd-table-status-indicator></th>\n } @if (showRowNumber) {\n <th fd-table-cell style=\"width: 40px; max-width: 40px\"></th>\n } @if (isCheckList) {\n <th fd-table-cell>\n <fd-checkbox\n name=\"allCheckbox\"\n [ngModel]=\"allChecked\"\n (ngModelChange)=\"onAllCheckbox($event)\"\n ></fd-checkbox>\n </th>\n } @if (!isCheckList && !showRowNumber) {\n <th fd-table-cell class=\"single-select\"></th>\n } @for (column of columns; track _trackByColumn(i, column); let i = $index; let last = $last) { @if (startIndex\n <= i) {\n <th\n #thRef\n [columnIndex]=\"i\"\n fd-table-cell\n [style.width]=\"\n inlineEditMode\n ? column.FieldTypeId === 5\n ? column.$Width2\n : last\n ? '100%'\n : '210px'\n : last && column.$Width !== '100%'\n ? null\n : column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n ? '40px'\n : column.$Width2 || column.$Width\n \"\n [style.min-width]=\"last ? null : inlineEditMode ? '210px' : last ? '100%' : 'auto'\"\n resizable\n [rtl]=\"rtl\"\n [disableResize]=\"\n disableResize ||\n last ||\n column.Extra?.IconDisplayTypeEnum === 'Image' ||\n column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n \"\n (widthChange)=\"onColumnWidthChange(column)\"\n (widthChanging)=\"onColumnWidthChanging(i, column, $event)\"\n [disableResponsive]=\"disableResponsive\"\n [tableWidth]=\"tableWidth\"\n [columnsWidth]=\"columnsWidth\"\n [attr.columnName]=\"column.Name\"\n [attr.index]=\"i\"\n [ngClass]=\"column.$CSSClassName + ' column__' + column.Caption\"\n [class.displayIcon]=\"column.Extra?.IconDisplayTypeEnum\"\n >\n @if(!disableHeaderContextMenu){\n <fd-popover #menu>\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortAscending(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"sort-ascending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Ascending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortDescending(column, menu)\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort-descending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Descending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContent.emit(column)\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Fit Column To Content' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContainer.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('All Columns In Page' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToColumn.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Free Columns Size' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onResetColumnsSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"reset\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ 'GridSettingBase' | bbbTranslate }}</span>\n </a>\n </li>\n <!-- <li fd-list-item>\n <a fd-list-link (click)=\"onFilter(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"filter\"></fd-menu-addon>\n <span fd-list-title>{{ 'Filter' | bbbTranslate }}</span>\n </a>\n </li> -->\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @else{\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n }\n </th>\n } } @if (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode) {\n <th\n class=\"col-header col-context-menu\"\n fd-table-cell\n [fitContent]=\"disableOverflowContextMenu\"\n [style.width.px]=\"contextMenuWidth\"\n ></th>\n } @if (showDetailsInRow && !inlineEditMode) {\n <th class=\"col-header col-details\" [style.width]=\"deviceSize === 's' ? 'auto' : '120px'\" fd-table-cell></th>\n } @if (showViewButton) {\n <th class=\"col-header col-view\" [style.width.px]=\"26.5 * (actionList?.length ?? 0) + 8\" fd-table-cell></th>\n } }\n </tr>\n</thead>\n<ng-template #headerValue let-column>\n <div style=\"display: flex\">\n <!-- FieldTypeId 38 means it is auto row number field-->\n @if ( (column.Extra?.IconDisplayTypeEnum === 'Image' || column.FieldTypeId === 42) && column.Icon) {\n <img [src]=\"column.Icon\" />\n } @else {\n {{ column.Caption | bbbTranslate }}\n }\n </div>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host.has-toolbar thead{border-top:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role"] }, { kind: "directive", type: i5.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i6.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i8.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i8.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i8.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i8.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "component", type: i3.ResizableComponent, selector: "th[resizable]", inputs: ["disableResize", "rtl"], outputs: ["widthChange", "widthChanging"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
134
134
|
}
|
|
135
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaTableHeaderComponent, decorators: [{
|
|
136
136
|
type: Component,
|
|
137
|
-
args: [{ selector: 'bsu-barsa-table-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<thead\n fd-table-header\n [class.inline-edit]=\"inlineEditMode\"\n [class.smallColumns]=\"columnsSmallerThanTableWidth\"\n [attr.columnsWidth]=\"columnsWidth\"\n [attr.tableWidth]=\"tableWidth\"\n>\n <tr fd-table-row>\n @if (!hideHeader) { @if (rowIndicator) {\n <th fd-table-cell fd-table-status-indicator></th>\n } @if (showRowNumber) {\n <th fd-table-cell style=\"width: 40px; max-width: 40px\"></th>\n } @if (isCheckList) {\n <th fd-table-cell>\n <fd-checkbox\n name=\"allCheckbox\"\n [ngModel]=\"allChecked\"\n (ngModelChange)=\"onAllCheckbox($event)\"\n ></fd-checkbox>\n </th>\n } @if (!isCheckList && !showRowNumber) {\n <th fd-table-cell class=\"single-select\"></th>\n } @for (column of columns; track _trackByColumn(i, column); let i = $index; let last = $last) { @if (startIndex\n <= i) {\n <th\n #thRef\n [columnIndex]=\"i\"\n fd-table-cell\n [style.width]=\"\n inlineEditMode\n ? column.FieldTypeId === 5\n ? column.$Width2\n : last\n ? '100%'\n : '210px'\n : last && column.$Width !== '100%'\n ? null\n : column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n ? '40px'\n : column.$Width2 || column.$Width\n \"\n [style.min-width]=\"last ? null : inlineEditMode ? '210px' : last ? '100%' : 'auto'\"\n resizable\n [rtl]=\"rtl\"\n [disableResize]=\"\n disableResize ||\n last ||\n column.Extra?.IconDisplayTypeEnum === 'Image' ||\n column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5)
|
|
137
|
+
args: [{ selector: 'bsu-barsa-table-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<thead\n fd-table-header\n [class.inline-edit]=\"inlineEditMode\"\n [class.smallColumns]=\"columnsSmallerThanTableWidth\"\n [attr.columnsWidth]=\"columnsWidth\"\n [attr.tableWidth]=\"tableWidth\"\n>\n <tr fd-table-row>\n @if (!hideHeader) { @if (rowIndicator) {\n <th fd-table-cell fd-table-status-indicator></th>\n } @if (showRowNumber) {\n <th fd-table-cell style=\"width: 40px; max-width: 40px\"></th>\n } @if (isCheckList) {\n <th fd-table-cell>\n <fd-checkbox\n name=\"allCheckbox\"\n [ngModel]=\"allChecked\"\n (ngModelChange)=\"onAllCheckbox($event)\"\n ></fd-checkbox>\n </th>\n } @if (!isCheckList && !showRowNumber) {\n <th fd-table-cell class=\"single-select\"></th>\n } @for (column of columns; track _trackByColumn(i, column); let i = $index; let last = $last) { @if (startIndex\n <= i) {\n <th\n #thRef\n [columnIndex]=\"i\"\n fd-table-cell\n [style.width]=\"\n inlineEditMode\n ? column.FieldTypeId === 5\n ? column.$Width2\n : last\n ? '100%'\n : '210px'\n : last && column.$Width !== '100%'\n ? null\n : column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n ? '40px'\n : column.$Width2 || column.$Width\n \"\n [style.min-width]=\"last ? null : inlineEditMode ? '210px' : last ? '100%' : 'auto'\"\n resizable\n [rtl]=\"rtl\"\n [disableResize]=\"\n disableResize ||\n last ||\n column.Extra?.IconDisplayTypeEnum === 'Image' ||\n column.FieldTypeId === 38 ||\n column.FieldTypeId === 42 ||\n ((column.FieldTypeId === 6 || column.FieldTypeId === 5) &&\n column.Extra?.IconDisplayTypeEnum === 'Image')\n \"\n (widthChange)=\"onColumnWidthChange(column)\"\n (widthChanging)=\"onColumnWidthChanging(i, column, $event)\"\n [disableResponsive]=\"disableResponsive\"\n [tableWidth]=\"tableWidth\"\n [columnsWidth]=\"columnsWidth\"\n [attr.columnName]=\"column.Name\"\n [attr.index]=\"i\"\n [ngClass]=\"column.$CSSClassName + ' column__' + column.Caption\"\n [class.displayIcon]=\"column.Extra?.IconDisplayTypeEnum\"\n >\n @if(!disableHeaderContextMenu){\n <fd-popover #menu>\n <fd-popover-control>\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortAscending(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"sort-ascending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Ascending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onSortDescending(column, menu)\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort-descending\" fd-list-icon></fd-menu-addon>\n <span fd-list-title\n >{{ ('Sort' | bbbTranslate) + ' ' }} {{ 'Descending' | bbbTranslate }}</span\n >\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContent.emit(column)\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Fit Column To Content' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToContainer.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('All Columns In Page' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"fitToColumn.emit()\" bodyClick>\n <fd-menu-addon position=\"before\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ ('Free Columns Size' | bbbTranslate) + ' ' }}</span>\n </a>\n </li>\n <li fd-list-item>\n <a fd-list-link (click)=\"onResetColumnsSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"reset\" fd-list-icon></fd-menu-addon>\n <span fd-list-title>{{ 'GridSettingBase' | bbbTranslate }}</span>\n </a>\n </li>\n <!-- <li fd-list-item>\n <a fd-list-link (click)=\"onFilter(column, menu)\">\n <fd-menu-addon position=\"before\" glyph=\"filter\"></fd-menu-addon>\n <span fd-list-title>{{ 'Filter' | bbbTranslate }}</span>\n </a>\n </li> -->\n </ul>\n </fd-popover-body>\n </fd-popover>\n } @else{\n <ng-container *ngTemplateOutlet=\"headerValue; context: { $implicit: column }\"></ng-container>\n }\n </th>\n } } @if (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode) {\n <th\n class=\"col-header col-context-menu\"\n fd-table-cell\n [fitContent]=\"disableOverflowContextMenu\"\n [style.width.px]=\"contextMenuWidth\"\n ></th>\n } @if (showDetailsInRow && !inlineEditMode) {\n <th class=\"col-header col-details\" [style.width]=\"deviceSize === 's' ? 'auto' : '120px'\" fd-table-cell></th>\n } @if (showViewButton) {\n <th class=\"col-header col-view\" [style.width.px]=\"26.5 * (actionList?.length ?? 0) + 8\" fd-table-cell></th>\n } }\n </tr>\n</thead>\n<ng-template #headerValue let-column>\n <div style=\"display: flex\">\n <!-- FieldTypeId 38 means it is auto row number field-->\n @if ( (column.Extra?.IconDisplayTypeEnum === 'Image' || column.FieldTypeId === 42) && column.Icon) {\n <img [src]=\"column.Icon\" />\n } @else {\n {{ column.Caption | bbbTranslate }}\n }\n </div>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host.has-toolbar thead{border-top:none!important}\n"] }]
|
|
138
138
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { thList: [{
|
|
139
139
|
type: ViewChildren,
|
|
140
140
|
args: ['thRef', { read: ElementRef }]
|
|
@@ -207,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
207
207
|
}], resetGridSettings: [{
|
|
208
208
|
type: Output
|
|
209
209
|
}] } });
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWhlYWRlci9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtaGVhZGVyL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHTixZQUFZLEVBQ1osVUFBVSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxhQUFhLEVBS2hCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7QUFTOUIsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGFBQWE7SUF3Q3hEOztPQUVHO0lBQ0gsWUFBb0IsSUFBdUI7UUFDdkMsS0FBSyxFQUFFLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQTdCbEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBYXhCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMxQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQzVELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUM5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QUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBJbnB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIENvbHVtblJlc2l6ZWRBcmdzLFxuICAgIFRhYmxlSGVhZGVyV2lkdGhNb2RlXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpVGFibGVWaWV3U2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9ncmlkLXZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkcmVuKCd0aFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSB0aExpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxUYWJsZUNlbGxFbGVtZW50Pj47XG4gICAgQElucHV0KCkgYWxsQ2hlY2tlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc0NoZWNrTGlzdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XG4gICAgQElucHV0KCkgZml0V2lkdGg6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGV4dE1lbnVJdGVtczogYW55W107XG4gICAgQElucHV0KCkgY29udGV4dE1lbnVXaWR0aDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHNob3dWaWV3QnV0dG9uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhhc1NlbGVjdGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVPcGVuSWNvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0TW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlSGVhZGVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dEZXRhaWxzSW5Sb3cgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB2aWV3U2V0dGluZzogVWlUYWJsZVZpZXdTZXR0aW5nO1xuICAgIEBJbnB1dCgpIHRhYmxlV2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSByZXNpemVkQnlVc2VyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVSZXNwb25zaXZlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFjdGlvbkxpc3Q6IGFueVtdO1xuICAgIEBJbnB1dCgpIHJvd0luZGljYXRvcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd1Jvd051bWJlcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlUmVzaXplOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVIZWFkZXJDb250ZXh0TWVudTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG4gICAgQElucHV0KCkgdGFibGVIZWFkZXJNb2RlOiBUYWJsZUhlYWRlcldpZHRoTW9kZTtcbiAgICBAT3V0cHV0KCkgYWxsQ2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGNvbHVtblJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8Q29sdW1uUmVzaXplZEFyZ3M+PigpO1xuICAgIEBPdXRwdXQoKSBmaXRUb0NvbnRlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlcG9ydFZpZXdDb2x1bW4+KCk7XG4gICAgQE91dHB1dCgpIGZpdFRvQ29udGFpbmVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBmaXRUb0NvbHVtbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgc29ydEFzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBzb3J0RGVzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlcG9ydFZpZXdDb2x1bW4+KCk7XG4gICAgQE91dHB1dCgpIHJlc2V0R3JpZFNldHRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIGNvbHVtbnNTbWFsbGVyVGhhblRhYmxlV2lkdGg6IGJvb2xlYW47XG4gICAgY29sdW1uc1dpZHRoOiBudW1iZXI7XG4gICAgc3RhcnRJbmRleDogbnVtYmVyO1xuICAgIHJlc2l6ZUhlYWRlciA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgLy8gdGhpcy5fcHJlcGFyZUNvbHVtbnNXaWR0aCh0aGlzLnRhYmxlV2lkdGgsIHRoaXMuY29sdW1ucywgdHJ1ZSk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgaW5saW5lRWRpdE1vZGUsIHJvd0luZGljYXRvciB9ID0gY2hhbmdlcztcbiAgICAgICAgbGV0IG5lZWRDaGFuZ2VzID0gZmFsc2U7XG4gICAgICAgIGlmIChjb2x1bW5zICYmICFjb2x1bW5zLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAvLyB0aGlzLl9wcmVwYXJlQ29sdW1uc1dpZHRoKHRoaXMudGFibGVXaWR0aCwgY29sdW1ucy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgLy8gbmVlZENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmxpbmVFZGl0TW9kZSAmJiAhaW5saW5lRWRpdE1vZGUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuX3ByZXBhcmVDb2x1bW5zV2lkdGgodGhpcy50YWJsZVdpZHRoLCB0aGlzLmNvbHVtbnMpO1xuICAgICAgICAgICAgLy8gbmVlZENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3dJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFN0YXJ0SW5kZXgocm93SW5kaWNhdG9yLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICBuZWVkQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbmVlZENoYW5nZXMgJiYgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRTdGFydEluZGV4KHJvd0luZGljYXRvcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXJ0SW5kZXggPSByb3dJbmRpY2F0b3IgPyAxIDogMDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9wcmVwYXJlQ29sdW1uc1dpZHRoKHZhbDogbnVtYmVyLCBjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10sIGRldGVjdENoYW5nZXMgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdW0gPSBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uV2lkdGgpLnJlZHVjZSgodmFsMiwgY29sdW1uKSA9PiB2YWwyICsgY29sdW1uLCAwKTtcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IChjb2x1bW4uJFdpZHRoMiA9IGNvbHVtbi4kV2lkdGgpKTtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplZEJ5VXNlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICdzJykge1xuICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiAoY29sdW1uLiRXaWR0aDIgPSBpbmRleCA9PT0gY29sdW1ucy5sZW5ndGggLSAxID8gJzEwMCUnIDogJ2F1dG8nKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb2x1bW5zV2lkdGggPSBzdW07XG4gICAgICAgIGlmIChzdW0gPiB2YWwgJiYgdmFsID4gMCkge1xuICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IChjb2x1bW4uJFdpZHRoMiA9IHRoaXMuaW5saW5lRWRpdE1vZGUgPyAnMjEwcHgnIDogKGNvbHVtbi5XaWR0aCAqIDEwMCkgLyB2YWwgKyAnJScpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zU21hbGxlclRoYW5UYWJsZVdpZHRoID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChzdW0gKyAxMCA8IHZhbCkge1xuICAgICAgICAgICAgY29sdW1uc1tjb2x1bW5zLmxlbmd0aCAtIDFdLiRXaWR0aDIgPSAnMTAwJSc7XG4gICAgICAgIH1cbiAgICAgICAgZGV0ZWN0Q2hhbmdlcyAmJiB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBvblJlc2V0Q29sdW1uc1NldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2V0R3JpZFNldHRpbmdzLmVtaXQoKTtcbiAgICB9XG4gICAgb25Db2x1bW5XaWR0aENoYW5naW5nKGluZGV4OiBudW1iZXIsIGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgd2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2l6ZUhlYWRlciA9IHRydWU7XG4gICAgICAgIGNvbHVtbi5XaWR0aCA9IHdpZHRoO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnY29sdW1uV2lkdGhDaGFuZ2luZyBudW1iZXI6Jywgd2lkdGgsIGluZGV4KTtcbiAgICB9XG5cbiAgICBvbkNvbHVtbldpZHRoQ2hhbmdlKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoTGlzdC50b0FycmF5KCkuZm9yRWFjaCgoYywgaW5kZXgyKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yb3dJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgICAgICBpbmRleDIgKz0gMTtcbiAgICAgICAgICAgIH0gLy8g2KjYr9mE24zZhCDZiNis2YjYryByb3dpbmRpY2F0b3IgINuM2qnbjCDYqNmHIGluZGV4INin2LbYp9mB2Ycg2YXbjNi02YjYr1xuICAgICAgICAgICAgLy8g2YHZgti3INiz2KrZiNmG2YfYp9uMINqv2LLYp9ix2LQg2KjYrNiyIHJvd2luZGljYXRvciDZgtin2KjZhNuM2Kog2LHbjNiz2KfbjNiyINiv2KfYsdmG2K9cbiAgICAgICAgICAgIGNvbnN0IGVsID0gYy5uYXRpdmVFbGVtZW50IGFzIEhUTUxUYWJsZUNlbGxFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgbmV3V2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uc1tpbmRleDJdO1xuICAgICAgICAgICAgaWYgKGNvbC5OYW1lID09PSBjb2x1bW4uTmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpdGgyID0gTWF0aC5yb3VuZChjb2x1bW4uV2lkdGgpO1xuICAgICAgICAgICAgICAgIGNvbC5XaWR0aCA9IHdpdGgyO1xuICAgICAgICAgICAgICAgIGNvbC4kV2lkdGgyID0gYCR7d2l0aDJ9cHhgO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3aXRoMiA9IE1hdGgucm91bmQobmV3V2lkdGgpO1xuICAgICAgICAgICAgICAgIGNvbC5XaWR0aCA9IHdpdGgyO1xuICAgICAgICAgICAgICAgIGNvbC4kV2lkdGgyID0gYCR7d2l0aDJ9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKGluZGV4MiwgYy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29sdW1uUmVzaXplLmVtaXQodGhpcy5jb2x1bW5zLm1hcCgoYykgPT4gKHsgbmFtZTogYy5OYW1lLCB3aWR0aDogYy5XaWR0aCB9KSkpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnY29sdW1uV2lkdGhDaGFuZ2UnKTtcbiAgICB9XG4gICAgb25BbGxDaGVja2JveChjaGVja2VkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsQ2hlY2tib3guZW1pdChjaGVja2VkKTtcbiAgICB9XG4gICAgb25Tb3J0QXNjZW5kaW5nKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgbWVudSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydEFzY2VuZGluZy5lbWl0KGNvbHVtbik7XG4gICAgfVxuICAgIG9uU29ydERlc2NlbmRpbmcoY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uLCBtZW51KTogdm9pZCB7XG4gICAgICAgIGlmIChtZW51KSB7XG4gICAgICAgICAgICBtZW51LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zb3J0RGVzY2VuZGluZy5lbWl0KGNvbHVtbik7XG4gICAgfVxuICAgIG9uRmlsdGVyKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgbWVudSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyLmVtaXQoY29sdW1uKTtcbiAgICB9XG4gICAgX3RyYWNrQnlDb2x1bW4oaW5kZXg6IG51bWJlciwgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5OYW1lfSR7aW5kZXh9YDtcbiAgICB9XG59XG4iLCI8dGhlYWRcbiAgICBmZC10YWJsZS1oZWFkZXJcbiAgICBbY2xhc3MuaW5saW5lLWVkaXRdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgIFtjbGFzcy5zbWFsbENvbHVtbnNdPVwiY29sdW1uc1NtYWxsZXJUaGFuVGFibGVXaWR0aFwiXG4gICAgW2F0dHIuY29sdW1uc1dpZHRoXT1cImNvbHVtbnNXaWR0aFwiXG4gICAgW2F0dHIudGFibGVXaWR0aF09XCJ0YWJsZVdpZHRoXCJcbj5cbiAgICA8dHIgZmQtdGFibGUtcm93PlxuICAgICAgICBAaWYgKCFoaWRlSGVhZGVyKSB7IEBpZiAocm93SW5kaWNhdG9yKSB7XG4gICAgICAgIDx0aCBmZC10YWJsZS1jZWxsIGZkLXRhYmxlLXN0YXR1cy1pbmRpY2F0b3I+PC90aD5cbiAgICAgICAgfSBAaWYgKHNob3dSb3dOdW1iZXIpIHtcbiAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgc3R5bGU9XCJ3aWR0aDogNDBweDsgbWF4LXdpZHRoOiA0MHB4XCI+PC90aD5cbiAgICAgICAgfSBAaWYgKGlzQ2hlY2tMaXN0KSB7XG4gICAgICAgIDx0aCBmZC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPGZkLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgbmFtZT1cImFsbENoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhbGxDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIlxuICAgICAgICAgICAgPjwvZmQtY2hlY2tib3g+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIH0gQGlmICghaXNDaGVja0xpc3QgJiYgIXNob3dSb3dOdW1iZXIpIHtcbiAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCI+PC90aD5cbiAgICAgICAgfSBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgX3RyYWNrQnlDb2x1bW4oaSwgY29sdW1uKTsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHsgQGlmIChzdGFydEluZGV4XG4gICAgICAgIDw9IGkpIHtcbiAgICAgICAgPHRoXG4gICAgICAgICAgICAjdGhSZWZcbiAgICAgICAgICAgIFtjb2x1bW5JbmRleF09XCJpXCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJcbiAgICAgICAgICAgICAgICBpbmxpbmVFZGl0TW9kZVxuICAgICAgICAgICAgICAgICAgICA/IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBjb2x1bW4uJFdpZHRoMlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBsYXN0XG4gICAgICAgICAgICAgICAgICAgICAgICA/ICcxMDAlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnMjEwcHgnXG4gICAgICAgICAgICAgICAgICAgIDogbGFzdCAmJiBjb2x1bW4uJFdpZHRoICE9PSAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogY29sdW1uLkZpZWxkVHlwZUlkID09PSAzOCB8fFxuICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNDIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAoKGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNiB8fCBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJylcbiAgICAgICAgICAgICAgICAgICAgPyAnNDBweCdcbiAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4uJFdpZHRoMiB8fCBjb2x1bW4uJFdpZHRoXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJsYXN0ID8gbnVsbCA6IGlubGluZUVkaXRNb2RlID8gJzIxMHB4JyA6IGxhc3QgPyAnMTAwJScgOiAnYXV0bydcIlxuICAgICAgICAgICAgcmVzaXphYmxlXG4gICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBbZGlzYWJsZVJlc2l6ZV09XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlUmVzaXplIHx8XG4gICAgICAgICAgICAgICAgbGFzdCB8fFxuICAgICAgICAgICAgICAgIGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJyB8fFxuICAgICAgICAgICAgICAgIGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gMzggfHxcbiAgICAgICAgICAgICAgICBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDQyIHx8XG4gICAgICAgICAgICAgICAgKChjb2x1bW4uRmllbGRUeXBlSWQgPT09IDYgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA1KSAmJiBjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKHdpZHRoQ2hhbmdlKT1cIm9uQ29sdW1uV2lkdGhDaGFuZ2UoY29sdW1uKVwiXG4gICAgICAgICAgICAod2lkdGhDaGFuZ2luZyk9XCJvbkNvbHVtbldpZHRoQ2hhbmdpbmcoaSwgY29sdW1uLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmVzcG9uc2l2ZV09XCJkaXNhYmxlUmVzcG9uc2l2ZVwiXG4gICAgICAgICAgICBbdGFibGVXaWR0aF09XCJ0YWJsZVdpZHRoXCJcbiAgICAgICAgICAgIFtjb2x1bW5zV2lkdGhdPVwiY29sdW1uc1dpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLmNvbHVtbk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgW2F0dHIuaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4uJENTU0NsYXNzTmFtZSArICcgY29sdW1uX18nICsgY29sdW1uLkNhcHRpb25cIlxuICAgICAgICAgICAgW2NsYXNzLmRpc3BsYXlJY29uXT1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZighZGlzYWJsZUhlYWRlckNvbnRleHRNZW51KXtcbiAgICAgICAgICAgIDxmZC1wb3BvdmVyICNtZW51PlxuICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGZkLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25Tb3J0QXNjZW5kaW5nKGNvbHVtbiwgbWVudSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnQtYXNjZW5kaW5nXCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7ICgnU29ydCcgfCBiYmJUcmFuc2xhdGUpICsgJyAnIH19IHt7ICdBc2NlbmRpbmcnIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uU29ydERlc2NlbmRpbmcoY29sdW1uLCBtZW51KVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnQtZGVzY2VuZGluZ1wiIGZkLWxpc3QtaWNvbj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyAoJ1NvcnQnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fSB7eyAnRGVzY2VuZGluZycgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwiZml0VG9Db250ZW50LmVtaXQoY29sdW1uKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBmZC1saXN0LWljb24+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICgnRml0IENvbHVtbiBUbyBDb250ZW50JyB8IGJiYlRyYW5zbGF0ZSkgKyAnICcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIChjbGljayk9XCJmaXRUb0NvbnRhaW5lci5lbWl0KClcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAoJ0FsbCBDb2x1bW5zIEluIFBhZ2UnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cImZpdFRvQ29sdW1uLmVtaXQoKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBmZC1saXN0LWljb24+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICgnRnJlZSBDb2x1bW5zIFNpemUnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uUmVzZXRDb2x1bW5zU2V0dGluZ3MoKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInJlc2V0XCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAnR3JpZFNldHRpbmdCYXNlJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uRmlsdGVyKGNvbHVtbiwgbWVudSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwiZmlsdGVyXCI+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgJ0ZpbHRlcicgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgfSBAZWxzZXtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdGg+XG4gICAgICAgIH0gfSBAaWYgKGNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwICYmICFpbmxpbmVFZGl0TW9kZSkge1xuICAgICAgICA8dGhcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWhlYWRlciBjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJjb250ZXh0TWVudVdpZHRoXCJcbiAgICAgICAgPjwvdGg+XG4gICAgICAgIH0gQGlmIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSkge1xuICAgICAgICA8dGggY2xhc3M9XCJjb2wtaGVhZGVyIGNvbC1kZXRhaWxzXCIgW3N0eWxlLndpZHRoXT1cImRldmljZVNpemUgPT09ICdzJyA/ICdhdXRvJyA6ICcxMjBweCdcIiBmZC10YWJsZS1jZWxsPjwvdGg+XG4gICAgICAgIH0gQGlmIChzaG93Vmlld0J1dHRvbikge1xuICAgICAgICA8dGggY2xhc3M9XCJjb2wtaGVhZGVyIGNvbC12aWV3XCIgW3N0eWxlLndpZHRoLnB4XT1cIjI2LjUgKiAoYWN0aW9uTGlzdD8ubGVuZ3RoID8/IDApICsgOFwiIGZkLXRhYmxlLWNlbGw+PC90aD5cbiAgICAgICAgfSB9XG4gICAgPC90cj5cbjwvdGhlYWQ+XG48bmctdGVtcGxhdGUgI2hlYWRlclZhbHVlIGxldC1jb2x1bW4+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cbiAgICAgICAgPCEtLSBGaWVsZFR5cGVJZCAzOCBtZWFucyBpdCBpcyBhdXRvIHJvdyBudW1iZXIgZmllbGQtLT5cbiAgICAgICAgQGlmICggKGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJyB8fCBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDQyKSAmJiBjb2x1bW4uSWNvbikge1xuICAgICAgICA8aW1nIFtzcmNdPVwiY29sdW1uLkljb25cIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgY29sdW1uLkNhcHRpb24gfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWhlYWRlci9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtaGVhZGVyL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHTixZQUFZLEVBQ1osVUFBVSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxhQUFhLEVBS2hCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7QUFTOUIsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGFBQWE7SUF3Q3hEOztPQUVHO0lBQ0gsWUFBb0IsSUFBdUI7UUFDdkMsS0FBSyxFQUFFLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQTdCbEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBYXhCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMxQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQzVELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUM5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QUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBJbnB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIENvbHVtblJlc2l6ZWRBcmdzLFxuICAgIFRhYmxlSGVhZGVyV2lkdGhNb2RlXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpVGFibGVWaWV3U2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9ncmlkLXZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkcmVuKCd0aFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSB0aExpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxUYWJsZUNlbGxFbGVtZW50Pj47XG4gICAgQElucHV0KCkgYWxsQ2hlY2tlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc0NoZWNrTGlzdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XG4gICAgQElucHV0KCkgZml0V2lkdGg6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGV4dE1lbnVJdGVtczogYW55W107XG4gICAgQElucHV0KCkgY29udGV4dE1lbnVXaWR0aDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHNob3dWaWV3QnV0dG9uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhhc1NlbGVjdGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVPcGVuSWNvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0TW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlSGVhZGVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dEZXRhaWxzSW5Sb3cgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB2aWV3U2V0dGluZzogVWlUYWJsZVZpZXdTZXR0aW5nO1xuICAgIEBJbnB1dCgpIHRhYmxlV2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSByZXNpemVkQnlVc2VyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVSZXNwb25zaXZlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFjdGlvbkxpc3Q6IGFueVtdO1xuICAgIEBJbnB1dCgpIHJvd0luZGljYXRvcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd1Jvd051bWJlcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlUmVzaXplOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVIZWFkZXJDb250ZXh0TWVudTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG4gICAgQElucHV0KCkgdGFibGVIZWFkZXJNb2RlOiBUYWJsZUhlYWRlcldpZHRoTW9kZTtcbiAgICBAT3V0cHV0KCkgYWxsQ2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGNvbHVtblJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8Q29sdW1uUmVzaXplZEFyZ3M+PigpO1xuICAgIEBPdXRwdXQoKSBmaXRUb0NvbnRlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlcG9ydFZpZXdDb2x1bW4+KCk7XG4gICAgQE91dHB1dCgpIGZpdFRvQ29udGFpbmVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBmaXRUb0NvbHVtbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgc29ydEFzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBzb3J0RGVzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlcG9ydFZpZXdDb2x1bW4+KCk7XG4gICAgQE91dHB1dCgpIHJlc2V0R3JpZFNldHRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIGNvbHVtbnNTbWFsbGVyVGhhblRhYmxlV2lkdGg6IGJvb2xlYW47XG4gICAgY29sdW1uc1dpZHRoOiBudW1iZXI7XG4gICAgc3RhcnRJbmRleDogbnVtYmVyO1xuICAgIHJlc2l6ZUhlYWRlciA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgLy8gdGhpcy5fcHJlcGFyZUNvbHVtbnNXaWR0aCh0aGlzLnRhYmxlV2lkdGgsIHRoaXMuY29sdW1ucywgdHJ1ZSk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgaW5saW5lRWRpdE1vZGUsIHJvd0luZGljYXRvciB9ID0gY2hhbmdlcztcbiAgICAgICAgbGV0IG5lZWRDaGFuZ2VzID0gZmFsc2U7XG4gICAgICAgIGlmIChjb2x1bW5zICYmICFjb2x1bW5zLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAvLyB0aGlzLl9wcmVwYXJlQ29sdW1uc1dpZHRoKHRoaXMudGFibGVXaWR0aCwgY29sdW1ucy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgLy8gbmVlZENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmxpbmVFZGl0TW9kZSAmJiAhaW5saW5lRWRpdE1vZGUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuX3ByZXBhcmVDb2x1bW5zV2lkdGgodGhpcy50YWJsZVdpZHRoLCB0aGlzLmNvbHVtbnMpO1xuICAgICAgICAgICAgLy8gbmVlZENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3dJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFN0YXJ0SW5kZXgocm93SW5kaWNhdG9yLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICBuZWVkQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbmVlZENoYW5nZXMgJiYgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRTdGFydEluZGV4KHJvd0luZGljYXRvcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXJ0SW5kZXggPSByb3dJbmRpY2F0b3IgPyAxIDogMDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9wcmVwYXJlQ29sdW1uc1dpZHRoKHZhbDogbnVtYmVyLCBjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10sIGRldGVjdENoYW5nZXMgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdW0gPSBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uV2lkdGgpLnJlZHVjZSgodmFsMiwgY29sdW1uKSA9PiB2YWwyICsgY29sdW1uLCAwKTtcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IChjb2x1bW4uJFdpZHRoMiA9IGNvbHVtbi4kV2lkdGgpKTtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplZEJ5VXNlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICdzJykge1xuICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiAoY29sdW1uLiRXaWR0aDIgPSBpbmRleCA9PT0gY29sdW1ucy5sZW5ndGggLSAxID8gJzEwMCUnIDogJ2F1dG8nKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb2x1bW5zV2lkdGggPSBzdW07XG4gICAgICAgIGlmIChzdW0gPiB2YWwgJiYgdmFsID4gMCkge1xuICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IChjb2x1bW4uJFdpZHRoMiA9IHRoaXMuaW5saW5lRWRpdE1vZGUgPyAnMjEwcHgnIDogKGNvbHVtbi5XaWR0aCAqIDEwMCkgLyB2YWwgKyAnJScpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zU21hbGxlclRoYW5UYWJsZVdpZHRoID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChzdW0gKyAxMCA8IHZhbCkge1xuICAgICAgICAgICAgY29sdW1uc1tjb2x1bW5zLmxlbmd0aCAtIDFdLiRXaWR0aDIgPSAnMTAwJSc7XG4gICAgICAgIH1cbiAgICAgICAgZGV0ZWN0Q2hhbmdlcyAmJiB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBvblJlc2V0Q29sdW1uc1NldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2V0R3JpZFNldHRpbmdzLmVtaXQoKTtcbiAgICB9XG4gICAgb25Db2x1bW5XaWR0aENoYW5naW5nKGluZGV4OiBudW1iZXIsIGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgd2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2l6ZUhlYWRlciA9IHRydWU7XG4gICAgICAgIGNvbHVtbi5XaWR0aCA9IHdpZHRoO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnY29sdW1uV2lkdGhDaGFuZ2luZyBudW1iZXI6Jywgd2lkdGgsIGluZGV4KTtcbiAgICB9XG5cbiAgICBvbkNvbHVtbldpZHRoQ2hhbmdlKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoTGlzdC50b0FycmF5KCkuZm9yRWFjaCgoYywgaW5kZXgyKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yb3dJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgICAgICBpbmRleDIgKz0gMTtcbiAgICAgICAgICAgIH0gLy8g2KjYr9mE24zZhCDZiNis2YjYryByb3dpbmRpY2F0b3IgINuM2qnbjCDYqNmHIGluZGV4INin2LbYp9mB2Ycg2YXbjNi02YjYr1xuICAgICAgICAgICAgLy8g2YHZgti3INiz2KrZiNmG2YfYp9uMINqv2LLYp9ix2LQg2KjYrNiyIHJvd2luZGljYXRvciDZgtin2KjZhNuM2Kog2LHbjNiz2KfbjNiyINiv2KfYsdmG2K9cbiAgICAgICAgICAgIGNvbnN0IGVsID0gYy5uYXRpdmVFbGVtZW50IGFzIEhUTUxUYWJsZUNlbGxFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgbmV3V2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uc1tpbmRleDJdO1xuICAgICAgICAgICAgaWYgKGNvbC5OYW1lID09PSBjb2x1bW4uTmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpdGgyID0gTWF0aC5yb3VuZChjb2x1bW4uV2lkdGgpO1xuICAgICAgICAgICAgICAgIGNvbC5XaWR0aCA9IHdpdGgyO1xuICAgICAgICAgICAgICAgIGNvbC4kV2lkdGgyID0gYCR7d2l0aDJ9cHhgO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3aXRoMiA9IE1hdGgucm91bmQobmV3V2lkdGgpO1xuICAgICAgICAgICAgICAgIGNvbC5XaWR0aCA9IHdpdGgyO1xuICAgICAgICAgICAgICAgIGNvbC4kV2lkdGgyID0gYCR7d2l0aDJ9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKGluZGV4MiwgYy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29sdW1uUmVzaXplLmVtaXQodGhpcy5jb2x1bW5zLm1hcCgoYykgPT4gKHsgbmFtZTogYy5OYW1lLCB3aWR0aDogYy5XaWR0aCB9KSkpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnY29sdW1uV2lkdGhDaGFuZ2UnKTtcbiAgICB9XG4gICAgb25BbGxDaGVja2JveChjaGVja2VkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsQ2hlY2tib3guZW1pdChjaGVja2VkKTtcbiAgICB9XG4gICAgb25Tb3J0QXNjZW5kaW5nKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgbWVudSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydEFzY2VuZGluZy5lbWl0KGNvbHVtbik7XG4gICAgfVxuICAgIG9uU29ydERlc2NlbmRpbmcoY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uLCBtZW51KTogdm9pZCB7XG4gICAgICAgIGlmIChtZW51KSB7XG4gICAgICAgICAgICBtZW51LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zb3J0RGVzY2VuZGluZy5lbWl0KGNvbHVtbik7XG4gICAgfVxuICAgIG9uRmlsdGVyKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgbWVudSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyLmVtaXQoY29sdW1uKTtcbiAgICB9XG4gICAgX3RyYWNrQnlDb2x1bW4oaW5kZXg6IG51bWJlciwgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5OYW1lfSR7aW5kZXh9YDtcbiAgICB9XG59XG4iLCI8dGhlYWRcbiAgICBmZC10YWJsZS1oZWFkZXJcbiAgICBbY2xhc3MuaW5saW5lLWVkaXRdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgIFtjbGFzcy5zbWFsbENvbHVtbnNdPVwiY29sdW1uc1NtYWxsZXJUaGFuVGFibGVXaWR0aFwiXG4gICAgW2F0dHIuY29sdW1uc1dpZHRoXT1cImNvbHVtbnNXaWR0aFwiXG4gICAgW2F0dHIudGFibGVXaWR0aF09XCJ0YWJsZVdpZHRoXCJcbj5cbiAgICA8dHIgZmQtdGFibGUtcm93PlxuICAgICAgICBAaWYgKCFoaWRlSGVhZGVyKSB7IEBpZiAocm93SW5kaWNhdG9yKSB7XG4gICAgICAgIDx0aCBmZC10YWJsZS1jZWxsIGZkLXRhYmxlLXN0YXR1cy1pbmRpY2F0b3I+PC90aD5cbiAgICAgICAgfSBAaWYgKHNob3dSb3dOdW1iZXIpIHtcbiAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgc3R5bGU9XCJ3aWR0aDogNDBweDsgbWF4LXdpZHRoOiA0MHB4XCI+PC90aD5cbiAgICAgICAgfSBAaWYgKGlzQ2hlY2tMaXN0KSB7XG4gICAgICAgIDx0aCBmZC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPGZkLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgbmFtZT1cImFsbENoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhbGxDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIlxuICAgICAgICAgICAgPjwvZmQtY2hlY2tib3g+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIH0gQGlmICghaXNDaGVja0xpc3QgJiYgIXNob3dSb3dOdW1iZXIpIHtcbiAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCI+PC90aD5cbiAgICAgICAgfSBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgX3RyYWNrQnlDb2x1bW4oaSwgY29sdW1uKTsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHsgQGlmIChzdGFydEluZGV4XG4gICAgICAgIDw9IGkpIHtcbiAgICAgICAgPHRoXG4gICAgICAgICAgICAjdGhSZWZcbiAgICAgICAgICAgIFtjb2x1bW5JbmRleF09XCJpXCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJcbiAgICAgICAgICAgICAgICBpbmxpbmVFZGl0TW9kZVxuICAgICAgICAgICAgICAgICAgICA/IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBjb2x1bW4uJFdpZHRoMlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBsYXN0XG4gICAgICAgICAgICAgICAgICAgICAgICA/ICcxMDAlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnMjEwcHgnXG4gICAgICAgICAgICAgICAgICAgIDogbGFzdCAmJiBjb2x1bW4uJFdpZHRoICE9PSAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogY29sdW1uLkZpZWxkVHlwZUlkID09PSAzOCB8fFxuICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNDIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAoKGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNiB8fCBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJylcbiAgICAgICAgICAgICAgICAgICAgPyAnNDBweCdcbiAgICAgICAgICAgICAgICAgICAgOiBjb2x1bW4uJFdpZHRoMiB8fCBjb2x1bW4uJFdpZHRoXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJsYXN0ID8gbnVsbCA6IGlubGluZUVkaXRNb2RlID8gJzIxMHB4JyA6IGxhc3QgPyAnMTAwJScgOiAnYXV0bydcIlxuICAgICAgICAgICAgcmVzaXphYmxlXG4gICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBbZGlzYWJsZVJlc2l6ZV09XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlUmVzaXplIHx8XG4gICAgICAgICAgICAgICAgbGFzdCB8fFxuICAgICAgICAgICAgICAgIGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJyB8fFxuICAgICAgICAgICAgICAgIGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gMzggfHxcbiAgICAgICAgICAgICAgICBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDQyIHx8XG4gICAgICAgICAgICAgICAgKChjb2x1bW4uRmllbGRUeXBlSWQgPT09IDYgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA1KSAmJlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gPT09ICdJbWFnZScpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKHdpZHRoQ2hhbmdlKT1cIm9uQ29sdW1uV2lkdGhDaGFuZ2UoY29sdW1uKVwiXG4gICAgICAgICAgICAod2lkdGhDaGFuZ2luZyk9XCJvbkNvbHVtbldpZHRoQ2hhbmdpbmcoaSwgY29sdW1uLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmVzcG9uc2l2ZV09XCJkaXNhYmxlUmVzcG9uc2l2ZVwiXG4gICAgICAgICAgICBbdGFibGVXaWR0aF09XCJ0YWJsZVdpZHRoXCJcbiAgICAgICAgICAgIFtjb2x1bW5zV2lkdGhdPVwiY29sdW1uc1dpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLmNvbHVtbk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgW2F0dHIuaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4uJENTU0NsYXNzTmFtZSArICcgY29sdW1uX18nICsgY29sdW1uLkNhcHRpb25cIlxuICAgICAgICAgICAgW2NsYXNzLmRpc3BsYXlJY29uXT1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZighZGlzYWJsZUhlYWRlckNvbnRleHRNZW51KXtcbiAgICAgICAgICAgIDxmZC1wb3BvdmVyICNtZW51PlxuICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGZkLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25Tb3J0QXNjZW5kaW5nKGNvbHVtbiwgbWVudSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnQtYXNjZW5kaW5nXCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7ICgnU29ydCcgfCBiYmJUcmFuc2xhdGUpICsgJyAnIH19IHt7ICdBc2NlbmRpbmcnIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uU29ydERlc2NlbmRpbmcoY29sdW1uLCBtZW51KVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnQtZGVzY2VuZGluZ1wiIGZkLWxpc3QtaWNvbj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyAoJ1NvcnQnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fSB7eyAnRGVzY2VuZGluZycgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwiZml0VG9Db250ZW50LmVtaXQoY29sdW1uKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBmZC1saXN0LWljb24+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICgnRml0IENvbHVtbiBUbyBDb250ZW50JyB8IGJiYlRyYW5zbGF0ZSkgKyAnICcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIChjbGljayk9XCJmaXRUb0NvbnRhaW5lci5lbWl0KClcIiBib2R5Q2xpY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAoJ0FsbCBDb2x1bW5zIEluIFBhZ2UnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cImZpdFRvQ29sdW1uLmVtaXQoKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBmZC1saXN0LWljb24+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7ICgnRnJlZSBDb2x1bW5zIFNpemUnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uUmVzZXRDb2x1bW5zU2V0dGluZ3MoKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInJlc2V0XCIgZmQtbGlzdC1pY29uPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAnR3JpZFNldHRpbmdCYXNlJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uRmlsdGVyKGNvbHVtbiwgbWVudSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwiZmlsdGVyXCI+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgJ0ZpbHRlcicgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgfSBAZWxzZXtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdGg+XG4gICAgICAgIH0gfSBAaWYgKGNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwICYmICFpbmxpbmVFZGl0TW9kZSkge1xuICAgICAgICA8dGhcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWhlYWRlciBjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJjb250ZXh0TWVudVdpZHRoXCJcbiAgICAgICAgPjwvdGg+XG4gICAgICAgIH0gQGlmIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSkge1xuICAgICAgICA8dGggY2xhc3M9XCJjb2wtaGVhZGVyIGNvbC1kZXRhaWxzXCIgW3N0eWxlLndpZHRoXT1cImRldmljZVNpemUgPT09ICdzJyA/ICdhdXRvJyA6ICcxMjBweCdcIiBmZC10YWJsZS1jZWxsPjwvdGg+XG4gICAgICAgIH0gQGlmIChzaG93Vmlld0J1dHRvbikge1xuICAgICAgICA8dGggY2xhc3M9XCJjb2wtaGVhZGVyIGNvbC12aWV3XCIgW3N0eWxlLndpZHRoLnB4XT1cIjI2LjUgKiAoYWN0aW9uTGlzdD8ubGVuZ3RoID8/IDApICsgOFwiIGZkLXRhYmxlLWNlbGw+PC90aD5cbiAgICAgICAgfSB9XG4gICAgPC90cj5cbjwvdGhlYWQ+XG48bmctdGVtcGxhdGUgI2hlYWRlclZhbHVlIGxldC1jb2x1bW4+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cbiAgICAgICAgPCEtLSBGaWVsZFR5cGVJZCAzOCBtZWFucyBpdCBpcyBhdXRvIHJvdyBudW1iZXIgZmllbGQtLT5cbiAgICAgICAgQGlmICggKGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJyB8fCBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDQyKSAmJiBjb2x1bW4uSWNvbikge1xuICAgICAgICA8aW1nIFtzcmNdPVwiY29sdW1uLkljb25cIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgY29sdW1uLkNhcHRpb24gfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -16,7 +16,7 @@ export class LyTabPageComponent extends LayoutPanelBaseComponent {
|
|
|
16
16
|
this.layoutService.refreshLayout();
|
|
17
17
|
}
|
|
18
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LyTabPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: { renderItems: "renderItems", tablist: "tablist" }, host: { properties: { "style.flex": "this.flex", "attr.
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: { renderItems: "renderItems", tablist: "tablist" }, host: { properties: { "style.flex": "this.flex", "attr.tabtitle": "this.title", "class": "this._classes" } }, providers: [LayoutService], viewQueries: [{ propertyName: "vcr", first: true, predicate: ["placeholder"], descendants: true, read: ViewContainerRef }, { propertyName: "viewRef", first: true, predicate: ["viewRefTemplate"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\n @for (item of config | filterToolbarControl; track item) { @switch (item.xtype) { @case ('Ly.LayoutTabPanel') {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-tab-container' }\n \"\n ></ng-container>\n <!-- <bsu-ly-tab-container [config]=\"item\"></bsu-ly-tab-container> -->\n } @case ('Ly.LayoutPanel') {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLayoutPanelComponent', selector: 'bsu-ly-layout-panel' }\n \"\n ></ng-container>\n <!-- <bsu-ly-layout-panel [config]=\"item\"></bsu-ly-layout-panel> -->\n } @case ('Ly.LayoutContainer') {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n name: 'LyLayoutContainerComponent',\n selector: 'bsu-ly-layout-container'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-layout-container [config]=\"item\"></bsu-ly-layout-container> -->\n } @case ('Ly.EmptySpace') {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyEmptySpaceComponent', selector: 'bsu-ly-empty-space' }\n \"\n ></ng-container>\n <!-- <bsu-ly-empty-space [config]=\"item\"></bsu-ly-empty-space> -->\n } @case ('Ly.SimpleLabel') {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LySimpleLabelComponent', selector: 'bsu-ly-simple-label' }\n \"\n ></ng-container>\n <!-- <bsu-ly-simple-label [config]=\"item\"></bsu-ly-simple-label> -->\n } @case ('Ly.LayoutLine') {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: { $implicit: item, name: 'LyLineComponent', selector: 'bsu-ly-line' }\n \"\n ></ng-container>\n <!-- <bsu-ly-line [isVertical]=\"item.IsVertical\"></bsu-ly-line> -->\n } @case ('Ly.LayoutJoin') { @if (item.Type === 'HorizontalJoin') {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-ly-horizontal-layout',\n name: 'LyLayoutHorizontalComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-horizontal-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-horizontal-layout> -->\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-ly-vertical-layout',\n name: 'LyLayoutVerticalComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-ly-vertical-layout [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-ly-vertical-layout> -->\n } } @case ('Ly.LayoutControl') {\n <ng-container\n *ngTemplateOutlet=\"\n dynamicLayout;\n context: {\n $implicit: item,\n selector: 'bsu-layout-control',\n name: 'LayoutControlComponent'\n }\n \"\n ></ng-container>\n <!-- <bsu-layout-control [config]=\"item\" [maxLabelWidth]=\"maxLabelWidth\"></bsu-layout-control> -->\n } } }\n <ng-template #dynamicLayout let-config let-selector=\"selector\" let-name=\"name\">\n <bnrc-dynamic-layout\n [config]=\"config\"\n [selector]=\"selector\"\n [name]=\"name\"\n [module]=\"'BarsaSapUi'\"\n [moduleFileName]=\"'BarsaSapUi'\"\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\n [flex]=\"isSearchPanel ? 'unset' : config.Bounds.width\"\n [isSearchPanel]=\"isSearchPanel\"\n >\n </bnrc-dynamic-layout>\n </ng-template>\n</ng-container>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.FilterToolbarControlPipe, name: "filterToolbarControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
20
|
}
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LyTabPageComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
@@ -33,7 +33,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
33
33
|
args: ['style.flex']
|
|
34
34
|
}], title: [{
|
|
35
35
|
type: HostBinding,
|
|
36
|
-
args: ['attr.
|
|
36
|
+
args: ['attr.tabtitle']
|
|
37
37
|
}], _classes: [{
|
|
38
38
|
type: HostBinding,
|
|
39
39
|
args: ['class']
|
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
41
41
|
type: ViewChild,
|
|
42
42
|
args: ['viewRefTemplate', { read: ViewContainerRef, static: true }]
|
|
43
43
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHktdGFiLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVUvRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsd0JBQXdCO0lBYTVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRixDQUFDO0lBQ0QsYUFBYTtRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs4R0F2QlEsa0JBQWtCO2tHQUFsQixrQkFBa0Isb05BRmhCLENBQUMsYUFBYSxDQUFDLHlHQUdRLGdCQUFnQixxR0FNWixnQkFBZ0Isa0VDNUIxRCx3OUhBd0dBOzsyRkRuRmEsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDOzhCQUc0QixHQUFHO3NCQUF4RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDM0MsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ3FCLElBQUk7c0JBQTlCLFdBQVc7dUJBQUMsWUFBWTtnQkFDSyxLQUFLO3NCQUFsQyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ04sUUFBUTtzQkFBN0IsV0FBVzt1QkFBQyxPQUFPO2dCQUNvRCxPQUFPO3NCQUE5RSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheW91dFBhbmVsQmFzZUNvbXBvbmVudCwgTGF5b3V0U2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFRhYkxpc3RDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1seS10YWItcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2x5LXRhYi1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9seS10YWItcGFnZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0xheW91dFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEx5VGFiUGFnZUNvbXBvbmVudCBleHRlbmRzIExheW91dFBhbmVsQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgncGxhY2Vob2xkZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmNyOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIEBJbnB1dCgpIHJlbmRlckl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIHRhYmxpc3Q6IFRhYkxpc3RDb21wb25lbnQ7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4JykgZmxleDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFidGl0bGUnKSB0aXRsZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgX2NsYXNzZXM7XG4gICAgQFZpZXdDaGlsZCgndmlld1JlZlRlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIHZpc2libGU6IGJvb2xlYW47XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBjb25maWcuY29udHJvbFVpID0gdGhpcztcbiAgICAgICAgdGhpcy50aXRsZSA9IGNvbmZpZy5UaXRsZTtcbiAgICAgICAgdGhpcy5mbGV4ID0gY29uZmlnLkJvdW5kcy53aWR0aDtcbiAgICAgICAgdGhpcy5fY2xhc3NlcyA9IHRoaXMuY29uZmlnLml0ZW1zLmxlbmd0aCA9PT0gMCA/ICdmaWVsZC1ub3BhZGRpbmcnIDogJ2ZpZWxkLW5vcGFkZGluZyc7XG4gICAgfVxuICAgIHJlZnJlc2hMYXlvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5yZWZyZXNoTGF5b3V0KCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdW50aWxJblZpZXc9XCJlbFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgY29uZmlnIHwgZmlsdGVyVG9vbGJhckNvbnRyb2w7IHRyYWNrIGl0ZW0pIHsgQHN3aXRjaCAoaXRlbS54dHlwZSkgeyBAY2FzZSAoJ0x5LkxheW91dFRhYlBhbmVsJykge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgbmFtZTogJ0x5TGF5b3V0UGFuZWxDb21wb25lbnQnLCBzZWxlY3RvcjogJ2JzdS1seS10YWItY29udGFpbmVyJyB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gPGJzdS1seS10YWItY29udGFpbmVyIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LXRhYi1jb250YWluZXI+IC0tPlxuICAgIH0gQGNhc2UgKCdMeS5MYXlvdXRQYW5lbCcpIHtcbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIG5hbWU6ICdMeUxheW91dFBhbmVsQ29tcG9uZW50Jywgc2VsZWN0b3I6ICdic3UtbHktbGF5b3V0LXBhbmVsJyB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gPGJzdS1seS1sYXlvdXQtcGFuZWwgW2NvbmZpZ109XCJpdGVtXCI+PC9ic3UtbHktbGF5b3V0LXBhbmVsPiAtLT5cbiAgICB9IEBjYXNlICgnTHkuTGF5b3V0Q29udGFpbmVyJykge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdMeUxheW91dENvbnRhaW5lckNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdic3UtbHktbGF5b3V0LWNvbnRhaW5lcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPCEtLSA8YnN1LWx5LWxheW91dC1jb250YWluZXIgW2NvbmZpZ109XCJpdGVtXCI+PC9ic3UtbHktbGF5b3V0LWNvbnRhaW5lcj4gLS0+XG4gICAgfSBAY2FzZSAoJ0x5LkVtcHR5U3BhY2UnKSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlFbXB0eVNwYWNlQ29tcG9uZW50Jywgc2VsZWN0b3I6ICdic3UtbHktZW1wdHktc3BhY2UnIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPCEtLSA8YnN1LWx5LWVtcHR5LXNwYWNlIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LWVtcHR5LXNwYWNlPiAtLT5cbiAgICB9IEBjYXNlICgnTHkuU2ltcGxlTGFiZWwnKSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlTaW1wbGVMYWJlbENvbXBvbmVudCcsIHNlbGVjdG9yOiAnYnN1LWx5LXNpbXBsZS1sYWJlbCcgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIDxic3UtbHktc2ltcGxlLWxhYmVsIFtjb25maWddPVwiaXRlbVwiPjwvYnN1LWx5LXNpbXBsZS1sYWJlbD4gLS0+XG4gICAgfSBAY2FzZSAoJ0x5LkxheW91dExpbmUnKSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBuYW1lOiAnTHlMaW5lQ29tcG9uZW50Jywgc2VsZWN0b3I6ICdic3UtbHktbGluZScgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIDxic3UtbHktbGluZSBbaXNWZXJ0aWNhbF09XCJpdGVtLklzVmVydGljYWxcIj48L2JzdS1seS1saW5lPiAtLT5cbiAgICB9IEBjYXNlICgnTHkuTGF5b3V0Sm9pbicpIHsgQGlmIChpdGVtLlR5cGUgPT09ICdIb3Jpem9udGFsSm9pbicpIHtcbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBkeW5hbWljTGF5b3V0O1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcbiAgICAgICAgICAgICAgICBzZWxlY3RvcjogJ2JzdS1seS1ob3Jpem9udGFsLWxheW91dCcsXG4gICAgICAgICAgICAgICAgbmFtZTogJ0x5TGF5b3V0SG9yaXpvbnRhbENvbXBvbmVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPCEtLSA8YnN1LWx5LWhvcml6b250YWwtbGF5b3V0IFtjb25maWddPVwiaXRlbVwiIFttYXhMYWJlbFdpZHRoXT1cIm1heExhYmVsV2lkdGhcIj48L2JzdS1seS1ob3Jpem9udGFsLWxheW91dD4gLS0+XG4gICAgfSBAZWxzZSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgZHluYW1pY0xheW91dDtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGl0ZW0sXG4gICAgICAgICAgICAgICAgc2VsZWN0b3I6ICdic3UtbHktdmVydGljYWwtbGF5b3V0JyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTHlMYXlvdXRWZXJ0aWNhbENvbXBvbmVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPCEtLSA8YnN1LWx5LXZlcnRpY2FsLWxheW91dCBbY29uZmlnXT1cIml0ZW1cIiBbbWF4TGFiZWxXaWR0aF09XCJtYXhMYWJlbFdpZHRoXCI+PC9ic3UtbHktdmVydGljYWwtbGF5b3V0PiAtLT5cbiAgICB9IH0gQGNhc2UgKCdMeS5MYXlvdXRDb250cm9sJykge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGR5bmFtaWNMYXlvdXQ7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLFxuICAgICAgICAgICAgICAgIHNlbGVjdG9yOiAnYnN1LWxheW91dC1jb250cm9sJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTGF5b3V0Q29udHJvbENvbXBvbmVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPCEtLSA8YnN1LWxheW91dC1jb250cm9sIFtjb25maWddPVwiaXRlbVwiIFttYXhMYWJlbFdpZHRoXT1cIm1heExhYmVsV2lkdGhcIj48L2JzdS1sYXlvdXQtY29udHJvbD4gLS0+XG4gICAgfSB9IH1cbiAgICA8bmctdGVtcGxhdGUgI2R5bmFtaWNMYXlvdXQgbGV0LWNvbmZpZyBsZXQtc2VsZWN0b3I9XCJzZWxlY3RvclwiIGxldC1uYW1lPVwibmFtZVwiPlxuICAgICAgICA8Ym5yYy1keW5hbWljLWxheW91dFxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgW3NlbGVjdG9yXT1cInNlbGVjdG9yXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgW21vZHVsZV09XCInQmFyc2FTYXBVaSdcIlxuICAgICAgICAgICAgW21vZHVsZUZpbGVOYW1lXT1cIidCYXJzYVNhcFVpJ1wiXG4gICAgICAgICAgICBbbWF4TGFiZWxXaWR0aF09XCIobWF4TGFiZWxXaWR0aCQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICBbZmxleF09XCJpc1NlYXJjaFBhbmVsID8gJ3Vuc2V0JyA6IGNvbmZpZy5Cb3VuZHMud2lkdGhcIlxuICAgICAgICAgICAgW2lzU2VhcmNoUGFuZWxdPVwiaXNTZWFyY2hQYW5lbFwiXG4gICAgICAgID5cbiAgICAgICAgPC9ibnJjLWR5bmFtaWMtbGF5b3V0PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -69,8 +69,8 @@ function combineComparisonFunctions(compareFunctions) {
|
|
|
69
69
|
return (a, b) => {
|
|
70
70
|
return compareFunctions.reduce((result, compareFunction) => {
|
|
71
71
|
// Proceeds to the next comparison function if the previous one returned 0
|
|
72
|
-
console.log('before ', result);
|
|
73
|
-
console.log('next a ,b ', a, b);
|
|
72
|
+
// console.log('before ', result);
|
|
73
|
+
// console.log('next a ,b ', a, b);
|
|
74
74
|
return result || compareFunction(a, b);
|
|
75
75
|
}, 0);
|
|
76
76
|
};
|
|
@@ -83,7 +83,7 @@ function multilevelSort(criteria) {
|
|
|
83
83
|
const bValue = b[field || '$_x_']; // we use an identity function as default
|
|
84
84
|
const ascModifier = direction === SortDirection.ASC ? 1 : -1;
|
|
85
85
|
const res = Constants.sort(aValue, bValue, field, isNumber);
|
|
86
|
-
console.log('sort res=', res * ascModifier, 'on field', field, aValue, bValue);
|
|
86
|
+
// console.log('sort res=', res * ascModifier, 'on field', field, aValue, bValue);
|
|
87
87
|
return res * ascModifier;
|
|
88
88
|
};
|
|
89
89
|
});
|
|
@@ -106,4 +106,4 @@ const searchEx = (searchTerm, columns, items) => {
|
|
|
106
106
|
.some((value) => value.toLocaleLowerCase().includes(searchText.toLocaleLowerCase()));
|
|
107
107
|
});
|
|
108
108
|
};
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kYXRhLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbW9kZWxzL2dyaWQtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBTUgsYUFBYSxFQUNoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sS0FBSyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxjQUFjO0lBT3ZCLFlBQ0ksV0FBOEMsRUFDOUMsWUFBcUMsRUFDckMsZUFBK0MsRUFDL0MsV0FBK0I7UUFFL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQ2QsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3RELFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUN6RSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDckUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQ3hGLENB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QztRQUN6RixPQUFPLGVBQWU7YUFDakIsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQzFCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uU29ydCxcbiAgICBUYWJsZVN0YXRlLFxuICAgIEdyaWRTZXR0aW5nLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcbiAgICBTb3J0RGlyZWN0aW9uXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCAqIGFzIENvbnN0YW50cyBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgR3JpZE1vRGF0YUxpc3Qge1xuICAgIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgcmVzdWx0SXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcbiAgICBncmlkU2V0dGluZzogR3JpZFNldHRpbmc7XG4gICAgdmlzaWJsZUNvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBzZWFyY2hUZXJtOiBzdHJpbmc7XG4gICAgZGF0YSQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPjtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbW9EYXRhTGlzdCQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPixcbiAgICAgICAgZ3JpZFNldHRpbmckOiBPYnNlcnZhYmxlPEdyaWRTZXR0aW5nPixcbiAgICAgICAgdmlzaWJsZUNvbHVtbnMkOiBPYnNlcnZhYmxlPFJlcG9ydFZpZXdDb2x1bW5bXT4sXG4gICAgICAgIHNlYXJjaFRlcm0kOiBPYnNlcnZhYmxlPHN0cmluZz5cbiAgICApIHtcbiAgICAgICAgdGhpcy5kYXRhJCA9IG1lcmdlKFxuICAgICAgICAgICAgbW9EYXRhTGlzdCQucGlwZSh0YXAoKGl0ZW1zKSA9PiAodGhpcy5pdGVtcyA9IGl0ZW1zKSkpLFxuICAgICAgICAgICAgZ3JpZFNldHRpbmckLnBpcGUodGFwKChncmlkU2V0dGluZykgPT4gKHRoaXMuZ3JpZFNldHRpbmcgPSBncmlkU2V0dGluZykpKSxcbiAgICAgICAgICAgIHNlYXJjaFRlcm0kLnBpcGUodGFwKChzZWFyY2hUZXJtKSA9PiAodGhpcy5zZWFyY2hUZXJtID0gc2VhcmNoVGVybSkpKSxcbiAgICAgICAgICAgIHZpc2libGVDb2x1bW5zJC5waXBlKHRhcCgodmlzaWJsZUNvbHVtbnMpID0+ICh0aGlzLnZpc2libGVDb2x1bW5zID0gdmlzaWJsZUNvbHVtbnMpKSlcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5pdGVtcyksXG4gICAgICAgICAgICBtYXAoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm1cbiAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hFeChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVDb2x1bW5zLm1hcCgoYykgPT4gYy5OYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtc1xuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLml0ZW1zXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkU2V0dGluZz8uU29ydFNldHRpbmdMaXN0XG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5pdGVtcy5zbGljZSgpLnNvcnQobXVsdGlsZXZlbFNvcnQodGhpcy5nZXRTb3J0YnkoKSkpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5pdGVtc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC8vIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIC8vICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS4kVmlzaWJpbGl0eSA9IHRydWUpKTtcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgICAgICAvLyB9KSxcbiAgICAgICAgICAgIHRhcCgoaXRlbXMpID0+ICh0aGlzLnJlc3VsdEl0ZW1zID0gaXRlbXMpKVxuICAgICAgICAgICAgLy8gdGFwKChpdGVtcykgPT4gY29uc29sZS5sb2coaXRlbXMpKVxuICAgICAgICApO1xuICAgIH1cbiAgICBnZXRTb3J0YnkoKTogQ29sbGVjdGlvblNvcnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRTZXR0aW5nLlNvcnRTZXR0aW5nTGlzdC5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICBmaWVsZDogYy5OYW1lLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmdldFNvcnREaXJlY3Rpb24oYy5Tb3J0RGlyZWN0aW9uKSxcbiAgICAgICAgICAgIGlzTnVtYmVyOiB0aGlzLnZpc2libGVDb2x1bW5zPy5maW5kKChkKSA9PiBkLk5hbWUgPT09IGMuTmFtZSk/LkZpZWxkVHlwZSA9PT0gJ9i52K/YrydcbiAgICAgICAgfSkpLmNvbmNhdCh7IGZpZWxkOiAnJE5ld0lubGluZU1vJywgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uLkRFU0MsIGlzTnVtYmVyOiBmYWxzZSB9KTtcbiAgICB9XG4gICAgZ2V0U29ydERpcmVjdGlvbihkaXJlY3Rpb24pOiBTb3J0RGlyZWN0aW9uIHtcbiAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ0FTQyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNvcnREaXJlY3Rpb24uQVNDO1xuICAgICAgICAgICAgY2FzZSAnREVTQyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNvcnREaXJlY3Rpb24uREVTQztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU29ydERpcmVjdGlvbi5OT05FO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdyaWREYXRhUHJvdmlkZXIge1xuICAgIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcbiAgICBtb0RhdGFMaXN0JDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+O1xuICAgIHRvdGFsSXRlbXMgPSAwO1xuICAgIGxhc3RTdGF0ZTogVGFibGVTdGF0ZTtcbiAgICBjb25zdHJ1Y3Rvcihtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pIHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IG1vRGF0YUxpc3Q7XG4gICAgfVxuICAgIGZldGNoKHRhYmxlU3RhdGU6IFRhYmxlU3RhdGUpOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLmxhc3RTdGF0ZSA9IHRhYmxlU3RhdGU7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE1vRGF0YUxpc3QodGFibGVTdGF0ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgZ2V0TW9EYXRhTGlzdCh0YWJsZVN0YXRlOiBUYWJsZVN0YXRlKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuaXRlbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGl0ZW1zKSA9PiAodGFibGVTdGF0ZS5zZWFyY2hJbnB1dCA/IHNlYXJjaCh0YWJsZVN0YXRlLCBpdGVtcykgOiBpdGVtcykpLFxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gKHRhYmxlU3RhdGUuc29ydEJ5ID8gc29ydCh0YWJsZVN0YXRlLCBpdGVtcykgOiBpdGVtcykpXG4gICAgICAgICk7XG4gICAgfVxufVxuY29uc3Qgc29ydCA9ICh7IHNvcnRCeSB9OiBUYWJsZVN0YXRlLCBtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT5cbiAgICBzb3J0RXgoc29ydEJ5LCBtb0RhdGFMaXN0KTtcblxuY29uc3Qgc29ydEV4ID0gKFxuICAgIHNvcnRCeTogeyBmaWVsZDogc3RyaW5nIHwgbnVsbDsgZGlyZWN0aW9uOiBzdHJpbmc7IGlzTnVtYmVyPzogYm9vbGVhbiB9W10sXG4gICAgbW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdXG4pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gbW9EYXRhTGlzdC5zbGljZSgpO1xuXG4gICAgY29uc3QgbmV3U29ydEJ5ID0gc29ydEJ5LmZpbHRlcigoeyBmaWVsZCB9KSA9PiAhIWZpZWxkKTtcblxuICAgIGlmIChuZXdTb3J0QnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXMuc29ydChcbiAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgbmV3U29ydEJ5XG4gICAgICAgICAgICAgICAgLm1hcCgoeyBmaWVsZCwgZGlyZWN0aW9uLCBpc051bWJlciB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFzY01vZGlmaWVyID0gZGlyZWN0aW9uID09PSBTb3J0RGlyZWN0aW9uLkFTQyA/IDEgOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbnN0YW50cy5zb3J0KGEsIGIsIGZpZWxkLCBpc051bWJlcikgKiBhc2NNb2RpZmllcjtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5maW5kKChyZXN1bHQsIGluZGV4LCBsaXN0KSA9PiByZXN1bHQgIT09IDAgfHwgaW5kZXggPT09IGxpc3QubGVuZ3RoIC0gMSkhXG4gICAgKTtcbn07XG5mdW5jdGlvbiBjb21iaW5lQ29tcGFyaXNvbkZ1bmN0aW9ucyhjb21wYXJlRnVuY3Rpb25zKSB7XG4gICAgcmV0dXJuIChhLCBiKSA9PiB7XG4gICAgICAgIHJldHVybiBjb21wYXJlRnVuY3Rpb25zLnJlZHVjZSgocmVzdWx0LCBjb21wYXJlRnVuY3Rpb24pID0+IHtcbiAgICAgICAgICAgIC8vIFByb2NlZWRzIHRvIHRoZSBuZXh0IGNvbXBhcmlzb24gZnVuY3Rpb24gaWYgdGhlIHByZXZpb3VzIG9uZSByZXR1cm5lZCAwXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYmVmb3JlICcsIHJlc3VsdCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnbmV4dCBhICxiICcsIGEsIGIpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCB8fCBjb21wYXJlRnVuY3Rpb24oYSwgYik7XG4gICAgICAgIH0sIDApO1xuICAgIH07XG59XG5mdW5jdGlvbiBtdWx0aWxldmVsU29ydChjcml0ZXJpYTogQ29sbGVjdGlvblNvcnRbXSkge1xuICAgIGNvbnN0IGNvbXBhcmVGdW5jdGlvbnMgPSBjcml0ZXJpYS5tYXAoKHgpID0+IHtcbiAgICAgICAgY29uc3QgeyBmaWVsZCwgZGlyZWN0aW9uLCBpc051bWJlciB9ID0geDtcblxuICAgICAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFWYWx1ZSA9IGFbZmllbGQgfHwgJyRfeF8nXTsgLy8gb3B0aW9uYWxseSB0cmFuc2Zvcm0gdGhlIHByb3BlcnR5IHZhbHVlXG4gICAgICAgICAgICBjb25zdCBiVmFsdWUgPSBiW2ZpZWxkIHx8ICckX3hfJ107IC8vIHdlIHVzZSBhbiBpZGVudGl0eSBmdW5jdGlvbiBhcyBkZWZhdWx0XG4gICAgICAgICAgICBjb25zdCBhc2NNb2RpZmllciA9IGRpcmVjdGlvbiA9PT0gU29ydERpcmVjdGlvbi5BU0MgPyAxIDogLTE7XG4gICAgICAgICAgICBjb25zdCByZXMgPSBDb25zdGFudHMuc29ydChhVmFsdWUsIGJWYWx1ZSwgZmllbGQsIGlzTnVtYmVyKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzb3J0IHJlcz0nLCByZXMgKiBhc2NNb2RpZmllciwgJ29uIGZpZWxkJywgZmllbGQsIGFWYWx1ZSwgYlZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiByZXMgKiBhc2NNb2RpZmllcjtcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb21iaW5lQ29tcGFyaXNvbkZ1bmN0aW9ucyhjb21wYXJlRnVuY3Rpb25zKTtcbn1cblxuY29uc3Qgc2VhcmNoID0gKHsgc2VhcmNoSW5wdXQsIGNvbHVtbnMgfTogVGFibGVTdGF0ZSwgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9PiB7XG4gICAgcmV0dXJuIHNlYXJjaEV4KHNlYXJjaElucHV0Py50ZXh0LCBjb2x1bW5zLCBpdGVtcyk7XG59O1xuY29uc3Qgc2VhcmNoRXggPSAoc2VhcmNoVGVybSwgY29sdW1uczogc3RyaW5nW10sIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT4ge1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSBzZWFyY2hUZXJtIHx8ICcnO1xuICAgIGNvbnN0IGtleXNUb1NlYXJjaEJ5ID0gY29sdW1ucztcblxuICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKSA9PT0gJycgfHwga2V5c1RvU2VhcmNoQnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZXNGb3JTZWFyY2ggPSBrZXlzVG9TZWFyY2hCeS5tYXAoKGtleSkgPT4gQ29uc3RhbnRzLmdldE5lc3RlZFZhbHVlKGtleSwgaXRlbSkpO1xuICAgICAgICByZXR1cm4gdmFsdWVzRm9yU2VhcmNoXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gISF2YWx1ZSlcbiAgICAgICAgICAgIC5tYXAoKHZhbHVlKTogc3RyaW5nID0+IHZhbHVlLnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAuc29tZSgodmFsdWUpID0+IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpKSk7XG4gICAgfSk7XG59O1xuIl19
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kYXRhLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbW9kZWxzL2dyaWQtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBTUgsYUFBYSxFQUNoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sS0FBSyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxjQUFjO0lBT3ZCLFlBQ0ksV0FBOEMsRUFDOUMsWUFBcUMsRUFDckMsZUFBK0MsRUFDL0MsV0FBK0I7UUFFL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQ2QsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3RELFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUN6RSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDckUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQ3hGLENB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RSxFQUFFLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uU29ydCxcbiAgICBUYWJsZVN0YXRlLFxuICAgIEdyaWRTZXR0aW5nLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcbiAgICBTb3J0RGlyZWN0aW9uXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCAqIGFzIENvbnN0YW50cyBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgR3JpZE1vRGF0YUxpc3Qge1xuICAgIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgcmVzdWx0SXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTtcbiAgICBncmlkU2V0dGluZzogR3JpZFNldHRpbmc7XG4gICAgdmlzaWJsZUNvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBzZWFyY2hUZXJtOiBzdHJpbmc7XG4gICAgZGF0YSQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPjtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbW9EYXRhTGlzdCQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPixcbiAgICAgICAgZ3JpZFNldHRpbmckOiBPYnNlcnZhYmxlPEdyaWRTZXR0aW5nPixcbiAgICAgICAgdmlzaWJsZUNvbHVtbnMkOiBPYnNlcnZhYmxlPFJlcG9ydFZpZXdDb2x1bW5bXT4sXG4gICAgICAgIHNlYXJjaFRlcm0kOiBPYnNlcnZhYmxlPHN0cmluZz5cbiAgICApIHtcbiAgICAgICAgdGhpcy5kYXRhJCA9IG1lcmdlKFxuICAgICAgICAgICAgbW9EYXRhTGlzdCQucGlwZSh0YXAoKGl0ZW1zKSA9PiAodGhpcy5pdGVtcyA9IGl0ZW1zKSkpLFxuICAgICAgICAgICAgZ3JpZFNldHRpbmckLnBpcGUodGFwKChncmlkU2V0dGluZykgPT4gKHRoaXMuZ3JpZFNldHRpbmcgPSBncmlkU2V0dGluZykpKSxcbiAgICAgICAgICAgIHNlYXJjaFRlcm0kLnBpcGUodGFwKChzZWFyY2hUZXJtKSA9PiAodGhpcy5zZWFyY2hUZXJtID0gc2VhcmNoVGVybSkpKSxcbiAgICAgICAgICAgIHZpc2libGVDb2x1bW5zJC5waXBlKHRhcCgodmlzaWJsZUNvbHVtbnMpID0+ICh0aGlzLnZpc2libGVDb2x1bW5zID0gdmlzaWJsZUNvbHVtbnMpKSlcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5pdGVtcyksXG4gICAgICAgICAgICBtYXAoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm1cbiAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hFeChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVDb2x1bW5zLm1hcCgoYykgPT4gYy5OYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtc1xuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLml0ZW1zXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkU2V0dGluZz8uU29ydFNldHRpbmdMaXN0XG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5pdGVtcy5zbGljZSgpLnNvcnQobXVsdGlsZXZlbFNvcnQodGhpcy5nZXRTb3J0YnkoKSkpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5pdGVtc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC8vIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIC8vICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS4kVmlzaWJpbGl0eSA9IHRydWUpKTtcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgICAgICAvLyB9KSxcbiAgICAgICAgICAgIHRhcCgoaXRlbXMpID0+ICh0aGlzLnJlc3VsdEl0ZW1zID0gaXRlbXMpKVxuICAgICAgICAgICAgLy8gdGFwKChpdGVtcykgPT4gY29uc29sZS5sb2coaXRlbXMpKVxuICAgICAgICApO1xuICAgIH1cbiAgICBnZXRTb3J0YnkoKTogQ29sbGVjdGlvblNvcnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRTZXR0aW5nLlNvcnRTZXR0aW5nTGlzdC5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICBmaWVsZDogYy5OYW1lLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmdldFNvcnREaXJlY3Rpb24oYy5Tb3J0RGlyZWN0aW9uKSxcbiAgICAgICAgICAgIGlzTnVtYmVyOiB0aGlzLnZpc2libGVDb2x1bW5zPy5maW5kKChkKSA9PiBkLk5hbWUgPT09IGMuTmFtZSk/LkZpZWxkVHlwZSA9PT0gJ9i52K/YrydcbiAgICAgICAgfSkpLmNvbmNhdCh7IGZpZWxkOiAnJE5ld0lubGluZU1vJywgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uLkRFU0MsIGlzTnVtYmVyOiBmYWxzZSB9KTtcbiAgICB9XG4gICAgZ2V0U29ydERpcmVjdGlvbihkaXJlY3Rpb24pOiBTb3J0RGlyZWN0aW9uIHtcbiAgICAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ0FTQyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNvcnREaXJlY3Rpb24uQVNDO1xuICAgICAgICAgICAgY2FzZSAnREVTQyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNvcnREaXJlY3Rpb24uREVTQztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU29ydERpcmVjdGlvbi5OT05FO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdyaWREYXRhUHJvdmlkZXIge1xuICAgIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcbiAgICBtb0RhdGFMaXN0JDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+O1xuICAgIHRvdGFsSXRlbXMgPSAwO1xuICAgIGxhc3RTdGF0ZTogVGFibGVTdGF0ZTtcbiAgICBjb25zdHJ1Y3Rvcihtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pIHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IG1vRGF0YUxpc3Q7XG4gICAgfVxuICAgIGZldGNoKHRhYmxlU3RhdGU6IFRhYmxlU3RhdGUpOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLmxhc3RTdGF0ZSA9IHRhYmxlU3RhdGU7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE1vRGF0YUxpc3QodGFibGVTdGF0ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgZ2V0TW9EYXRhTGlzdCh0YWJsZVN0YXRlOiBUYWJsZVN0YXRlKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuaXRlbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGl0ZW1zKSA9PiAodGFibGVTdGF0ZS5zZWFyY2hJbnB1dCA/IHNlYXJjaCh0YWJsZVN0YXRlLCBpdGVtcykgOiBpdGVtcykpLFxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gKHRhYmxlU3RhdGUuc29ydEJ5ID8gc29ydCh0YWJsZVN0YXRlLCBpdGVtcykgOiBpdGVtcykpXG4gICAgICAgICk7XG4gICAgfVxufVxuY29uc3Qgc29ydCA9ICh7IHNvcnRCeSB9OiBUYWJsZVN0YXRlLCBtb0RhdGFMaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT5cbiAgICBzb3J0RXgoc29ydEJ5LCBtb0RhdGFMaXN0KTtcblxuY29uc3Qgc29ydEV4ID0gKFxuICAgIHNvcnRCeTogeyBmaWVsZDogc3RyaW5nIHwgbnVsbDsgZGlyZWN0aW9uOiBzdHJpbmc7IGlzTnVtYmVyPzogYm9vbGVhbiB9W10sXG4gICAgbW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdXG4pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gbW9EYXRhTGlzdC5zbGljZSgpO1xuXG4gICAgY29uc3QgbmV3U29ydEJ5ID0gc29ydEJ5LmZpbHRlcigoeyBmaWVsZCB9KSA9PiAhIWZpZWxkKTtcblxuICAgIGlmIChuZXdTb3J0QnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXMuc29ydChcbiAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgbmV3U29ydEJ5XG4gICAgICAgICAgICAgICAgLm1hcCgoeyBmaWVsZCwgZGlyZWN0aW9uLCBpc051bWJlciB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFzY01vZGlmaWVyID0gZGlyZWN0aW9uID09PSBTb3J0RGlyZWN0aW9uLkFTQyA/IDEgOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbnN0YW50cy5zb3J0KGEsIGIsIGZpZWxkLCBpc051bWJlcikgKiBhc2NNb2RpZmllcjtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5maW5kKChyZXN1bHQsIGluZGV4LCBsaXN0KSA9PiByZXN1bHQgIT09IDAgfHwgaW5kZXggPT09IGxpc3QubGVuZ3RoIC0gMSkhXG4gICAgKTtcbn07XG5mdW5jdGlvbiBjb21iaW5lQ29tcGFyaXNvbkZ1bmN0aW9ucyhjb21wYXJlRnVuY3Rpb25zKSB7XG4gICAgcmV0dXJuIChhLCBiKSA9PiB7XG4gICAgICAgIHJldHVybiBjb21wYXJlRnVuY3Rpb25zLnJlZHVjZSgocmVzdWx0LCBjb21wYXJlRnVuY3Rpb24pID0+IHtcbiAgICAgICAgICAgIC8vIFByb2NlZWRzIHRvIHRoZSBuZXh0IGNvbXBhcmlzb24gZnVuY3Rpb24gaWYgdGhlIHByZXZpb3VzIG9uZSByZXR1cm5lZCAwXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnYmVmb3JlICcsIHJlc3VsdCk7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnbmV4dCBhICxiICcsIGEsIGIpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCB8fCBjb21wYXJlRnVuY3Rpb24oYSwgYik7XG4gICAgICAgIH0sIDApO1xuICAgIH07XG59XG5mdW5jdGlvbiBtdWx0aWxldmVsU29ydChjcml0ZXJpYTogQ29sbGVjdGlvblNvcnRbXSkge1xuICAgIGNvbnN0IGNvbXBhcmVGdW5jdGlvbnMgPSBjcml0ZXJpYS5tYXAoKHgpID0+IHtcbiAgICAgICAgY29uc3QgeyBmaWVsZCwgZGlyZWN0aW9uLCBpc051bWJlciB9ID0geDtcblxuICAgICAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFWYWx1ZSA9IGFbZmllbGQgfHwgJyRfeF8nXTsgLy8gb3B0aW9uYWxseSB0cmFuc2Zvcm0gdGhlIHByb3BlcnR5IHZhbHVlXG4gICAgICAgICAgICBjb25zdCBiVmFsdWUgPSBiW2ZpZWxkIHx8ICckX3hfJ107IC8vIHdlIHVzZSBhbiBpZGVudGl0eSBmdW5jdGlvbiBhcyBkZWZhdWx0XG4gICAgICAgICAgICBjb25zdCBhc2NNb2RpZmllciA9IGRpcmVjdGlvbiA9PT0gU29ydERpcmVjdGlvbi5BU0MgPyAxIDogLTE7XG4gICAgICAgICAgICBjb25zdCByZXMgPSBDb25zdGFudHMuc29ydChhVmFsdWUsIGJWYWx1ZSwgZmllbGQsIGlzTnVtYmVyKTtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdzb3J0IHJlcz0nLCByZXMgKiBhc2NNb2RpZmllciwgJ29uIGZpZWxkJywgZmllbGQsIGFWYWx1ZSwgYlZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiByZXMgKiBhc2NNb2RpZmllcjtcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb21iaW5lQ29tcGFyaXNvbkZ1bmN0aW9ucyhjb21wYXJlRnVuY3Rpb25zKTtcbn1cblxuY29uc3Qgc2VhcmNoID0gKHsgc2VhcmNoSW5wdXQsIGNvbHVtbnMgfTogVGFibGVTdGF0ZSwgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9PiB7XG4gICAgcmV0dXJuIHNlYXJjaEV4KHNlYXJjaElucHV0Py50ZXh0LCBjb2x1bW5zLCBpdGVtcyk7XG59O1xuY29uc3Qgc2VhcmNoRXggPSAoc2VhcmNoVGVybSwgY29sdW1uczogc3RyaW5nW10sIGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPT4ge1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSBzZWFyY2hUZXJtIHx8ICcnO1xuICAgIGNvbnN0IGtleXNUb1NlYXJjaEJ5ID0gY29sdW1ucztcblxuICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKSA9PT0gJycgfHwga2V5c1RvU2VhcmNoQnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZXNGb3JTZWFyY2ggPSBrZXlzVG9TZWFyY2hCeS5tYXAoKGtleSkgPT4gQ29uc3RhbnRzLmdldE5lc3RlZFZhbHVlKGtleSwgaXRlbSkpO1xuICAgICAgICByZXR1cm4gdmFsdWVzRm9yU2VhcmNoXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gISF2YWx1ZSlcbiAgICAgICAgICAgIC5tYXAoKHZhbHVlKTogc3RyaW5nID0+IHZhbHVlLnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAuc29tZSgodmFsdWUpID0+IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpKSk7XG4gICAgfSk7XG59O1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, HostListener, ElementRef, inject, ViewChild } from '@angular/core';
|
|
2
|
+
import { BaseComponent, FormComponent } from 'barsa-novin-ray-core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "barsa-novin-ray-core";
|
|
5
5
|
export class SearchPanelComponent extends BaseComponent {
|
|
@@ -7,6 +7,21 @@ export class SearchPanelComponent extends BaseComponent {
|
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.moChanged = new EventEmitter();
|
|
9
9
|
this.firstValueChanged = true;
|
|
10
|
+
this._el = inject(ElementRef);
|
|
11
|
+
}
|
|
12
|
+
onKeydownHandler(event) {
|
|
13
|
+
let id = null;
|
|
14
|
+
const tg = event.target;
|
|
15
|
+
if (tg) {
|
|
16
|
+
id = tg.id;
|
|
17
|
+
}
|
|
18
|
+
if (!id || !id.startsWith('_')) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const x = this._el.nativeElement.querySelector('#' + id);
|
|
22
|
+
if (x && x.tagName !== 'TEXTAREA') {
|
|
23
|
+
this.searchPanelUi.fireEvent('EnterPress', this.searchPanelUi);
|
|
24
|
+
}
|
|
10
25
|
}
|
|
11
26
|
ngOnInit() {
|
|
12
27
|
super.ngOnInit();
|
|
@@ -25,12 +40,18 @@ export class SearchPanelComponent extends BaseComponent {
|
|
|
25
40
|
}
|
|
26
41
|
}
|
|
27
42
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: SearchPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: SearchPanelComponent, selector: "bsu-search-panel", inputs: { searchPanelUi: "searchPanelUi", hideButtons: "hideButtons", isSearcPanelInSideContent: "isSearcPanelInSideContent" }, outputs: { moChanged: "moChanged" }, usesInheritance: true, ngImport: i0, template: "@if (searchPanelUi) {\n<bnrc-form [customFormPanelUi]=\"searchPanelUi\" (titleChanged)=\"onTitleChange($event)\"></bnrc-form>\n}\n", styles: [":host{display:block}:host ::ng-deep .horizontal-layout>.layout-control{height:auto}\n"], dependencies: [{ kind: "component", type: i1.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: SearchPanelComponent, selector: "bsu-search-panel", inputs: { searchPanelUi: "searchPanelUi", hideButtons: "hideButtons", isSearcPanelInSideContent: "isSearcPanelInSideContent" }, outputs: { moChanged: "moChanged" }, host: { listeners: { "document:keydown.enter": "onKeydownHandler($event)" } }, viewQueries: [{ propertyName: "_form", first: true, predicate: FormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (searchPanelUi) {\n<bnrc-form [customFormPanelUi]=\"searchPanelUi\" (titleChanged)=\"onTitleChange($event)\"></bnrc-form>\n}\n", styles: [":host{display:block}:host ::ng-deep .horizontal-layout>.layout-control{height:auto}\n"], dependencies: [{ kind: "component", type: i1.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
44
|
}
|
|
30
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: SearchPanelComponent, decorators: [{
|
|
31
46
|
type: Component,
|
|
32
47
|
args: [{ selector: 'bsu-search-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (searchPanelUi) {\n<bnrc-form [customFormPanelUi]=\"searchPanelUi\" (titleChanged)=\"onTitleChange($event)\"></bnrc-form>\n}\n", styles: [":host{display:block}:host ::ng-deep .horizontal-layout>.layout-control{height:auto}\n"] }]
|
|
33
|
-
}], propDecorators: {
|
|
48
|
+
}], propDecorators: { onKeydownHandler: [{
|
|
49
|
+
type: HostListener,
|
|
50
|
+
args: ['document:keydown.enter', ['$event']]
|
|
51
|
+
}], _form: [{
|
|
52
|
+
type: ViewChild,
|
|
53
|
+
args: [FormComponent]
|
|
54
|
+
}], searchPanelUi: [{
|
|
34
55
|
type: Input
|
|
35
56
|
}], hideButtons: [{
|
|
36
57
|
type: Input
|
|
@@ -39,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
39
60
|
}], moChanged: [{
|
|
40
61
|
type: Output
|
|
41
62
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3NlYXJjaC1wYW5lbC9zZWFyY2gtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvc2VhcmNoLXBhbmVsL3NlYXJjaC1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBUXBFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO0lBTnZEOztRQTBCYyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV6QyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQXFCNUI7SUEzQ3VELGdCQUFnQixDQUFDLEtBQW9CO1FBQ3JGLElBQUksRUFBRSxHQUFrQixJQUFJLENBQUM7UUFDN0IsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDdkMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNMLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTztRQUNYLENBQUM7UUFDRCxNQUFNLENBQUMsR0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQTZCLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNMLENBQUM7SUFVRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztRQUN0RixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3RELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxLQUFLLHdCQUF3QixDQUN0RCxDQUFDO1lBQ0YsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDaEIsYUFBYSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsQ0FBQyx1Q0FBdUM7WUFDakcsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDdkIsa0NBQWtDO1FBQ2xDLElBQUksS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDOzhHQTNDUSxvQkFBb0I7a0dBQXBCLG9CQUFvQixtVkFlbEIsYUFBYSx1RUNwQzVCLG9JQUdBOzsyRkRrQmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUdLLGdCQUFnQjtzQkFBbkUsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFjeEIsS0FBSztzQkFBOUIsU0FBUzt1QkFBQyxhQUFhO2dCQUVmLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25Jbml0LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEZvcm1Db21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXNlYXJjaC1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgaWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgICBjb25zdCB0ZyA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRnKSB7XG4gICAgICAgICAgICBpZCA9IHRnLmlkO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaWQgfHwgIWlkLnN0YXJ0c1dpdGgoJ18nKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHggPSAodGhpcy5fZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignIycgKyBpZCk7XG4gICAgICAgIGlmICh4ICYmIHgudGFnTmFtZSAhPT0gJ1RFWFRBUkVBJykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hQYW5lbFVpLmZpcmVFdmVudCgnRW50ZXJQcmVzcycsIHRoaXMuc2VhcmNoUGFuZWxVaSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KSBfZm9ybTogRm9ybUNvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpIHNlYXJjaFBhbmVsVWk6IGFueTtcbiAgICBASW5wdXQoKSBoaWRlQnV0dG9uczogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc1NlYXJjUGFuZWxJblNpZGVDb250ZW50OiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSBtb0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBmaXJzdFZhbHVlQ2hhbmdlZCA9IHRydWU7XG4gICAgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoUGFuZWxVaS5TZXR0aW5nLklzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnQgPSB0aGlzLmlzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnQ7XG4gICAgICAgIGlmICh0aGlzLmhpZGVCdXR0b25zKSB7XG4gICAgICAgICAgICBjb25zdCBzZWFyY2hCdXR0b25zID0gdGhpcy5zZWFyY2hQYW5lbFVpLl9saXN0RmllbGRVaS5maW5kKFxuICAgICAgICAgICAgICAgIChjKSA9PiBjLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TZWFyY2hDb21tYW5kSW5mb1VpJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChzZWFyY2hCdXR0b25zKSB7XG4gICAgICAgICAgICAgICAgc2VhcmNoQnV0dG9ucy5TZXR0aW5nLkhpZGVTZWFyY2hDb21tYW5kSW5mb1VpID0gdHJ1ZTsgLy8gaGlkZSBkZWZhdWx0IGJ1dHRvbnMgb2Ygc2VhcmNoIHBhbmVsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRpdGxlQ2hhbmdlKHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy5faGFuZGxlTW9PclRpdGxlQ2hhbmdlZCgpO1xuICAgICAgICBpZiAodGl0bGU/LmluZGV4T2YoJyonKSA+IDApIHtcbiAgICAgICAgICAgIHRoaXMubW9DaGFuZ2VkLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAoc2VhcmNoUGFuZWxVaSkge1xuPGJucmMtZm9ybSBbY3VzdG9tRm9ybVBhbmVsVWldPVwic2VhcmNoUGFuZWxVaVwiICh0aXRsZUNoYW5nZWQpPVwib25UaXRsZUNoYW5nZSgkZXZlbnQpXCI+PC9ibnJjLWZvcm0+XG59XG4iXX0=
|