barsa-sap-ui 1.0.336 → 1.0.338
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/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
- package/esm2020/lib/barsa-toolbaritem-search/barsa-toolbaritem-search.component.mjs +2 -2
- package/esm2020/lib/form-dialog-less/form-dialog-less.component.mjs +6 -5
- package/esm2020/lib/report-view-renderer.directive.mjs +8 -2
- package/esm2020/lib/sap-ui-report-base.component.mjs +5 -1
- package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +3 -3
- package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +3 -3
- package/esm2020/lib/ulv-context-menu/ulv-context-menu.component.mjs +1 -1
- package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +5 -11
- package/fesm2015/barsa-sap-ui.mjs +56 -48
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +34 -26
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/form-dialog-less/form-dialog-less.component.d.ts +4 -3
- package/lib/report-view-renderer.directive.d.ts +2 -1
- package/lib/sap-ui-report-base.component.d.ts +1 -0
- package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +1 -2
- package/package.json +1 -1
|
@@ -80,10 +80,10 @@ export class UiTableViewComponent extends ReportViewBaseComponent {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
UiTableViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiTableViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
UiTableViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiTableViewComponent, selector: "bsu-ui-table-view", inputs: { columnWidth: "columnWidth", minWidth: "minWidth", minHeight: "minHeight", rowResizer: "rowResizer", enableResizing: "enableResizing" }, host: { properties: { "style.height.px": "this.height", "style.max-height": "this.maxHeight" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n tableResizer\n [fitWidth]=\"fitWidth\"\n (columnResized)=\"onColumnResized($event)\"\n [containerWidth]=\"containerWidth\"\n [minWidth]=\"30\"\n [minHeight]=\"22\"\n [rowResizer]=\"rowResizer\"\n [enableResizing]=\"enableResizing\"\n>\n <ng-container\n *ngIf=\"columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList as mergeFieldsToColumns\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n </ng-container>\n</table>\n<ng-template #headerTemplate let-columns>\n <bsu-barsa-table-header\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [allChecked]=\"allChecked\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [noBorderX]=\"popin && secondaryColumns.length > 0\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container *ngIf=\"moDataList && moDataList.length > 0; else noData\">\n <ng-container\n *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; trackBy: _trackByRow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate:\n cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n <tfoot fd-table-footer *ngIf=\"hasSummary\">\n <tr fd-table-row class=\"row-summary\">\n <td fd-table-cell *ngIf=\"isCheckList\" columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td fd-table-cell *ngIf=\"!isCheckList\" class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td *ngFor=\"let column of columns; let i = index\">\n <ng-container *ngIf=\"column.HasSummary\">\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n </ng-container>\n </td>\n <ng-container *ngIf=\"contextMenuItems && contextMenuItems.length > 0\">\n <td fd-table-cell style=\"width: 100px\"></td>\n </ng-container>\n <td fd-table-cell *ngIf=\"canView\"></td>\n </tr>\n </tfoot>\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"columns[0].Caption | rval: mo:columns\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"columns[0].Caption | rval: mo:columns\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n<!--renderColumn-->\n<ng-template #noData>\n <tr *ngIf=\"!inlineEditMode || !newInlineEditMo\">\n <td colspan=\"100%\" style=\"padding: 10px\">{{ 'NoData' | bbbTranslate }}</td>\n </tr>\n</ng-template>\n", styles: [":host{display:block;width:100%;overflow-x:auto;max-width:100vw}table{margin-bottom:5px}table.fixed{table-layout:fixed}table.fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor"] }, { kind: "directive", type: i2.TableResizerDirective, selector: "[tableResizer]", inputs: ["fitWidth", "minWidth", "minHeight", "containerWidth", "rowResizer", "enableResizing"], outputs: ["columnResized"] }, { kind: "directive", type: i2.ColumnResizerDirective, selector: "[columnResizer]", inputs: ["disableResizer"] }, { kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableFooterDirective, selector: "[fdTableFooter], [fd-table-footer]" }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "component", type: i4.BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: ["allChecked", "isCheckList", "columns", "fitWidth", "contextMenuItems", "canView", "hasSelected", "hideOpenIcon", "disableOverflowContextMenu", "inlineEditMode", "hideHeader", "showDetailsInRow", "viewSetting", "tableWidth", "resizedByUser", "disableResponsive", "rowIndicator", "deviceSize"], outputs: ["allCheckbox", "sortAscending", "sortDescending", "filter"] }, { kind: "component", type: i5.BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: ["showDetailsInRow", "detailsComponent", "detailsColumns", "detailsText", "columnComponents"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.TotalSummaryPipe, name: "totalSummary" }, { kind: "pipe", type: i2.MergeFieldsToColumnsPipe, name: "mergeFieldsToColumns" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }, { kind: "pipe", type: i2.ColumnCustomComponentPipe, name: "columnCustomComponent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
83
|
+
UiTableViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiTableViewComponent, selector: "bsu-ui-table-view", inputs: { columnWidth: "columnWidth", minWidth: "minWidth", minHeight: "minHeight", rowResizer: "rowResizer", enableResizing: "enableResizing" }, host: { properties: { "style.height.px": "this.height", "style.max-height": "this.maxHeight" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n tableResizer\n [fitWidth]=\"fitWidth\"\n (columnResized)=\"onColumnResized($event)\"\n [containerWidth]=\"containerWidth\"\n [minWidth]=\"30\"\n [minHeight]=\"22\"\n [rowResizer]=\"rowResizer\"\n [enableResizing]=\"enableResizing\"\n>\n <ng-container\n *ngIf=\"columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList as mergeFieldsToColumns\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n </ng-container>\n</table>\n<ng-template #headerTemplate let-columns>\n <bsu-barsa-table-header\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [allChecked]=\"allChecked\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [noBorderX]=\"popin && secondaryColumns.length > 0\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container *ngIf=\"moDataList && moDataList.length > 0; else noData\">\n <ng-container\n *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; trackBy: _trackByRow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate:\n cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n <tfoot fd-table-footer *ngIf=\"hasSummary\">\n <tr fd-table-row class=\"row-summary\">\n <td fd-table-cell *ngIf=\"isCheckList\" columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td fd-table-cell *ngIf=\"!isCheckList\" class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td *ngFor=\"let column of columns; let i = index\">\n <ng-container *ngIf=\"column.HasSummary\">\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n </ng-container>\n </td>\n <ng-container *ngIf=\"contextMenuItems && contextMenuItems.length > 0\">\n <td fd-table-cell style=\"width: 100px\"></td>\n </ng-container>\n <td fd-table-cell *ngIf=\"canView\"></td>\n </tr>\n </tfoot>\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"columns[0].Caption | rval: mo:columns\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"columns[0].Caption | rval: mo:columns\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n<!--renderColumn-->\n<ng-template #noData>\n <tr *ngIf=\"!inlineEditMode || !newInlineEditMo\">\n <td colspan=\"100%\" style=\"padding: 10px\">{{ 'NoData' | bbbTranslate }}</td>\n </tr>\n</ng-template>\n", styles: [":host{display:block;width:100%;overflow-x:auto;max-width:100vw}table{margin-bottom:5px}table.fixed{table-layout:fixed}table.fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor"] }, { kind: "directive", type: i2.TableResizerDirective, selector: "[tableResizer]", inputs: ["fitWidth", "minWidth", "minHeight", "containerWidth", "rowResizer", "enableResizing"], outputs: ["columnResized"] }, { kind: "directive", type: i2.ColumnResizerDirective, selector: "[columnResizer]", inputs: ["disableResizer"] }, { kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableFooterDirective, selector: "[fdTableFooter], [fd-table-footer]" }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "component", type: i4.BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: ["allChecked", "isCheckList", "columns", "fitWidth", "contextMenuItems", "canView", "hasSelected", "hideOpenIcon", "disableOverflowContextMenu", "inlineEditMode", "hideHeader", "showDetailsInRow", "viewSetting", "tableWidth", "resizedByUser", "disableResponsive", "rowIndicator", "deviceSize"], outputs: ["allCheckbox", "sortAscending", "sortDescending", "filter"] }, { kind: "component", type: i5.BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: ["showDetailsInRow", "detailsComponent", "detailsColumns", "detailsText", "columnComponents"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.TotalSummaryPipe, name: "totalSummary" }, { kind: "pipe", type: i2.MergeFieldsToColumnsPipe, name: "mergeFieldsToColumns" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }, { kind: "pipe", type: i2.ColumnCustomComponentPipe, name: "columnCustomComponent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
84
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiTableViewComponent, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
|
-
args: [{ selector: 'bsu-ui-table-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n tableResizer\n [fitWidth]=\"fitWidth\"\n (columnResized)=\"onColumnResized($event)\"\n [containerWidth]=\"containerWidth\"\n [minWidth]=\"30\"\n [minHeight]=\"22\"\n [rowResizer]=\"rowResizer\"\n [enableResizing]=\"enableResizing\"\n>\n <ng-container\n *ngIf=\"columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList as mergeFieldsToColumns\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n </ng-container>\n</table>\n<ng-template #headerTemplate let-columns>\n <bsu-barsa-table-header\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [allChecked]=\"allChecked\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [noBorderX]=\"popin && secondaryColumns.length > 0\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container *ngIf=\"moDataList && moDataList.length > 0; else noData\">\n <ng-container\n *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; trackBy: _trackByRow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate:\n cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n <tfoot fd-table-footer *ngIf=\"hasSummary\">\n <tr fd-table-row class=\"row-summary\">\n <td fd-table-cell *ngIf=\"isCheckList\" columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td fd-table-cell *ngIf=\"!isCheckList\" class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td *ngFor=\"let column of columns; let i = index\">\n <ng-container *ngIf=\"column.HasSummary\">\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n </ng-container>\n </td>\n <ng-container *ngIf=\"contextMenuItems && contextMenuItems.length > 0\">\n <td fd-table-cell style=\"width: 100px\"></td>\n </ng-container>\n <td fd-table-cell *ngIf=\"canView\"></td>\n </tr>\n </tfoot>\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"columns[0].Caption | rval: mo:columns\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"columns[0].Caption | rval: mo:columns\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n<!--renderColumn-->\n<ng-template #noData>\n <tr *ngIf=\"!inlineEditMode || !newInlineEditMo\">\n <td colspan=\"100%\" style=\"padding: 10px\">{{ 'NoData' | bbbTranslate }}</td>\n </tr>\n</ng-template>\n", styles: [":host{display:block;width:100%;overflow-x:auto;max-width:100vw}table{margin-bottom:5px}table.fixed{table-layout:fixed}table.fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"] }]
|
|
86
|
+
args: [{ selector: 'bsu-ui-table-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\n fd-table\n [popIn]=\"popin\"\n [class.fixed]=\"!contextView?.Grid_HideHeader && (!popin || secondaryColumns.length === 0)\"\n [noBorderX]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\n [noBorderY]=\"viewSetting?.NoHoriztonalBorders === true || (popin && secondaryColumns.length > 0)\"\n tableResizer\n [fitWidth]=\"fitWidth\"\n (columnResized)=\"onColumnResized($event)\"\n [containerWidth]=\"containerWidth\"\n [minWidth]=\"30\"\n [minHeight]=\"22\"\n [rowResizer]=\"rowResizer\"\n [enableResizing]=\"enableResizing\"\n>\n <ng-container\n *ngIf=\"columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList as mergeFieldsToColumns\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\n </ng-container>\n</table>\n<ng-template #headerTemplate let-columns>\n <bsu-barsa-table-header\n [tableWidth]=\"elWidth\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [resizedByUser]=\"resizedByUser\"\n [allChecked]=\"allChecked\"\n [disableResponsive]=\"disableResponsive\"\n [isCheckList]=\"isCheckList\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [fitWidth]=\"fitWidth\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [inlineEditMode]=\"inlineEditMode\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [deviceSize]=\"deviceSize\"\n [viewSetting]=\"viewSetting\"\n [hideHeader]=\"contextView.Grid_HideHeader\"\n [rowIndicator]=\"rowIndicator\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n ></bsu-barsa-table-header>\n</ng-template>\n<ng-template #bodyTemplate let-columns>\n <tbody\n fd-table-body\n [noBorderX]=\"popin && secondaryColumns.length > 0\"\n [noBorderY]=\"popin && secondaryColumns.length > 0\"\n >\n <ng-container *ngIf=\"moDataList && moDataList.length > 0; else noData\">\n <ng-container\n *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; trackBy: _trackByRow\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\n context: {\n $implicit: mo,\n index: index,\n columns: columns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n secondaryColumns:\n secondaryColumns | columnCustomComponent: viewSetting?.ColumnComponents?.MoDataList,\n moDataList: moDataList,\n moDataListCount: moDataList.length,\n cartableTemplate:\n cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id]\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n</ng-template>\n<ng-template #footerTemplate let-columns>\n <tfoot fd-table-footer *ngIf=\"hasSummary\">\n <tr fd-table-row class=\"row-summary\">\n <td fd-table-cell *ngIf=\"isCheckList\" columnResizer>\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td fd-table-cell *ngIf=\"!isCheckList\" class=\"single-select\">\n <strong class=\"col-total-text\">{{ 'Total' | bbbTranslate }}</strong>\n </td>\n <td *ngFor=\"let column of columns; let i = index\">\n <ng-container *ngIf=\"column.HasSummary\">\n <strong style=\"direction: ltr; display: block\">\n {{ moDataList | totalSummary: column.Name | number }}</strong\n >\n </ng-container>\n </td>\n <ng-container *ngIf=\"contextMenuItems && contextMenuItems.length > 0\">\n <td fd-table-cell style=\"width: 100px\"></td>\n </ng-container>\n <td fd-table-cell *ngIf=\"canView\"></td>\n </tr>\n </tfoot>\n</ng-template>\n<ng-template\n #rowOlgoTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n>\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"columns[0].Caption | rval: mo:columns\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n</ng-template>\n<ng-template\n #rowTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n let-cartableTemplate=\"cartableTemplate\"\n let-secondaryColumns=\"secondaryColumns\"\n>\n <bsu-barsa-table-row\n [mo]=\"mo\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplate\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [styleIndex]=\"mo.$StyleIndex\"\n [workflowState]=\"mo.$WorkflowState\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"rowIndicator\"\n [rowIndicatorColor]=\"columns[0].Caption | rval: mo:columns\"\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\n (expandClick)=\"onExpandClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n (deselectAll)=\"onDeselectAll()\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\n >\n </bsu-barsa-table-row>\n</ng-template>\n<!--renderColumn-->\n<ng-template #noData>\n <tr *ngIf=\"!inlineEditMode || !newInlineEditMo\">\n <td colspan=\"100%\" style=\"padding: 10px\">{{ 'NoData' | bbbTranslate }}</td>\n </tr>\n</ng-template>\n", styles: [":host{display:block;width:100%;overflow-x:auto;max-width:100vw}table{margin-bottom:5px}table.fixed{table-layout:fixed}table.fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary .col-total-text{position:absolute;top:25%}\n"] }]
|
|
87
87
|
}], propDecorators: { columnWidth: [{
|
|
88
88
|
type: Input
|
|
89
89
|
}], minWidth: [{
|
|
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
101
101
|
type: HostBinding,
|
|
102
102
|
args: ['style.max-height']
|
|
103
103
|
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGFibGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10YWJsZS12aWV3L3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdGFibGUtdmlldy91aS10YWJsZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQyx1QkFBdUIsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVNqSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQTJDO0lBTnJGOztRQWFvQyxXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUVqRSxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUl4QyxxQkFBZ0IsR0FBbUUsRUFBRSxDQUFDO0tBbUV6RjtJQWpFRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7UUFDOUMsSUFBSSxjQUFjLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7WUFDakQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBa0IsRUFBRSxFQUFFO2dCQUM3RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN0RyxJQUFJLE1BQU0sRUFBRTtvQkFDUixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDcEM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixNQUFNLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUM3RCxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksaUJBQWlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3pFLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUM3QjtRQUNELElBQUksWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM5QztJQUNMLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxPQUEyQjtRQUNsRCxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRTtZQUNsQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFUyxVQUFVLENBQUMsWUFBb0I7UUFDckMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBQ1MsY0FBYyxDQUFDLGlCQUFpQjtRQUN0QyxJQUNJLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFFBQVE7WUFDL0IsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUNsRTtZQUNFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUNTLHNCQUFzQixDQUFDLEdBQVc7UUFDeEMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7U0FDeEI7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7O2lIQWpGUSxvQkFBb0I7cUdBQXBCLG9CQUFvQix5VkNsQmpDLGsxVUE4T0E7MkZENU5hLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUUwQixNQUFNO3NCQUFyQyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFDRyxTQUFTO3NCQUF6QyxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVqcmF5T2xnbywgTWV0YW9iamVjdERhdGFNb2RlbCwgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQsIFJlcG9ydFZpZXdDb2x1bW4gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBVaVRhYmxlVmlld1NldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC12aWV3JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktdGFibGUtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXRhYmxlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaVRhYmxlVmlld0NvbXBvbmVudCBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFVpVGFibGVWaWV3U2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgY29sdW1uV2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtaW5XaWR0aDtcbiAgICBASW5wdXQoKSBtaW5IZWlnaHQ7XG4gICAgQElucHV0KCkgcm93UmVzaXplcjtcbiAgICBASW5wdXQoKSBlbmFibGVSZXNpemluZztcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0LnB4JykgaGVpZ2h0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC1oZWlnaHQnKSBtYXhIZWlnaHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgX3dpZHRoID0gJzEwMCUnO1xuICAgIGRldGFpbHNDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10gPSBbXTtcbiAgICBkZXRhaWxzQ29tcG9uZW50OiBFanJheU9sZ287XG4gICAgc2hvd0RldGFpbHNJblJvdzogYm9vbGVhbjtcbiAgICBoYXNSb3dPbGdvOiBib29sZWFuO1xuICAgIGNvbHVtbkNvbXBvbmVudHM6IHsgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uOyBjb21wb25lbnQ6IE1ldGFvYmplY3REYXRhTW9kZWwgfVtdID0gW107XG4gICAgcm93SW5kaWNhdG9yOiBib29sZWFuO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zdCBkZXRhaWxzU2V0dGluZyA9IHRoaXMudmlld1NldHRpbmc/LkRldGFpbHNTZXR0aW5nO1xuICAgICAgICB0aGlzLmhhc1Jvd09sZ28gPSB0aGlzLnZpZXdTZXR0aW5nPy5Sb3dPbGdvPy5TZWxlY3RvcjtcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLnZpZXdTZXR0aW5nPy5Cb2R5SGVpZ2h0O1xuICAgICAgICBpZiAoZGV0YWlsc1NldHRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbXBvbmVudCA9IGRldGFpbHNTZXR0aW5nLkNvbXBvbmVudDtcbiAgICAgICAgICAgIGRldGFpbHNTZXR0aW5nLkNvbHVtbnMuc3BsaXQoJywnKS5mb3JFYWNoKChjb2x1bW5OYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLl9maW5kQ29sdW1uQnlEYk5hbWUudHJhbnNmb3JtKHRoaXMuYWxsQ29sdW1ucywgY29sdW1uTmFtZSwgdGhpcy5zZWNvbmRhcnlDb2x1bW5zKTtcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldEhhc1N1bW1lcnkodGhpcy5jYXJ0YWJsZUNoaWxkc01vKTtcbiAgICAgICAgdGhpcy5fc2V0SGVpZ2h0KHRoaXMucGFyZW50SGVpZ2h0KTtcbiAgICAgICAgdGhpcy5fc2V0Um93SW5kaWNhdG9yKHRoaXMuY29sdW1ucyk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgY2FydGFibGVUZW1wbGF0ZXMsIHBhcmVudEhlaWdodCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKGNvbHVtbnMgJiYgIWNvbHVtbnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFJvd0luZGljYXRvcih0aGlzLmNvbHVtbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXJ0YWJsZVRlbXBsYXRlcyAmJiAhY2FydGFibGVUZW1wbGF0ZXMuZmlyc3RDaGFuZ2UgJiYgIXRoaXMuaGFzU3VtbWFyeSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0SGFzU3VtbWVyeShjYXJ0YWJsZVRlbXBsYXRlcy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyZW50SGVpZ2h0ICYmICFwYXJlbnRIZWlnaHQuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEhlaWdodChwYXJlbnRIZWlnaHQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBfc2V0Um93SW5kaWNhdG9yKGNvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICBpZiAoIWNvbHVtbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucm93SW5kaWNhdG9yID0gTnVtYmVyKGNvbHVtbnNbMF0uTWV0YUZpZWxkVHlwZUlkKSA9PT0gNDE7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zZXRIZWlnaHQocGFyZW50SGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gcGFyZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0SGFzU3VtbWVyeShjYXJ0YWJsZVRlbXBsYXRlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmRldGFpbHNDb2x1bW5zPy5sZW5ndGggPiAwIHx8XG4gICAgICAgICAgICB0aGlzLmRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8XG4gICAgICAgICAgICAoY2FydGFibGVUZW1wbGF0ZXMgJiYgT2JqZWN0LmtleXMoY2FydGFibGVUZW1wbGF0ZXMpLmxlbmd0aCA+IDApXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5zaG93RGV0YWlsc0luUm93ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaGFzRGV0YWlsc0luUm93LmVtaXQodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhhc0RldGFpbHNJblJvdy5lbWl0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NvbnRhaW5lcldpZHRoQ2hhbmdlZCh2YWw6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodmFsID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl93aWR0aCA9ICcxMDAlJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3dpZHRoID0gdmFsID8gdmFsICsgJ3B4JyA6ICcxMDAlJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgdGhpcy5fd2lkdGgpO1xuICAgIH1cbn1cbiIsIjx0YWJsZVxuICAgIGZkLXRhYmxlXG4gICAgW3BvcEluXT1cInBvcGluXCJcbiAgICBbY2xhc3MuZml4ZWRdPVwiIWNvbnRleHRWaWV3Py5HcmlkX0hpZGVIZWFkZXIgJiYgKCFwb3BpbiB8fCBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA9PT0gMClcIlxuICAgIFtub0JvcmRlclhdPVwidmlld1NldHRpbmc/Lk5vVmVydGljYWxCb3JkZXJzID09PSB0cnVlIHx8IChwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDApXCJcbiAgICBbbm9Cb3JkZXJZXT1cInZpZXdTZXR0aW5nPy5Ob0hvcml6dG9uYWxCb3JkZXJzID09PSB0cnVlIHx8IChwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDApXCJcbiAgICB0YWJsZVJlc2l6ZXJcbiAgICBbZml0V2lkdGhdPVwiZml0V2lkdGhcIlxuICAgIChjb2x1bW5SZXNpemVkKT1cIm9uQ29sdW1uUmVzaXplZCgkZXZlbnQpXCJcbiAgICBbY29udGFpbmVyV2lkdGhdPVwiY29udGFpbmVyV2lkdGhcIlxuICAgIFttaW5XaWR0aF09XCIzMFwiXG4gICAgW21pbkhlaWdodF09XCIyMlwiXG4gICAgW3Jvd1Jlc2l6ZXJdPVwicm93UmVzaXplclwiXG4gICAgW2VuYWJsZVJlc2l6aW5nXT1cImVuYWJsZVJlc2l6aW5nXCJcbj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiY29sdW1ucyB8IG1lcmdlRmllbGRzVG9Db2x1bW5zOiB2aWV3U2V0dGluZz8uTWVyZ2VGaWVsZHNUb0NvbHVtbnM/Lk1vRGF0YUxpc3QgYXMgbWVyZ2VGaWVsZHNUb0NvbHVtbnNcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVyZ2VGaWVsZHNUb0NvbHVtbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm9keVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVyZ2VGaWVsZHNUb0NvbHVtbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtZXJnZUZpZWxkc1RvQ29sdW1ucyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3RhYmxlPlxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZSBsZXQtY29sdW1ucz5cbiAgICA8YnN1LWJhcnNhLXRhYmxlLWhlYWRlclxuICAgICAgICBbdGFibGVXaWR0aF09XCJlbFdpZHRoXCJcbiAgICAgICAgW3Nob3dEZXRhaWxzSW5Sb3ddPVwic2hvd0RldGFpbHNJblJvd1wiXG4gICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcbiAgICAgICAgW3Jlc2l6ZWRCeVVzZXJdPVwicmVzaXplZEJ5VXNlclwiXG4gICAgICAgIFthbGxDaGVja2VkXT1cImFsbENoZWNrZWRcIlxuICAgICAgICBbZGlzYWJsZVJlc3BvbnNpdmVdPVwiZGlzYWJsZVJlc3BvbnNpdmVcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbZml0V2lkdGhdPVwiZml0V2lkdGhcIlxuICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbdmlld1NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbaGlkZUhlYWRlcl09XCJjb250ZXh0Vmlldy5HcmlkX0hpZGVIZWFkZXJcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIChhbGxDaGVja2JveCk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIlxuICAgICAgICAoc29ydEFzY2VuZGluZyk9XCJvblNvcnRBc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAgIChzb3J0RGVzY2VuZGluZyk9XCJvblNvcnREZXNjZW5kaW5nKCRldmVudClcIlxuICAgICAgICAoZmlsdGVyKT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgID48L2JzdS1iYXJzYS10YWJsZS1oZWFkZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNib2R5VGVtcGxhdGUgbGV0LWNvbHVtbnM+XG4gICAgPHRib2R5XG4gICAgICAgIGZkLXRhYmxlLWJvZHlcbiAgICAgICAgW25vQm9yZGVyWF09XCJwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDBcIlxuICAgICAgICBbbm9Cb3JkZXJZXT1cInBvcGluICYmIHNlY29uZGFyeUNvbHVtbnMubGVuZ3RoID4gMFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9EYXRhTGlzdCAmJiBtb0RhdGFMaXN0Lmxlbmd0aCA+IDA7IGVsc2Ugbm9EYXRhXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1vIG9mIG1vRGF0YUxpc3QgfCBtdWx0aXBsZUdyb3VwQnk6IGdyb3VwYnk7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiBfdHJhY2tCeVJvd1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUm93T2xnbyA/IHJvd09sZ29UZW1wbGF0ZSA6IHJvd1RlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMgfCBjb2x1bW5DdXN0b21Db21wb25lbnQ6IHZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzPy5Nb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUNvbHVtbnM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUNvbHVtbnMgfCBjb2x1bW5DdXN0b21Db21wb25lbnQ6IHZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzPy5Nb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3Q6IG1vRGF0YUxpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdENvdW50OiBtb0RhdGFMaXN0Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJ0YWJsZVRlbXBsYXRlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJ0YWJsZVRlbXBsYXRlc1ttby5SZWxhdGVkTW8/LiRUeXBlRGVmSWQgKyAnQCcgKyBtby5DYXJ0YWJsZVNldHRpbmdzPy5JZF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90Ym9keT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlIGxldC1jb2x1bW5zPlxuICAgIDx0Zm9vdCBmZC10YWJsZS1mb290ZXIgKm5nSWY9XCJoYXNTdW1tYXJ5XCI+XG4gICAgICAgIDx0ciBmZC10YWJsZS1yb3cgY2xhc3M9XCJyb3ctc3VtbWFyeVwiPlxuICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgKm5nSWY9XCJpc0NoZWNrTGlzdFwiIGNvbHVtblJlc2l6ZXI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImNvbC10b3RhbC10ZXh0XCI+e3sgJ1RvdGFsJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiIWlzQ2hlY2tMaXN0XCIgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImNvbC10b3RhbC10ZXh0XCI+e3sgJ1RvdGFsJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLkhhc1N1bW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT1cImRpcmVjdGlvbjogbHRyOyBkaXNwbGF5OiBibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbW9EYXRhTGlzdCB8IHRvdGFsU3VtbWFyeTogY29sdW1uLk5hbWUgfCBudW1iZXIgfX08L3N0cm9uZ1xuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgc3R5bGU9XCJ3aWR0aDogMTAwcHhcIj48L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCAqbmdJZj1cImNhblZpZXdcIj48L3RkPlxuICAgICAgICA8L3RyPlxuICAgIDwvdGZvb3Q+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlXG4gICAgI3Jvd09sZ29UZW1wbGF0ZVxuICAgIGxldC1tb1xuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICAgIGxldC1tb0RhdGFMaXN0Q291bnQ9XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXG4gICAgbGV0LWNhcnRhYmxlVGVtcGxhdGU9XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICBsZXQtc2Vjb25kYXJ5Q29sdW1ucz1cInNlY29uZGFyeUNvbHVtbnNcIlxuPlxuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJ2aWV3U2V0dGluZy5Sb3dPbGdvXCJcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtkZXRhaWxzQ29sdW1uc109XCJkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtjb2x1bW5Db21wb25lbnRzXT1cInZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzIHx8IG51bGxcIlxuICAgICAgICBbY2FydGFibGVUZW1wbGF0ZV09XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICAgICAgW2NhcnRhYmxlTW9dPVwibW8uUmVsYXRlZE1vXCJcbiAgICAgICAgW2NhcnRhYmxlV29ya2Zsb3dEYXRhXT1cIm1vLlNlcmlhbGl6ZWRXb3JrZmxvd0RhdGFcIlxuICAgICAgICBbc2VyaWFsaXplZFJlbGF0ZWRNb109XCJtby5TZXJpYWxpemVkUmVsYXRlZE1vXCJcbiAgICAgICAgW2RldGFpbHNUZXh0XT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dFwiXG4gICAgICAgIFtkZXRhaWxzQ29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFt3b3JrZmxvd1N0YXRlXT1cIm1vLiRXb3JrZmxvd1N0YXRlXCJcbiAgICAgICAgW2xldmVsXT1cIm1vLiRMZXZlbFwiXG4gICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJtby4kUGFyZW50Py4kRXhwYW5kZWRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50IC0gZGV0YWlsc0NvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICBbZXh0cmFSZWxhdGlvbl09XCJleHRyYVJlbGF0aW9uXCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW3NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbc2Vjb25kYXJ5Q29sdW1uc109XCJzZWNvbmRhcnlDb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtyb3dJbmRpY2F0b3JDb2xvcl09XCJjb2x1bW5zWzBdLkNhcHRpb24gfCBydmFsOiBtbzpjb2x1bW5zXCJcbiAgICAgICAgKGV2ZW50cyk9XCJvbk9sZ29FdmVudHMoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNyb3dUZW1wbGF0ZVxuICAgIGxldC1tb1xuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICAgIGxldC1tb0RhdGFMaXN0Q291bnQ9XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXG4gICAgbGV0LWNhcnRhYmxlVGVtcGxhdGU9XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICBsZXQtc2Vjb25kYXJ5Q29sdW1ucz1cInNlY29uZGFyeUNvbHVtbnNcIlxuPlxuICAgIDxic3UtYmFyc2EtdGFibGUtcm93XG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFttb0RhdGFMaXN0XT1cIm1vRGF0YUxpc3RcIlxuICAgICAgICBbc2hvd0RldGFpbHNJblJvd109XCJzaG93RGV0YWlsc0luUm93XCJcbiAgICAgICAgW2hpZGVPcGVuSWNvbl09XCJoaWRlT3Blbkljb25cIlxuICAgICAgICBbZGV0YWlsc0NvbHVtbnNdPVwiZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uQ29tcG9uZW50c109XCJ2aWV3U2V0dGluZz8uQ29sdW1uQ29tcG9uZW50cyB8fCBudWxsXCJcbiAgICAgICAgW2NhcnRhYmxlVGVtcGxhdGVdPVwiY2FydGFibGVUZW1wbGF0ZVwiXG4gICAgICAgIFtjYXJ0YWJsZU1vXT1cIm1vLlJlbGF0ZWRNb1wiXG4gICAgICAgIFtjYXJ0YWJsZVdvcmtmbG93RGF0YV09XCJtby5TZXJpYWxpemVkV29ya2Zsb3dEYXRhXCJcbiAgICAgICAgW3NlcmlhbGl6ZWRSZWxhdGVkTW9dPVwibW8uU2VyaWFsaXplZFJlbGF0ZWRNb1wiXG4gICAgICAgIFtkZXRhaWxzVGV4dF09XCJ2aWV3U2V0dGluZz8uRGV0YWlsc1NldHRpbmc/LkJ1dHRvblRleHRcIlxuICAgICAgICBbZGV0YWlsc0NvbXBvbmVudF09XCJkZXRhaWxzQ29tcG9uZW50XCJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJtby4kSXNDaGVja2VkXCJcbiAgICAgICAgW3Zpc2liaWxpdHldPVwibW8uJFZpc2liaWxpdHlcIlxuICAgICAgICBbZXhwYW5kZWRdPVwibW8uJEV4cGFuZGVkXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxuICAgICAgICBbd29ya2Zsb3dTdGF0ZV09XCJtby4kV29ya2Zsb3dTdGF0ZVwiXG4gICAgICAgIFtsZXZlbF09XCJtby4kTGV2ZWxcIlxuICAgICAgICBbcGFyZW50RXhwYW5kZWRdPVwibW8uJFBhcmVudD8uJEV4cGFuZGVkXCJcbiAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgICAgICBbY29sdW1uc0NvdW50XT1cImNvbHVtbnNDb3VudCAtIGRldGFpbHNDb2x1bW5zLmxlbmd0aFwiXG4gICAgICAgIFt0eXBlRGVmSWRdPVwidHlwZURlZklkXCJcbiAgICAgICAgW2V4dHJhUmVsYXRpb25dPVwiZXh0cmFSZWxhdGlvblwiXG4gICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFtzZXR0aW5nXT1cInZpZXdTZXR0aW5nXCJcbiAgICAgICAgW3NlY29uZGFyeUNvbHVtbnNdPVwic2Vjb25kYXJ5Q29sdW1ucyB8IGZpbHRlckNvbHVtbnNCeURldGFpbHM6IGRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1ucyB8IGZpbHRlckNvbHVtbnNCeURldGFpbHM6IGRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgW2lzTmV3SW5saW5lTW9dPVwibW8uJE5ld0lubGluZU1vXCJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgIFtjYW5WaWV3XT1cImNhblZpZXdcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgW3Jvd0luZGljYXRvcl09XCJyb3dJbmRpY2F0b3JcIlxuICAgICAgICBbcm93SW5kaWNhdG9yQ29sb3JdPVwiY29sdW1uc1swXS5DYXB0aW9uIHwgcnZhbDogbW86Y29sdW1uc1wiXG4gICAgICAgIChleHBhbmRDbGljayk9XCJvbkV4cGFuZENsaWNrKCRldmVudClcIlxuICAgICAgICAocm93Q2hlY2spPVwib25Sb3dDaGVjaygkZXZlbnQpXCJcbiAgICAgICAgKHdvcmtmbG93U2hhcmVCdXR0b25zKT1cIm9uV29ya2Zsb3dTaGFyZUJ1dHRvbnMoJGV2ZW50KVwiXG4gICAgICAgIChkZXNlbGVjdEFsbCk9XCJvbkRlc2VsZWN0QWxsKClcIlxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHVsdkNvbW1hbmQpPVwib25VbHZDb21tYW5kKCRldmVudClcIlxuICAgICAgICAoc2VsZWN0TmV4dElubGluZVJlY29yZCk9XCJvblNlbGVjdE5leHRJbmxpbmVSZWNvcmQoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsU2F2ZSk9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKCRldmVudClcIlxuICAgICAgICAoZWRpdEZvcm1QYW5lbENhbmNlbCk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UpPVwib25FZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChjYXJ0YWJsZUZvcm1DbG9zZWQpPVwib25DYXJ0YWJsZUZvcm1DbG9zZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYnN1LWJhcnNhLXRhYmxlLXJvdz5cbjwvbmctdGVtcGxhdGU+XG48IS0tcmVuZGVyQ29sdW1uLS0+XG48bmctdGVtcGxhdGUgI25vRGF0YT5cbiAgICA8dHIgKm5nSWY9XCIhaW5saW5lRWRpdE1vZGUgfHwgIW5ld0lubGluZUVkaXRNb1wiPlxuICAgICAgICA8dGQgY29sc3Bhbj1cIjEwMCVcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHhcIj57eyAnTm9EYXRhJyB8IGJiYlRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgPC90cj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGFibGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10YWJsZS12aWV3L3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdGFibGUtdmlldy91aS10YWJsZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBSVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQyx1QkFBdUIsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVNqSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQTJDO0lBTnJGOztRQWFvQyxXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUVqRSxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUl4QyxxQkFBZ0IsR0FBbUUsRUFBRSxDQUFDO0tBbUV6RjtJQWpFRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7UUFDOUMsSUFBSSxjQUFjLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7WUFDakQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxL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Q0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7O2lIQWpGUSxvQkFBb0I7cUdBQXBCLG9CQUFvQix5VkNsQmpDLGc1VUErT0E7MkZEN05hLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUUwQixNQUFNO3NCQUFyQyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFDRyxTQUFTO3NCQUF6QyxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVqcmF5T2xnbywgTWV0YW9iamVjdERhdGFNb2RlbCwgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQsIFJlcG9ydFZpZXdDb2x1bW4gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBVaVRhYmxlVmlld1NldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC12aWV3JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktdGFibGUtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXRhYmxlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLXRhYmxlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaVRhYmxlVmlld0NvbXBvbmVudCBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFVpVGFibGVWaWV3U2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgY29sdW1uV2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtaW5XaWR0aDtcbiAgICBASW5wdXQoKSBtaW5IZWlnaHQ7XG4gICAgQElucHV0KCkgcm93UmVzaXplcjtcbiAgICBASW5wdXQoKSBlbmFibGVSZXNpemluZztcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0LnB4JykgaGVpZ2h0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC1oZWlnaHQnKSBtYXhIZWlnaHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgX3dpZHRoID0gJzEwMCUnO1xuICAgIGRldGFpbHNDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10gPSBbXTtcbiAgICBkZXRhaWxzQ29tcG9uZW50OiBFanJheU9sZ287XG4gICAgc2hvd0RldGFpbHNJblJvdzogYm9vbGVhbjtcbiAgICBoYXNSb3dPbGdvOiBib29sZWFuO1xuICAgIGNvbHVtbkNvbXBvbmVudHM6IHsgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uOyBjb21wb25lbnQ6IE1ldGFvYmplY3REYXRhTW9kZWwgfVtdID0gW107XG4gICAgcm93SW5kaWNhdG9yOiBib29sZWFuO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zdCBkZXRhaWxzU2V0dGluZyA9IHRoaXMudmlld1NldHRpbmc/LkRldGFpbHNTZXR0aW5nO1xuICAgICAgICB0aGlzLmhhc1Jvd09sZ28gPSB0aGlzLnZpZXdTZXR0aW5nPy5Sb3dPbGdvPy5TZWxlY3RvcjtcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLnZpZXdTZXR0aW5nPy5Cb2R5SGVpZ2h0O1xuICAgICAgICBpZiAoZGV0YWlsc1NldHRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbXBvbmVudCA9IGRldGFpbHNTZXR0aW5nLkNvbXBvbmVudDtcbiAgICAgICAgICAgIGRldGFpbHNTZXR0aW5nLkNvbHVtbnMuc3BsaXQoJywnKS5mb3JFYWNoKChjb2x1bW5OYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLl9maW5kQ29sdW1uQnlEYk5hbWUudHJhbnNmb3JtKHRoaXMuYWxsQ29sdW1ucywgY29sdW1uTmFtZSwgdGhpcy5zZWNvbmRhcnlDb2x1bW5zKTtcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsc0NvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldEhhc1N1bW1lcnkodGhpcy5jYXJ0YWJsZUNoaWxkc01vKTtcbiAgICAgICAgdGhpcy5fc2V0SGVpZ2h0KHRoaXMucGFyZW50SGVpZ2h0KTtcbiAgICAgICAgdGhpcy5fc2V0Um93SW5kaWNhdG9yKHRoaXMuY29sdW1ucyk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgY2FydGFibGVUZW1wbGF0ZXMsIHBhcmVudEhlaWdodCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKGNvbHVtbnMgJiYgIWNvbHVtbnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFJvd0luZGljYXRvcih0aGlzLmNvbHVtbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXJ0YWJsZVRlbXBsYXRlcyAmJiAhY2FydGFibGVUZW1wbGF0ZXMuZmlyc3RDaGFuZ2UgJiYgIXRoaXMuaGFzU3VtbWFyeSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0SGFzU3VtbWVyeShjYXJ0YWJsZVRlbXBsYXRlcy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyZW50SGVpZ2h0ICYmICFwYXJlbnRIZWlnaHQuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEhlaWdodChwYXJlbnRIZWlnaHQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBfc2V0Um93SW5kaWNhdG9yKGNvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICBpZiAoIWNvbHVtbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucm93SW5kaWNhdG9yID0gTnVtYmVyKGNvbHVtbnNbMF0uTWV0YUZpZWxkVHlwZUlkKSA9PT0gNDE7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zZXRIZWlnaHQocGFyZW50SGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gcGFyZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0SGFzU3VtbWVyeShjYXJ0YWJsZVRlbXBsYXRlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmRldGFpbHNDb2x1bW5zPy5sZW5ndGggPiAwIHx8XG4gICAgICAgICAgICB0aGlzLmRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8XG4gICAgICAgICAgICAoY2FydGFibGVUZW1wbGF0ZXMgJiYgT2JqZWN0LmtleXMoY2FydGFibGVUZW1wbGF0ZXMpLmxlbmd0aCA+IDApXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5zaG93RGV0YWlsc0luUm93ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaGFzRGV0YWlsc0luUm93LmVtaXQodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhhc0RldGFpbHNJblJvdy5lbWl0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NvbnRhaW5lcldpZHRoQ2hhbmdlZCh2YWw6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodmFsID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl93aWR0aCA9ICcxMDAlJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3dpZHRoID0gdmFsID8gdmFsICsgJ3B4JyA6ICcxMDAlJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgdGhpcy5fd2lkdGgpO1xuICAgIH1cbn1cbiIsIjx0YWJsZVxuICAgIGZkLXRhYmxlXG4gICAgW3BvcEluXT1cInBvcGluXCJcbiAgICBbY2xhc3MuZml4ZWRdPVwiIWNvbnRleHRWaWV3Py5HcmlkX0hpZGVIZWFkZXIgJiYgKCFwb3BpbiB8fCBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA9PT0gMClcIlxuICAgIFtub0JvcmRlclhdPVwidmlld1NldHRpbmc/Lk5vVmVydGljYWxCb3JkZXJzID09PSB0cnVlIHx8IChwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDApXCJcbiAgICBbbm9Cb3JkZXJZXT1cInZpZXdTZXR0aW5nPy5Ob0hvcml6dG9uYWxCb3JkZXJzID09PSB0cnVlIHx8IChwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDApXCJcbiAgICB0YWJsZVJlc2l6ZXJcbiAgICBbZml0V2lkdGhdPVwiZml0V2lkdGhcIlxuICAgIChjb2x1bW5SZXNpemVkKT1cIm9uQ29sdW1uUmVzaXplZCgkZXZlbnQpXCJcbiAgICBbY29udGFpbmVyV2lkdGhdPVwiY29udGFpbmVyV2lkdGhcIlxuICAgIFttaW5XaWR0aF09XCIzMFwiXG4gICAgW21pbkhlaWdodF09XCIyMlwiXG4gICAgW3Jvd1Jlc2l6ZXJdPVwicm93UmVzaXplclwiXG4gICAgW2VuYWJsZVJlc2l6aW5nXT1cImVuYWJsZVJlc2l6aW5nXCJcbj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiY29sdW1ucyB8IG1lcmdlRmllbGRzVG9Db2x1bW5zOiB2aWV3U2V0dGluZz8uTWVyZ2VGaWVsZHNUb0NvbHVtbnM/Lk1vRGF0YUxpc3QgYXMgbWVyZ2VGaWVsZHNUb0NvbHVtbnNcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVyZ2VGaWVsZHNUb0NvbHVtbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm9keVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVyZ2VGaWVsZHNUb0NvbHVtbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtZXJnZUZpZWxkc1RvQ29sdW1ucyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3RhYmxlPlxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZSBsZXQtY29sdW1ucz5cbiAgICA8YnN1LWJhcnNhLXRhYmxlLWhlYWRlclxuICAgICAgICBbdGFibGVXaWR0aF09XCJlbFdpZHRoXCJcbiAgICAgICAgW3Nob3dEZXRhaWxzSW5Sb3ddPVwic2hvd0RldGFpbHNJblJvd1wiXG4gICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcbiAgICAgICAgW3Jlc2l6ZWRCeVVzZXJdPVwicmVzaXplZEJ5VXNlclwiXG4gICAgICAgIFthbGxDaGVja2VkXT1cImFsbENoZWNrZWRcIlxuICAgICAgICBbZGlzYWJsZVJlc3BvbnNpdmVdPVwiZGlzYWJsZVJlc3BvbnNpdmVcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbZml0V2lkdGhdPVwiZml0V2lkdGhcIlxuICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbdmlld1NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbaGlkZUhlYWRlcl09XCJjb250ZXh0Vmlldy5HcmlkX0hpZGVIZWFkZXJcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIChhbGxDaGVja2JveCk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIlxuICAgICAgICAoc29ydEFzY2VuZGluZyk9XCJvblNvcnRBc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAgIChzb3J0RGVzY2VuZGluZyk9XCJvblNvcnREZXNjZW5kaW5nKCRldmVudClcIlxuICAgICAgICAoZmlsdGVyKT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgID48L2JzdS1iYXJzYS10YWJsZS1oZWFkZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNib2R5VGVtcGxhdGUgbGV0LWNvbHVtbnM+XG4gICAgPHRib2R5XG4gICAgICAgIGZkLXRhYmxlLWJvZHlcbiAgICAgICAgW25vQm9yZGVyWF09XCJwb3BpbiAmJiBzZWNvbmRhcnlDb2x1bW5zLmxlbmd0aCA+IDBcIlxuICAgICAgICBbbm9Cb3JkZXJZXT1cInBvcGluICYmIHNlY29uZGFyeUNvbHVtbnMubGVuZ3RoID4gMFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9EYXRhTGlzdCAmJiBtb0RhdGFMaXN0Lmxlbmd0aCA+IDA7IGVsc2Ugbm9EYXRhXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1vIG9mIG1vRGF0YUxpc3QgfCBtdWx0aXBsZUdyb3VwQnk6IGdyb3VwYnk7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiBfdHJhY2tCeVJvd1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUm93T2xnbyA/IHJvd09sZ29UZW1wbGF0ZSA6IHJvd1RlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMgfCBjb2x1bW5DdXN0b21Db21wb25lbnQ6IHZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzPy5Nb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUNvbHVtbnM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUNvbHVtbnMgfCBjb2x1bW5DdXN0b21Db21wb25lbnQ6IHZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzPy5Nb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3Q6IG1vRGF0YUxpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdENvdW50OiBtb0RhdGFMaXN0Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJ0YWJsZVRlbXBsYXRlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJ0YWJsZVRlbXBsYXRlc1ttby5SZWxhdGVkTW8/LiRUeXBlRGVmSWQgKyAnQCcgKyBtby5DYXJ0YWJsZVNldHRpbmdzPy5JZF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90Ym9keT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlIGxldC1jb2x1bW5zPlxuICAgIDx0Zm9vdCBmZC10YWJsZS1mb290ZXIgKm5nSWY9XCJoYXNTdW1tYXJ5XCI+XG4gICAgICAgIDx0ciBmZC10YWJsZS1yb3cgY2xhc3M9XCJyb3ctc3VtbWFyeVwiPlxuICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgKm5nSWY9XCJpc0NoZWNrTGlzdFwiIGNvbHVtblJlc2l6ZXI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImNvbC10b3RhbC10ZXh0XCI+e3sgJ1RvdGFsJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiIWlzQ2hlY2tMaXN0XCIgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImNvbC10b3RhbC10ZXh0XCI+e3sgJ1RvdGFsJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLkhhc1N1bW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT1cImRpcmVjdGlvbjogbHRyOyBkaXNwbGF5OiBibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbW9EYXRhTGlzdCB8IHRvdGFsU3VtbWFyeTogY29sdW1uLk5hbWUgfCBudW1iZXIgfX08L3N0cm9uZ1xuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgc3R5bGU9XCJ3aWR0aDogMTAwcHhcIj48L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCAqbmdJZj1cImNhblZpZXdcIj48L3RkPlxuICAgICAgICA8L3RyPlxuICAgIDwvdGZvb3Q+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlXG4gICAgI3Jvd09sZ29UZW1wbGF0ZVxuICAgIGxldC1tb1xuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICAgIGxldC1tb0RhdGFMaXN0Q291bnQ9XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXG4gICAgbGV0LWNhcnRhYmxlVGVtcGxhdGU9XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICBsZXQtc2Vjb25kYXJ5Q29sdW1ucz1cInNlY29uZGFyeUNvbHVtbnNcIlxuPlxuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJ2aWV3U2V0dGluZy5Sb3dPbGdvXCJcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgIFtkZXRhaWxzQ29sdW1uc109XCJkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgIFtjb2x1bW5Db21wb25lbnRzXT1cInZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzIHx8IG51bGxcIlxuICAgICAgICBbY2FydGFibGVUZW1wbGF0ZV09XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICAgICAgW2NhcnRhYmxlTW9dPVwibW8uUmVsYXRlZE1vXCJcbiAgICAgICAgW2NhcnRhYmxlV29ya2Zsb3dEYXRhXT1cIm1vLlNlcmlhbGl6ZWRXb3JrZmxvd0RhdGFcIlxuICAgICAgICBbc2VyaWFsaXplZFJlbGF0ZWRNb109XCJtby5TZXJpYWxpemVkUmVsYXRlZE1vXCJcbiAgICAgICAgW2RldGFpbHNUZXh0XT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dFwiXG4gICAgICAgIFtkZXRhaWxzQ29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFt3b3JrZmxvd1N0YXRlXT1cIm1vLiRXb3JrZmxvd1N0YXRlXCJcbiAgICAgICAgW2xldmVsXT1cIm1vLiRMZXZlbFwiXG4gICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJtby4kUGFyZW50Py4kRXhwYW5kZWRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50IC0gZGV0YWlsc0NvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICBbZXh0cmFSZWxhdGlvbl09XCJleHRyYVJlbGF0aW9uXCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW3NldHRpbmddPVwidmlld1NldHRpbmdcIlxuICAgICAgICBbc2Vjb25kYXJ5Q29sdW1uc109XCJzZWNvbmRhcnlDb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbcm93SW5kaWNhdG9yXT1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtyb3dJbmRpY2F0b3JDb2xvcl09XCJjb2x1bW5zWzBdLkNhcHRpb24gfCBydmFsOiBtbzpjb2x1bW5zXCJcbiAgICAgICAgKGV2ZW50cyk9XCJvbk9sZ29FdmVudHMoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNyb3dUZW1wbGF0ZVxuICAgIGxldC1tb1xuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICAgIGxldC1tb0RhdGFMaXN0Q291bnQ9XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXG4gICAgbGV0LWNhcnRhYmxlVGVtcGxhdGU9XCJjYXJ0YWJsZVRlbXBsYXRlXCJcbiAgICBsZXQtc2Vjb25kYXJ5Q29sdW1ucz1cInNlY29uZGFyeUNvbHVtbnNcIlxuPlxuICAgIDxic3UtYmFyc2EtdGFibGUtcm93XG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFttb0RhdGFMaXN0XT1cIm1vRGF0YUxpc3RcIlxuICAgICAgICBbc2hvd0RldGFpbHNJblJvd109XCJzaG93RGV0YWlsc0luUm93XCJcbiAgICAgICAgW2hpZGVPcGVuSWNvbl09XCJoaWRlT3Blbkljb25cIlxuICAgICAgICBbZGV0YWlsc0NvbHVtbnNdPVwiZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICBbY29sdW1uQ29tcG9uZW50c109XCJ2aWV3U2V0dGluZz8uQ29sdW1uQ29tcG9uZW50cyB8fCBudWxsXCJcbiAgICAgICAgW2NhcnRhYmxlVGVtcGxhdGVdPVwiY2FydGFibGVUZW1wbGF0ZVwiXG4gICAgICAgIFtjYXJ0YWJsZU1vXT1cIm1vLlJlbGF0ZWRNb1wiXG4gICAgICAgIFtjYXJ0YWJsZVdvcmtmbG93RGF0YV09XCJtby5TZXJpYWxpemVkV29ya2Zsb3dEYXRhXCJcbiAgICAgICAgW3NlcmlhbGl6ZWRSZWxhdGVkTW9dPVwibW8uU2VyaWFsaXplZFJlbGF0ZWRNb1wiXG4gICAgICAgIFtkZXRhaWxzVGV4dF09XCJ2aWV3U2V0dGluZz8uRGV0YWlsc1NldHRpbmc/LkJ1dHRvblRleHRcIlxuICAgICAgICBbZGV0YWlsc0NvbXBvbmVudF09XCJkZXRhaWxzQ29tcG9uZW50XCJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJtby4kSXNDaGVja2VkXCJcbiAgICAgICAgW3Zpc2liaWxpdHldPVwibW8uJFZpc2liaWxpdHlcIlxuICAgICAgICBbZXhwYW5kZWRdPVwibW8uJEV4cGFuZGVkXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxuICAgICAgICBbd29ya2Zsb3dTdGF0ZV09XCJtby4kV29ya2Zsb3dTdGF0ZVwiXG4gICAgICAgIFtsZXZlbF09XCJtby4kTGV2ZWxcIlxuICAgICAgICBbcGFyZW50RXhwYW5kZWRdPVwibW8uJFBhcmVudD8uJEV4cGFuZGVkXCJcbiAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgICAgICBbY29sdW1uc0NvdW50XT1cImNvbHVtbnNDb3VudCAtIGRldGFpbHNDb2x1bW5zLmxlbmd0aFwiXG4gICAgICAgIFt0eXBlRGVmSWRdPVwidHlwZURlZklkXCJcbiAgICAgICAgW2V4dHJhUmVsYXRpb25dPVwiZXh0cmFSZWxhdGlvblwiXG4gICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFtzZXR0aW5nXT1cInZpZXdTZXR0aW5nXCJcbiAgICAgICAgW3NlY29uZGFyeUNvbHVtbnNdPVwic2Vjb25kYXJ5Q29sdW1ucyB8IGZpbHRlckNvbHVtbnNCeURldGFpbHM6IGRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1ucyB8IGZpbHRlckNvbHVtbnNCeURldGFpbHM6IGRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgW2lzTmV3SW5saW5lTW9dPVwibW8uJE5ld0lubGluZU1vXCJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgIFtjYW5WaWV3XT1cImNhblZpZXdcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgW3Jvd0luZGljYXRvcl09XCJyb3dJbmRpY2F0b3JcIlxuICAgICAgICBbcm93SW5kaWNhdG9yQ29sb3JdPVwiY29sdW1uc1swXS5DYXB0aW9uIHwgcnZhbDogbW86Y29sdW1uc1wiXG4gICAgICAgIChyZXNldFdvcmtmbG93U3RhdGUpPVwicmVzZXRXb3JrZmxvd1N0YXRlLmVtaXQobW8pXCJcbiAgICAgICAgKGV4cGFuZENsaWNrKT1cIm9uRXhwYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChyb3dDaGVjayk9XCJvblJvd0NoZWNrKCRldmVudClcIlxuICAgICAgICAod29ya2Zsb3dTaGFyZUJ1dHRvbnMpPVwib25Xb3JrZmxvd1NoYXJlQnV0dG9ucygkZXZlbnQpXCJcbiAgICAgICAgKGRlc2VsZWN0QWxsKT1cIm9uRGVzZWxlY3RBbGwoKVwiXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAodWx2Q29tbWFuZCk9XCJvblVsdkNvbW1hbmQoJGV2ZW50KVwiXG4gICAgICAgIChzZWxlY3ROZXh0SW5saW5lUmVjb3JkKT1cIm9uU2VsZWN0TmV4dElubGluZVJlY29yZCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxTYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSk9XCJvbkVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNhcnRhYmxlRm9ybUNsb3NlZCk9XCJvbkNhcnRhYmxlRm9ybUNsb3NlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9ic3UtYmFyc2EtdGFibGUtcm93PlxuPC9uZy10ZW1wbGF0ZT5cbjwhLS1yZW5kZXJDb2x1bW4tLT5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhPlxuICAgIDx0ciAqbmdJZj1cIiFpbmxpbmVFZGl0TW9kZSB8fCAhbmV3SW5saW5lRWRpdE1vXCI+XG4gICAgICAgIDx0ZCBjb2xzcGFuPVwiMTAwJVwiIHN0eWxlPVwicGFkZGluZzogMTBweFwiPnt7ICdOb0RhdGEnIHwgYmJiVHJhbnNsYXRlIH19PC90ZD5cbiAgICA8L3RyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -54,7 +54,7 @@ export class UlvContextMenuComponent extends BaseComponent {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
UlvContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvContextMenuComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
-
UlvContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: { onlyOverflow: "onlyOverflow", deviceName: "deviceName", menuItems: "menuItems", allColumns: "allColumns", index: "index", mo: "mo", styleIndex: "styleIndex", conditionalFormats: "conditionalFormats", disableOverflowContextMenu: "disableOverflowContextMenu", footerMode: "footerMode" }, outputs: { commandClick: "commandClick" }, host: { properties: { "class.disableOverflow": "this._disableOverflow" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"footerMode; else contextTemplate\">\n <div fd-bar barDesign=\"footer\" [cozy]=\"false\" style=\"width: 100%\">\n <div fd-bar-middle *ngIf=\"overflowMode\">\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <div fd-bar-right *ngIf=\"!overflowMode\">\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <ng-template #footerToolbarTpl>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <ng-container *ngFor=\"let cmd of menuItems\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: { $implicit: cmd }\"></ng-container>\n </ng-container>\n </fd-toolbar>\n </ng-template>\n </div>\n</ng-container>\n<ng-template #contextTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n overflowMode && !disableOverflowContextMenu ? overflowCommands : simpleCommands;\n context: { $implicit: menuItems, index: index }\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template #simpleCommands let-commands let-index=\"index\">\n <ng-container *ngFor=\"let cmd of commands\">\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #overflowCommands let-commands let-index=\"index\">\n <fd-popover placement=\"bottom\" [(isOpen)]=\"isOpenOverflow\" [closeOnOutsideClick]=\"true\" [noArrow]=\"true\">\n <fd-popover-control #popover>\n <button fd-button (click)=\"onOpenOverflow($event)\" [fdType]=\"'transparent'\" [glyph]=\"'overflow'\"></button>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item *ngFor=\"let cmd of commands\">\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #menuButtonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"cmd.menu ? menuTemplate : buttonTemplate; context: { $implicit: cmd }\"\n ></ng-container>\n</ng-template>\n<ng-template #menuTemplate let-cmd>\n <fd-split-button fd-toolbar-item [mainAction]=\"{ mainActionTitle: cmd.text, keepMainAction: true }\">\n <fd-menu>\n <li\n fd-menu-item\n *ngFor=\"let btnCommand of cmd.menu.items\"\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"liEl\"\n (click)=\"onCommandSplitButtonClick($event, btnCommand)\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n</ng-template>\n<ng-template #buttonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"\n cmd?.Command?.CustomUi ? customButtonTemplate : defaultButtonTemplate;\n context: { $implicit: cmd }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #defaultButtonTemplate let-cmd>\n <button\n fd-button\n #btnEl\n [fdType]=\"cmd.Command?.JsonExtraProp?.Design ? cmd.Command?.JsonExtraProp.Design : 'transparent'\"\n [label]=\"cmd.text | bbbTranslate\"\n [glyph]=\"cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon || ''\"\n [ulvCommandHandler]=\"cmd\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"btnEl\"\n (commandClick)=\"onCommandClick($event)\"\n >\n <img *ngIf=\"!cmd.Command?.NewIcon && !cmd.Command?.JsonExtraProp?.Icon\" [src]=\"cmd.icon\" />\n </button>\n</ng-template>\n<ng-template #customButtonTemplate let-cmd>\n <div\n #hostEl\n [dbName]=\"cmd.text\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"hostEl\"\n [styleIndex]=\"styleIndex\"\n >\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"cmd\"\n [component]=\"cmd.Command?.CustomUi\"\n [mo]=\"mo\"\n [context]=\"cmd\"\n [showText]=\"disableOverflowContextMenu === false\"\n [deviceName]=\"deviceName\"\n [index]=\"index\"\n [isEnable]=\"cmd.Command?._isEnable || cmd.Command?.UseForSingle\"\n [allColumns]=\"allColumns\"\n (btnClick)=\"onCommandClick($event)\"\n ></bnrc-dynamic-form-toolbaritem>\n </div>\n</ng-template>\n", styles: [":host{display:flex;justify-content:center;align-items:center}:host ::ng-deep button{margin-top:0!important}:host ::ng-deep .fd-popover-custom{max-width:none}:host.disableOverflow{column-gap:5px}button{align-items:center}button div{display:flex}button ::ng-deep span{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler"], outputs: ["commandClick"] }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.DeprecatedBarContentDensityDirective, selector: "[fd-bar][cozy]" }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "component", type: i6.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i6.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i6.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i6.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i9.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i9.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "directive", type: i10.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
57
|
+
UlvContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: { onlyOverflow: "onlyOverflow", deviceName: "deviceName", menuItems: "menuItems", allColumns: "allColumns", index: "index", mo: "mo", styleIndex: "styleIndex", conditionalFormats: "conditionalFormats", disableOverflowContextMenu: "disableOverflowContextMenu", footerMode: "footerMode" }, outputs: { commandClick: "commandClick" }, host: { properties: { "class.disableOverflow": "this._disableOverflow" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"footerMode; else contextTemplate\">\n <div fd-bar barDesign=\"footer\" [cozy]=\"false\" style=\"width: 100%\">\n <div fd-bar-middle *ngIf=\"overflowMode\">\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <div fd-bar-right *ngIf=\"!overflowMode\">\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <ng-template #footerToolbarTpl>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <ng-container *ngFor=\"let cmd of menuItems\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: { $implicit: cmd }\"></ng-container>\n </ng-container>\n </fd-toolbar>\n </ng-template>\n </div>\n</ng-container>\n<ng-template #contextTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n overflowMode && !disableOverflowContextMenu ? overflowCommands : simpleCommands;\n context: { $implicit: menuItems, index: index }\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template #simpleCommands let-commands let-index=\"index\">\n <ng-container *ngFor=\"let cmd of commands\">\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #overflowCommands let-commands let-index=\"index\">\n <fd-popover placement=\"bottom\" [(isOpen)]=\"isOpenOverflow\" [closeOnOutsideClick]=\"true\" [noArrow]=\"true\">\n <fd-popover-control #popover>\n <button fd-button (click)=\"onOpenOverflow($event)\" [fdType]=\"'transparent'\" [glyph]=\"'overflow'\"></button>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item *ngFor=\"let cmd of commands\">\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #menuButtonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"cmd.menu ? menuTemplate : buttonTemplate; context: { $implicit: cmd }\"\n ></ng-container>\n</ng-template>\n<ng-template #menuTemplate let-cmd>\n <fd-split-button fd-toolbar-item [mainAction]=\"{ mainActionTitle: cmd.text, keepMainAction: true }\">\n <fd-menu>\n <li\n fd-menu-item\n *ngFor=\"let btnCommand of cmd.menu.items\"\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"liEl\"\n (click)=\"onCommandSplitButtonClick($event, btnCommand)\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n</ng-template>\n<ng-template #buttonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"\n cmd?.Command?.CustomUi ? customButtonTemplate : defaultButtonTemplate;\n context: { $implicit: cmd }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #defaultButtonTemplate let-cmd>\n <button\n fd-button\n #btnEl\n [fdType]=\"cmd.Command?.JsonExtraProp?.Design ? cmd.Command?.JsonExtraProp.Design : 'transparent'\"\n [label]=\"cmd.text | bbbTranslate\"\n [glyph]=\"cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon || ''\"\n [ulvCommandHandler]=\"cmd\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"btnEl\"\n (commandClick)=\"onCommandClick($event)\"\n >\n <img *ngIf=\"!cmd.Command?.NewIcon && !cmd.Command?.JsonExtraProp?.Icon\" [src]=\"cmd.icon\" />\n </button>\n</ng-template>\n<ng-template #customButtonTemplate let-cmd>\n <div\n #hostEl\n [dbName]=\"cmd.text\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"hostEl\"\n [styleIndex]=\"styleIndex\"\n >\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"cmd\"\n [component]=\"cmd.Command?.CustomUi\"\n [mo]=\"mo\"\n [context]=\"cmd\"\n [showText]=\"disableOverflowContextMenu === false\"\n [deviceName]=\"deviceName\"\n [index]=\"index\"\n [isEnable]=\"cmd.Command?._isEnable || cmd.Command?.UseForSingle\"\n [allColumns]=\"allColumns\"\n (btnClick)=\"onCommandClick($event)\"\n ></bnrc-dynamic-form-toolbaritem>\n </div>\n</ng-template>\n", styles: [":host{display:flex;justify-content:center;align-items:center}:host ::ng-deep button{margin-top:0!important}:host ::ng-deep .fd-popover-custom{max-width:none}:host.disableOverflow{column-gap:5px}button{align-items:center}button div{display:flex}button ::ng-deep span{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.DeprecatedBarContentDensityDirective, selector: "[fd-bar][cozy]" }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "component", type: i6.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i6.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i6.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i6.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i9.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i9.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "directive", type: i10.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
58
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvContextMenuComponent, decorators: [{
|
|
59
59
|
type: Component,
|
|
60
60
|
args: [{ selector: 'bsu-ulv-context-menu,[ulvContextMenu]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"footerMode; else contextTemplate\">\n <div fd-bar barDesign=\"footer\" [cozy]=\"false\" style=\"width: 100%\">\n <div fd-bar-middle *ngIf=\"overflowMode\">\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <div fd-bar-right *ngIf=\"!overflowMode\">\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <ng-template #footerToolbarTpl>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <ng-container *ngFor=\"let cmd of menuItems\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: { $implicit: cmd }\"></ng-container>\n </ng-container>\n </fd-toolbar>\n </ng-template>\n </div>\n</ng-container>\n<ng-template #contextTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n overflowMode && !disableOverflowContextMenu ? overflowCommands : simpleCommands;\n context: { $implicit: menuItems, index: index }\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template #simpleCommands let-commands let-index=\"index\">\n <ng-container *ngFor=\"let cmd of commands\">\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #overflowCommands let-commands let-index=\"index\">\n <fd-popover placement=\"bottom\" [(isOpen)]=\"isOpenOverflow\" [closeOnOutsideClick]=\"true\" [noArrow]=\"true\">\n <fd-popover-control #popover>\n <button fd-button (click)=\"onOpenOverflow($event)\" [fdType]=\"'transparent'\" [glyph]=\"'overflow'\"></button>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list>\n <li fd-list-item *ngFor=\"let cmd of commands\">\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </li>\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #menuButtonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"cmd.menu ? menuTemplate : buttonTemplate; context: { $implicit: cmd }\"\n ></ng-container>\n</ng-template>\n<ng-template #menuTemplate let-cmd>\n <fd-split-button fd-toolbar-item [mainAction]=\"{ mainActionTitle: cmd.text, keepMainAction: true }\">\n <fd-menu>\n <li\n fd-menu-item\n *ngFor=\"let btnCommand of cmd.menu.items\"\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"liEl\"\n (click)=\"onCommandSplitButtonClick($event, btnCommand)\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n</ng-template>\n<ng-template #buttonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"\n cmd?.Command?.CustomUi ? customButtonTemplate : defaultButtonTemplate;\n context: { $implicit: cmd }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #defaultButtonTemplate let-cmd>\n <button\n fd-button\n #btnEl\n [fdType]=\"cmd.Command?.JsonExtraProp?.Design ? cmd.Command?.JsonExtraProp.Design : 'transparent'\"\n [label]=\"cmd.text | bbbTranslate\"\n [glyph]=\"cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon || ''\"\n [ulvCommandHandler]=\"cmd\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"btnEl\"\n (commandClick)=\"onCommandClick($event)\"\n >\n <img *ngIf=\"!cmd.Command?.NewIcon && !cmd.Command?.JsonExtraProp?.Icon\" [src]=\"cmd.icon\" />\n </button>\n</ng-template>\n<ng-template #customButtonTemplate let-cmd>\n <div\n #hostEl\n [dbName]=\"cmd.text\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"hostEl\"\n [styleIndex]=\"styleIndex\"\n >\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"cmd\"\n [component]=\"cmd.Command?.CustomUi\"\n [mo]=\"mo\"\n [context]=\"cmd\"\n [showText]=\"disableOverflowContextMenu === false\"\n [deviceName]=\"deviceName\"\n [index]=\"index\"\n [isEnable]=\"cmd.Command?._isEnable || cmd.Command?.UseForSingle\"\n [allColumns]=\"allColumns\"\n (btnClick)=\"onCommandClick($event)\"\n ></bnrc-dynamic-form-toolbaritem>\n </div>\n</ng-template>\n", styles: [":host{display:flex;justify-content:center;align-items:center}:host ::ng-deep button{margin-top:0!important}:host ::ng-deep .fd-popover-custom{max-width:none}:host.disableOverflow{column-gap:5px}button{align-items:center}button div{display:flex}button ::ng-deep span{height:auto!important}\n"] }]
|