@fundamental-ngx/platform 0.43.0-rc.21 → 0.43.0-rc.22
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/esm2020/table/components/table-row/table-row.component.mjs +3 -3
- package/fesm2015/fundamental-ngx-platform-table.mjs +2 -2
- package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-table.mjs +2 -2
- package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fundamental-ngx-platform-v0.43.0-rc.22.tgz +0 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/fundamental-ngx-platform-v0.43.0-rc.21.tgz +0 -0
|
@@ -160,7 +160,7 @@ TableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
160
160
|
useExisting: TableRowComponent
|
|
161
161
|
},
|
|
162
162
|
DestroyedService
|
|
163
|
-
], viewQueries: [{ propertyName: "_focusableViewCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }, { propertyName: "_editableCells", predicate: EditableTableCell, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<td\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async as semanticHighlighting\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [addDisabledClass]=\"false\"\n [status]=\"row.value[semanticHighlighting]\"\n></td>\n\n<!-- Row Selection Cell -->\n<ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"SELECTION_MODE.SINGLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n [attr.role]=\"_hasRowHeaderColumn ? 'gridcell' : 'rowheader'\"\n fd-table-cell\n fd-table-cell-selectable\n [focusable]=\"true\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n [attr.aria-selected]=\"row.checked\"\n (click)=\"_toggleSingleSelectableRow()\"\n (keydown.enter)=\"_toggleSingleSelectableRow()\"\n (keydown.space)=\"_toggleSingleSelectableRow()\"\n ></td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"SELECTION_MODE.MULTIPLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n role=\"cell\"\n fd-table-cell\n [focusable]=\"true\"\n (keydown.enter)=\"_toggleMultiSelectRow(row, $event)\"\n (keydown.space)=\"_toggleMultiSelectRow(row, $event)\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n >\n <fd-checkbox\n tabIndexValue=\"-1\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"enableTristateMode\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"row.checked$ | async\"\n (ngModelChange)=\"_toggleMultiSelectRow(row)\"\n ></fd-checkbox>\n </td>\n </ng-container>\n</ng-container>\n\n<ng-template #selectionMock>\n <td\n class=\"fd-table__cell--checkbox\"\n role=\"gridcell\"\n fd-table-cell\n fdkDisabled\n [addDisabledClass]=\"false\"\n [class.fd-table__cell--fixed]=\"fixed\"\n ></td>\n</ng-template>\n\n<td\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n last as isLast;\n trackBy: _columnTrackBy\n \"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async) === true\n \"\n [columnName]=\"column.name\"\n [focusable]=\"true\"\n [attr.role]=\"column.role\"\n [headers]=\"rowId + '__' + column.name\"\n [ngClass]=\"'fdp-table__col--' + column.name\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n row.isTree && colIdx === 0 ? 'fd-table__cell--expand' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) === false ? 'is-last-child' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [attr.aria-expanded]=\"_isTreeRowFirstCell(colIdx, row) ? row.expanded : null\"\n [attr.data-nesting-level]=\"colIdx === 0 ? row.level + 1 : null\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (click)=\"_tableRowService.cellClicked({ index: colIdx, row })\"\n (keydown.enter)=\"_isTreeRowFirstCell(colIdx, row, $event) && _toggleGroupRow()\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n>\n <div [class.fd-table__text]=\"column.applyText\" [class.fd-table__text--no-wrap]=\"column.noWrap\">\n <span\n *ngIf=\"_isTreeRowFirstCell(colIdx, row)\"\n class=\"fd-table__expand\"\n [class.fd-table__expand--open]=\"row.expanded$ | async\"\n aria-hidden=\"true\"\n ></span>\n\n <ng-container *ngIf=\"row.state === 'readonly'; else editModeCell\">\n <ng-container *ngIf=\"column?.columnCellTemplate; else defaultTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.columnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultTableCellTemplate>\n {{ row.value | valueByPath : column.key }}\n </ng-template>\n\n <ng-template #editModeCell>\n <ng-container *ngIf=\"column?.editableColumnCellTemplate; else defaultEditableTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.editableColumnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #defaultEditableTableCellTemplate>\n <fdp-table-editable-cell\n [row]=\"row\"\n [column]=\"column\"\n [columnValue]=\"row.value | valueByPath : column.key\"\n ></fdp-table-editable-cell>\n </ng-template>\n </ng-template>\n </div>\n</td>\n\n<ng-content></ng-content>\n\n<td\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n>\n <i\n *ngIf=\"row.navigatable\"\n fd-table-icon\n [navigation]=\"true\"\n [class]=\"_rtl ? 'sap-icon--slim-arrow-left' : 'sap-icon--slim-arrow-right'\"\n class=\"fdp-table__navigation-indicator\"\n ></i>\n</td>\n\n<td\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n></td>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i3.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "directive", type: i3.TableIconDirective, selector: "[fdTableIcon], [fd-table-icon]", inputs: ["class", "glyph", "navigation"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i5.DisabledBehaviorDirective, selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "directive", type: i6.PlatformTableCellResizableDirective, selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "directive", type: i6.FdpCellSelectableDirective, selector: "[fdTableCellSelectable], [fd-table-cell-selectable]", inputs: ["enabled"] }, { kind: "component", type: i7.TableEditableCellComponent, selector: "fdp-table-editable-cell", inputs: ["row", "column", "columnValue"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.ValueByPathPipe, name: "valueByPath" }, { kind: "pipe", type: i6.SelectionCellStylesPipe, name: "selectionCellStyles" }, { kind: "pipe", type: i6.TableCellStylesPipe, name: "tableCellStyles" }, { kind: "pipe", type: i6.ColumnResizableSidePipe, name: "columnResizableSide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
163
|
+
], viewQueries: [{ propertyName: "_focusableViewCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }, { propertyName: "_editableCells", predicate: EditableTableCell, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<td\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async as semanticHighlighting\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [addDisabledClass]=\"false\"\n [status]=\"row.value[semanticHighlighting]\"\n></td>\n\n<!-- Row Selection Cell -->\n<ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"SELECTION_MODE.SINGLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n [attr.role]=\"_hasRowHeaderColumn ? 'gridcell' : 'rowheader'\"\n fd-table-cell\n fd-table-cell-selectable\n [focusable]=\"true\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n [attr.aria-selected]=\"row.checked\"\n (click)=\"_toggleSingleSelectableRow()\"\n (keydown.enter)=\"_toggleSingleSelectableRow()\"\n (keydown.space)=\"_toggleSingleSelectableRow()\"\n ></td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"SELECTION_MODE.MULTIPLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n role=\"cell\"\n fd-table-cell\n [focusable]=\"true\"\n (keydown.enter)=\"_toggleMultiSelectRow(row, $event)\"\n (keydown.space)=\"_toggleMultiSelectRow(row, $event)\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n >\n <fd-checkbox\n tabIndexValue=\"-1\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"enableTristateMode\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"row.checked$ | async\"\n (ngModelChange)=\"_toggleMultiSelectRow(row)\"\n ></fd-checkbox>\n </td>\n </ng-container>\n</ng-container>\n\n<ng-template #selectionMock>\n <td\n class=\"fd-table__cell--checkbox\"\n role=\"gridcell\"\n fd-table-cell\n fdkDisabled\n [addDisabledClass]=\"false\"\n [class.fd-table__cell--fixed]=\"fixed\"\n ></td>\n</ng-template>\n\n<td\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n last as isLast;\n trackBy: _columnTrackBy\n \"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async) === true\n \"\n [columnName]=\"column.name\"\n [focusable]=\"true\"\n [attr.role]=\"column.role\"\n [headers]=\"rowId + '__' + column.name\"\n [ngClass]=\"'fdp-table__col--' + column.name\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n row.isTree && colIdx === 0 ? 'fd-table__cell--expand' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) === false ? 'is-last-child' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [attr.aria-expanded]=\"_isTreeRowFirstCell(colIdx, row) ? row.expanded : null\"\n [attr.data-nesting-level]=\"colIdx === 0 ? row.level + 1 : null\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (click)=\"_tableRowService.cellClicked({ index: colIdx, row })\"\n (keydown.enter)=\"_isTreeRowFirstCell(colIdx, row, $event) && _toggleGroupRow()\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n>\n <div [class.fd-table__text]=\"column.applyText\" [class.fd-table__text--no-wrap]=\"column.noWrap\">\n <span\n *ngIf=\"_isTreeRowFirstCell(colIdx, row)\"\n class=\"fd-table__expand\"\n [class.fd-table__expand--open]=\"row.expanded$ | async\"\n aria-hidden=\"true\"\n ></span>\n\n <ng-container *ngIf=\"row.state === 'readonly'; else editModeCell\">\n <ng-container *ngIf=\"column?.columnCellTemplate; else defaultTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.columnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultTableCellTemplate>{{ row.value | valueByPath : column.key }}</ng-template>\n\n <ng-template #editModeCell>\n <ng-container *ngIf=\"column?.editableColumnCellTemplate; else defaultEditableTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.editableColumnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #defaultEditableTableCellTemplate>\n <fdp-table-editable-cell\n [row]=\"row\"\n [column]=\"column\"\n [columnValue]=\"row.value | valueByPath : column.key\"\n ></fdp-table-editable-cell>\n </ng-template>\n </ng-template>\n </div>\n</td>\n\n<ng-content></ng-content>\n\n<td\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n>\n <i\n *ngIf=\"row.navigatable\"\n fd-table-icon\n [navigation]=\"true\"\n [class]=\"_rtl ? 'sap-icon--slim-arrow-left' : 'sap-icon--slim-arrow-right'\"\n class=\"fdp-table__navigation-indicator\"\n ></i>\n</td>\n\n<td\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n></td>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i3.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "directive", type: i3.TableIconDirective, selector: "[fdTableIcon], [fd-table-icon]", inputs: ["class", "glyph", "navigation"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i5.DisabledBehaviorDirective, selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "directive", type: i6.PlatformTableCellResizableDirective, selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "directive", type: i6.FdpCellSelectableDirective, selector: "[fdTableCellSelectable], [fd-table-cell-selectable]", inputs: ["enabled"] }, { kind: "component", type: i7.TableEditableCellComponent, selector: "fdp-table-editable-cell", inputs: ["row", "column", "columnValue"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.ValueByPathPipe, name: "valueByPath" }, { kind: "pipe", type: i6.SelectionCellStylesPipe, name: "selectionCellStyles" }, { kind: "pipe", type: i6.TableCellStylesPipe, name: "tableCellStyles" }, { kind: "pipe", type: i6.ColumnResizableSidePipe, name: "columnResizableSide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
164
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableRowComponent, decorators: [{
|
|
165
165
|
type: Component,
|
|
166
166
|
args: [{ selector: '[fdp-table-row]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -169,7 +169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
169
169
|
useExisting: TableRowComponent
|
|
170
170
|
},
|
|
171
171
|
DestroyedService
|
|
172
|
-
], template: "<td\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async as semanticHighlighting\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [addDisabledClass]=\"false\"\n [status]=\"row.value[semanticHighlighting]\"\n></td>\n\n<!-- Row Selection Cell -->\n<ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"SELECTION_MODE.SINGLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n [attr.role]=\"_hasRowHeaderColumn ? 'gridcell' : 'rowheader'\"\n fd-table-cell\n fd-table-cell-selectable\n [focusable]=\"true\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n [attr.aria-selected]=\"row.checked\"\n (click)=\"_toggleSingleSelectableRow()\"\n (keydown.enter)=\"_toggleSingleSelectableRow()\"\n (keydown.space)=\"_toggleSingleSelectableRow()\"\n ></td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"SELECTION_MODE.MULTIPLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n role=\"cell\"\n fd-table-cell\n [focusable]=\"true\"\n (keydown.enter)=\"_toggleMultiSelectRow(row, $event)\"\n (keydown.space)=\"_toggleMultiSelectRow(row, $event)\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n >\n <fd-checkbox\n tabIndexValue=\"-1\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"enableTristateMode\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"row.checked$ | async\"\n (ngModelChange)=\"_toggleMultiSelectRow(row)\"\n ></fd-checkbox>\n </td>\n </ng-container>\n</ng-container>\n\n<ng-template #selectionMock>\n <td\n class=\"fd-table__cell--checkbox\"\n role=\"gridcell\"\n fd-table-cell\n fdkDisabled\n [addDisabledClass]=\"false\"\n [class.fd-table__cell--fixed]=\"fixed\"\n ></td>\n</ng-template>\n\n<td\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n last as isLast;\n trackBy: _columnTrackBy\n \"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async) === true\n \"\n [columnName]=\"column.name\"\n [focusable]=\"true\"\n [attr.role]=\"column.role\"\n [headers]=\"rowId + '__' + column.name\"\n [ngClass]=\"'fdp-table__col--' + column.name\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n row.isTree && colIdx === 0 ? 'fd-table__cell--expand' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) === false ? 'is-last-child' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [attr.aria-expanded]=\"_isTreeRowFirstCell(colIdx, row) ? row.expanded : null\"\n [attr.data-nesting-level]=\"colIdx === 0 ? row.level + 1 : null\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (click)=\"_tableRowService.cellClicked({ index: colIdx, row })\"\n (keydown.enter)=\"_isTreeRowFirstCell(colIdx, row, $event) && _toggleGroupRow()\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n>\n <div [class.fd-table__text]=\"column.applyText\" [class.fd-table__text--no-wrap]=\"column.noWrap\">\n <span\n *ngIf=\"_isTreeRowFirstCell(colIdx, row)\"\n class=\"fd-table__expand\"\n [class.fd-table__expand--open]=\"row.expanded$ | async\"\n aria-hidden=\"true\"\n ></span>\n\n <ng-container *ngIf=\"row.state === 'readonly'; else editModeCell\">\n <ng-container *ngIf=\"column?.columnCellTemplate; else defaultTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.columnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultTableCellTemplate
|
|
172
|
+
], template: "<td\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async as semanticHighlighting\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [addDisabledClass]=\"false\"\n [status]=\"row.value[semanticHighlighting]\"\n></td>\n\n<!-- Row Selection Cell -->\n<ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"SELECTION_MODE.SINGLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n [attr.role]=\"_hasRowHeaderColumn ? 'gridcell' : 'rowheader'\"\n fd-table-cell\n fd-table-cell-selectable\n [focusable]=\"true\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n [attr.aria-selected]=\"row.checked\"\n (click)=\"_toggleSingleSelectableRow()\"\n (keydown.enter)=\"_toggleSingleSelectableRow()\"\n (keydown.space)=\"_toggleSingleSelectableRow()\"\n ></td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"SELECTION_MODE.MULTIPLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n role=\"cell\"\n fd-table-cell\n [focusable]=\"true\"\n (keydown.enter)=\"_toggleMultiSelectRow(row, $event)\"\n (keydown.space)=\"_toggleMultiSelectRow(row, $event)\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n >\n <fd-checkbox\n tabIndexValue=\"-1\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"enableTristateMode\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"row.checked$ | async\"\n (ngModelChange)=\"_toggleMultiSelectRow(row)\"\n ></fd-checkbox>\n </td>\n </ng-container>\n</ng-container>\n\n<ng-template #selectionMock>\n <td\n class=\"fd-table__cell--checkbox\"\n role=\"gridcell\"\n fd-table-cell\n fdkDisabled\n [addDisabledClass]=\"false\"\n [class.fd-table__cell--fixed]=\"fixed\"\n ></td>\n</ng-template>\n\n<td\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n last as isLast;\n trackBy: _columnTrackBy\n \"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async) === true\n \"\n [columnName]=\"column.name\"\n [focusable]=\"true\"\n [attr.role]=\"column.role\"\n [headers]=\"rowId + '__' + column.name\"\n [ngClass]=\"'fdp-table__col--' + column.name\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n row.isTree && colIdx === 0 ? 'fd-table__cell--expand' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) === false ? 'is-last-child' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [attr.aria-expanded]=\"_isTreeRowFirstCell(colIdx, row) ? row.expanded : null\"\n [attr.data-nesting-level]=\"colIdx === 0 ? row.level + 1 : null\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (click)=\"_tableRowService.cellClicked({ index: colIdx, row })\"\n (keydown.enter)=\"_isTreeRowFirstCell(colIdx, row, $event) && _toggleGroupRow()\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n>\n <div [class.fd-table__text]=\"column.applyText\" [class.fd-table__text--no-wrap]=\"column.noWrap\">\n <span\n *ngIf=\"_isTreeRowFirstCell(colIdx, row)\"\n class=\"fd-table__expand\"\n [class.fd-table__expand--open]=\"row.expanded$ | async\"\n aria-hidden=\"true\"\n ></span>\n\n <ng-container *ngIf=\"row.state === 'readonly'; else editModeCell\">\n <ng-container *ngIf=\"column?.columnCellTemplate; else defaultTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.columnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultTableCellTemplate>{{ row.value | valueByPath : column.key }}</ng-template>\n\n <ng-template #editModeCell>\n <ng-container *ngIf=\"column?.editableColumnCellTemplate; else defaultEditableTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.editableColumnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #defaultEditableTableCellTemplate>\n <fdp-table-editable-cell\n [row]=\"row\"\n [column]=\"column\"\n [columnValue]=\"row.value | valueByPath : column.key\"\n ></fdp-table-editable-cell>\n </ng-template>\n </ng-template>\n </div>\n</td>\n\n<ng-content></ng-content>\n\n<td\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n>\n <i\n *ngIf=\"row.navigatable\"\n fd-table-icon\n [navigation]=\"true\"\n [class]=\"_rtl ? 'sap-icon--slim-arrow-left' : 'sap-icon--slim-arrow-right'\"\n class=\"fdp-table__navigation-indicator\"\n ></i>\n</td>\n\n<td\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n></td>\n" }]
|
|
173
173
|
}], ctorParameters: function () { return []; }, propDecorators: { rowId: [{
|
|
174
174
|
type: Input
|
|
175
175
|
}], row: [{
|
|
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
205
205
|
type: HostBinding,
|
|
206
206
|
args: ['attr.aria-selected']
|
|
207
207
|
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90YWJsZS9jb21wb25lbnRzL3RhYmxlLXJvdy90YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcm93L3RhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFJTixNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGdCQUFnQixFQUNoQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBRTVCLE9BQU8sRUFDUCxVQUFVLEVBQ2IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixhQUFhLEVBR2Isd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUd2QixlQUFlLEVBQ2YsWUFBWSxFQUNmLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxF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QUFpQiw2ZUFSZjtRQUNQO1lBQ0ksT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxXQUFXLEVBQUUsaUJBQWlCO1NBQ2pDO1FBQ0QsZ0JBQWdCO0tBQ25CLHNFQTBEYSw0QkFBNEIsb0VBTTVCLGlCQUFpQiw0RkMzSG5DLDR2T0EyTEE7MkZEOUhhLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFFSSxpQkFBaUIsaUJBRVosaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLG1CQUFtQjt5QkFDakM7d0JBQ0QsZ0JBQWdCO3FCQUNuQjswRUFLRCxLQUFLO3NCQURKLEtBQUs7Z0JBS04sR0FBRztzQkFERixLQUFLO2dCQU1OLEtBQUs7c0JBRkosV0FBVzt1QkFBQyxvQkFBb0I7O3NCQUNoQyxLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQVNOLEtBQUs7c0JBREosS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFPTixZQUFZO3NCQURYLE1BQU07Z0JBUUssdUJBQXVCO3NCQURsQyxZQUFZO3VCQUFDLDRCQUE0QjtnQkFPekIsY0FBYztzQkFEOUIsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBS25CLGFBQWE7c0JBRHhCLFdBQVc7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9XTl9BUlJPVywgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSxcbiAgICBGREtfRk9DVVNBQkxFX0xJU1RfRElSRUNUSVZFLFxuICAgIEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsXG4gICAgS2V5VXRpbCxcbiAgICBSdGxTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IFRhYmxlUm93RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RhYmxlJztcbmltcG9ydCB7XG4gICAgRWRpdGFibGVUYWJsZUNlbGwsXG4gICAgaXNUcmVlUm93Rmlyc3RDZWxsLFxuICAgIFNlbGVjdGlvbk1vZGUsXG4gICAgU2VsZWN0aW9uTW9kZVZhbHVlLFxuICAgIFRhYmxlQ29sdW1uLFxuICAgIFRhYmxlQ29sdW1uUmVzaXplU2VydmljZSxcbiAgICBUYWJsZURyYWdnYWJsZURpcmVjdGl2ZSxcbiAgICBUYWJsZVJvdyxcbiAgICBUYWJsZVJvd0tleWJvYXJkRHJhZyxcbiAgICBUYWJsZVJvd1NlcnZpY2UsXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRwLXRhYmxlLXJvd10nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGFibGVSb3dDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgRGVzdHJveWVkU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dDb21wb25lbnQ8VD4gZXh0ZW5kcyBUYWJsZVJvd0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIC8qKiBSb3cgSUQuICovXG4gICAgQElucHV0KClcbiAgICByb3dJZDogc3RyaW5nO1xuXG4gICAgLyoqIFRhYmxlIFJvdy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJvdzogVGFibGVSb3c8VD47XG5cbiAgICAvKiogUm93IGluZGV4LiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXJvd2luZGV4JylcbiAgICBASW5wdXQoKVxuICAgIGluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogU2VsZWN0aW9uIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlVmFsdWU7XG5cbiAgICAvKiogU2VsZWN0YWJsZSBmbGFnIGtleS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGFibGVLZXk6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRvIGVuYWJsZSBjaGVja2JveCB0cmlzdGF0ZSBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW5hYmxlVHJpc3RhdGVNb2RlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBmaXggdGhlIHRhYmxlIGhlYWRlciBhbmQgZm9vdGVyLiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICogTm90ZSB0aGF0IGlmIHRoZSB0YWJsZSBjb250YWlucyBmcmVlemFibGUgY29sdW1ucywgdGhlIGhlYWRlciBhbmRcbiAgICAgKiBmb290ZXIgd2lsbCBiZSBmaXhlZCBhdXRvbWF0aWNhbGx5LCByZWdhcmRsZXNzIG9mIHRoaXMgaW5wdXQgdmFsdWUuXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkOiBib29sZWFuO1xuXG4gICAgLyoqIFNlbGVjdGlvbiBjb2x1bW4gd2lkdGguICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Db2x1bW5XaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqIFRoZSBjb2x1bW4gYG5hbWVgIHRvIGZyZWV6ZSBjb2x1bW5zIHVwIHRvIGFuZCBpbmNsdWRpbmcuICovXG4gICAgQElucHV0KClcbiAgICBmcmVlemVDb2x1bW5zVG86IHN0cmluZztcblxuICAgIC8qKiBUaGUgY29sdW1uIGBuYW1lYCB0byBmcmVlemUgY29sdW1ucyBhZnRlciBhbmQgaW5jbHVkaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZnJlZXplRW5kQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4ga2V5Ym9hcmQgZHJhZyBwZXJmb3JtZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAga2V5Ym9hcmREcmFnID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVJvd0tleWJvYXJkRHJhZz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hhc1Jvd0hlYWRlckNvbHVtbiA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUpXG4gICAgcHJpdmF0ZSBzZXQgX2ZvY3VzYWJsZVZpZXdDZWxsSXRlbXMoaXRlbXM6IFF1ZXJ5TGlzdDxGb2N1c2FibGVJdGVtRGlyZWN0aXZlPikge1xuICAgICAgICB0aGlzLnNldEl0ZW1zKGl0ZW1zKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRWRpdGFibGVUYWJsZUNlbGwpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWRpdGFibGVDZWxsczogUXVlcnlMaXN0PEVkaXRhYmxlVGFibGVDZWxsPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKVxuICAgIHByaXZhdGUgZ2V0IF9hcmlhU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMucm93LmNoZWNrZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcnRsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9pc1RyZWVSb3dGaXJzdENlbGwgPSBpc1RyZWVSb3dGaXJzdENlbGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IFNFTEVDVElPTl9NT0RFID0gU2VsZWN0aW9uTW9kZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIgPSBpbmplY3QoQ29udGVudERlbnNpdHlPYnNlcnZlcik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaENoaWxkUm93cyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlID0gaW5qZWN0KFJ0bFNlcnZpY2UsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2ZkcFRhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFibGVSb3dTZXJ2aWNlID0gaW5qZWN0KFRhYmxlUm93U2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxtUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kbmRUYWJsZURpcmVjdGl2ZSA9IGluamVjdChUYWJsZURyYWdnYWJsZURpcmVjdGl2ZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fcnRsU2VydmljZT8ucnRsLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKChydGwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3J0bCA9IHJ0bDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLnJlc2l6ZUluUHJvZ3Jlc3MkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLm1hcmtGb3JDaGVjayksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5fZWxtUmVmLm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5fZG5kVGFibGVEaXJlY3RpdmUpLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uS2V5RG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX2ZkcFRhYmxlU2VydmljZS52aXNpYmxlQ29sdW1ucyQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKGNvbHVtbnMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2hhc1Jvd0hlYWRlckNvbHVtbiA9IGNvbHVtbnMuc29tZSgoYykgPT4gYy5yb2xlID09PSAncm93aGVhZGVyJyk7XG4gICAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5fZWRpdGFibGVDZWxscy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLl9lZGl0YWJsZUNlbGxzLnRvQXJyYXkoKTtcbiAgICAgICAgICAgIGlmIChjZWxscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGVSb3dTZXJ2aWNlLnVwZGF0ZUVkaXRhYmxlQ2VsbHModGhpcy5yb3csIGNlbGxzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGVSb3dTZXJ2aWNlLnJlbW92ZUVkaXRhYmxlQ2VsbHModGhpcy5yb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGlmICgncm93JyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub1Jvd0V4cGFuc2lvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fcmVmcmVzaENoaWxkUm93cyQubmV4dCgpO1xuICAgICAgICB0aGlzLl9yZWZyZXNoQ2hpbGRSb3dzJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl90YWJsZVJvd1NlcnZpY2UucmVtb3ZlRWRpdGFibGVDZWxscyh0aGlzLnJvdyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub1Jvd0V4cGFuc2lvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaENoaWxkUm93cyQubmV4dCgpO1xuICAgICAgICBjb25zdCByZWZyZXNoID0gbWVyZ2UodGhpcy5fcmVmcmVzaENoaWxkUm93cyQsIHRoaXMuX2Rlc3Ryb3kkKTtcbiAgICAgICAgLy8gTG9hZCBpdGVtcyBvbmx5IG9uY2UuIEZ1cnRoZXIgbG9hZGluZyB3aWxsIGJlIGNvdmVyZWQgYnkgdGhlIGxhenkgbG9hZGluZyBmdW5jdGlvbmFsaXR5LlxuICAgICAgICB0aGlzLnJvdz8uZXhwYW5kZWQkXG4gICAgICAgICAgICA/LnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChleHBhbmRlZCkgPT4gZXhwYW5kZWQgJiYgdGhpcy5yb3cuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwocmVmcmVzaClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlUm93U2VydmljZS5sb2FkQ2hpbGRSb3dzKHRoaXMucm93KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlzQXJyb3dEb3duID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIERPV05fQVJST1cpO1xuICAgICAgICBjb25zdCBpc0Fycm93VXAgPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVVBfQVJST1cpO1xuXG4gICAgICAgIGlmICghZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQXJyb3dEb3duICYmICFpc0Fycm93VXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RuZFRhYmxlRGlyZWN0aXZlPy5kcmFnUm93RnJvbUtleWJvYXJkKFxuICAgICAgICAgICAgaXNBcnJvd0Rvd24gPyAnZG93bicgOiAndXAnLFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICB0aGlzLmluZGV4LFxuICAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgPyAnZ3JvdXAnIDogJ3NoaWZ0J1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RvZ2dsZUdyb3VwUm93KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVJvd1NlcnZpY2UudG9nZ2xlUm93KHsgdHlwZTogJ3RvZ2dsZVJvdycsIHJvdzogdGhpcy5yb3cgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdG9nZ2xlU2luZ2xlU2VsZWN0YWJsZVJvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVSb3dTZXJ2aWNlLnRvZ2dsZVJvdyh7IHR5cGU6ICd0b2dnbGVTaW5nbGVTZWxlY3RhYmxlUm93Jywgcm93OiB0aGlzLnJvdyB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90b2dnbGVNdWx0aVNlbGVjdFJvdyhyb3c6IFRhYmxlUm93PFQ+LCBldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlUm93U2VydmljZS50b2dnbGVSb3coeyAuLi57IHJvdywgZXZlbnQgfSwgLi4ueyB0eXBlOiAndG9nZ2xlTXVsdGlTZWxlY3RSb3cnIH0gfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY29sdW1uVHJhY2tCeShpbmRleDogbnVtYmVyLCBjb2x1bW46IFRhYmxlQ29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICAgIH1cbn1cbiIsIjx0ZFxuICAgICpuZ0lmPVwiX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmckIHwgYXN5bmMgYXMgc2VtYW50aWNIaWdobGlnaHRpbmdcIlxuICAgIGZkLXRhYmxlLWNlbGxcbiAgICBmZC10YWJsZS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgZmRrRGlzYWJsZWRcbiAgICBbYWRkRGlzYWJsZWRDbGFzc109XCJmYWxzZVwiXG4gICAgW3N0YXR1c109XCJyb3cudmFsdWVbc2VtYW50aWNIaWdobGlnaHRpbmddXCJcbj48L3RkPlxuXG48IS0tIFJvdyBTZWxlY3Rpb24gQ2VsbCAtLT5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInNlbGVjdGlvbk1vZGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJTRUxFQ1RJT05fTU9ERS5TSU5HTEVcIj5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cInJvdy52YWx1ZVtzZWxlY3RhYmxlS2V5XSAhPT0gZmFsc2U7IGVsc2Ugc2VsZWN0aW9uTW9ja1wiXG4gICAgICAgICAgICBjbGFzcz1cImZkLXRhYmxlX19jZWxsLS1jaGVja2JveFwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLWZpeGVkXT1cImZpeGVkXCJcbiAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiX2hhc1Jvd0hlYWRlckNvbHVtbiA/ICdncmlkY2VsbCcgOiAncm93aGVhZGVyJ1wiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsLXNlbGVjdGFibGVcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB8IHNlbGVjdGlvbkNlbGxTdHlsZXMgOiBfcnRsIDogKF9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmMpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJyb3cuY2hlY2tlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3RvZ2dsZVNpbmdsZVNlbGVjdGFibGVSb3coKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfdG9nZ2xlU2luZ2xlU2VsZWN0YWJsZVJvdygpXCJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIl90b2dnbGVTaW5nbGVTZWxlY3RhYmxlUm93KClcIlxuICAgICAgICA+PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIlNFTEVDVElPTl9NT0RFLk1VTFRJUExFXCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgKm5nSWY9XCJyb3cudmFsdWVbc2VsZWN0YWJsZUtleV0gIT09IGZhbHNlOyBlbHNlIHNlbGVjdGlvbk1vY2tcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC10YWJsZV9fY2VsbC0tY2hlY2tib3hcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1maXhlZF09XCJmaXhlZFwiXG4gICAgICAgICAgICByb2xlPVwiY2VsbFwiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiX3RvZ2dsZU11bHRpU2VsZWN0Um93KHJvdywgJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJfdG9nZ2xlTXVsdGlTZWxlY3RSb3cocm93LCAkZXZlbnQpXCJcbiAgICAgICAgICAgIFtzdHlsZV09XCJcbiAgICAgICAgICAgICAgICBfY29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICAgICAgICAgICAgICAgICB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIHwgc2VsZWN0aW9uQ2VsbFN0eWxlcyA6IF9ydGwgOiAoX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luYylcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgIHRhYkluZGV4VmFsdWU9XCItMVwiXG4gICAgICAgICAgICAgICAgbGFiZWxDbGFzcz1cImZkLXRhYmxlX19jaGVja2JveC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgW3RyaXN0YXRlXT1cImVuYWJsZVRyaXN0YXRlTW9kZVwiXG4gICAgICAgICAgICAgICAgW3RyaXN0YXRlU2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicm93LmNoZWNrZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl90b2dnbGVNdWx0aVNlbGVjdFJvdyhyb3cpXCJcbiAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0aW9uTW9jaz5cbiAgICA8dGRcbiAgICAgICAgY2xhc3M9XCJmZC10YWJsZV9fY2VsbC0tY2hlY2tib3hcIlxuICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIGZka0Rpc2FibGVkXG4gICAgICAgIFthZGREaXNhYmxlZENsYXNzXT1cImZhbHNlXCJcbiAgICAgICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1maXhlZF09XCJmaXhlZFwiXG4gICAgPjwvdGQ+XG48L25nLXRlbXBsYXRlPlxuXG48dGRcbiAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGNvbHVtbiBvZiBfZmRwVGFibGVTZXJ2aWNlLnZpc2libGVDb2x1bW5zJCB8IGFzeW5jO1xuICAgICAgICBsZXQgY29sSWR4ID0gaW5kZXg7XG4gICAgICAgIGxhc3QgYXMgaXNMYXN0O1xuICAgICAgICB0cmFja0J5OiBfY29sdW1uVHJhY2tCeVxuICAgIFwiXG4gICAgW2ZkcFRhYmxlQ2VsbFJlc2l6YWJsZV09XCJcbiAgICAgICAgY29sSWR4XG4gICAgICAgICAgICB8IGNvbHVtblJlc2l6YWJsZVNpZGVcbiAgICAgICAgICAgICAgICA6IF9mZHBUYWJsZVNlcnZpY2UudmlzaWJsZUNvbHVtbnNMZW5ndGhcbiAgICAgICAgICAgICAgICA6IChfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luYykgPT09IHRydWVcbiAgICBcIlxuICAgIFtjb2x1bW5OYW1lXT1cImNvbHVtbi5uYW1lXCJcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFthdHRyLnJvbGVdPVwiY29sdW1uLnJvbGVcIlxuICAgIFtoZWFkZXJzXT1cInJvd0lkICsgJ19fJyArIGNvbHVtbi5uYW1lXCJcbiAgICBbbmdDbGFzc109XCInZmRwLXRhYmxlX19jb2wtLScgKyBjb2x1bW4ubmFtZVwiXG4gICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAnZmRwLXRhYmxlX19jb2wtLScgKyBjb2x1bW4ubmFtZSxcbiAgICAgICAgY29sdW1uLl9mcmVlemVkID8gJ2ZkLXRhYmxlX19jZWxsLS1maXhlZCcgOiAnJyxcbiAgICAgICAgY29sdW1uLm5hbWUgPT09IGZyZWV6ZUNvbHVtbnNUbyA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtbGFzdCcgOiAnJyxcbiAgICAgICAgY29sdW1uLl9lbmRGcmVlemVkID8gJ2ZkLXRhYmxlX19jZWxsLS1maXhlZC1lbmQnIDogJycsXG4gICAgICAgIGNvbHVtbi5uYW1lID09PSBmcmVlemVFbmRDb2x1bW5zVG8gPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWVuZC1sYXN0JyA6ICcnLFxuICAgICAgICByb3cuaXNUcmVlICYmIGNvbElkeCA9PT0gMCA/ICdmZC10YWJsZV9fY2VsbC0tZXhwYW5kJyA6ICcnLFxuICAgICAgICBpc0xhc3QgJiYgKF9mZHBUYWJsZVNlcnZpY2UuX2lzU2hvd25OYXZpZ2F0aW9uQ29sdW1uJCB8IGFzeW5jKSA9PT0gZmFsc2UgPyAnaXMtbGFzdC1jaGlsZCcgOiAnJ1xuICAgIF1cIlxuICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICBjb2x1bW5cbiAgICAgICAgICAgIHwgdGFibGVDZWxsU3R5bGVzXG4gICAgICAgICAgICAgICAgOiBfcnRsXG4gICAgICAgICAgICAgICAgOiAoX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luYylcbiAgICAgICAgICAgICAgICA6IHNlbGVjdGlvbkNvbHVtbldpZHRoXG4gICAgICAgICAgICAgICAgOiBjb2x1bW4uX2ZyZWV6ZWRcbiAgICAgICAgICAgICAgICA6IGNvbHVtbi5fZW5kRnJlZXplZFxuICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXRQcmV2Q29sdW1uc1dpZHRoKGNvbHVtbi5uYW1lKVxuICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXRDb2x1bW5XaWR0aFN0eWxlKGNvbHVtbi5uYW1lKVxuICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXROZXh0Q29sdW1uc1dpZHRoKGNvbHVtbi5uYW1lKVxuICAgIFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJfaXNUcmVlUm93Rmlyc3RDZWxsKGNvbElkeCwgcm93KSA/IHJvdy5leHBhbmRlZCA6IG51bGxcIlxuICAgIFthdHRyLmRhdGEtbmVzdGluZy1sZXZlbF09XCJjb2xJZHggPT09IDAgPyByb3cubGV2ZWwgKyAxIDogbnVsbFwiXG4gICAgW2NlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXJdPVwibnVsbFwiXG4gICAgKGNlbGxGb2N1c2VkKT1cIl90YWJsZVJvd1NlcnZpY2UuY2VsbEZvY3VzZWQoJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cIl90YWJsZVJvd1NlcnZpY2UuY2VsbENsaWNrZWQoeyBpbmRleDogY29sSWR4LCByb3cgfSlcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIl9pc1RyZWVSb3dGaXJzdENlbGwoY29sSWR4LCByb3csICRldmVudCkgJiYgX3RvZ2dsZUdyb3VwUm93KClcIlxuICAgIChrZXlkb3duLmFycm93TGVmdCk9XCJfdGFibGVSb3dTZXJ2aWNlLnNjcm9sbFRvT3ZlcmxhcHBlZENlbGwoKVwiXG4gICAgKGtleWRvd24uYXJyb3dSaWdodCk9XCJfdGFibGVSb3dTZXJ2aWNlLnNjcm9sbFRvT3ZlcmxhcHBlZENlbGwoKVwiXG4+XG4gICAgPGRpdiBbY2xhc3MuZmQtdGFibGVfX3RleHRdPVwiY29sdW1uLmFwcGx5VGV4dFwiIFtjbGFzcy5mZC10YWJsZV9fdGV4dC0tbm8td3JhcF09XCJjb2x1bW4ubm9XcmFwXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIl9pc1RyZWVSb3dGaXJzdENlbGwoY29sSWR4LCByb3cpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtdGFibGVfX2V4cGFuZFwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtdGFibGVfX2V4cGFuZC0tb3Blbl09XCJyb3cuZXhwYW5kZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnN0YXRlID09PSAncmVhZG9ubHknOyBlbHNlIGVkaXRNb2RlQ2VsbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbj8uY29sdW1uQ2VsbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUYWJsZUNlbGxUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5jb2x1bW5DZWxsVGVtcGxhdGUhO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdy52YWx1ZSwgcG9wcGluZzogZmFsc2UsIHJvd0luZGV4OiByb3cuaW5kZXggfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGFibGVDZWxsVGVtcGxhdGU+XG4gICAgICAgICAgICB7eyByb3cudmFsdWUgfCB2YWx1ZUJ5UGF0aCA6IGNvbHVtbi5rZXkgfX1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRNb2RlQ2VsbD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmVkaXRhYmxlQ29sdW1uQ2VsbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRFZGl0YWJsZVRhYmxlQ2VsbFRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLmVkaXRhYmxlQ29sdW1uQ2VsbFRlbXBsYXRlITtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3cudmFsdWUsIHBvcHBpbmc6IGZhbHNlLCByb3dJbmRleDogcm93LmluZGV4IH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RWRpdGFibGVUYWJsZUNlbGxUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8ZmRwLXRhYmxlLWVkaXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5WYWx1ZV09XCJyb3cudmFsdWUgfCB2YWx1ZUJ5UGF0aCA6IGNvbHVtbi5rZXlcIlxuICAgICAgICAgICAgICAgID48L2ZkcC10YWJsZS1lZGl0YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbjwvdGQ+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuPHRkXG4gICAgKm5nSWY9XCJfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luY1wiXG4gICAgZmQtdGFibGUtY2VsbFxuICAgIGNsYXNzPVwiZmRwLXRhYmxlX19jZWxsLS1uYXZpZ2F0aW9uIGlzLWxhc3QtY2hpbGRcIlxuICAgIGZka0Rpc2FibGVkXG4gICAgW2FkZERpc2FibGVkQ2xhc3NdPVwiZmFsc2VcIlxuPlxuICAgIDxpXG4gICAgICAgICpuZ0lmPVwicm93Lm5hdmlnYXRhYmxlXCJcbiAgICAgICAgZmQtdGFibGUtaWNvblxuICAgICAgICBbbmF2aWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgW2NsYXNzXT1cIl9ydGwgPyAnc2FwLWljb24tLXNsaW0tYXJyb3ctbGVmdCcgOiAnc2FwLWljb24tLXNsaW0tYXJyb3ctcmlnaHQnXCJcbiAgICAgICAgY2xhc3M9XCJmZHAtdGFibGVfX25hdmlnYXRpb24taW5kaWNhdG9yXCJcbiAgICA+PC9pPlxuPC90ZD5cblxuPHRkXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBjbGFzcz1cImZkLXRhYmxlX19jZWxsIGZkLXRhYmxlX19jZWxsLS1tb2NrXCJcbiAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLW1vY2stYm9yZGVybGVzc109XCIoX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5jZWxsTW9ja1Zpc2libGUkIHwgYXN5bmMpICE9PSB0cnVlXCJcbiAgICBmZGtEaXNhYmxlZFxuICAgIFthZGREaXNhYmxlZENsYXNzXT1cImZhbHNlXCJcbj48L3RkPlxuIl19
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90YWJsZS9jb21wb25lbnRzL3RhYmxlLXJvdy90YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcm93L3RhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFJTixNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGdCQUFnQixFQUNoQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBRTVCLE9BQU8sRUFDUCxVQUFVLEVBQ2IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixhQUFhLEVBR2Isd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUd2QixlQUFlLEVBQ2YsWUFBWSxFQUNmLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxF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QUFpQiw2ZUFSZjtRQUNQO1lBQ0ksT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxXQUFXLEVBQUUsaUJBQWlCO1NBQ2pDO1FBQ0QsZ0JBQWdCO0tBQ25CLHNFQTBEYSw0QkFBNEIsb0VBTTVCLGlCQUFpQiw0RkMzSG5DLG91T0F5TEE7MkZENUhhLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFFSSxpQkFBaUIsaUJBRVosaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLG1CQUFtQjt5QkFDakM7d0JBQ0QsZ0JBQWdCO3FCQUNuQjswRUFLRCxLQUFLO3NCQURKLEtBQUs7Z0JBS04sR0FBRztzQkFERixLQUFLO2dCQU1OLEtBQUs7c0JBRkosV0FBVzt1QkFBQyxvQkFBb0I7O3NCQUNoQyxLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQVNOLEtBQUs7c0JBREosS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFPTixZQUFZO3NCQURYLE1BQU07Z0JBUUssdUJBQXVCO3NCQURsQyxZQUFZO3VCQUFDLDRCQUE0QjtnQkFPekIsY0FBYztzQkFEOUIsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBS25CLGFBQWE7c0JBRHhCLFdBQVc7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9XTl9BUlJPVywgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSxcbiAgICBGREtfRk9DVVNBQkxFX0xJU1RfRElSRUNUSVZFLFxuICAgIEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsXG4gICAgS2V5VXRpbCxcbiAgICBSdGxTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IFRhYmxlUm93RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RhYmxlJztcbmltcG9ydCB7XG4gICAgRWRpdGFibGVUYWJsZUNlbGwsXG4gICAgaXNUcmVlUm93Rmlyc3RDZWxsLFxuICAgIFNlbGVjdGlvbk1vZGUsXG4gICAgU2VsZWN0aW9uTW9kZVZhbHVlLFxuICAgIFRhYmxlQ29sdW1uLFxuICAgIFRhYmxlQ29sdW1uUmVzaXplU2VydmljZSxcbiAgICBUYWJsZURyYWdnYWJsZURpcmVjdGl2ZSxcbiAgICBUYWJsZVJvdyxcbiAgICBUYWJsZVJvd0tleWJvYXJkRHJhZyxcbiAgICBUYWJsZVJvd1NlcnZpY2UsXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRwLXRhYmxlLXJvd10nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGFibGVSb3dDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgRGVzdHJveWVkU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dDb21wb25lbnQ8VD4gZXh0ZW5kcyBUYWJsZVJvd0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIC8qKiBSb3cgSUQuICovXG4gICAgQElucHV0KClcbiAgICByb3dJZDogc3RyaW5nO1xuXG4gICAgLyoqIFRhYmxlIFJvdy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJvdzogVGFibGVSb3c8VD47XG5cbiAgICAvKiogUm93IGluZGV4LiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXJvd2luZGV4JylcbiAgICBASW5wdXQoKVxuICAgIGluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogU2VsZWN0aW9uIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlVmFsdWU7XG5cbiAgICAvKiogU2VsZWN0YWJsZSBmbGFnIGtleS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGFibGVLZXk6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRvIGVuYWJsZSBjaGVja2JveCB0cmlzdGF0ZSBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW5hYmxlVHJpc3RhdGVNb2RlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBmaXggdGhlIHRhYmxlIGhlYWRlciBhbmQgZm9vdGVyLiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICogTm90ZSB0aGF0IGlmIHRoZSB0YWJsZSBjb250YWlucyBmcmVlemFibGUgY29sdW1ucywgdGhlIGhlYWRlciBhbmRcbiAgICAgKiBmb290ZXIgd2lsbCBiZSBmaXhlZCBhdXRvbWF0aWNhbGx5LCByZWdhcmRsZXNzIG9mIHRoaXMgaW5wdXQgdmFsdWUuXG4gICAgICogKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkOiBib29sZWFuO1xuXG4gICAgLyoqIFNlbGVjdGlvbiBjb2x1bW4gd2lkdGguICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Db2x1bW5XaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqIFRoZSBjb2x1bW4gYG5hbWVgIHRvIGZyZWV6ZSBjb2x1bW5zIHVwIHRvIGFuZCBpbmNsdWRpbmcuICovXG4gICAgQElucHV0KClcbiAgICBmcmVlemVDb2x1bW5zVG86IHN0cmluZztcblxuICAgIC8qKiBUaGUgY29sdW1uIGBuYW1lYCB0byBmcmVlemUgY29sdW1ucyBhZnRlciBhbmQgaW5jbHVkaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZnJlZXplRW5kQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4ga2V5Ym9hcmQgZHJhZyBwZXJmb3JtZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAga2V5Ym9hcmREcmFnID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVJvd0tleWJvYXJkRHJhZz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hhc1Jvd0hlYWRlckNvbHVtbiA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUpXG4gICAgcHJpdmF0ZSBzZXQgX2ZvY3VzYWJsZVZpZXdDZWxsSXRlbXMoaXRlbXM6IFF1ZXJ5TGlzdDxGb2N1c2FibGVJdGVtRGlyZWN0aXZlPikge1xuICAgICAgICB0aGlzLnNldEl0ZW1zKGl0ZW1zKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRWRpdGFibGVUYWJsZUNlbGwpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWRpdGFibGVDZWxsczogUXVlcnlMaXN0PEVkaXRhYmxlVGFibGVDZWxsPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKVxuICAgIHByaXZhdGUgZ2V0IF9hcmlhU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMucm93LmNoZWNrZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcnRsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9pc1RyZWVSb3dGaXJzdENlbGwgPSBpc1RyZWVSb3dGaXJzdENlbGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IFNFTEVDVElPTl9NT0RFID0gU2VsZWN0aW9uTW9kZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIgPSBpbmplY3QoQ29udGVudERlbnNpdHlPYnNlcnZlcik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaENoaWxkUm93cyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlID0gaW5qZWN0KFJ0bFNlcnZpY2UsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2ZkcFRhYmxlU2VydmljZSA9IGluamVjdChUYWJsZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFibGVSb3dTZXJ2aWNlID0gaW5qZWN0KFRhYmxlUm93U2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxtUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kbmRUYWJsZURpcmVjdGl2ZSA9IGluamVjdChUYWJsZURyYWdnYWJsZURpcmVjdGl2ZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fcnRsU2VydmljZT8ucnRsLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKChydGwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3J0bCA9IHJ0bDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLnJlc2l6ZUluUHJvZ3Jlc3MkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLm1hcmtGb3JDaGVjayksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5fZWxtUmVmLm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5fZG5kVGFibGVEaXJlY3RpdmUpLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uS2V5RG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX2ZkcFRhYmxlU2VydmljZS52aXNpYmxlQ29sdW1ucyQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKGNvbHVtbnMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2hhc1Jvd0hlYWRlckNvbHVtbiA9IGNvbHVtbnMuc29tZSgoYykgPT4gYy5yb2xlID09PSAncm93aGVhZGVyJyk7XG4gICAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5fZWRpdGFibGVDZWxscy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLl9lZGl0YWJsZUNlbGxzLnRvQXJyYXkoKTtcbiAgICAgICAgICAgIGlmIChjZWxscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGVSb3dTZXJ2aWNlLnVwZGF0ZUVkaXRhYmxlQ2VsbHModGhpcy5yb3csIGNlbGxzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGVSb3dTZXJ2aWNlLnJlbW92ZUVkaXRhYmxlQ2VsbHModGhpcy5yb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGlmICgncm93JyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub1Jvd0V4cGFuc2lvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fcmVmcmVzaENoaWxkUm93cyQubmV4dCgpO1xuICAgICAgICB0aGlzLl9yZWZyZXNoQ2hpbGRSb3dzJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl90YWJsZVJvd1NlcnZpY2UucmVtb3ZlRWRpdGFibGVDZWxscyh0aGlzLnJvdyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub1Jvd0V4cGFuc2lvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaENoaWxkUm93cyQubmV4dCgpO1xuICAgICAgICBjb25zdCByZWZyZXNoID0gbWVyZ2UodGhpcy5fcmVmcmVzaENoaWxkUm93cyQsIHRoaXMuX2Rlc3Ryb3kkKTtcbiAgICAgICAgLy8gTG9hZCBpdGVtcyBvbmx5IG9uY2UuIEZ1cnRoZXIgbG9hZGluZyB3aWxsIGJlIGNvdmVyZWQgYnkgdGhlIGxhenkgbG9hZGluZyBmdW5jdGlvbmFsaXR5LlxuICAgICAgICB0aGlzLnJvdz8uZXhwYW5kZWQkXG4gICAgICAgICAgICA/LnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChleHBhbmRlZCkgPT4gZXhwYW5kZWQgJiYgdGhpcy5yb3cuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwocmVmcmVzaClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlUm93U2VydmljZS5sb2FkQ2hpbGRSb3dzKHRoaXMucm93KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlzQXJyb3dEb3duID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIERPV05fQVJST1cpO1xuICAgICAgICBjb25zdCBpc0Fycm93VXAgPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVVBfQVJST1cpO1xuXG4gICAgICAgIGlmICghZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQXJyb3dEb3duICYmICFpc0Fycm93VXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RuZFRhYmxlRGlyZWN0aXZlPy5kcmFnUm93RnJvbUtleWJvYXJkKFxuICAgICAgICAgICAgaXNBcnJvd0Rvd24gPyAnZG93bicgOiAndXAnLFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICB0aGlzLmluZGV4LFxuICAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgPyAnZ3JvdXAnIDogJ3NoaWZ0J1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RvZ2dsZUdyb3VwUm93KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVJvd1NlcnZpY2UudG9nZ2xlUm93KHsgdHlwZTogJ3RvZ2dsZVJvdycsIHJvdzogdGhpcy5yb3cgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdG9nZ2xlU2luZ2xlU2VsZWN0YWJsZVJvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVSb3dTZXJ2aWNlLnRvZ2dsZVJvdyh7IHR5cGU6ICd0b2dnbGVTaW5nbGVTZWxlY3RhYmxlUm93Jywgcm93OiB0aGlzLnJvdyB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90b2dnbGVNdWx0aVNlbGVjdFJvdyhyb3c6IFRhYmxlUm93PFQ+LCBldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlUm93U2VydmljZS50b2dnbGVSb3coeyAuLi57IHJvdywgZXZlbnQgfSwgLi4ueyB0eXBlOiAndG9nZ2xlTXVsdGlTZWxlY3RSb3cnIH0gfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY29sdW1uVHJhY2tCeShpbmRleDogbnVtYmVyLCBjb2x1bW46IFRhYmxlQ29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICAgIH1cbn1cbiIsIjx0ZFxuICAgICpuZ0lmPVwiX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmckIHwgYXN5bmMgYXMgc2VtYW50aWNIaWdobGlnaHRpbmdcIlxuICAgIGZkLXRhYmxlLWNlbGxcbiAgICBmZC10YWJsZS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgZmRrRGlzYWJsZWRcbiAgICBbYWRkRGlzYWJsZWRDbGFzc109XCJmYWxzZVwiXG4gICAgW3N0YXR1c109XCJyb3cudmFsdWVbc2VtYW50aWNIaWdobGlnaHRpbmddXCJcbj48L3RkPlxuXG48IS0tIFJvdyBTZWxlY3Rpb24gQ2VsbCAtLT5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInNlbGVjdGlvbk1vZGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJTRUxFQ1RJT05fTU9ERS5TSU5HTEVcIj5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdJZj1cInJvdy52YWx1ZVtzZWxlY3RhYmxlS2V5XSAhPT0gZmFsc2U7IGVsc2Ugc2VsZWN0aW9uTW9ja1wiXG4gICAgICAgICAgICBjbGFzcz1cImZkLXRhYmxlX19jZWxsLS1jaGVja2JveFwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLWZpeGVkXT1cImZpeGVkXCJcbiAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiX2hhc1Jvd0hlYWRlckNvbHVtbiA/ICdncmlkY2VsbCcgOiAncm93aGVhZGVyJ1wiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsLXNlbGVjdGFibGVcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB8IHNlbGVjdGlvbkNlbGxTdHlsZXMgOiBfcnRsIDogKF9mZHBUYWJsZVNlcnZpY2UuX3NlbWFudGljSGlnaGxpZ2h0aW5nQ29sdW1uV2lkdGgkIHwgYXN5bmMpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJyb3cuY2hlY2tlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3RvZ2dsZVNpbmdsZVNlbGVjdGFibGVSb3coKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfdG9nZ2xlU2luZ2xlU2VsZWN0YWJsZVJvdygpXCJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIl90b2dnbGVTaW5nbGVTZWxlY3RhYmxlUm93KClcIlxuICAgICAgICA+PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIlNFTEVDVElPTl9NT0RFLk1VTFRJUExFXCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgKm5nSWY9XCJyb3cudmFsdWVbc2VsZWN0YWJsZUtleV0gIT09IGZhbHNlOyBlbHNlIHNlbGVjdGlvbk1vY2tcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC10YWJsZV9fY2VsbC0tY2hlY2tib3hcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1maXhlZF09XCJmaXhlZFwiXG4gICAgICAgICAgICByb2xlPVwiY2VsbFwiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiX3RvZ2dsZU11bHRpU2VsZWN0Um93KHJvdywgJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJfdG9nZ2xlTXVsdGlTZWxlY3RSb3cocm93LCAkZXZlbnQpXCJcbiAgICAgICAgICAgIFtzdHlsZV09XCJcbiAgICAgICAgICAgICAgICBfY29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICAgICAgICAgICAgICAgICB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIHwgc2VsZWN0aW9uQ2VsbFN0eWxlcyA6IF9ydGwgOiAoX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luYylcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgIHRhYkluZGV4VmFsdWU9XCItMVwiXG4gICAgICAgICAgICAgICAgbGFiZWxDbGFzcz1cImZkLXRhYmxlX19jaGVja2JveC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgW3RyaXN0YXRlXT1cImVuYWJsZVRyaXN0YXRlTW9kZVwiXG4gICAgICAgICAgICAgICAgW3RyaXN0YXRlU2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicm93LmNoZWNrZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl90b2dnbGVNdWx0aVNlbGVjdFJvdyhyb3cpXCJcbiAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0aW9uTW9jaz5cbiAgICA8dGRcbiAgICAgICAgY2xhc3M9XCJmZC10YWJsZV9fY2VsbC0tY2hlY2tib3hcIlxuICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIGZka0Rpc2FibGVkXG4gICAgICAgIFthZGREaXNhYmxlZENsYXNzXT1cImZhbHNlXCJcbiAgICAgICAgW2NsYXNzLmZkLXRhYmxlX19jZWxsLS1maXhlZF09XCJmaXhlZFwiXG4gICAgPjwvdGQ+XG48L25nLXRlbXBsYXRlPlxuXG48dGRcbiAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGNvbHVtbiBvZiBfZmRwVGFibGVTZXJ2aWNlLnZpc2libGVDb2x1bW5zJCB8IGFzeW5jO1xuICAgICAgICBsZXQgY29sSWR4ID0gaW5kZXg7XG4gICAgICAgIGxhc3QgYXMgaXNMYXN0O1xuICAgICAgICB0cmFja0J5OiBfY29sdW1uVHJhY2tCeVxuICAgIFwiXG4gICAgW2ZkcFRhYmxlQ2VsbFJlc2l6YWJsZV09XCJcbiAgICAgICAgY29sSWR4XG4gICAgICAgICAgICB8IGNvbHVtblJlc2l6YWJsZVNpZGVcbiAgICAgICAgICAgICAgICA6IF9mZHBUYWJsZVNlcnZpY2UudmlzaWJsZUNvbHVtbnNMZW5ndGhcbiAgICAgICAgICAgICAgICA6IChfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luYykgPT09IHRydWVcbiAgICBcIlxuICAgIFtjb2x1bW5OYW1lXT1cImNvbHVtbi5uYW1lXCJcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFthdHRyLnJvbGVdPVwiY29sdW1uLnJvbGVcIlxuICAgIFtoZWFkZXJzXT1cInJvd0lkICsgJ19fJyArIGNvbHVtbi5uYW1lXCJcbiAgICBbbmdDbGFzc109XCInZmRwLXRhYmxlX19jb2wtLScgKyBjb2x1bW4ubmFtZVwiXG4gICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAnZmRwLXRhYmxlX19jb2wtLScgKyBjb2x1bW4ubmFtZSxcbiAgICAgICAgY29sdW1uLl9mcmVlemVkID8gJ2ZkLXRhYmxlX19jZWxsLS1maXhlZCcgOiAnJyxcbiAgICAgICAgY29sdW1uLm5hbWUgPT09IGZyZWV6ZUNvbHVtbnNUbyA/ICdmZC10YWJsZV9fY2VsbC0tZml4ZWQtbGFzdCcgOiAnJyxcbiAgICAgICAgY29sdW1uLl9lbmRGcmVlemVkID8gJ2ZkLXRhYmxlX19jZWxsLS1maXhlZC1lbmQnIDogJycsXG4gICAgICAgIGNvbHVtbi5uYW1lID09PSBmcmVlemVFbmRDb2x1bW5zVG8gPyAnZmQtdGFibGVfX2NlbGwtLWZpeGVkLWVuZC1sYXN0JyA6ICcnLFxuICAgICAgICByb3cuaXNUcmVlICYmIGNvbElkeCA9PT0gMCA/ICdmZC10YWJsZV9fY2VsbC0tZXhwYW5kJyA6ICcnLFxuICAgICAgICBpc0xhc3QgJiYgKF9mZHBUYWJsZVNlcnZpY2UuX2lzU2hvd25OYXZpZ2F0aW9uQ29sdW1uJCB8IGFzeW5jKSA9PT0gZmFsc2UgPyAnaXMtbGFzdC1jaGlsZCcgOiAnJ1xuICAgIF1cIlxuICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICBjb2x1bW5cbiAgICAgICAgICAgIHwgdGFibGVDZWxsU3R5bGVzXG4gICAgICAgICAgICAgICAgOiBfcnRsXG4gICAgICAgICAgICAgICAgOiAoX2ZkcFRhYmxlU2VydmljZS5fc2VtYW50aWNIaWdobGlnaHRpbmdDb2x1bW5XaWR0aCQgfCBhc3luYylcbiAgICAgICAgICAgICAgICA6IHNlbGVjdGlvbkNvbHVtbldpZHRoXG4gICAgICAgICAgICAgICAgOiBjb2x1bW4uX2ZyZWV6ZWRcbiAgICAgICAgICAgICAgICA6IGNvbHVtbi5fZW5kRnJlZXplZFxuICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXRQcmV2Q29sdW1uc1dpZHRoKGNvbHVtbi5uYW1lKVxuICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXRDb2x1bW5XaWR0aFN0eWxlKGNvbHVtbi5uYW1lKVxuICAgICAgICAgICAgICAgIDogX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXROZXh0Q29sdW1uc1dpZHRoKGNvbHVtbi5uYW1lKVxuICAgIFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJfaXNUcmVlUm93Rmlyc3RDZWxsKGNvbElkeCwgcm93KSA/IHJvdy5leHBhbmRlZCA6IG51bGxcIlxuICAgIFthdHRyLmRhdGEtbmVzdGluZy1sZXZlbF09XCJjb2xJZHggPT09IDAgPyByb3cubGV2ZWwgKyAxIDogbnVsbFwiXG4gICAgW2NlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXJdPVwibnVsbFwiXG4gICAgKGNlbGxGb2N1c2VkKT1cIl90YWJsZVJvd1NlcnZpY2UuY2VsbEZvY3VzZWQoJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cIl90YWJsZVJvd1NlcnZpY2UuY2VsbENsaWNrZWQoeyBpbmRleDogY29sSWR4LCByb3cgfSlcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIl9pc1RyZWVSb3dGaXJzdENlbGwoY29sSWR4LCByb3csICRldmVudCkgJiYgX3RvZ2dsZUdyb3VwUm93KClcIlxuICAgIChrZXlkb3duLmFycm93TGVmdCk9XCJfdGFibGVSb3dTZXJ2aWNlLnNjcm9sbFRvT3ZlcmxhcHBlZENlbGwoKVwiXG4gICAgKGtleWRvd24uYXJyb3dSaWdodCk9XCJfdGFibGVSb3dTZXJ2aWNlLnNjcm9sbFRvT3ZlcmxhcHBlZENlbGwoKVwiXG4+XG4gICAgPGRpdiBbY2xhc3MuZmQtdGFibGVfX3RleHRdPVwiY29sdW1uLmFwcGx5VGV4dFwiIFtjbGFzcy5mZC10YWJsZV9fdGV4dC0tbm8td3JhcF09XCJjb2x1bW4ubm9XcmFwXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIl9pc1RyZWVSb3dGaXJzdENlbGwoY29sSWR4LCByb3cpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtdGFibGVfX2V4cGFuZFwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtdGFibGVfX2V4cGFuZC0tb3Blbl09XCJyb3cuZXhwYW5kZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnN0YXRlID09PSAncmVhZG9ubHknOyBlbHNlIGVkaXRNb2RlQ2VsbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbj8uY29sdW1uQ2VsbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUYWJsZUNlbGxUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5jb2x1bW5DZWxsVGVtcGxhdGUhO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdy52YWx1ZSwgcG9wcGluZzogZmFsc2UsIHJvd0luZGV4OiByb3cuaW5kZXggfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGFibGVDZWxsVGVtcGxhdGU+e3sgcm93LnZhbHVlIHwgdmFsdWVCeVBhdGggOiBjb2x1bW4ua2V5IH19PC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRNb2RlQ2VsbD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4/LmVkaXRhYmxlQ29sdW1uQ2VsbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRFZGl0YWJsZVRhYmxlQ2VsbFRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLmVkaXRhYmxlQ29sdW1uQ2VsbFRlbXBsYXRlITtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3cudmFsdWUsIHBvcHBpbmc6IGZhbHNlLCByb3dJbmRleDogcm93LmluZGV4IH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RWRpdGFibGVUYWJsZUNlbGxUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8ZmRwLXRhYmxlLWVkaXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgW3Jvd109XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5WYWx1ZV09XCJyb3cudmFsdWUgfCB2YWx1ZUJ5UGF0aCA6IGNvbHVtbi5rZXlcIlxuICAgICAgICAgICAgICAgID48L2ZkcC10YWJsZS1lZGl0YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbjwvdGQ+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuPHRkXG4gICAgKm5nSWY9XCJfZmRwVGFibGVTZXJ2aWNlLl9pc1Nob3duTmF2aWdhdGlvbkNvbHVtbiQgfCBhc3luY1wiXG4gICAgZmQtdGFibGUtY2VsbFxuICAgIGNsYXNzPVwiZmRwLXRhYmxlX19jZWxsLS1uYXZpZ2F0aW9uIGlzLWxhc3QtY2hpbGRcIlxuICAgIGZka0Rpc2FibGVkXG4gICAgW2FkZERpc2FibGVkQ2xhc3NdPVwiZmFsc2VcIlxuPlxuICAgIDxpXG4gICAgICAgICpuZ0lmPVwicm93Lm5hdmlnYXRhYmxlXCJcbiAgICAgICAgZmQtdGFibGUtaWNvblxuICAgICAgICBbbmF2aWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgW2NsYXNzXT1cIl9ydGwgPyAnc2FwLWljb24tLXNsaW0tYXJyb3ctbGVmdCcgOiAnc2FwLWljb24tLXNsaW0tYXJyb3ctcmlnaHQnXCJcbiAgICAgICAgY2xhc3M9XCJmZHAtdGFibGVfX25hdmlnYXRpb24taW5kaWNhdG9yXCJcbiAgICA+PC9pPlxuPC90ZD5cblxuPHRkXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBjbGFzcz1cImZkLXRhYmxlX19jZWxsIGZkLXRhYmxlX19jZWxsLS1tb2NrXCJcbiAgICBbY2xhc3MuZmQtdGFibGVfX2NlbGwtLW1vY2stYm9yZGVybGVzc109XCIoX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5jZWxsTW9ja1Zpc2libGUkIHwgYXN5bmMpICE9PSB0cnVlXCJcbiAgICBmZGtEaXNhYmxlZFxuICAgIFthZGREaXNhYmxlZENsYXNzXT1cImZhbHNlXCJcbj48L3RkPlxuIl19
|
|
@@ -2688,7 +2688,7 @@ TableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
2688
2688
|
useExisting: TableRowComponent
|
|
2689
2689
|
},
|
|
2690
2690
|
DestroyedService
|
|
2691
|
-
], viewQueries: [{ propertyName: "_focusableViewCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }, { propertyName: "_editableCells", predicate: EditableTableCell, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<td\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async as semanticHighlighting\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [addDisabledClass]=\"false\"\n [status]=\"row.value[semanticHighlighting]\"\n></td>\n\n<!-- Row Selection Cell -->\n<ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"SELECTION_MODE.SINGLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n [attr.role]=\"_hasRowHeaderColumn ? 'gridcell' : 'rowheader'\"\n fd-table-cell\n fd-table-cell-selectable\n [focusable]=\"true\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n [attr.aria-selected]=\"row.checked\"\n (click)=\"_toggleSingleSelectableRow()\"\n (keydown.enter)=\"_toggleSingleSelectableRow()\"\n (keydown.space)=\"_toggleSingleSelectableRow()\"\n ></td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"SELECTION_MODE.MULTIPLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n role=\"cell\"\n fd-table-cell\n [focusable]=\"true\"\n (keydown.enter)=\"_toggleMultiSelectRow(row, $event)\"\n (keydown.space)=\"_toggleMultiSelectRow(row, $event)\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n >\n <fd-checkbox\n tabIndexValue=\"-1\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"enableTristateMode\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"row.checked$ | async\"\n (ngModelChange)=\"_toggleMultiSelectRow(row)\"\n ></fd-checkbox>\n </td>\n </ng-container>\n</ng-container>\n\n<ng-template #selectionMock>\n <td\n class=\"fd-table__cell--checkbox\"\n role=\"gridcell\"\n fd-table-cell\n fdkDisabled\n [addDisabledClass]=\"false\"\n [class.fd-table__cell--fixed]=\"fixed\"\n ></td>\n</ng-template>\n\n<td\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n last as isLast;\n trackBy: _columnTrackBy\n \"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async) === true\n \"\n [columnName]=\"column.name\"\n [focusable]=\"true\"\n [attr.role]=\"column.role\"\n [headers]=\"rowId + '__' + column.name\"\n [ngClass]=\"'fdp-table__col--' + column.name\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n row.isTree && colIdx === 0 ? 'fd-table__cell--expand' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) === false ? 'is-last-child' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [attr.aria-expanded]=\"_isTreeRowFirstCell(colIdx, row) ? row.expanded : null\"\n [attr.data-nesting-level]=\"colIdx === 0 ? row.level + 1 : null\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (click)=\"_tableRowService.cellClicked({ index: colIdx, row })\"\n (keydown.enter)=\"_isTreeRowFirstCell(colIdx, row, $event) && _toggleGroupRow()\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n>\n <div [class.fd-table__text]=\"column.applyText\" [class.fd-table__text--no-wrap]=\"column.noWrap\">\n <span\n *ngIf=\"_isTreeRowFirstCell(colIdx, row)\"\n class=\"fd-table__expand\"\n [class.fd-table__expand--open]=\"row.expanded$ | async\"\n aria-hidden=\"true\"\n ></span>\n\n <ng-container *ngIf=\"row.state === 'readonly'; else editModeCell\">\n <ng-container *ngIf=\"column?.columnCellTemplate; else defaultTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.columnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultTableCellTemplate>\n {{ row.value | valueByPath : column.key }}\n </ng-template>\n\n <ng-template #editModeCell>\n <ng-container *ngIf=\"column?.editableColumnCellTemplate; else defaultEditableTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.editableColumnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #defaultEditableTableCellTemplate>\n <fdp-table-editable-cell\n [row]=\"row\"\n [column]=\"column\"\n [columnValue]=\"row.value | valueByPath : column.key\"\n ></fdp-table-editable-cell>\n </ng-template>\n </ng-template>\n </div>\n</td>\n\n<ng-content></ng-content>\n\n<td\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n>\n <i\n *ngIf=\"row.navigatable\"\n fd-table-icon\n [navigation]=\"true\"\n [class]=\"_rtl ? 'sap-icon--slim-arrow-left' : 'sap-icon--slim-arrow-right'\"\n class=\"fdp-table__navigation-indicator\"\n ></i>\n</td>\n\n<td\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n></td>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$2.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i2$2.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "directive", type: i2$2.TableIconDirective, selector: "[fdTableIcon], [fd-table-icon]", inputs: ["class", "glyph", "navigation"] }, { kind: "component", type: i4$1.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i2.DisabledBehaviorDirective, selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "directive", type: i1.PlatformTableCellResizableDirective, selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "directive", type: i1.FdpCellSelectableDirective, selector: "[fdTableCellSelectable], [fd-table-cell-selectable]", inputs: ["enabled"] }, { kind: "component", type: TableEditableCellComponent, selector: "fdp-table-editable-cell", inputs: ["row", "column", "columnValue"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.ValueByPathPipe, name: "valueByPath" }, { kind: "pipe", type: i1.SelectionCellStylesPipe, name: "selectionCellStyles" }, { kind: "pipe", type: i1.TableCellStylesPipe, name: "tableCellStyles" }, { kind: "pipe", type: i1.ColumnResizableSidePipe, name: "columnResizableSide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2691
|
+
], viewQueries: [{ propertyName: "_focusableViewCellItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }, { propertyName: "_editableCells", predicate: EditableTableCell, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<td\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async as semanticHighlighting\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [addDisabledClass]=\"false\"\n [status]=\"row.value[semanticHighlighting]\"\n></td>\n\n<!-- Row Selection Cell -->\n<ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"SELECTION_MODE.SINGLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n [attr.role]=\"_hasRowHeaderColumn ? 'gridcell' : 'rowheader'\"\n fd-table-cell\n fd-table-cell-selectable\n [focusable]=\"true\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n [attr.aria-selected]=\"row.checked\"\n (click)=\"_toggleSingleSelectableRow()\"\n (keydown.enter)=\"_toggleSingleSelectableRow()\"\n (keydown.space)=\"_toggleSingleSelectableRow()\"\n ></td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"SELECTION_MODE.MULTIPLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n role=\"cell\"\n fd-table-cell\n [focusable]=\"true\"\n (keydown.enter)=\"_toggleMultiSelectRow(row, $event)\"\n (keydown.space)=\"_toggleMultiSelectRow(row, $event)\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n >\n <fd-checkbox\n tabIndexValue=\"-1\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"enableTristateMode\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"row.checked$ | async\"\n (ngModelChange)=\"_toggleMultiSelectRow(row)\"\n ></fd-checkbox>\n </td>\n </ng-container>\n</ng-container>\n\n<ng-template #selectionMock>\n <td\n class=\"fd-table__cell--checkbox\"\n role=\"gridcell\"\n fd-table-cell\n fdkDisabled\n [addDisabledClass]=\"false\"\n [class.fd-table__cell--fixed]=\"fixed\"\n ></td>\n</ng-template>\n\n<td\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n last as isLast;\n trackBy: _columnTrackBy\n \"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async) === true\n \"\n [columnName]=\"column.name\"\n [focusable]=\"true\"\n [attr.role]=\"column.role\"\n [headers]=\"rowId + '__' + column.name\"\n [ngClass]=\"'fdp-table__col--' + column.name\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n row.isTree && colIdx === 0 ? 'fd-table__cell--expand' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) === false ? 'is-last-child' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [attr.aria-expanded]=\"_isTreeRowFirstCell(colIdx, row) ? row.expanded : null\"\n [attr.data-nesting-level]=\"colIdx === 0 ? row.level + 1 : null\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (click)=\"_tableRowService.cellClicked({ index: colIdx, row })\"\n (keydown.enter)=\"_isTreeRowFirstCell(colIdx, row, $event) && _toggleGroupRow()\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n>\n <div [class.fd-table__text]=\"column.applyText\" [class.fd-table__text--no-wrap]=\"column.noWrap\">\n <span\n *ngIf=\"_isTreeRowFirstCell(colIdx, row)\"\n class=\"fd-table__expand\"\n [class.fd-table__expand--open]=\"row.expanded$ | async\"\n aria-hidden=\"true\"\n ></span>\n\n <ng-container *ngIf=\"row.state === 'readonly'; else editModeCell\">\n <ng-container *ngIf=\"column?.columnCellTemplate; else defaultTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.columnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultTableCellTemplate>{{ row.value | valueByPath : column.key }}</ng-template>\n\n <ng-template #editModeCell>\n <ng-container *ngIf=\"column?.editableColumnCellTemplate; else defaultEditableTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.editableColumnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #defaultEditableTableCellTemplate>\n <fdp-table-editable-cell\n [row]=\"row\"\n [column]=\"column\"\n [columnValue]=\"row.value | valueByPath : column.key\"\n ></fdp-table-editable-cell>\n </ng-template>\n </ng-template>\n </div>\n</td>\n\n<ng-content></ng-content>\n\n<td\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n>\n <i\n *ngIf=\"row.navigatable\"\n fd-table-icon\n [navigation]=\"true\"\n [class]=\"_rtl ? 'sap-icon--slim-arrow-left' : 'sap-icon--slim-arrow-right'\"\n class=\"fdp-table__navigation-indicator\"\n ></i>\n</td>\n\n<td\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n></td>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$2.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i2$2.TableStatusIndicatorDirective, selector: "[fdTableStatusIndicator], [fd-table-status-indicator]", inputs: ["status"] }, { kind: "directive", type: i2$2.TableIconDirective, selector: "[fdTableIcon], [fd-table-icon]", inputs: ["class", "glyph", "navigation"] }, { kind: "component", type: i4$1.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i2.DisabledBehaviorDirective, selector: "[fdkDisabled]", inputs: ["fdkDisabled", "addDisabledClass", "disabledClass"] }, { kind: "directive", type: i1.PlatformTableCellResizableDirective, selector: "[fdpTableCellResizable]", inputs: ["fdpTableCellResizable", "columnName"] }, { kind: "directive", type: i1.FdpCellSelectableDirective, selector: "[fdTableCellSelectable], [fd-table-cell-selectable]", inputs: ["enabled"] }, { kind: "component", type: TableEditableCellComponent, selector: "fdp-table-editable-cell", inputs: ["row", "column", "columnValue"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.ValueByPathPipe, name: "valueByPath" }, { kind: "pipe", type: i1.SelectionCellStylesPipe, name: "selectionCellStyles" }, { kind: "pipe", type: i1.TableCellStylesPipe, name: "tableCellStyles" }, { kind: "pipe", type: i1.ColumnResizableSidePipe, name: "columnResizableSide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2692
2692
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableRowComponent, decorators: [{
|
|
2693
2693
|
type: Component,
|
|
2694
2694
|
args: [{ selector: '[fdp-table-row]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -2697,7 +2697,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
2697
2697
|
useExisting: TableRowComponent
|
|
2698
2698
|
},
|
|
2699
2699
|
DestroyedService
|
|
2700
|
-
], template: "<td\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async as semanticHighlighting\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [addDisabledClass]=\"false\"\n [status]=\"row.value[semanticHighlighting]\"\n></td>\n\n<!-- Row Selection Cell -->\n<ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"SELECTION_MODE.SINGLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n [attr.role]=\"_hasRowHeaderColumn ? 'gridcell' : 'rowheader'\"\n fd-table-cell\n fd-table-cell-selectable\n [focusable]=\"true\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n [attr.aria-selected]=\"row.checked\"\n (click)=\"_toggleSingleSelectableRow()\"\n (keydown.enter)=\"_toggleSingleSelectableRow()\"\n (keydown.space)=\"_toggleSingleSelectableRow()\"\n ></td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"SELECTION_MODE.MULTIPLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n role=\"cell\"\n fd-table-cell\n [focusable]=\"true\"\n (keydown.enter)=\"_toggleMultiSelectRow(row, $event)\"\n (keydown.space)=\"_toggleMultiSelectRow(row, $event)\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n >\n <fd-checkbox\n tabIndexValue=\"-1\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"enableTristateMode\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"row.checked$ | async\"\n (ngModelChange)=\"_toggleMultiSelectRow(row)\"\n ></fd-checkbox>\n </td>\n </ng-container>\n</ng-container>\n\n<ng-template #selectionMock>\n <td\n class=\"fd-table__cell--checkbox\"\n role=\"gridcell\"\n fd-table-cell\n fdkDisabled\n [addDisabledClass]=\"false\"\n [class.fd-table__cell--fixed]=\"fixed\"\n ></td>\n</ng-template>\n\n<td\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n last as isLast;\n trackBy: _columnTrackBy\n \"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async) === true\n \"\n [columnName]=\"column.name\"\n [focusable]=\"true\"\n [attr.role]=\"column.role\"\n [headers]=\"rowId + '__' + column.name\"\n [ngClass]=\"'fdp-table__col--' + column.name\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n row.isTree && colIdx === 0 ? 'fd-table__cell--expand' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) === false ? 'is-last-child' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [attr.aria-expanded]=\"_isTreeRowFirstCell(colIdx, row) ? row.expanded : null\"\n [attr.data-nesting-level]=\"colIdx === 0 ? row.level + 1 : null\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (click)=\"_tableRowService.cellClicked({ index: colIdx, row })\"\n (keydown.enter)=\"_isTreeRowFirstCell(colIdx, row, $event) && _toggleGroupRow()\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n>\n <div [class.fd-table__text]=\"column.applyText\" [class.fd-table__text--no-wrap]=\"column.noWrap\">\n <span\n *ngIf=\"_isTreeRowFirstCell(colIdx, row)\"\n class=\"fd-table__expand\"\n [class.fd-table__expand--open]=\"row.expanded$ | async\"\n aria-hidden=\"true\"\n ></span>\n\n <ng-container *ngIf=\"row.state === 'readonly'; else editModeCell\">\n <ng-container *ngIf=\"column?.columnCellTemplate; else defaultTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.columnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultTableCellTemplate
|
|
2700
|
+
], template: "<td\n *ngIf=\"_fdpTableService._semanticHighlighting$ | async as semanticHighlighting\"\n fd-table-cell\n fd-table-status-indicator\n fdkDisabled\n [addDisabledClass]=\"false\"\n [status]=\"row.value[semanticHighlighting]\"\n></td>\n\n<!-- Row Selection Cell -->\n<ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"SELECTION_MODE.SINGLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n [attr.role]=\"_hasRowHeaderColumn ? 'gridcell' : 'rowheader'\"\n fd-table-cell\n fd-table-cell-selectable\n [focusable]=\"true\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n [attr.aria-selected]=\"row.checked\"\n (click)=\"_toggleSingleSelectableRow()\"\n (keydown.enter)=\"_toggleSingleSelectableRow()\"\n (keydown.space)=\"_toggleSingleSelectableRow()\"\n ></td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"SELECTION_MODE.MULTIPLE\">\n <td\n *ngIf=\"row.value[selectableKey] !== false; else selectionMock\"\n class=\"fd-table__cell--checkbox\"\n [class.fd-table__cell--fixed]=\"fixed\"\n role=\"cell\"\n fd-table-cell\n [focusable]=\"true\"\n (keydown.enter)=\"_toggleMultiSelectRow(row, $event)\"\n (keydown.space)=\"_toggleMultiSelectRow(row, $event)\"\n [style]=\"\n _contentDensityObserver\n | async\n | selectionCellStyles : _rtl : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n \"\n >\n <fd-checkbox\n tabIndexValue=\"-1\"\n labelClass=\"fd-table__checkbox-label\"\n [tristate]=\"enableTristateMode\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"row.checked$ | async\"\n (ngModelChange)=\"_toggleMultiSelectRow(row)\"\n ></fd-checkbox>\n </td>\n </ng-container>\n</ng-container>\n\n<ng-template #selectionMock>\n <td\n class=\"fd-table__cell--checkbox\"\n role=\"gridcell\"\n fd-table-cell\n fdkDisabled\n [addDisabledClass]=\"false\"\n [class.fd-table__cell--fixed]=\"fixed\"\n ></td>\n</ng-template>\n\n<td\n *ngFor=\"\n let column of _fdpTableService.visibleColumns$ | async;\n let colIdx = index;\n last as isLast;\n trackBy: _columnTrackBy\n \"\n [fdpTableCellResizable]=\"\n colIdx\n | columnResizableSide\n : _fdpTableService.visibleColumnsLength\n : (_fdpTableService._isShownNavigationColumn$ | async) === true\n \"\n [columnName]=\"column.name\"\n [focusable]=\"true\"\n [attr.role]=\"column.role\"\n [headers]=\"rowId + '__' + column.name\"\n [ngClass]=\"'fdp-table__col--' + column.name\"\n [ngClass]=\"[\n 'fdp-table__col--' + column.name,\n column._freezed ? 'fd-table__cell--fixed' : '',\n column.name === freezeColumnsTo ? 'fd-table__cell--fixed-last' : '',\n column._endFreezed ? 'fd-table__cell--fixed-end' : '',\n column.name === freezeEndColumnsTo ? 'fd-table__cell--fixed-end-last' : '',\n row.isTree && colIdx === 0 ? 'fd-table__cell--expand' : '',\n isLast && (_fdpTableService._isShownNavigationColumn$ | async) === false ? 'is-last-child' : ''\n ]\"\n [ngStyle]=\"\n column\n | tableCellStyles\n : _rtl\n : (_fdpTableService._semanticHighlightingColumnWidth$ | async)\n : selectionColumnWidth\n : column._freezed\n : column._endFreezed\n : _tableColumnResizeService.getPrevColumnsWidth(column.name)\n : _tableColumnResizeService.getColumnWidthStyle(column.name)\n : _tableColumnResizeService.getNextColumnsWidth(column.name)\n \"\n [attr.aria-expanded]=\"_isTreeRowFirstCell(colIdx, row) ? row.expanded : null\"\n [attr.data-nesting-level]=\"colIdx === 0 ? row.level + 1 : null\"\n [cellFocusedEventAnnouncer]=\"null\"\n (cellFocused)=\"_tableRowService.cellFocused($event)\"\n (click)=\"_tableRowService.cellClicked({ index: colIdx, row })\"\n (keydown.enter)=\"_isTreeRowFirstCell(colIdx, row, $event) && _toggleGroupRow()\"\n (keydown.arrowLeft)=\"_tableRowService.scrollToOverlappedCell()\"\n (keydown.arrowRight)=\"_tableRowService.scrollToOverlappedCell()\"\n>\n <div [class.fd-table__text]=\"column.applyText\" [class.fd-table__text--no-wrap]=\"column.noWrap\">\n <span\n *ngIf=\"_isTreeRowFirstCell(colIdx, row)\"\n class=\"fd-table__expand\"\n [class.fd-table__expand--open]=\"row.expanded$ | async\"\n aria-hidden=\"true\"\n ></span>\n\n <ng-container *ngIf=\"row.state === 'readonly'; else editModeCell\">\n <ng-container *ngIf=\"column?.columnCellTemplate; else defaultTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.columnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultTableCellTemplate>{{ row.value | valueByPath : column.key }}</ng-template>\n\n <ng-template #editModeCell>\n <ng-container *ngIf=\"column?.editableColumnCellTemplate; else defaultEditableTableCellTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n column.editableColumnCellTemplate!;\n context: { $implicit: row.value, popping: false, rowIndex: row.index }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-template #defaultEditableTableCellTemplate>\n <fdp-table-editable-cell\n [row]=\"row\"\n [column]=\"column\"\n [columnValue]=\"row.value | valueByPath : column.key\"\n ></fdp-table-editable-cell>\n </ng-template>\n </ng-template>\n </div>\n</td>\n\n<ng-content></ng-content>\n\n<td\n *ngIf=\"_fdpTableService._isShownNavigationColumn$ | async\"\n fd-table-cell\n class=\"fdp-table__cell--navigation is-last-child\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n>\n <i\n *ngIf=\"row.navigatable\"\n fd-table-icon\n [navigation]=\"true\"\n [class]=\"_rtl ? 'sap-icon--slim-arrow-left' : 'sap-icon--slim-arrow-right'\"\n class=\"fdp-table__navigation-indicator\"\n ></i>\n</td>\n\n<td\n aria-hidden=\"true\"\n class=\"fd-table__cell fd-table__cell--mock\"\n [class.fd-table__cell--mock-borderless]=\"(_tableColumnResizeService.cellMockVisible$ | async) !== true\"\n fdkDisabled\n [addDisabledClass]=\"false\"\n></td>\n" }]
|
|
2701
2701
|
}], ctorParameters: function () { return []; }, propDecorators: { rowId: [{
|
|
2702
2702
|
type: Input
|
|
2703
2703
|
}], row: [{
|