barsa-sap-ui 2.0.10 → 2.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/barsa-custom-inline-edit-row/barsa-custom-inline-edit-row.component.mjs +1 -1
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +3 -3
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +1 -1
- package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +5 -3
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +17 -5
- package/esm2022/lib/form-dialog-less/form-dialog-less.component.mjs +1 -1
- package/esm2022/lib/report-tree-base.mjs +5 -33
- package/esm2022/lib/search-panel/search-panel.component.mjs +1 -1
- package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +20 -19
- package/esm2022/lib/ui-grid/ui-grid.component.mjs +1 -1
- package/esm2022/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +1 -1
- package/esm2022/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +1 -1
- package/esm2022/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +2 -2
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +5 -3
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +6 -3
- package/esm2022/lib/ui-tree-view/ui-tree-view.component.mjs +5 -3
- package/esm2022/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +11 -12
- package/fesm2022/barsa-sap-ui.mjs +85 -92
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +2 -1
- package/lib/form-dialog/form-dialog.component.d.ts +10 -1
- package/lib/report-tree-base.d.ts +0 -2
- package/lib/ui-form-panel/ui-form-panel.component.d.ts +0 -4
- package/lib/ui-table-view/ui-table-view.component.d.ts +2 -1
- package/lib/ui-tree-view/ui-tree-view.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -75,18 +75,21 @@ export class UiTreeComponent extends ReportTreeBaseComponent {
|
|
|
75
75
|
this._ulvCommandClicked(ev.node.Data, ev.index);
|
|
76
76
|
}
|
|
77
77
|
onNodeViewClick(ev) {
|
|
78
|
+
if (this.viewSetting?.DisableShowFormOnDoubleClick) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
78
81
|
this._raiseRowClick(ev.index, ev.node);
|
|
79
82
|
}
|
|
80
83
|
onLoadChildren(node) {
|
|
81
84
|
this.loadChildren(node);
|
|
82
85
|
}
|
|
83
86
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTreeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiTreeComponent, selector: "bsu-ui-tree", inputs: { showOkCancelButtons: "showOkCancelButtons" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n renderTree;\n context: {\n $implicit: root$ | async,\n moDataList: flatMoDataList,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: visibleColumns$ | async,\n groupby: groupby$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: context.Setting.View?.ConditionalFormats,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n gridSetting: gridSetting$ | async,\n contentDensity: contentDensity$ | async,\n hasSelected: hasSelected$ | async,\n showOkCancelButtons: showOkCancelButtons,\n selectedNode: selectedNode$ | async,\n navigationArrow: navigationArrow$ | async,\n collapseIcon: collapseIcon$ | async,\n relationList: context.Setting.View.RelationList,\n rtl: rtl$ | async,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\n isHetro: context.Setting.ClassNames.DataClass === 'Ul.HetroTreeUlvDataCtrlr',\n selectedMo: selectedMo$ | async\n }\n \"\n></ng-container>\n\n<ng-template\n #renderTree\n let-root\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-toolbarButtons=\"toolbarButtons\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-access=\"access\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-hasSelected=\"hasSelected\"\n let-showOkCancelButtons=\"showOkCancelButtons\"\n let-selectedNode=\"selectedNode\"\n let-navigationArrow=\"navigationArrow\"\n let-collapseIcon=\"collapseIcon\"\n let-rtl=\"rtl\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-relationList=\"relationList\"\n let-isHetro=\"isHetro\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-selectedMo=\"selectedMo\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\n (columnClick)=\"onColumnSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'collapse-all'\"\n (click)=\"onCollapseAll()\"\n ></button>\n @if (!showOkCancelButtons) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n ></button>\n }\n </bsu-ulv-toolbar>\n <bsu-tree-view\n [rtl]=\"rtl\"\n [relationList]=\"relationList\"\n [root]=\"root\"\n [selectedMo]=\"selectedMo\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [selectedNode]=\"selectedNode\"\n [access]=\"access\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contextMenuItems]=\"contextMenuItems\"\n [moDataList]=\"moDataList\"\n [groupby]=\"groupby\"\n [isHetro]=\"isHetro\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n (checkChange)=\"onCheckChange($event)\"\n (itemDrop)=\"onDrop($event)\"\n (itemDragMoved)=\"onDragMoved($event)\"\n (nodeUlvCommand)=\"onNodeUlvCommand($event)\"\n (nodeViewClick)=\"onNodeViewClick($event)\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onNodeSelect($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (createNew)=\"onCreateNew($event)\"\n >\n </bsu-tree-view>\n <ng-template let-dialog let-dialogConfig=\"dialogConfig\" #moveDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>{{ 'Move' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"move-to\" (keydown.enter)=\"onConfirmDialog(dialogSelectedNode)\">\n <bsu-tree-view\n [rtl]=\"rtl\"\n [root]=\"root\"\n [access]=\"access\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [hasDragDrop]=\"false\"\n [selectedNode]=\"dialogSelectedNode\"\n [moDataList]=\"flatMoDataList\"\n [groupby]=\"groupby\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onSelectNodeInMoveDialog($event)\"\n ></bsu-tree-view>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'OK' | bbbTranslate\"\n (click)=\"onConfirmDialog(dialogSelectedNode)\"\n >\n </fd-button-bar>\n <fd-button-bar fd-initial-focus [label]=\"'Cancel' | bbbTranslate\" (click)=\"onDismissDialog()\">\n </fd-button-bar>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;box-sizing:border-box;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i4.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i4.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "directive", type: i5.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i6.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i8.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["allowGridColumnSort", "useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "hasSelected", "config", "hidden", "buttons", "moDataListCount"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i9.UiTreeViewComponent, selector: "bsu-tree-view", inputs: ["root", "selectedNode", "hasDragDrop", "isHetro", "relationList", "showOkCancelButtons", "collapseIcon"], outputs: ["checkChange", "nodeSelect", "createNew", "loadChildren", "nodeViewClick", "nodeUlvCommand", "itemDrop", "itemDragMoved"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.SeperatorFixPipe, name: "seperatorFix" }, { kind: "pipe", type: i10.ContextMenuPipe, name: "contextMenu" }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiTreeComponent, selector: "bsu-ui-tree", inputs: { showOkCancelButtons: "showOkCancelButtons" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"\n renderTree;\n context: {\n $implicit: root$ | async,\n moDataList: flatMoDataList,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: visibleColumns$ | async,\n groupby: groupby$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: context.Setting.View?.ConditionalFormats,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n gridSetting: gridSetting$ | async,\n contentDensity: contentDensity$ | async,\n hasSelected: hasSelected$ | async,\n showOkCancelButtons: showOkCancelButtons,\n hideOpenIcon: viewSetting?.HideOpenIcon,\n selectedNode: selectedNode$ | async,\n navigationArrow: navigationArrow$ | async,\n collapseIcon: collapseIcon$ | async,\n relationList: context.Setting.View.RelationList,\n rtl: rtl$ | async,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\n isHetro: context.Setting.ClassNames.DataClass === 'Ul.HetroTreeUlvDataCtrlr',\n selectedMo: selectedMo$ | async\n }\n \"\n></ng-container>\n\n<ng-template\n #renderTree\n let-root\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-toolbarButtons=\"toolbarButtons\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-access=\"access\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-hasSelected=\"hasSelected\"\n let-showOkCancelButtons=\"showOkCancelButtons\"\n let-selectedNode=\"selectedNode\"\n let-navigationArrow=\"navigationArrow\"\n let-collapseIcon=\"collapseIcon\"\n let-rtl=\"rtl\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-relationList=\"relationList\"\n let-isHetro=\"isHetro\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-selectedMo=\"selectedMo\"\n let-hideOpenIcon=\"hideOpenIcon\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\n (columnClick)=\"onColumnSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'collapse-all'\"\n (click)=\"onCollapseAll()\"\n ></button>\n @if (!showOkCancelButtons) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n ></button>\n }\n </bsu-ulv-toolbar>\n <bsu-ui-tree-view\n [rtl]=\"rtl\"\n [relationList]=\"relationList\"\n [root]=\"root\"\n [selectedMo]=\"selectedMo\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [selectedNode]=\"selectedNode\"\n [access]=\"access\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contextMenuItems]=\"contextMenuItems\"\n [moDataList]=\"moDataList\"\n [groupby]=\"groupby\"\n [isHetro]=\"isHetro\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n (checkChange)=\"onCheckChange($event)\"\n (itemDrop)=\"onDrop($event)\"\n (itemDragMoved)=\"onDragMoved($event)\"\n (nodeUlvCommand)=\"onNodeUlvCommand($event)\"\n (nodeViewClick)=\"onNodeViewClick($event)\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onNodeSelect($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (createNew)=\"onCreateNew($event)\"\n >\n </bsu-ui-tree-view>\n <ng-template let-dialog let-dialogConfig=\"dialogConfig\" #moveDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>{{ 'Move' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"move-to\" (keydown.enter)=\"onConfirmDialog(dialogSelectedNode)\">\n <bsu-ui-tree-view\n [rtl]=\"rtl\"\n [root]=\"root\"\n [access]=\"access\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [hasDragDrop]=\"false\"\n [selectedNode]=\"dialogSelectedNode\"\n [moDataList]=\"flatMoDataList\"\n [groupby]=\"groupby\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onSelectNodeInMoveDialog($event)\"\n ></bsu-ui-tree-view>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'OK' | bbbTranslate\"\n (click)=\"onConfirmDialog(dialogSelectedNode)\"\n >\n </fd-button-bar>\n <fd-button-bar fd-initial-focus [label]=\"'Cancel' | bbbTranslate\" (click)=\"onDismissDialog()\">\n </fd-button-bar>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;box-sizing:border-box;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i4.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i4.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "directive", type: i5.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i6.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i8.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["allowGridColumnSort", "useLayoutItemTextForControl", "enableSearch", "hideTitle", "title", "deviceName", "deviceSize", "access", "hideToolbar", "toolbarButtons", "contentDensity", "inlineEditMode", "allowInlineEdit", "gridSetting", "viewCollection", "reportView", "inDialog", "isMultiSelect", "hasSelected", "config", "hidden", "buttons", "moDataListCount"], outputs: ["search", "groupbyClick", "sortClick", "columnClick", "editModeClick", "viewClick", "createNewInlineMo"] }, { kind: "component", type: i9.UiTreeViewComponent, selector: "bsu-ui-tree-view", inputs: ["root", "selectedNode", "hasDragDrop", "isHetro", "hideOpenIcon", "relationList", "showOkCancelButtons", "collapseIcon"], outputs: ["checkChange", "nodeSelect", "createNew", "loadChildren", "nodeViewClick", "nodeUlvCommand", "itemDrop", "itemDragMoved"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.SeperatorFixPipe, name: "seperatorFix" }, { kind: "pipe", type: i10.ContextMenuPipe, name: "contextMenu" }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
85
88
|
}
|
|
86
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTreeComponent, decorators: [{
|
|
87
90
|
type: Component,
|
|
88
|
-
args: [{ selector: 'bsu-ui-tree', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"\n renderTree;\n context: {\n $implicit: root$ | async,\n moDataList: flatMoDataList,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: visibleColumns$ | async,\n groupby: groupby$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: context.Setting.View?.ConditionalFormats,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n gridSetting: gridSetting$ | async,\n contentDensity: contentDensity$ | async,\n hasSelected: hasSelected$ | async,\n showOkCancelButtons: showOkCancelButtons,\n selectedNode: selectedNode$ | async,\n navigationArrow: navigationArrow$ | async,\n collapseIcon: collapseIcon$ | async,\n relationList: context.Setting.View.RelationList,\n rtl: rtl$ | async,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\n isHetro: context.Setting.ClassNames.DataClass === 'Ul.HetroTreeUlvDataCtrlr',\n selectedMo: selectedMo$ | async\n }\n \"\n></ng-container>\n\n<ng-template\n #renderTree\n let-root\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-toolbarButtons=\"toolbarButtons\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-access=\"access\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-hasSelected=\"hasSelected\"\n let-showOkCancelButtons=\"showOkCancelButtons\"\n let-selectedNode=\"selectedNode\"\n let-navigationArrow=\"navigationArrow\"\n let-collapseIcon=\"collapseIcon\"\n let-rtl=\"rtl\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-relationList=\"relationList\"\n let-isHetro=\"isHetro\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-selectedMo=\"selectedMo\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\n (columnClick)=\"onColumnSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'collapse-all'\"\n (click)=\"onCollapseAll()\"\n ></button>\n @if (!showOkCancelButtons) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n ></button>\n }\n </bsu-ulv-toolbar>\n <bsu-tree-view\n [rtl]=\"rtl\"\n [relationList]=\"relationList\"\n [root]=\"root\"\n [selectedMo]=\"selectedMo\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [selectedNode]=\"selectedNode\"\n [access]=\"access\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contextMenuItems]=\"contextMenuItems\"\n [moDataList]=\"moDataList\"\n [groupby]=\"groupby\"\n [isHetro]=\"isHetro\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n (checkChange)=\"onCheckChange($event)\"\n (itemDrop)=\"onDrop($event)\"\n (itemDragMoved)=\"onDragMoved($event)\"\n (nodeUlvCommand)=\"onNodeUlvCommand($event)\"\n (nodeViewClick)=\"onNodeViewClick($event)\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onNodeSelect($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (createNew)=\"onCreateNew($event)\"\n >\n </bsu-tree-view>\n <ng-template let-dialog let-dialogConfig=\"dialogConfig\" #moveDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>{{ 'Move' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"move-to\" (keydown.enter)=\"onConfirmDialog(dialogSelectedNode)\">\n <bsu-tree-view\n [rtl]=\"rtl\"\n [root]=\"root\"\n [access]=\"access\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [hasDragDrop]=\"false\"\n [selectedNode]=\"dialogSelectedNode\"\n [moDataList]=\"flatMoDataList\"\n [groupby]=\"groupby\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onSelectNodeInMoveDialog($event)\"\n ></bsu-tree-view>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'OK' | bbbTranslate\"\n (click)=\"onConfirmDialog(dialogSelectedNode)\"\n >\n </fd-button-bar>\n <fd-button-bar fd-initial-focus [label]=\"'Cancel' | bbbTranslate\" (click)=\"onDismissDialog()\">\n </fd-button-bar>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;box-sizing:border-box;display:inline-block}\n"] }]
|
|
91
|
+
args: [{ selector: 'bsu-ui-tree', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"\n renderTree;\n context: {\n $implicit: root$ | async,\n moDataList: flatMoDataList,\n isCheckList: context.Setting.View?.IsCheckList,\n columns: visibleColumns$ | async,\n groupby: groupby$ | async,\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\n conditionalFormats: context.Setting.View?.ConditionalFormats,\n deviceName: deviceName$ | async,\n deviceSize: deviceSize$ | async,\n access: context.Setting.Extra?.DefaultCommandsAccess,\n title: title$ | async,\n inlineEditMode: inlineEditMode$ | async,\n allowInlineEdit: allowInlineEdit$ | async,\n hideToolbar: hideToolbar$ | async,\n gridSetting: gridSetting$ | async,\n contentDensity: contentDensity$ | async,\n hasSelected: hasSelected$ | async,\n showOkCancelButtons: showOkCancelButtons,\n hideOpenIcon: viewSetting?.HideOpenIcon,\n selectedNode: selectedNode$ | async,\n navigationArrow: navigationArrow$ | async,\n collapseIcon: collapseIcon$ | async,\n relationList: context.Setting.View.RelationList,\n rtl: rtl$ | async,\n inDialog: inDialog$ | async,\n isMultiSelect: isMultiSelect$ | async,\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\n isHetro: context.Setting.ClassNames.DataClass === 'Ul.HetroTreeUlvDataCtrlr',\n selectedMo: selectedMo$ | async\n }\n \"\n></ng-container>\n\n<ng-template\n #renderTree\n let-root\n let-moDataList=\"moDataList\"\n let-deviceName=\"deviceName\"\n let-deviceSize=\"deviceSize\"\n let-toolbarButtons=\"toolbarButtons\"\n let-title=\"title\"\n let-inlineEditMode=\"inlineEditMode\"\n let-allowInlineEdit=\"allowInlineEdit\"\n let-hideToolbar=\"hideToolbar\"\n let-gridSetting=\"gridSetting\"\n let-contentDensity=\"contentDensity\"\n let-access=\"access\"\n let-contextMenuItems=\"contextMenuItems\"\n let-conditionalFormats=\"conditionalFormats\"\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-hasSelected=\"hasSelected\"\n let-showOkCancelButtons=\"showOkCancelButtons\"\n let-selectedNode=\"selectedNode\"\n let-navigationArrow=\"navigationArrow\"\n let-collapseIcon=\"collapseIcon\"\n let-rtl=\"rtl\"\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\n let-relationList=\"relationList\"\n let-isHetro=\"isHetro\"\n let-inDialog=\"inDialog\"\n let-isMultiSelect=\"isMultiSelect\"\n let-selectedMo=\"selectedMo\"\n let-hideOpenIcon=\"hideOpenIcon\"\n>\n <bsu-ulv-toolbar\n [hideToolbar]=\"hideToolbar\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"toolbarButtons\"\n [gridSetting]=\"gridSetting\"\n [title]=\"title\"\n [hasSelected]=\"hasSelected\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [moDataListCount]=\"moDataList.length\"\n (sortClick)=\"onSortSettings(deviceName)\"\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\n (columnClick)=\"onColumnSettings(deviceName)\"\n (editModeClick)=\"onEditMode()\"\n >\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'collapse-all'\"\n (click)=\"onCollapseAll()\"\n ></button>\n @if (!showOkCancelButtons) {\n <button\n fd-button\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n ></button>\n }\n </bsu-ulv-toolbar>\n <bsu-ui-tree-view\n [rtl]=\"rtl\"\n [relationList]=\"relationList\"\n [root]=\"root\"\n [selectedMo]=\"selectedMo\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [selectedNode]=\"selectedNode\"\n [access]=\"access\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [contextMenuItems]=\"contextMenuItems\"\n [moDataList]=\"moDataList\"\n [groupby]=\"groupby\"\n [isHetro]=\"isHetro\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n (checkChange)=\"onCheckChange($event)\"\n (itemDrop)=\"onDrop($event)\"\n (itemDragMoved)=\"onDragMoved($event)\"\n (nodeUlvCommand)=\"onNodeUlvCommand($event)\"\n (nodeViewClick)=\"onNodeViewClick($event)\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onNodeSelect($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (createNew)=\"onCreateNew($event)\"\n >\n </bsu-ui-tree-view>\n <ng-template let-dialog let-dialogConfig=\"dialogConfig\" #moveDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>{{ 'Move' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <div class=\"move-to\" (keydown.enter)=\"onConfirmDialog(dialogSelectedNode)\">\n <bsu-ui-tree-view\n [rtl]=\"rtl\"\n [root]=\"root\"\n [access]=\"access\"\n [navigationArrow]=\"navigationArrow\"\n [collapseIcon]=\"collapseIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [hasDragDrop]=\"false\"\n [selectedNode]=\"dialogSelectedNode\"\n [moDataList]=\"flatMoDataList\"\n [groupby]=\"groupby\"\n [isCheckList]=\"isCheckList\"\n [conditionalFormats]=\"conditionalFormats\"\n (loadChildren)=\"onLoadChildren($event)\"\n (nodeSelect)=\"onSelectNodeInMoveDialog($event)\"\n ></bsu-ui-tree-view>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'OK' | bbbTranslate\"\n (click)=\"onConfirmDialog(dialogSelectedNode)\"\n >\n </fd-button-bar>\n <fd-button-bar fd-initial-focus [label]=\"'Cancel' | bbbTranslate\" (click)=\"onDismissDialog()\">\n </fd-button-bar>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;box-sizing:border-box;display:inline-block}\n"] }]
|
|
89
92
|
}], propDecorators: { showOkCancelButtons: [{
|
|
90
93
|
type: Input
|
|
91
94
|
}] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10cmVlL3VpLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdHJlZS91aS10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTyxlQUFnQixTQUFRLHVCQUF1QjtJQUl4RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSTtRQUM5QywrRUFBK0U7UUFDL0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDcEIsQ0FBQztJQUNOLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVB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OEJBR3RDLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVHJlZU5vZGVPYmogfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXBvcnRUcmVlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC10cmVlLWJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS10cmVlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktdHJlZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktdHJlZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpVHJlZUNvbXBvbmVudCBleHRlbmRzIFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBzaG93T2tDYW5jZWxCdXR0b25zO1xuICAgIGNvbGxhcHNlSWNvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmNvbGxhcHNlSWNvbiQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnJ0bCQucGlwZShcbiAgICAgICAgICAgIC8vIG1hcCgoaXNSdGwpID0+IChpc1J0bCA/ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnIDogJ25hdmlnYXRpb24tcmlnaHQtYXJyb3cnKSlcbiAgICAgICAgICAgIG1hcCgoXykgPT4gJ2FkZCcpXG4gICAgICAgICk7XG4gICAgfVxuICAgIG9uRHJvcCgkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcm9wKCRldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnTW92ZWQoJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJhZ01vdmVkKCRldmVudCk7XG4gICAgfVxuXG4gICAgb25Db2xsYXBzZUFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZUFsbCgpO1xuICAgIH1cblxuICAgIG9uT3Blbk1vdmVUb0RpYWxvZyhzZWxlY3RlZE5vZGUsIGRldmljZSwgbW92ZURpYWxvZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5Nb3ZlVG9EaWFsb2coc2VsZWN0ZWROb2RlLCBkZXZpY2UsIG1vdmVEaWFsb2cpO1xuICAgIH1cblxuICAgIG9uQ29uZmlybURpYWxvZyhkaWFsb2dTZWxlY3RlZE5vZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb25maXJtRGlhbG9nKGRpYWxvZ1NlbGVjdGVkTm9kZSk7XG4gICAgfVxuXG4gICAgb25EaXNtaXNzRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc21pc3NEaWFsb2coKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdE5vZGVJbk1vdmVEaWFsb2coJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0Tm9kZUluTW92ZURpYWxvZygkZXZlbnQpO1xuICAgIH1cbiAgICBvbkNoZWNrQ2hhbmdlKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyOyBjaGVja2VkOiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkTm9kZTogVHJlZU5vZGVPYmogfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKGV2LmNoZWNrZWQpIHtcbiAgICAgICAgICAgIGV2Lm5vZGUuRGF0YS4kSXNDaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNlbGVjdGVkTm9kZSA9IGV2Lm5vZGU7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuc2VsTm9kZSA9IHNlbGVjdGVkTm9kZTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd3NlbGVjdCcsIHRoaXMuY29udGV4dCwgZXYuaW5kZXgsIGV2Lm5vZGUuRGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBldi5ub2RlLkRhdGEuJElzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLm1vRGF0YUxpc3QuZmluZCgoYykgPT4gYy4kSXNDaGVja2VkKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5zZWxOb2RlID0gZXYubm9kZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChldi5ub2RlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdyb3dkZXNlbGVjdCcsIHRoaXMuY29udGV4dCwgZXYuaW5kZXgsIGV2Lm5vZGUuRGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWROb2RlU291cmNlLm5leHQoc2VsZWN0ZWROb2RlKTtcbiAgICAgICAgdGhpcy5fcmViaW5kUm9vdCgpO1xuICAgIH1cbiAgICBvbk5vZGVTZWxlY3QoZXY6IHsgbm9kZTogVHJlZU5vZGVPYmo7IGluZGV4OiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0LnNlbE5vZGUgPT09IGV2Lm5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rlc2VsZWN0Tm9kZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0Tm9kZShldi5ub2RlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZWJpbmRSb290KCk7XG4gICAgfVxuXG4gICAgb25Ob2RlVWx2Q29tbWFuZChldjogeyBub2RlOiBUcmVlTm9kZU9iajsgaW5kZXg6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VsdkNvbW1hbmRDbGlja2VkKGV2Lm5vZGUuRGF0YSwgZXYuaW5kZXgpO1xuICAgIH1cblxuICAgIG9uTm9kZVZpZXdDbGljayhldjogeyBub2RlOiBUcmVlTm9kZU9iajsgaW5kZXg6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JhaXNlUm93Q2xpY2soZXYuaW5kZXgsIGV2Lm5vZGUpO1xuICAgIH1cblxuICAgIG9uTG9hZENoaWxkcmVuKG5vZGU6IFRyZWVOb2RlT2JqKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZENoaWxkcmVuKG5vZGUpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICByZW5kZXJUcmVlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IHJvb3QkIHwgYXN5bmMsXG4gICAgICAgICAgICBtb0RhdGFMaXN0OiBmbGF0TW9EYXRhTGlzdCxcbiAgICAgICAgICAgIGlzQ2hlY2tMaXN0OiBjb250ZXh0LlNldHRpbmcuVmlldz8uSXNDaGVja0xpc3QsXG4gICAgICAgICAgICBjb2x1bW5zOiB2aXNpYmxlQ29sdW1ucyQgfCBhc3luYyxcbiAgICAgICAgICAgIGdyb3VwYnk6IGdyb3VwYnkkIHwgYXN5bmMsXG4gICAgICAgICAgICB0b29sYmFyQnV0dG9uczogKHRvb2xiYXJCdXR0b25zJCB8IGFzeW5jKSEhIHwgc2VwZXJhdG9yRml4LFxuICAgICAgICAgICAgY29udGV4dE1lbnVJdGVtczogbWVudUl0ZW1zJCB8IGFzeW5jIHwgY29udGV4dE1lbnU6IGNvbnRleHQuU2V0dGluZy5WaWV3Py5Jc0NoZWNrTGlzdCxcbiAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29udGV4dC5TZXR0aW5nLlZpZXc/LkNvbmRpdGlvbmFsRm9ybWF0cyxcbiAgICAgICAgICAgIGRldmljZU5hbWU6IGRldmljZU5hbWUkIHwgYXN5bmMsXG4gICAgICAgICAgICBkZXZpY2VTaXplOiBkZXZpY2VTaXplJCB8IGFzeW5jLFxuICAgICAgICAgICAgYWNjZXNzOiBjb250ZXh0LlNldHRpbmcuRXh0cmE/LkRlZmF1bHRDb21tYW5kc0FjY2VzcyxcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGFsbG93SW5saW5lRWRpdDogYWxsb3dJbmxpbmVFZGl0JCB8IGFzeW5jLFxuICAgICAgICAgICAgaGlkZVRvb2xiYXI6IGhpZGVUb29sYmFyJCB8IGFzeW5jLFxuICAgICAgICAgICAgZ3JpZFNldHRpbmc6IGdyaWRTZXR0aW5nJCB8IGFzeW5jLFxuICAgICAgICAgICAgY29udGVudERlbnNpdHk6IGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jLFxuICAgICAgICAgICAgaGFzU2VsZWN0ZWQ6IGhhc1NlbGVjdGVkJCB8IGFzeW5jLFxuICAgICAgICAgICAgc2hvd09rQ2FuY2VsQnV0dG9uczogc2hvd09rQ2FuY2VsQnV0dG9ucyxcbiAgICAgICAgICAgIHNlbGVjdGVkTm9kZTogc2VsZWN0ZWROb2RlJCB8IGFzeW5jLFxuICAgICAgICAgICAgbmF2aWdhdGlvbkFycm93OiBuYXZpZ2F0aW9uQXJyb3ckIHwgYXN5bmMsXG4gICAgICAgICAgICBjb2xsYXBzZUljb246IGNvbGxhcHNlSWNvbiQgfCBhc3luYyxcbiAgICAgICAgICAgIHJlbGF0aW9uTGlzdDogY29udGV4dC5TZXR0aW5nLlZpZXcuUmVsYXRpb25MaXN0LFxuICAgICAgICAgICAgcnRsOiBydGwkIHwgYXN5bmMsXG4gICAgICAgICAgICBpbkRpYWxvZzogaW5EaWFsb2ckIHwgYXN5bmMsXG4gICAgICAgICAgICBpc011bHRpU2VsZWN0OiBpc011bHRpU2VsZWN0JCB8IGFzeW5jLFxuICAgICAgICAgICAgZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU6IHZpZXdTZXR0aW5nPy5EaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudSxcbiAgICAgICAgICAgIGlzSGV0cm86IGNvbnRleHQuU2V0dGluZy5DbGFzc05hbWVzLkRhdGFDbGFzcyA9PT0gJ1VsLkhldHJvVHJlZVVsdkRhdGFDdHJscicsXG4gICAgICAgICAgICBzZWxlY3RlZE1vOiBzZWxlY3RlZE1vJCB8IGFzeW5jXG4gICAgICAgIH1cbiAgICBcIlxuPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGVcbiAgICAjcmVuZGVyVHJlZVxuICAgIGxldC1yb290XG4gICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICBsZXQtZGV2aWNlTmFtZT1cImRldmljZU5hbWVcIlxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXG4gICAgbGV0LXRvb2xiYXJCdXR0b25zPVwidG9vbGJhckJ1dHRvbnNcIlxuICAgIGxldC10aXRsZT1cInRpdGxlXCJcbiAgICBsZXQtaW5saW5lRWRpdE1vZGU9XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgbGV0LWFsbG93SW5saW5lRWRpdD1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgbGV0LWhpZGVUb29sYmFyPVwiaGlkZVRvb2xiYXJcIlxuICAgIGxldC1ncmlkU2V0dGluZz1cImdyaWRTZXR0aW5nXCJcbiAgICBsZXQtY29udGVudERlbnNpdHk9XCJjb250ZW50RGVuc2l0eVwiXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXG4gICAgbGV0LWNvbnRleHRNZW51SXRlbXM9XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICBsZXQtY29uZGl0aW9uYWxGb3JtYXRzPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBsZXQtaXNDaGVja0xpc3Q9XCJpc0NoZWNrTGlzdFwiXG4gICAgbGV0LWdyb3VwYnk9XCJncm91cGJ5XCJcbiAgICBsZXQtaGFzU2VsZWN0ZWQ9XCJoYXNTZWxlY3RlZFwiXG4gICAgbGV0LXNob3dPa0NhbmNlbEJ1dHRvbnM9XCJzaG93T2tDYW5jZWxCdXR0b25zXCJcbiAgICBsZXQtc2VsZWN0ZWROb2RlPVwic2VsZWN0ZWROb2RlXCJcbiAgICBsZXQtbmF2aWdhdGlvbkFycm93PVwibmF2aWdhdGlvbkFycm93XCJcbiAgICBsZXQtY29sbGFwc2VJY29uPVwiY29sbGFwc2VJY29uXCJcbiAgICBsZXQtcnRsPVwicnRsXCJcbiAgICBsZXQtZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU9XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgbGV0LXJlbGF0aW9uTGlzdD1cInJlbGF0aW9uTGlzdFwiXG4gICAgbGV0LWlzSGV0cm89XCJpc0hldHJvXCJcbiAgICBsZXQtaW5EaWFsb2c9XCJpbkRpYWxvZ1wiXG4gICAgbGV0LWlzTXVsdGlTZWxlY3Q9XCJpc011bHRpU2VsZWN0XCJcbiAgICBsZXQtc2VsZWN0ZWRNbz1cInNlbGVjdGVkTW9cIlxuPlxuICAgIDxic3UtdWx2LXRvb2xiYXJcbiAgICAgICAgW2hpZGVUb29sYmFyXT1cImhpZGVUb29sYmFyXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbdG9vbGJhckJ1dHRvbnNdPVwidG9vbGJhckJ1dHRvbnNcIlxuICAgICAgICBbZ3JpZFNldHRpbmddPVwiZ3JpZFNldHRpbmdcIlxuICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgICBbaGFzU2VsZWN0ZWRdPVwiaGFzU2VsZWN0ZWRcIlxuICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICBbaXNNdWx0aVNlbGVjdF09XCJpc011bHRpU2VsZWN0XCJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgW2FsbG93SW5saW5lRWRpdF09XCJhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICBbbW9EYXRhTGlzdENvdW50XT1cIm1vRGF0YUxpc3QubGVuZ3RoXCJcbiAgICAgICAgKHNvcnRDbGljayk9XCJvblNvcnRTZXR0aW5ncyhkZXZpY2VOYW1lKVwiXG4gICAgICAgIChncm91cGJ5Q2xpY2spPVwib25Hcm91cGJ5U2V0dGluZ3MoZGV2aWNlTmFtZSlcIlxuICAgICAgICAoY29sdW1uQ2xpY2spPVwib25Db2x1bW5TZXR0aW5ncyhkZXZpY2VOYW1lKVwiXG4gICAgICAgIChlZGl0TW9kZUNsaWNrKT1cIm9uRWRpdE1vZGUoKVwiXG4gICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCInY29sbGFwc2UtYWxsJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZUFsbCgpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICBAaWYgKCFzaG93T2tDYW5jZWxCdXR0b25zKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgW2dseXBoXT1cIidtb3ZlJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25PcGVuTW92ZVRvRGlhbG9nKHNlbGVjdGVkTm9kZSwgZGV2aWNlTmFtZSwgbW92ZURpYWxvZylcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIH1cbiAgICA8L2JzdS11bHYtdG9vbGJhcj5cbiAgICA8YnN1LXRyZWUtdmlld1xuICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgIFtyZWxhdGlvbkxpc3RdPVwicmVsYXRpb25MaXN0XCJcbiAgICAgICAgW3Jvb3RdPVwicm9vdFwiXG4gICAgICAgIFtzZWxlY3RlZE1vXT1cInNlbGVjdGVkTW9cIlxuICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgIFtjb2xsYXBzZUljb25dPVwiY29sbGFwc2VJY29uXCJcbiAgICAgICAgW3NlbGVjdGVkTm9kZV09XCJzZWxlY3RlZE5vZGVcIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW2luRGlhbG9nXT1cImluRGlhbG9nXCJcbiAgICAgICAgW2lzTXVsdGlTZWxlY3RdPVwiaXNNdWx0aVNlbGVjdFwiXG4gICAgICAgIFtjb250ZXh0TWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICBbbW9EYXRhTGlzdF09XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgW2dyb3VwYnldPVwiZ3JvdXBieVwiXG4gICAgICAgIFtpc0hldHJvXT1cImlzSGV0cm9cIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtzaG93T2tDYW5jZWxCdXR0b25zXT1cInNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgICAgICAoY2hlY2tDaGFuZ2UpPVwib25DaGVja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGl0ZW1Ecm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICAgKGl0ZW1EcmFnTW92ZWQpPVwib25EcmFnTW92ZWQoJGV2ZW50KVwiXG4gICAgICAgIChub2RlVWx2Q29tbWFuZCk9XCJvbk5vZGVVbHZDb21tYW5kKCRldmVudClcIlxuICAgICAgICAobm9kZVZpZXdDbGljayk9XCJvbk5vZGVWaWV3Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChsb2FkQ2hpbGRyZW4pPVwib25Mb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgIChub2RlU2VsZWN0KT1cIm9uTm9kZVNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgKHJvd0NoZWNrKT1cIm9uUm93Q2hlY2soJGV2ZW50KVwiXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAoYWxsQ2hlY2tib3gpPVwib25BbGxDaGVja2JveCgkZXZlbnQpXCJcbiAgICAgICAgKGV4cGFuZENsaWNrKT1cIm9uRXhwYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxTYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgIChjcmVhdGVOZXcpPVwib25DcmVhdGVOZXcoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYnN1LXRyZWUtdmlldz5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI21vdmVEaWFsb2c+XG4gICAgICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGgxIGZkLXRpdGxlPnt7ICdNb3ZlJyB8IGJiYlRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygnQ2xvc2UgYnV0dG9uJylcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXRvXCIgKGtleWRvd24uZW50ZXIpPVwib25Db25maXJtRGlhbG9nKGRpYWxvZ1NlbGVjdGVkTm9kZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJzdS10cmVlLXZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb290XT1cInJvb3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxhcHNlSWNvbl09XCJjb2xsYXBzZUljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoYXNEcmFnRHJvcF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWROb2RlXT1cImRpYWxvZ1NlbGVjdGVkTm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbW9EYXRhTGlzdF09XCJmbGF0TW9EYXRhTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBieV09XCJncm91cGJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uTG9hZENoaWxkcmVuKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGVTZWxlY3QpPVwib25TZWxlY3ROb2RlSW5Nb3ZlRGlhbG9nKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtdHJlZS12aWV3PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICAgICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ09LJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ29uZmlybURpYWxvZyhkaWFsb2dTZWxlY3RlZE5vZGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGZkLWluaXRpYWwtZm9jdXMgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCIgKGNsaWNrKT1cIm9uRGlzbWlzc0RpYWxvZygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10cmVlL3VpLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdHJlZS91aS10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTyxlQUFnQixTQUFRLHVCQUF1QjtJQUl4RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSTtRQUM5QywrRUFBK0U7UUFDL0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDcEIsQ0FBQztJQUNOLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVB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LHUwUEE4TEE7OzJGRGpMYSxlQUFlO2tCQU4zQixTQUFTOytCQUNJLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUcmVlTm9kZU9iaiB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LXRyZWUtYmFzZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVpLXRyZWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS10cmVlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlUcmVlQ29tcG9uZW50IGV4dGVuZHMgUmVwb3J0VHJlZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHNob3dPa0NhbmNlbEJ1dHRvbnM7XG4gICAgY29sbGFwc2VJY29uJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuY29sbGFwc2VJY29uJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UucnRsJC5waXBlKFxuICAgICAgICAgICAgLy8gbWFwKChpc1J0bCkgPT4gKGlzUnRsID8gJ25hdmlnYXRpb24tbGVmdC1hcnJvdycgOiAnbmF2aWdhdGlvbi1yaWdodC1hcnJvdycpKVxuICAgICAgICAgICAgbWFwKChfKSA9PiAnYWRkJylcbiAgICAgICAgKTtcbiAgICB9XG4gICAgb25Ecm9wKCRldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3AoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdNb3ZlZCgkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcmFnTW92ZWQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkNvbGxhcHNlQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbGxhcHNlQWxsKCk7XG4gICAgfVxuXG4gICAgb25PcGVuTW92ZVRvRGlhbG9nKHNlbGVjdGVkTm9kZSwgZGV2aWNlLCBtb3ZlRGlhbG9nKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbk1vdmVUb0RpYWxvZyhzZWxlY3RlZE5vZGUsIGRldmljZSwgbW92ZURpYWxvZyk7XG4gICAgfVxuXG4gICAgb25Db25maXJtRGlhbG9nKGRpYWxvZ1NlbGVjdGVkTm9kZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpcm1EaWFsb2coZGlhbG9nU2VsZWN0ZWROb2RlKTtcbiAgICB9XG5cbiAgICBvbkRpc21pc3NEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzbWlzc0RpYWxvZygpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0Tm9kZUluTW92ZURpYWxvZygkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3ROb2RlSW5Nb3ZlRGlhbG9nKCRldmVudCk7XG4gICAgfVxuICAgIG9uQ2hlY2tDaGFuZ2UoZXY6IHsgbm9kZTogVHJlZU5vZGVPYmo7IGluZGV4OiBudW1iZXI7IGNoZWNrZWQ6IGJvb2xlYW4gfSk6IHZvaWQge1xuICAgICAgICBsZXQgc2VsZWN0ZWROb2RlOiBUcmVlTm9kZU9iaiB8IG51bGwgPSBudWxsO1xuICAgICAgICBpZiAoZXYuY2hlY2tlZCkge1xuICAgICAgICAgICAgZXYubm9kZS5EYXRhLiRJc0NoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgc2VsZWN0ZWROb2RlID0gZXYubm9kZTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5zZWxOb2RlID0gc2VsZWN0ZWROb2RlO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93c2VsZWN0JywgdGhpcy5jb250ZXh0LCBldi5pbmRleCwgZXYubm9kZS5EYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV2Lm5vZGUuRGF0YS4kSXNDaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMubW9EYXRhTGlzdC5maW5kKChjKSA9PiBjLiRJc0NoZWNrZWQpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnNlbE5vZGUgPSBldi5ub2RlO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTm9kZVNvdXJjZS5uZXh0KGV2Lm5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd2Rlc2VsZWN0JywgdGhpcy5jb250ZXh0LCBldi5pbmRleCwgZXYubm9kZS5EYXRhKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChzZWxlY3RlZE5vZGUpO1xuICAgICAgICB0aGlzLl9yZWJpbmRSb290KCk7XG4gICAgfVxuICAgIG9uTm9kZVNlbGVjdChldjogeyBub2RlOiBUcmVlTm9kZU9iajsgaW5kZXg6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQuc2VsTm9kZSA9PT0gZXYubm9kZSkge1xuICAgICAgICAgICAgdGhpcy5fZGVzZWxlY3ROb2RlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3ROb2RlKGV2Lm5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlYmluZFJvb3QoKTtcbiAgICB9XG5cbiAgICBvbk5vZGVVbHZDb21tYW5kKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdWx2Q29tbWFuZENsaWNrZWQoZXYubm9kZS5EYXRhLCBldi5pbmRleCk7XG4gICAgfVxuXG4gICAgb25Ob2RlVmlld0NsaWNrKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmlld1NldHRpbmc/LkRpc2FibGVTaG93Rm9ybU9uRG91YmxlQ2xpY2spIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yYWlzZVJvd0NsaWNrKGV2LmluZGV4LCBldi5ub2RlKTtcbiAgICB9XG5cbiAgICBvbkxvYWRDaGlsZHJlbihub2RlOiBUcmVlTm9kZU9iaik6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbihub2RlKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgcmVuZGVyVHJlZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OiByb290JCB8IGFzeW5jLFxuICAgICAgICAgICAgbW9EYXRhTGlzdDogZmxhdE1vRGF0YUxpc3QsXG4gICAgICAgICAgICBpc0NoZWNrTGlzdDogY29udGV4dC5TZXR0aW5nLlZpZXc/LklzQ2hlY2tMaXN0LFxuICAgICAgICAgICAgY29sdW1uczogdmlzaWJsZUNvbHVtbnMkIHwgYXN5bmMsXG4gICAgICAgICAgICBncm91cGJ5OiBncm91cGJ5JCB8IGFzeW5jLFxuICAgICAgICAgICAgdG9vbGJhckJ1dHRvbnM6ICh0b29sYmFyQnV0dG9ucyQgfCBhc3luYykhISB8IHNlcGVyYXRvckZpeCxcbiAgICAgICAgICAgIGNvbnRleHRNZW51SXRlbXM6IG1lbnVJdGVtcyQgfCBhc3luYyB8IGNvbnRleHRNZW51OiBjb250ZXh0LlNldHRpbmcuVmlldz8uSXNDaGVja0xpc3QsXG4gICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbnRleHQuU2V0dGluZy5WaWV3Py5Db25kaXRpb25hbEZvcm1hdHMsXG4gICAgICAgICAgICBkZXZpY2VOYW1lOiBkZXZpY2VOYW1lJCB8IGFzeW5jLFxuICAgICAgICAgICAgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSQgfCBhc3luYyxcbiAgICAgICAgICAgIGFjY2VzczogY29udGV4dC5TZXR0aW5nLkV4dHJhPy5EZWZhdWx0Q29tbWFuZHNBY2Nlc3MsXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUkIHwgYXN5bmMsXG4gICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUkIHwgYXN5bmMsXG4gICAgICAgICAgICBhbGxvd0lubGluZUVkaXQ6IGFsbG93SW5saW5lRWRpdCQgfCBhc3luYyxcbiAgICAgICAgICAgIGhpZGVUb29sYmFyOiBoaWRlVG9vbGJhciQgfCBhc3luYyxcbiAgICAgICAgICAgIGdyaWRTZXR0aW5nOiBncmlkU2V0dGluZyQgfCBhc3luYyxcbiAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5OiBjb250ZW50RGVuc2l0eSQgfCBhc3luYyxcbiAgICAgICAgICAgIGhhc1NlbGVjdGVkOiBoYXNTZWxlY3RlZCQgfCBhc3luYyxcbiAgICAgICAgICAgIHNob3dPa0NhbmNlbEJ1dHRvbnM6IHNob3dPa0NhbmNlbEJ1dHRvbnMsXG4gICAgICAgICAgICBoaWRlT3Blbkljb246IHZpZXdTZXR0aW5nPy5IaWRlT3Blbkljb24sXG4gICAgICAgICAgICBzZWxlY3RlZE5vZGU6IHNlbGVjdGVkTm9kZSQgfCBhc3luYyxcbiAgICAgICAgICAgIG5hdmlnYXRpb25BcnJvdzogbmF2aWdhdGlvbkFycm93JCB8IGFzeW5jLFxuICAgICAgICAgICAgY29sbGFwc2VJY29uOiBjb2xsYXBzZUljb24kIHwgYXN5bmMsXG4gICAgICAgICAgICByZWxhdGlvbkxpc3Q6IGNvbnRleHQuU2V0dGluZy5WaWV3LlJlbGF0aW9uTGlzdCxcbiAgICAgICAgICAgIHJ0bDogcnRsJCB8IGFzeW5jLFxuICAgICAgICAgICAgaW5EaWFsb2c6IGluRGlhbG9nJCB8IGFzeW5jLFxuICAgICAgICAgICAgaXNNdWx0aVNlbGVjdDogaXNNdWx0aVNlbGVjdCQgfCBhc3luYyxcbiAgICAgICAgICAgIGRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51OiB2aWV3U2V0dGluZz8uRGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnUsXG4gICAgICAgICAgICBpc0hldHJvOiBjb250ZXh0LlNldHRpbmcuQ2xhc3NOYW1lcy5EYXRhQ2xhc3MgPT09ICdVbC5IZXRyb1RyZWVVbHZEYXRhQ3RybHInLFxuICAgICAgICAgICAgc2VsZWN0ZWRNbzogc2VsZWN0ZWRNbyQgfCBhc3luY1xuICAgICAgICB9XG4gICAgXCJcbj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlXG4gICAgI3JlbmRlclRyZWVcbiAgICBsZXQtcm9vdFxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXG4gICAgbGV0LWRldmljZU5hbWU9XCJkZXZpY2VOYW1lXCJcbiAgICBsZXQtZGV2aWNlU2l6ZT1cImRldmljZVNpemVcIlxuICAgIGxldC10b29sYmFyQnV0dG9ucz1cInRvb2xiYXJCdXR0b25zXCJcbiAgICBsZXQtdGl0bGU9XCJ0aXRsZVwiXG4gICAgbGV0LWlubGluZUVkaXRNb2RlPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgIGxldC1hbGxvd0lubGluZUVkaXQ9XCJhbGxvd0lubGluZUVkaXRcIlxuICAgIGxldC1oaWRlVG9vbGJhcj1cImhpZGVUb29sYmFyXCJcbiAgICBsZXQtZ3JpZFNldHRpbmc9XCJncmlkU2V0dGluZ1wiXG4gICAgbGV0LWNvbnRlbnREZW5zaXR5PVwiY29udGVudERlbnNpdHlcIlxuICAgIGxldC1hY2Nlc3M9XCJhY2Nlc3NcIlxuICAgIGxldC1jb250ZXh0TWVudUl0ZW1zPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgbGV0LWNvbmRpdGlvbmFsRm9ybWF0cz1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgbGV0LWlzQ2hlY2tMaXN0PVwiaXNDaGVja0xpc3RcIlxuICAgIGxldC1ncm91cGJ5PVwiZ3JvdXBieVwiXG4gICAgbGV0LWhhc1NlbGVjdGVkPVwiaGFzU2VsZWN0ZWRcIlxuICAgIGxldC1zaG93T2tDYW5jZWxCdXR0b25zPVwic2hvd09rQ2FuY2VsQnV0dG9uc1wiXG4gICAgbGV0LXNlbGVjdGVkTm9kZT1cInNlbGVjdGVkTm9kZVwiXG4gICAgbGV0LW5hdmlnYXRpb25BcnJvdz1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgbGV0LWNvbGxhcHNlSWNvbj1cImNvbGxhcHNlSWNvblwiXG4gICAgbGV0LXJ0bD1cInJ0bFwiXG4gICAgbGV0LWRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51PVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgIGxldC1yZWxhdGlvbkxpc3Q9XCJyZWxhdGlvbkxpc3RcIlxuICAgIGxldC1pc0hldHJvPVwiaXNIZXRyb1wiXG4gICAgbGV0LWluRGlhbG9nPVwiaW5EaWFsb2dcIlxuICAgIGxldC1pc011bHRpU2VsZWN0PVwiaXNNdWx0aVNlbGVjdFwiXG4gICAgbGV0LXNlbGVjdGVkTW89XCJzZWxlY3RlZE1vXCJcbiAgICBsZXQtaGlkZU9wZW5JY29uPVwiaGlkZU9wZW5JY29uXCJcbj5cbiAgICA8YnN1LXVsdi10b29sYmFyXG4gICAgICAgIFtoaWRlVG9vbGJhcl09XCJoaWRlVG9vbGJhclwiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW3Rvb2xiYXJCdXR0b25zXT1cInRvb2xiYXJCdXR0b25zXCJcbiAgICAgICAgW2dyaWRTZXR0aW5nXT1cImdyaWRTZXR0aW5nXCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgW2hhc1NlbGVjdGVkXT1cImhhc1NlbGVjdGVkXCJcbiAgICAgICAgW2luRGlhbG9nXT1cImluRGlhbG9nXCJcbiAgICAgICAgW2lzTXVsdGlTZWxlY3RdPVwiaXNNdWx0aVNlbGVjdFwiXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Lmxlbmd0aFwiXG4gICAgICAgIChzb3J0Q2xpY2spPVwib25Tb3J0U2V0dGluZ3MoZGV2aWNlTmFtZSlcIlxuICAgICAgICAoZ3JvdXBieUNsaWNrKT1cIm9uR3JvdXBieVNldHRpbmdzKGRldmljZU5hbWUpXCJcbiAgICAgICAgKGNvbHVtbkNsaWNrKT1cIm9uQ29sdW1uU2V0dGluZ3MoZGV2aWNlTmFtZSlcIlxuICAgICAgICAoZWRpdE1vZGVDbGljayk9XCJvbkVkaXRNb2RlKClcIlxuICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiJ2NvbGxhcHNlLWFsbCdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VBbGwoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgQGlmICghc2hvd09rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCInbW92ZSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uT3Blbk1vdmVUb0RpYWxvZyhzZWxlY3RlZE5vZGUsIGRldmljZU5hbWUsIG1vdmVEaWFsb2cpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9ic3UtdWx2LXRvb2xiYXI+XG4gICAgPGJzdS11aS10cmVlLXZpZXdcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbcmVsYXRpb25MaXN0XT1cInJlbGF0aW9uTGlzdFwiXG4gICAgICAgIFtyb290XT1cInJvb3RcIlxuICAgICAgICBbc2VsZWN0ZWRNb109XCJzZWxlY3RlZE1vXCJcbiAgICAgICAgW2hpZGVPcGVuSWNvbl09XCJoaWRlT3Blbkljb25cIlxuICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgIFtjb2xsYXBzZUljb25dPVwiY29sbGFwc2VJY29uXCJcbiAgICAgICAgW3NlbGVjdGVkTm9kZV09XCJzZWxlY3RlZE5vZGVcIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW2luRGlhbG9nXT1cImluRGlhbG9nXCJcbiAgICAgICAgW2lzTXVsdGlTZWxlY3RdPVwiaXNNdWx0aVNlbGVjdFwiXG4gICAgICAgIFtjb250ZXh0TWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICBbbW9EYXRhTGlzdF09XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgW2dyb3VwYnldPVwiZ3JvdXBieVwiXG4gICAgICAgIFtpc0hldHJvXT1cImlzSGV0cm9cIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtzaG93T2tDYW5jZWxCdXR0b25zXT1cInNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgICAgICAoY2hlY2tDaGFuZ2UpPVwib25DaGVja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGl0ZW1Ecm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICAgKGl0ZW1EcmFnTW92ZWQpPVwib25EcmFnTW92ZWQoJGV2ZW50KVwiXG4gICAgICAgIChub2RlVWx2Q29tbWFuZCk9XCJvbk5vZGVVbHZDb21tYW5kKCRldmVudClcIlxuICAgICAgICAobm9kZVZpZXdDbGljayk9XCJvbk5vZGVWaWV3Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChsb2FkQ2hpbGRyZW4pPVwib25Mb2FkQ2hpbGRyZW4oJGV2ZW50KVwiXG4gICAgICAgIChub2RlU2VsZWN0KT1cIm9uTm9kZVNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgKHJvd0NoZWNrKT1cIm9uUm93Q2hlY2soJGV2ZW50KVwiXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAoYWxsQ2hlY2tib3gpPVwib25BbGxDaGVja2JveCgkZXZlbnQpXCJcbiAgICAgICAgKGV4cGFuZENsaWNrKT1cIm9uRXhwYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxTYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgIChjcmVhdGVOZXcpPVwib25DcmVhdGVOZXcoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYnN1LXVpLXRyZWUtdmlldz5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI21vdmVEaWFsb2c+XG4gICAgICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGgxIGZkLXRpdGxlPnt7ICdNb3ZlJyB8IGJiYlRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygnQ2xvc2UgYnV0dG9uJylcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXRvXCIgKGtleWRvd24uZW50ZXIpPVwib25Db25maXJtRGlhbG9nKGRpYWxvZ1NlbGVjdGVkTm9kZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJzdS11aS10cmVlLXZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb290XT1cInJvb3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxhcHNlSWNvbl09XCJjb2xsYXBzZUljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoYXNEcmFnRHJvcF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWROb2RlXT1cImRpYWxvZ1NlbGVjdGVkTm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbW9EYXRhTGlzdF09XCJmbGF0TW9EYXRhTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBieV09XCJncm91cGJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAobG9hZENoaWxkcmVuKT1cIm9uTG9hZENoaWxkcmVuKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGVTZWxlY3QpPVwib25TZWxlY3ROb2RlSW5Nb3ZlRGlhbG9nKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtdWktdHJlZS12aWV3PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICAgICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ09LJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ29uZmlybURpYWxvZyhkaWFsb2dTZWxlY3RlZE5vZGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGZkLWluaXRpYWwtZm9jdXMgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCIgKGNsaWNrKT1cIm9uRGlzbWlzc0RpYWxvZygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -42,11 +42,11 @@ export class UiTreeViewComponent extends ReportViewBaseComponent {
|
|
|
42
42
|
this.loadChildren.emit(node);
|
|
43
43
|
}
|
|
44
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTreeViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiTreeViewComponent, selector: "bsu-tree-view", inputs: { root: "root", selectedNode: "selectedNode", hasDragDrop: "hasDragDrop", isHetro: "isHetro", relationList: "relationList", showOkCancelButtons: "showOkCancelButtons", collapseIcon: "collapseIcon" }, outputs: { checkChange: "checkChange", nodeSelect: "nodeSelect", createNew: "createNew", loadChildren: "loadChildren", nodeViewClick: "nodeViewClick", nodeUlvCommand: "nodeUlvCommand", itemDrop: "itemDrop", itemDragMoved: "itemDragMoved" }, usesInheritance: true, ngImport: i0, template: "<fd-layout-panel>\n <fd-layout-panel-body [bleed]=\"true\">\n <ul\n cdkDropList\n [cdkDropListData]=\"moDataList\"\n [id]=\"'$Root'\"\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListSortingDisabled]=\"true\"\n >\n @if (moDataList?.length > 0) { @for (node of moDataList; track node.key; let index = $index) { @if\n (node.visibility === true && node.parentNode | isExpandedNode) {\n <bsu-barsa-tree-item\n class=\"node-item\"\n [attr.data-id]=\"node.Data.Id\"\n [attr.id]=\"'node-' + node.Data.Id\"\n [style.cursor]=\"cursor\"\n [node]=\"node\"\n [level]=\"node.level\"\n [styleIndex]=\"node.Data.$StyleIndex\"\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\n [hasChildren]=\"node.Data.$HasChildren\"\n [loading]=\"node.loading\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [isExpand]=\"node.isExpand\"\n [isHetro]=\"isHetro\"\n [parentNode]=\"node.parentNode\"\n [text]=\"node.text\"\n [collapseIcon]=\"collapseIcon\"\n [navigationArrow]=\"navigationArrow\"\n [rtl]=\"rtl\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [selectedNode]=\"selectedNode\"\n [conditionalFormats]=\"conditionalFormats\"\n [contextMenuItems]=\"contextMenuItems\"\n [isCheckList]=\"isCheckList\"\n [deviceName]=\"deviceName\"\n [access]=\"access\"\n [hasDragDrop]=\"hasDragDrop\"\n (checkChange)=\"onCheckChange($event)\"\n (select)=\"onNodeSelect(node, index)\"\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\n (viewClick)=\"onNodeViewClick(node, index)\"\n (loadChildren)=\"onLoadChildren(node)\"\n (dragMoved)=\"onDragMoved($event)\"\n [relationList]=\"relationList\"\n (createNew)=\"createNew.emit($event)\"\n >\n </bsu-barsa-tree-item>\n } } } @else {\n <bsu-no-data></bsu-no-data>\n }\n </ul>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<!--noData-->\n", styles: ["*{font-family:Lato}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"], dependencies: [{ kind: "directive", type: i1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: i2.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i2.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i3.BarsaTreeItemComponent, selector: "bsu-barsa-tree-item", inputs: ["node", "selectedNode", "relationList", "hasDragDrop", "hasArrowIcon", "collapseIcon", "loading", "hasChildren", "isExpand", "children", "parentNode", "text", "isHetro"], outputs: ["createNew", "select", "checkChange", "viewClick", "loadChildren", "dragMoved"] }, { kind: "component", type: i4.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "pipe", type: i5.IsExpandedNodePipe, name: "isExpandedNode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiTreeViewComponent, selector: "bsu-ui-tree-view", inputs: { root: "root", selectedNode: "selectedNode", hasDragDrop: "hasDragDrop", isHetro: "isHetro", hideOpenIcon: "hideOpenIcon", relationList: "relationList", showOkCancelButtons: "showOkCancelButtons", collapseIcon: "collapseIcon" }, outputs: { checkChange: "checkChange", nodeSelect: "nodeSelect", createNew: "createNew", loadChildren: "loadChildren", nodeViewClick: "nodeViewClick", nodeUlvCommand: "nodeUlvCommand", itemDrop: "itemDrop", itemDragMoved: "itemDragMoved" }, usesInheritance: true, ngImport: i0, template: "<fd-layout-panel>\n <fd-layout-panel-body [bleed]=\"true\">\n <ul\n cdkDropList\n [cdkDropListData]=\"moDataList\"\n [id]=\"'$Root'\"\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListSortingDisabled]=\"true\"\n >\n @if (moDataList?.length > 0) { @for (node of moDataList; track node.key; let index = $index) { @if\n (node.visibility === true && node.parentNode | isExpandedNode) {\n <bsu-barsa-tree-item\n class=\"node-item\"\n [attr.data-id]=\"node.Data.Id\"\n [attr.id]=\"'node-' + node.Data.Id\"\n [style.cursor]=\"cursor\"\n [node]=\"node\"\n [level]=\"node.level\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [styleIndex]=\"node.Data.$StyleIndex\"\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\n [hasChildren]=\"node.Data.$HasChildren\"\n [loading]=\"node.loading\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [isExpand]=\"node.isExpand\"\n [isHetro]=\"isHetro\"\n [parentNode]=\"node.parentNode\"\n [text]=\"node.text\"\n [collapseIcon]=\"collapseIcon\"\n [navigationArrow]=\"navigationArrow\"\n [rtl]=\"rtl\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [selectedNode]=\"selectedNode\"\n [conditionalFormats]=\"conditionalFormats\"\n [contextMenuItems]=\"contextMenuItems\"\n [isCheckList]=\"isCheckList\"\n [deviceName]=\"deviceName\"\n [access]=\"access\"\n [hasDragDrop]=\"hasDragDrop\"\n (checkChange)=\"onCheckChange($event)\"\n (select)=\"onNodeSelect(node, index)\"\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\n (viewClick)=\"onNodeViewClick(node, index)\"\n (loadChildren)=\"onLoadChildren(node)\"\n (dragMoved)=\"onDragMoved($event)\"\n [relationList]=\"relationList\"\n (createNew)=\"createNew.emit($event)\"\n >\n </bsu-barsa-tree-item>\n } } } @else {\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\n }\n </ul>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<!--noData-->\n", styles: ["*{font-family:Lato}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"], dependencies: [{ kind: "directive", type: i1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: i2.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i2.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i3.BarsaTreeItemComponent, selector: "bsu-barsa-tree-item", inputs: ["node", "selectedNode", "relationList", "hasDragDrop", "hideOpenIcon", "hasArrowIcon", "collapseIcon", "loading", "hasChildren", "isExpand", "children", "parentNode", "text", "isHetro"], outputs: ["createNew", "select", "checkChange", "viewClick", "loadChildren", "dragMoved"] }, { kind: "component", type: i4.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "pipe", type: i5.IsExpandedNodePipe, name: "isExpandedNode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
46
|
}
|
|
47
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTreeViewComponent, decorators: [{
|
|
48
48
|
type: Component,
|
|
49
|
-
args: [{ selector: 'bsu-tree-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-layout-panel>\n <fd-layout-panel-body [bleed]=\"true\">\n <ul\n cdkDropList\n [cdkDropListData]=\"moDataList\"\n [id]=\"'$Root'\"\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListSortingDisabled]=\"true\"\n >\n @if (moDataList?.length > 0) { @for (node of moDataList; track node.key; let index = $index) { @if\n (node.visibility === true && node.parentNode | isExpandedNode) {\n <bsu-barsa-tree-item\n class=\"node-item\"\n [attr.data-id]=\"node.Data.Id\"\n [attr.id]=\"'node-' + node.Data.Id\"\n [style.cursor]=\"cursor\"\n [node]=\"node\"\n [level]=\"node.level\"\n [styleIndex]=\"node.Data.$StyleIndex\"\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\n [hasChildren]=\"node.Data.$HasChildren\"\n [loading]=\"node.loading\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [isExpand]=\"node.isExpand\"\n [isHetro]=\"isHetro\"\n [parentNode]=\"node.parentNode\"\n [text]=\"node.text\"\n [collapseIcon]=\"collapseIcon\"\n [navigationArrow]=\"navigationArrow\"\n [rtl]=\"rtl\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [selectedNode]=\"selectedNode\"\n [conditionalFormats]=\"conditionalFormats\"\n [contextMenuItems]=\"contextMenuItems\"\n [isCheckList]=\"isCheckList\"\n [deviceName]=\"deviceName\"\n [access]=\"access\"\n [hasDragDrop]=\"hasDragDrop\"\n (checkChange)=\"onCheckChange($event)\"\n (select)=\"onNodeSelect(node, index)\"\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\n (viewClick)=\"onNodeViewClick(node, index)\"\n (loadChildren)=\"onLoadChildren(node)\"\n (dragMoved)=\"onDragMoved($event)\"\n [relationList]=\"relationList\"\n (createNew)=\"createNew.emit($event)\"\n >\n </bsu-barsa-tree-item>\n } } } @else {\n <bsu-no-data></bsu-no-data>\n }\n </ul>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<!--noData-->\n", styles: ["*{font-family:Lato}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"] }]
|
|
49
|
+
args: [{ selector: 'bsu-ui-tree-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-layout-panel>\n <fd-layout-panel-body [bleed]=\"true\">\n <ul\n cdkDropList\n [cdkDropListData]=\"moDataList\"\n [id]=\"'$Root'\"\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListSortingDisabled]=\"true\"\n >\n @if (moDataList?.length > 0) { @for (node of moDataList; track node.key; let index = $index) { @if\n (node.visibility === true && node.parentNode | isExpandedNode) {\n <bsu-barsa-tree-item\n class=\"node-item\"\n [attr.data-id]=\"node.Data.Id\"\n [attr.id]=\"'node-' + node.Data.Id\"\n [style.cursor]=\"cursor\"\n [node]=\"node\"\n [level]=\"node.level\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [styleIndex]=\"node.Data.$StyleIndex\"\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\n [hasChildren]=\"node.Data.$HasChildren\"\n [loading]=\"node.loading\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [isExpand]=\"node.isExpand\"\n [isHetro]=\"isHetro\"\n [parentNode]=\"node.parentNode\"\n [text]=\"node.text\"\n [collapseIcon]=\"collapseIcon\"\n [navigationArrow]=\"navigationArrow\"\n [rtl]=\"rtl\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [selectedNode]=\"selectedNode\"\n [conditionalFormats]=\"conditionalFormats\"\n [contextMenuItems]=\"contextMenuItems\"\n [isCheckList]=\"isCheckList\"\n [deviceName]=\"deviceName\"\n [access]=\"access\"\n [hasDragDrop]=\"hasDragDrop\"\n (checkChange)=\"onCheckChange($event)\"\n (select)=\"onNodeSelect(node, index)\"\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\n (viewClick)=\"onNodeViewClick(node, index)\"\n (loadChildren)=\"onLoadChildren(node)\"\n (dragMoved)=\"onDragMoved($event)\"\n [relationList]=\"relationList\"\n (createNew)=\"createNew.emit($event)\"\n >\n </bsu-barsa-tree-item>\n } } } @else {\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\n }\n </ul>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<!--noData-->\n", styles: ["*{font-family:Lato}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"] }]
|
|
50
50
|
}], propDecorators: { root: [{
|
|
51
51
|
type: Input
|
|
52
52
|
}], selectedNode: [{
|
|
@@ -55,6 +55,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
55
55
|
type: Input
|
|
56
56
|
}], isHetro: [{
|
|
57
57
|
type: Input
|
|
58
|
+
}], hideOpenIcon: [{
|
|
59
|
+
type: Input
|
|
58
60
|
}], relationList: [{
|
|
59
61
|
type: Input
|
|
60
62
|
}], showOkCancelButtons: [{
|
|
@@ -78,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
78
80
|
}], itemDragMoved: [{
|
|
79
81
|
type: Output
|
|
80
82
|
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLXRyZWUtdmlldy91aS10cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdHJlZS12aWV3L3VpLXRyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBMkIsdUJBQXVCLEVBQWlDLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFhdkgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHVCQUFnRDtJQU56Rjs7UUFTYSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQU9sQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUlwQyxDQUFDO1FBRUssZUFBVSxHQUFHLElBQUksWUFBWSxFQUduQyxDQUFDO1FBQ0ssY0FBUyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRWpELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUMvQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUd0QyxDQUFDO1FBQ0ssbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFHdkMsQ0FBQztRQUNLLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ25DLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsRCxXQUFNLEdBQUcsU0FBUyxDQUFDO0tBNEJ0QjtJQTFCRyxNQUFNLENBQUMsTUFBTTtRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBTTtRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBaUIsRUFBRSxLQUFLO1FBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWlCLEVBQUUsS0FBYTtRQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBaUIsRUFBRSxLQUFhO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELGFBQWEsQ0FBQyxNQUFNO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBUztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQTdEUSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4aUJDZGhDLDRyRkE2REE7OzJGRC9DYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQU1HLFVBQVU7c0JBQW5CLE1BQU07Z0JBSUcsU0FBUztzQkFBbEIsTUFBTTtnQkFFRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBSUcsY0FBYztzQkFBdkIsTUFBTTtnQkFJRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nLCBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudCwgVHJlZU5vZGVPYmosIFJlbGF0aW9uSXRlbVR5cGUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcEluZm8ge1xuICAgIHRhcmdldElkOiBzdHJpbmcgfCBudWxsO1xuICAgIGFjdGlvbj86IHN0cmluZyB8IG51bGw7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVpLXRyZWUtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXRyZWUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktdHJlZS12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlUcmVlVmlld0NvbXBvbmVudCBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nPiB7XG4gICAgQElucHV0KCkgcm9vdDogYW55O1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkTm9kZTogYW55O1xuICAgIEBJbnB1dCgpIGhhc0RyYWdEcm9wID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpc0hldHJvOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVPcGVuSWNvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByZWxhdGlvbkxpc3Q6IFJlbGF0aW9uSXRlbVR5cGVbXTtcbiAgICBASW5wdXQoKSBzaG93T2tDYW5jZWxCdXR0b25zO1xuICAgIEBJbnB1dCgpIGNvbGxhcHNlSWNvbjogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpIGNoZWNrQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIG5vZGU6IFRyZWVOb2RlT2JqO1xuICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgICAgICBjaGVja2VkOiBib29sZWFuO1xuICAgIH0+KCk7XG5cbiAgICBAT3V0cHV0KCkgbm9kZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9PigpO1xuICAgIEBPdXRwdXQoKSBjcmVhdGVOZXcgPSBuZXcgRXZlbnRFbWl0dGVyPFJlbGF0aW9uSXRlbVR5cGU+KCk7XG5cbiAgICBAT3V0cHV0KCkgbG9hZENoaWxkcmVuID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVlTm9kZU9iaj4oKTtcbiAgICBAT3V0cHV0KCkgbm9kZVZpZXdDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9PigpO1xuICAgIEBPdXRwdXQoKSBub2RlVWx2Q29tbWFuZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9PigpO1xuICAgIEBPdXRwdXQoKSBpdGVtRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBpdGVtRHJhZ01vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjdXJzb3IgPSAnZGVmYXVsdCc7XG5cbiAgICBvbkRyb3AoJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbURyb3AuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRHJhZ01vdmVkKCRldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1EcmFnTW92ZWQuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIG9uTm9kZVNlbGVjdChub2RlOiBUcmVlTm9kZU9iaiwgaW5kZXgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub2RlU2VsZWN0LmVtaXQoeyBub2RlLCBpbmRleCB9KTtcbiAgICB9XG5cbiAgICBvbk5vZGVVbHZDb21tYW5kKG5vZGU6IFRyZWVOb2RlT2JqLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm9kZVVsdkNvbW1hbmQuZW1pdCh7IG5vZGUsIGluZGV4IH0pO1xuICAgIH1cblxuICAgIG9uTm9kZVZpZXdDbGljayhub2RlOiBUcmVlTm9kZU9iaiwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm5vZGVWaWV3Q2xpY2suZW1pdCh7IG5vZGUsIGluZGV4IH0pO1xuICAgIH1cbiAgICBvbkNoZWNrQ2hhbmdlKCRldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoZWNrQ2hhbmdlLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkxvYWRDaGlsZHJlbihub2RlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkQ2hpbGRyZW4uZW1pdChub2RlKTtcbiAgICB9XG59XG4iLCI8ZmQtbGF5b3V0LXBhbmVsPlxuICAgIDxmZC1sYXlvdXQtcGFuZWwtYm9keSBbYmxlZWRdPVwidHJ1ZVwiPlxuICAgICAgICA8dWxcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cIm1vRGF0YUxpc3RcIlxuICAgICAgICAgICAgW2lkXT1cIickUm9vdCdcIlxuICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAobW9EYXRhTGlzdD8ubGVuZ3RoID4gMCkgeyBAZm9yIChub2RlIG9mIG1vRGF0YUxpc3Q7IHRyYWNrIG5vZGUua2V5OyBsZXQgaW5kZXggPSAkaW5kZXgpIHsgQGlmXG4gICAgICAgICAgICAobm9kZS52aXNpYmlsaXR5ID09PSB0cnVlICYmIG5vZGUucGFyZW50Tm9kZSB8IGlzRXhwYW5kZWROb2RlKSB7XG4gICAgICAgICAgICA8YnN1LWJhcnNhLXRyZWUtaXRlbVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm9kZS1pdGVtXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlkXT1cIm5vZGUuRGF0YS5JZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ25vZGUtJyArIG5vZGUuRGF0YS5JZFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJjdXJzb3JcIlxuICAgICAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgICAgIFtsZXZlbF09XCJub2RlLmxldmVsXCJcbiAgICAgICAgICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwibm9kZS5EYXRhLiRTdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cInNlbGVjdGVkTm9kZT8uRGF0YT8uSWQgPT09IG5vZGUuRGF0YS5JZCB8fCAoaW5EaWFsb2cgJiYgbm9kZS5EYXRhLiRJc0NoZWNrZWQpXCJcbiAgICAgICAgICAgICAgICBbaGFzQ2hpbGRyZW5dPVwibm9kZS5EYXRhLiRIYXNDaGlsZHJlblwiXG4gICAgICAgICAgICAgICAgW2xvYWRpbmddPVwibm9kZS5sb2FkaW5nXCJcbiAgICAgICAgICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICAgICAgICAgIFtpc011bHRpU2VsZWN0XT1cImlzTXVsdGlTZWxlY3RcIlxuICAgICAgICAgICAgICAgIFtpc0V4cGFuZF09XCJub2RlLmlzRXhwYW5kXCJcbiAgICAgICAgICAgICAgICBbaXNIZXRyb109XCJpc0hldHJvXCJcbiAgICAgICAgICAgICAgICBbcGFyZW50Tm9kZV09XCJub2RlLnBhcmVudE5vZGVcIlxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cIm5vZGUudGV4dFwiXG4gICAgICAgICAgICAgICAgW2NvbGxhcHNlSWNvbl09XCJjb2xsYXBzZUljb25cIlxuICAgICAgICAgICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtzaG93T2tDYW5jZWxCdXR0b25zXT1cInNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZE5vZGVdPVwic2VsZWN0ZWROb2RlXCJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgICAgICAgICAgW2hhc0RyYWdEcm9wXT1cImhhc0RyYWdEcm9wXCJcbiAgICAgICAgICAgICAgICAoY2hlY2tDaGFuZ2UpPVwib25DaGVja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0KT1cIm9uTm9kZVNlbGVjdChub2RlLCBpbmRleClcIlxuICAgICAgICAgICAgICAgICh1bHZDb21tYW5kQ2xpY2spPVwib25Ob2RlVWx2Q29tbWFuZChub2RlLCBpbmRleClcIlxuICAgICAgICAgICAgICAgICh2aWV3Q2xpY2spPVwib25Ob2RlVmlld0NsaWNrKG5vZGUsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgKGxvYWRDaGlsZHJlbik9XCJvbkxvYWRDaGlsZHJlbihub2RlKVwiXG4gICAgICAgICAgICAgICAgKGRyYWdNb3ZlZCk9XCJvbkRyYWdNb3ZlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcmVsYXRpb25MaXN0XT1cInJlbGF0aW9uTGlzdFwiXG4gICAgICAgICAgICAgICAgKGNyZWF0ZU5ldyk9XCJjcmVhdGVOZXcuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYnN1LWJhcnNhLXRyZWUtaXRlbT5cbiAgICAgICAgICAgIH0gfSB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxic3Utbm8tZGF0YSBbc2ltcGxlXT1cInRydWVcIj48L2JzdS1uby1kYXRhPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgIDwvZmQtbGF5b3V0LXBhbmVsLWJvZHk+XG48L2ZkLWxheW91dC1wYW5lbD5cblxuPCEtLW5vRGF0YS0tPlxuIl19
|
|
@@ -5,15 +5,14 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "@fundamental-ngx/core";
|
|
6
6
|
import * as i2 from "barsa-novin-ray-core";
|
|
7
7
|
import * as i3 from "@fundamental-ngx/core/bar";
|
|
8
|
-
import * as i4 from "@fundamental-ngx/core/
|
|
9
|
-
import * as i5 from "@fundamental-ngx/core/
|
|
10
|
-
import * as i6 from "@fundamental-ngx/
|
|
11
|
-
import * as i7 from "@fundamental-ngx/
|
|
12
|
-
import * as i8 from "@fundamental-ngx/core/
|
|
13
|
-
import * as i9 from "@fundamental-ngx/core/
|
|
14
|
-
import * as i10 from "
|
|
15
|
-
import * as i11 from "../
|
|
16
|
-
import * as i12 from "../fullscreen-dialog.directive";
|
|
8
|
+
import * as i4 from "@fundamental-ngx/core/button";
|
|
9
|
+
import * as i5 from "@fundamental-ngx/core/dialog";
|
|
10
|
+
import * as i6 from "@fundamental-ngx/cdk/utils";
|
|
11
|
+
import * as i7 from "@fundamental-ngx/core/title";
|
|
12
|
+
import * as i8 from "@fundamental-ngx/core/toolbar";
|
|
13
|
+
import * as i9 from "@fundamental-ngx/core/token";
|
|
14
|
+
import * as i10 from "../ui-ulv-main-ui/ui-ulv-main-ui.component";
|
|
15
|
+
import * as i11 from "../fullscreen-dialog.directive";
|
|
17
16
|
export class UlvFormMultiSelectComponent extends BaseComponent {
|
|
18
17
|
constructor(_dialogService, _bbbTranslatePipe, _portalService, _contentDensityService) {
|
|
19
18
|
super();
|
|
@@ -170,15 +169,15 @@ export class UlvFormMultiSelectComponent extends BaseComponent {
|
|
|
170
169
|
return item.Id;
|
|
171
170
|
}
|
|
172
171
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvFormMultiSelectComponent, deps: [{ token: i1.DialogService }, { token: i2.BbbTranslatePipe }, { token: i2.PortalService }, { token: i1.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
173
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlvFormMultiSelectComponent, selector: "bsu-ulv-form-multi-select", inputs: { Show: "Show" }, viewQueries: [{ propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n @if (!dialogConfig.fullscreen) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"dialog.data.fullscreen\"\n (fullscreenChanged)=\"dialog.data.fullscreen = $event\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n @if (dialog.data.ulv1; as ulv1) {\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n } @if (dialog.data.ulv2 && dialog.data.ShowSecondPanel) {\n <div\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n @if (dialog.data.selectedItems) {\n <fd-toolbar [shouldOverflow]=\"true\">\n <!-- Selected items -->\n @for ( item of dialog.data.selectedItems.MoDataList; track _trackBySelectedFn(selectedIndex,\n item); let selectedIndex = $index) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n >{{ item.$Caption }}\n </fd-token>\n }\n </fd-toolbar>\n }\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n }\n </fd-dialog-body>\n\n @if (dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons) {\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n @if (dialog.data.adapter?.ShowOkCancelButtons !== false) {\n <div class=\"ulv-selection-form-dialog__actions-row\">\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n [compact]=\"true\"\n (click)=\"onOk(dialog)\"\n ></button>\n <button\n fd-button\n fdCompact\n data-dismiss-dialog\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onCancel(dialog)\"\n ></button>\n </div>\n }\n </ng-template>\n </fd-dialog-footer>\n }\n </fd-dialog>\n</ng-template>\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:auto;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:1rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog .fd-dialog__footer{flex-direction:column}.ulv-selection-form-dialog .fd-dialog__footer.fd-bar{padding:0!important}.ulv-selection-form-dialog .fd-dialog__footer{border-top:none}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 2rem 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);margin-right:.5rem;border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"], dependencies: [{ kind: "directive", type: i3.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "directive", type: i4.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i6.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i6.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i6.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i7.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i8.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i9.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i9.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i10.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i11.UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: ["context", "isReportPage", "inDialog", "isMultiSelect", "layoutInfo", "fullscreen"] }, { kind: "directive", type: i12.FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: ["dialog", "dialogComponent", "fullscreen"], outputs: ["fullscreenChanged"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
172
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlvFormMultiSelectComponent, selector: "bsu-ulv-form-multi-select", inputs: { Show: "Show" }, viewQueries: [{ propertyName: "dialogContainer", first: true, predicate: ["container"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n @if (!dialogConfig.fullscreen) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"dialog.data.fullscreen\"\n (fullscreenChanged)=\"dialog.data.fullscreen = $event\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n @if (dialog.data.ulv1; as ulv1) {\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n } @if (dialog.data.ulv2 && dialog.data.ShowSecondPanel) {\n <div\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n @if (dialog.data.selectedItems) {\n <fd-toolbar [shouldOverflow]=\"true\">\n <!-- Selected items -->\n @for ( item of dialog.data.selectedItems.MoDataList; track _trackBySelectedFn(selectedIndex,\n item); let selectedIndex = $index) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n >{{ item.$Caption }}\n </fd-token>\n }\n </fd-toolbar>\n }\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n }\n </fd-dialog-body>\n\n @if (dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons) {\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n @if (dialog.data.adapter?.ShowOkCancelButtons !== false) {\n <div class=\"ulv-selection-form-dialog__actions-row\">\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onOk(dialog)\"\n ></button>\n <button\n fd-button\n data-dismiss-dialog\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onCancel(dialog)\"\n ></button>\n </div>\n }\n </ng-template>\n </fd-dialog-footer>\n }\n </fd-dialog>\n</ng-template>\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:auto;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:1rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog .fd-dialog__footer{flex-direction:column}.ulv-selection-form-dialog .fd-dialog__footer.fd-bar{padding:0!important}.ulv-selection-form-dialog .fd-dialog__footer{border-top:none}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 2rem 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);margin-right:.5rem;border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"], dependencies: [{ kind: "directive", type: i3.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i5.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i5.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i5.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i9.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i10.UiUlvMainUiComponent, selector: "bsu-ui-ulv-main-ui", inputs: ["context", "isReportPage", "inDialog", "isMultiSelect", "layoutInfo", "fullscreen"] }, { kind: "directive", type: i11.FullscreenDialogDirective, selector: "[fullscreenDialog]", inputs: ["dialog", "dialogComponent", "fullscreen"], outputs: ["fullscreenChanged"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
174
173
|
}
|
|
175
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvFormMultiSelectComponent, decorators: [{
|
|
176
175
|
type: Component,
|
|
177
|
-
args: [{ selector: 'bsu-ulv-form-multi-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n @if (!dialogConfig.fullscreen) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"dialog.data.fullscreen\"\n (fullscreenChanged)=\"dialog.data.fullscreen = $event\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n @if (dialog.data.ulv1; as ulv1) {\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n } @if (dialog.data.ulv2 && dialog.data.ShowSecondPanel) {\n <div\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n @if (dialog.data.selectedItems) {\n <fd-toolbar [shouldOverflow]=\"true\">\n <!-- Selected items -->\n @for ( item of dialog.data.selectedItems.MoDataList; track _trackBySelectedFn(selectedIndex,\n item); let selectedIndex = $index) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n >{{ item.$Caption }}\n </fd-token>\n }\n </fd-toolbar>\n }\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n }\n </fd-dialog-body>\n\n @if (dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons) {\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n @if (dialog.data.adapter?.ShowOkCancelButtons !== false) {\n <div class=\"ulv-selection-form-dialog__actions-row\">\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n
|
|
176
|
+
args: [{ selector: 'bsu-ulv-form-multi-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTpl>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ dialog.data.title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n @if (!dialogConfig.fullscreen) {\n <fd-button-bar\n ariaLabel=\"fullscreen\"\n [glyph]=\"dialog.data.fullscreen ? 'exitfullscreen' : 'resize'\"\n fullscreenDialog\n [dialog]=\"dialog\"\n [fullscreen]=\"dialog.data.fullscreen\"\n (fullscreenChanged)=\"dialog.data.fullscreen = $event\"\n [dialogComponent]=\"dialogTpl\"\n ></fd-button-bar>\n }\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onCancel(dialog)\"></fd-button-bar>\n </div>\n </ng-template>\n <!-- <h3 fd-title>{{ dialog.data.title }}</h3>\n <button fd-dialog-close-button></button> -->\n </fd-dialog-header>\n\n <fd-dialog-body>\n @if (dialog.data.ulv1; as ulv1) {\n <bsu-ui-ulv-main-ui\n class=\"ulv-form-multi-select\"\n [context]=\"ulv1\"\n [inDialog]=\"true\"\n [isMultiSelect]=\"dialog.data.ShowSecondPanel\"\n [fullscreen]=\"dialog.data.fullscreen\"\n ></bsu-ui-ulv-main-ui>\n } @if (dialog.data.ulv2 && dialog.data.ShowSecondPanel) {\n <div\n class=\"ulv-selection-form-dialog__row ulv-selection-form-dialog__selection-row\"\n [aria-label]=\"'SelectedItemsAndConditions' | bbbTranslate\"\n >\n <h5 fd-title class=\"selected-and-condition-title\">\n <ng-container>\n <ng-container>{{ 'SelectedItemsAndConditions' | bbbTranslate }} </ng-container>\n ({{ dialog.data.selectedItems?.MoDataList?.length || 0 }})\n </ng-container>\n </h5>\n <div class=\"ulv-selection-form-dialog__tokens-wrapper\">\n <div class=\"ulv-selection-form-dialog__tokens\">\n @if (dialog.data.selectedItems) {\n <fd-toolbar [shouldOverflow]=\"true\">\n <!-- Selected items -->\n @for ( item of dialog.data.selectedItems.MoDataList; track _trackBySelectedFn(selectedIndex,\n item); let selectedIndex = $index) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"onRemoveSelected(dialog, item)\"\n >{{ item.$Caption }}\n </fd-token>\n }\n </fd-toolbar>\n }\n </div>\n <button\n class=\"ulv-selection-form-dialog__tokens-clear\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [aria-label]=\"'Clear' | bbbTranslate\"\n (click)=\"onClear(dialog)\"\n ></button>\n </div>\n </div>\n }\n </fd-dialog-body>\n\n @if (dialog.data.ulv1 && !dialog.data.ulv1?.HideOkCancelButtons) {\n <fd-dialog-footer>\n <ng-template fdkTemplate=\"footer\">\n @if (dialog.data.adapter?.ShowOkCancelButtons !== false) {\n <div class=\"ulv-selection-form-dialog__actions-row\">\n <button\n fd-button\n data-succes\n [label]=\"'OK' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onOk(dialog)\"\n ></button>\n <button\n fd-button\n data-dismiss-dialog\n fd-dialog-decisive-button\n [label]=\"'Cancel' | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onCancel(dialog)\"\n ></button>\n </div>\n }\n </ng-template>\n </fd-dialog-footer>\n }\n </fd-dialog>\n</ng-template>\n", styles: [".ulv-selection-form-dialog{cursor:default}.ulv-selection-form-dialog .fd-dialog__body bsu-ui-table-view{overflow-x:inherit!important}.ulv-selection-form-dialog__advanced-filters{padding-top:1rem}.ulv-selection-form-dialog__advanced-filters label{height:auto}.ulv-selection-form-dialog__toggle-filters{display:flex;justify-content:flex-end;align-items:flex-end}.ulv-selection-form-dialog__toggle-filters .fd-button{margin-bottom:.25rem}.ulv-selection-form-dialog__advanced-actions{display:flex;align-items:center;justify-content:flex-end}.ulv-selection-form-dialog-mobile .ulv-selection-form-dialog__advanced-actions{justify-content:flex-start}.ulv-selection-form-dialog__advanced-actions .fd-toolbar{padding:0}.ulv-selection-form-dialog fd-dialog-body{height:100%;display:flex;flex-direction:column}.ulv-selection-form-dialog bsu-ui-ulv-main-ui{height:100%;flex-grow:1}.ulv-selection-form-dialog bsu-ui-ulv-main-ui .viewer-container{height:auto;overflow:auto}.ulv-selection-form-dialog .ulv-selection-form-dialog__row{border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9);padding-top:1rem}.ulv-selection-form-dialog bsu-search-panel{border-bottom:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog fd-dialog-footer{height:auto}.ulv-selection-form-dialog .fd-dialog__footer{flex-direction:column}.ulv-selection-form-dialog .fd-dialog__footer.fd-bar{padding:0!important}.ulv-selection-form-dialog .fd-dialog__footer{border-top:none}.ulv-selection-form-dialog__content-holder{padding:0 2rem 1rem;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.ulv-selection-form-dialog__row{padding:0 2rem 1rem}.ulv-selection-form-dialog__row.ulv-selection-form-dialog__selection-row{background-color:#f7f7f7;background-color:var(--sapBackgroundColor, #f7f7f7)}.ulv-selection-form-dialog__tokens-wrapper{display:flex}.ulv-selection-form-dialog__tokens{display:flex;flex:1 1 auto;overflow:hidden;align-items:center;border:1px solid #89919a;border-color:var(--sapContent_ForegroundBorderColor, #89919a);margin-right:.5rem;border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:none}.ulv-selection-form-dialog__tokens fd-toolbar{flex:1 1 auto;overflow:hidden}.ulv-selection-form-dialog__tokens-clear{height:auto;min-width:2rem;padding:.125rem 0;justify-content:center}.ulv-selection-form-dialog__actions-row{padding:.5rem 0;display:flex;align-items:center;justify-content:flex-end;border-top:.0625rem solid #d9d9d9;border-top:.0625rem solid var(--sapPageFooter_BorderColor, #d9d9d9)}.ulv-selection-form-dialog__actions-row .fd-button{margin-left:.5rem}.ulv-selection-form-dialog__tokens-wrapper{align-items:center}\n"] }]
|
|
178
177
|
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.BbbTranslatePipe }, { type: i2.PortalService }, { type: i1.ContentDensityService }], propDecorators: { dialogContainer: [{
|
|
179
178
|
type: ViewChild,
|
|
180
179
|
args: ['container', { read: TemplateRef }]
|
|
181
180
|
}], Show: [{
|
|
182
181
|
type: Input
|
|
183
182
|
}] } });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZvcm0tbXVsdGktc2VsZWN0L3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBRXJILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFTM0MsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGFBQWE7SUFPMUQsWUFDWSxjQUE2QixFQUM3QixpQkFBbUMsRUFDM0MsY0FBNkIsRUFDN0Isc0JBQTZDO1FBRTdDLEtBQUssRUFBRSxDQUFDO1FBTEEsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQVcvQyxvQkFBb0I7UUFDWCxTQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDaEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUM7WUFDeEUsTUFBTSxZQUFZLEdBQTJCO2dCQUN6QyxJQUFJLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxPQUFPLEVBQUU7Z0JB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QUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQW9CcEMsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgQ29udGVudERlbnNpdHlTZXJ2aWNlLCBEaWFsb2dSZWYsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQmFyc2FBcGksIE1ldGFvYmplY3REYXRhTW9kZWwsIEJiYlRyYW5zbGF0ZVBpcGUsIFBvcnRhbFNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVsdi1mb3JtLW11bHRpLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVbHZGb3JtTXVsdGlTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgZGlhbG9nQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZGV2aWNlU2l6ZTogc3RyaW5nO1xuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfYmJiVHJhbnNsYXRlUGlwZTogQmJiVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5JCA9IF9jb250ZW50RGVuc2l0eVNlcnZpY2UuY29udGVudERlbnNpdHk7XG4gICAgICAgIEJhcnNhQXBpLkJ3LlVsdkZvcm1NdWx0aVNlbGVjdCA9IHRoaXM7XG4gICAgICAgIF9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGV2aWNlU2l6ZSA9IGM7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBJbnB1dCgpIFNob3cgPSAoYWRhcHRlciwgY29uZmlnKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhcmdlU2NyZWVuID0gdGhpcy5kZXZpY2VTaXplID09PSAnbCcgfHwgdGhpcy5kZXZpY2VTaXplID09PSAneGwnO1xuICAgICAgICBjb25zdCBkaWFsb2dDb25maWc6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICAgICAgICBkYXRhOiB7IC4uLmNvbmZpZywgYWRhcHRlciB9LFxuICAgICAgICAgICAgZXNjS2V5Q2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGRpYWxvZ1BhbmVsQ2xhc3M6IGB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nICR7dGhpcy5kZXZpY2VTaXplID8gJ3Vsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2ctbW9iaWxlJyA6ICcnfWAsXG4gICAgICAgICAgICB2ZXJ0aWNhbFBhZGRpbmc6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIGlmIChsYXJnZVNjcmVlbikge1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzUwdncnO1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICdhdXRvJztcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5taW5XaWR0aCA9ICc0MDAnO1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1pbkhlaWdodCA9ICc2MHZoJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5tb2JpbGUgPSB0cnVlO1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmZ1bGxTY3JlZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZGFwdGVyLkhpZGVPa0NhbmNlbEJ1dHRvbnMpIHtcbiAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5mdWxsU2NyZWVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4odGhpcy5kaWFsb2dDb250YWluZXIsIGRpYWxvZ0NvbmZpZyk7XG4gICAgICAgIGRpYWxvZ1JlZi5sb2FkaW5nKGNvbmZpZy5Jc0xvYWRlZCA9PT0gdHJ1ZSA/IGZhbHNlIDogdHJ1ZSk7IC8vIG1lYW5zIHVsdiBpcyBsb2FkZWQgYW5kIGl0IGRvZXMgbm90IHNob3cgbG9hZGluZyBpbiBkaWFsb2dcbiAgICAgICAgKGRpYWxvZ1JlZiBhcyBhbnkpLm1hc2sgPSAodmFsKSA9PiB7XG4gICAgICAgICAgICBkaWFsb2dSZWYubG9hZGluZyh2YWwpO1xuICAgICAgICB9O1xuICAgICAgICAoZGlhbG9nUmVmIGFzIGFueSkuQWRkVWx2VG9XaW5kb3cgPSAodWx2Q29udHJvbDEsIHVsdkNvbnRyb2wyKSA9PiB7XG4gICAgICAgICAgICBkaWFsb2dSZWYubG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RGb3JtVGl0bGVUZXh0ID0gdGhpcy5fYmJiVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oJ1NlbGVjdEZvcm1UaXRsZScpO1xuICAgICAgICAgICAgZGlhbG9nUmVmLmRhdGEudGl0bGUgPVxuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLlNldHRpbmcuRXh0cmE/LkV4dHJhSnNvblByb3BSZXBvcnQ/LlRpdGxlID09PSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICAgIDogc2VsZWN0Rm9ybVRpdGxlVGV4dC5yZXBsYWNlKCd7MH0nLCB1bHZDb250cm9sMS5TZXR0aW5nLkV4dHJhLlJlcG9ydC5UeXBlRGVmQ2FwdGlvbik7XG4gICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYxID0gdWx2Q29udHJvbDE7XG4gICAgICAgICAgICBpZiAodWx2Q29udHJvbDEudmlld2VyQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVVsdlZpZXdlckV2ZW50KHVsdkNvbnRyb2wxLCBhZGFwdGVyLCBkaWFsb2dSZWYpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5vbih7XG4gICAgICAgICAgICAgICAgICAgIFZpZXdlckNvbnRyb2xDaGFuZ2VkOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVVbHZWaWV3ZXJFdmVudCh1bHZDb250cm9sMSwgYWRhcHRlciwgZGlhbG9nUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHVsdkNvbnRyb2wyKSB7XG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLmRhdGEudWx2MiA9IHVsdkNvbnRyb2wyO1xuICAgICAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMgPSB1bHZDb250cm9sMi5TZXR0aW5nLkRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkaWFsb2dSZWY7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgfTtcblxuICAgIHByaXZhdGUgX2hhbmRsZVVsdlZpZXdlckV2ZW50KHVsdkNvbnRyb2wxOiBhbnksIGFkYXB0ZXI6IGFueSwgZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55LCBhbnk+KSB7XG4gICAgICAgIHVsdkNvbnRyb2wxLnZpZXdlckNvbnRyb2wuU2hvd09rQ2FuY2VsQnV0dG9ucyA9IGFkYXB0ZXIuU2hvd09rQ2FuY2VsQnV0dG9ucztcbiAgICAgICAgdWx2Q29udHJvbDEudmlld2VyQ29udHJvbC5vbih7XG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgcm93c2VsZWN0OiAoc2VuZGVyLCBpbmRleCwgbW8pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgICAgICAgICByb3dkZXNlbGVjdDogKHNlbmRlciwgaW5kZXgsIG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlSXRlbShkaWFsb2dSZWYsIG1vKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByb3dTZWxlY3RBbGw6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvd0RlU2VsZWN0QWxsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdWx2Q29udHJvbDEuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlSXRlbShkaWFsb2dSZWYsIG1vKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25PayhkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHVsdiwgdWx2MiB9ID0gdGhpcy5fZ2V0VWx2KGRpYWxvZ1JlZik7XG4gICAgICAgIC8vIGlmICh1bHYpIHtcbiAgICAgICAgLy8gICAgIGlmICh1bHYyKSB7XG4gICAgICAgIC8vICAgICAgICAgY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgIC8vICAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ0FkZCcpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgICAgIHRoaXMuX2J0bkNsaWNrKHVsdiwgJ09rJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0VWx2KGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogeyB1bHY6IGFueTsgdWx2MjogYW55IH0ge1xuICAgICAgICBjb25zdCB1bHYyID0gZGlhbG9nUmVmLmRhdGEudWx2MjtcbiAgICAgICAgY29uc3QgdWx2MSA9IGRpYWxvZ1JlZi5kYXRhLnVsdjE7XG4gICAgICAgIGNvbnN0IHVsdiA9IHVsdjIgfHwgdWx2MTtcbiAgICAgICAgcmV0dXJuIHsgdWx2LCB1bHYyIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYnRuQ2xpY2sodWx2OiBhbnksIGJ0bktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9rQnRuID0gdWx2LmJ1dHRvbnMuZmluZCgoYykgPT4gYy5LZXkgPT09IGJ0bktleSk7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gb2tCdG4uc2NvcGU7XG4gICAgICAgIG9rQnRuLmhhbmRsZXIuYmluZChzY29wZSkob2tCdG4pO1xuICAgIH1cblxuICAgIG9uQ2FuY2VsKGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogdm9pZCB7XG4gICAgICAgIGlmICghZGlhbG9nUmVmLmRhdGEuYWRhcHRlcj8uU2hvd09rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHVsdiwgdWx2MiB9ID0gdGhpcy5fZ2V0VWx2KGRpYWxvZ1JlZik7XG4gICAgICAgIHRoaXMuX2J0bkNsaWNrKHVsdiwgJ0NhbmNlbCcpO1xuICAgIH1cblxuICAgIG9uQ2xlYXIoZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB2b2lkIHtcbiAgICAgICAgZGlhbG9nUmVmLmRhdGEudWx2MS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgnQ2xlYXJBbGxTZWxlY3RlZCcpO1xuICAgICAgICBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QgPSBbXTtcbiAgICB9XG5cbiAgICBvblJlbW92ZVNlbGVjdGVkKGRpYWxvZ1JlZjogRGlhbG9nUmVmLCBpdGVtOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZUl0ZW0oZGlhbG9nUmVmLCBpdGVtKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3JlbW92ZUl0ZW0oZGlhbG9nUmVmOiBEaWFsb2dSZWY8YW55PiwgbW86IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcztcbiAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0ID0gc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0LmZpbHRlcigoYykgPT4gYy5JZCAhPT0gbW8uSWQpO1xuICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYxLnZpZXdlckNvbnRyb2wuZmlyZUV2ZW50KCdEZXNlbGVjdFJvd0luRGlhbG9nJywgW21vXSk7XG4gICAgICAgIGlmIChkaWFsb2dSZWYuZGF0YS51bHYyKSB7XG4gICAgICAgICAgICBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgICAgIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdSZW1vdmUnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgLy8gYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ1JlbW92ZScpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfYWRkSXRlbShkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+LCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcztcbiAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gbW8uSWQpKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QgPSBbLi4uc2VsZWN0ZWRJdGVtcy5Nb0RhdGFMaXN0LCBtb107XG4gICAgICAgICAgICBpZiAoZGlhbG9nUmVmLmRhdGEudWx2Mikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAgICAgICAgIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgICAgICAvLyBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnQWRkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfdHJhY2tCeVNlbGVjdGVkRm4oX2luZGV4OiBudW1iZXIsIGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwpOiBudW1iZXIgfCBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5JZDtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2NvbnRhaW5lcj5cbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIiAjZGlhbG9nVHBsPlxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItM1wiIGZkLXRpdGxlPnt7IGRpYWxvZy5kYXRhLnRpdGxlIH19PC9oMT5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgQGlmICghZGlhbG9nQ29uZmlnLmZ1bGxzY3JlZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cImZ1bGxzY3JlZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW4gPyAnZXhpdGZ1bGxzY3JlZW4nIDogJ3Jlc2l6ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNjcmVlbkRpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RpYWxvZ109XCJkaWFsb2dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Z1bGxzY3JlZW5dPVwiZGlhbG9nLmRhdGEuZnVsbHNjcmVlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbkNoYW5nZWQpPVwiZGlhbG9nLmRhdGEuZnVsbHNjcmVlbiA9ICRldmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nQ29tcG9uZW50XT1cImRpYWxvZ1RwbFwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgYXJpYUxhYmVsPVwiY2xvc2VcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DYW5jZWwoZGlhbG9nKVwiPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8IS0tIDxoMyBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDM+XG4gICAgICA8YnV0dG9uIGZkLWRpYWxvZy1jbG9zZS1idXR0b24+PC9idXR0b24+IC0tPlxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgQGlmIChkaWFsb2cuZGF0YS51bHYxOyBhcyB1bHYxKSB7XG4gICAgICAgICAgICA8YnN1LXVpLXVsdi1tYWluLXVpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ1bHYtZm9ybS1tdWx0aS1zZWxlY3RcIlxuICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cInVsdjFcIlxuICAgICAgICAgICAgICAgIFtpbkRpYWxvZ109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbaXNNdWx0aVNlbGVjdF09XCJkaWFsb2cuZGF0YS5TaG93U2Vjb25kUGFuZWxcIlxuICAgICAgICAgICAgICAgIFtmdWxsc2NyZWVuXT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW5cIlxuICAgICAgICAgICAgPjwvYnN1LXVpLXVsdi1tYWluLXVpPlxuICAgICAgICAgICAgfSBAaWYgKGRpYWxvZy5kYXRhLnVsdjIgJiYgZGlhbG9nLmRhdGEuU2hvd1NlY29uZFBhbmVsKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19yb3cgdWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fc2VsZWN0aW9uLXJvd1wiXG4gICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ1NlbGVjdGVkSXRlbXNBbmRDb25kaXRpb25zJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGg1IGZkLXRpdGxlIGNsYXNzPVwic2VsZWN0ZWQtYW5kLWNvbmRpdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj57eyAnU2VsZWN0ZWRJdGVtc0FuZENvbmRpdGlvbnMnIHwgYmJiVHJhbnNsYXRlIH19IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKHt7IGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXM/Lk1vRGF0YUxpc3Q/Lmxlbmd0aCB8fCAwIH19KVxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2g1PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX190b2tlbnMtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyIFtzaG91bGRPdmVyZmxvd109XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWxlY3RlZCBpdGVtcyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yICggaXRlbSBvZiBkaWFsb2cuZGF0YS5zZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3Q7IHRyYWNrIF90cmFja0J5U2VsZWN0ZWRGbihzZWxlY3RlZEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0pOyBsZXQgc2VsZWN0ZWRJbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b2tlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwiaGlnaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19zZWxlY3Rpb24tdG9rZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbG9zZUNsaWNrKT1cIm9uUmVtb3ZlU2VsZWN0ZWQoZGlhbG9nLCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBpdGVtLiRDYXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC10b2tlbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy1jbGVhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKGRpYWxvZylcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgICAgICBAaWYgKGRpYWxvZy5kYXRhLnVsdjEgJiYgIWRpYWxvZy5kYXRhLnVsdjE/LkhpZGVPa0NhbmNlbEJ1dHRvbnMpIHtcbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGRpYWxvZy5kYXRhLmFkYXB0ZXI/LlNob3dPa0NhbmNlbEJ1dHRvbnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX2FjdGlvbnMtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zdWNjZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInT0snIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBhY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25PayhkaWFsb2cpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkQ29tcGFjdFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1kaXNtaXNzLWRpYWxvZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIH1cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWZvcm0tbXVsdGktc2VsZWN0L3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBRXJILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVMzQyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsYUFBYTtJQU8xRCxZQUNZLGNBQTZCLEVBQzdCLGlCQUFtQyxFQUMzQyxjQUE2QixFQUM3QixzQkFBNkM7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFMQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBVy9DLG9CQUFvQjtRQUNYLFNBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztZQUN4RSxNQUFNLFlBQVksR0FBMkI7Z0JBQ3pDLElBQUksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRTtnQkFD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RSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBb0JwQyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBDb250ZW50RGVuc2l0eVNlcnZpY2UsIERpYWxvZ1JlZiwgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBCYXJzYUFwaSwgTWV0YW9iamVjdERhdGFNb2RlbCwgQmJiVHJhbnNsYXRlUGlwZSwgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWx2LWZvcm0tbXVsdGktc2VsZWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWx2LWZvcm0tbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVsdkZvcm1NdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBkaWFsb2dDb250YWluZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBkZXZpY2VTaXplOiBzdHJpbmc7XG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9iYmJUcmFuc2xhdGVQaXBlOiBCYmJUcmFuc2xhdGVQaXBlLFxuICAgICAgICBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29udGVudERlbnNpdHkkID0gX2NvbnRlbnREZW5zaXR5U2VydmljZS5jb250ZW50RGVuc2l0eTtcbiAgICAgICAgQmFyc2FBcGkuQncuVWx2Rm9ybU11bHRpU2VsZWN0ID0gdGhpcztcbiAgICAgICAgX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXZpY2VTaXplID0gYztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgU2hvdyA9IChhZGFwdGVyLCBjb25maWcpID0+IHtcbiAgICAgICAgY29uc3QgbGFyZ2VTY3JlZW4gPSB0aGlzLmRldmljZVNpemUgPT09ICdsJyB8fCB0aGlzLmRldmljZVNpemUgPT09ICd4bCc7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgICAgICAgICAgIGRhdGE6IHsgLi4uY29uZmlnLCBhZGFwdGVyIH0sXG4gICAgICAgICAgICBlc2NLZXlDbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgZGlhbG9nUGFuZWxDbGFzczogYHVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2cgJHt0aGlzLmRldmljZVNpemUgPyAndWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZy1tb2JpbGUnIDogJyd9YCxcbiAgICAgICAgICAgIHZlcnRpY2FsUGFkZGluZzogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGxhcmdlU2NyZWVuKSB7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcud2lkdGggPSAnNTB2dyc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1pbldpZHRoID0gJzQwMCc7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcubWluSGVpZ2h0ID0gJzYwdmgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1vYmlsZSA9IHRydWU7XG4gICAgICAgICAgICBkaWFsb2dDb25maWcuZnVsbFNjcmVlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFkYXB0ZXIuSGlkZU9rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmZ1bGxTY3JlZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ0NvbnRhaW5lciwgZGlhbG9nQ29uZmlnKTtcbiAgICAgICAgZGlhbG9nUmVmLmxvYWRpbmcoY29uZmlnLklzTG9hZGVkID09PSB0cnVlID8gZmFsc2UgOiB0cnVlKTsgLy8gbWVhbnMgdWx2IGlzIGxvYWRlZCBhbmQgaXQgZG9lcyBub3Qgc2hvdyBsb2FkaW5nIGluIGRpYWxvZ1xuICAgICAgICAoZGlhbG9nUmVmIGFzIGFueSkubWFzayA9ICh2YWwpID0+IHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5sb2FkaW5nKHZhbCk7XG4gICAgICAgIH07XG4gICAgICAgIChkaWFsb2dSZWYgYXMgYW55KS5BZGRVbHZUb1dpbmRvdyA9ICh1bHZDb250cm9sMSwgdWx2Q29udHJvbDIpID0+IHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5sb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdEZvcm1UaXRsZVRleHQgPSB0aGlzLl9iYmJUcmFuc2xhdGVQaXBlLnRyYW5zZm9ybSgnU2VsZWN0Rm9ybVRpdGxlJyk7XG4gICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS50aXRsZSA9XG4gICAgICAgICAgICAgICAgdWx2Q29udHJvbDEuU2V0dGluZy5FeHRyYT8uRXh0cmFKc29uUHJvcFJlcG9ydD8uVGl0bGUgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RGb3JtVGl0bGVUZXh0LnJlcGxhY2UoJ3swfScsIHVsdkNvbnRyb2wxLlNldHRpbmcuRXh0cmEuUmVwb3J0LlR5cGVEZWZDYXB0aW9uKTtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjEgPSB1bHZDb250cm9sMTtcbiAgICAgICAgICAgIGlmICh1bHZDb250cm9sMS52aWV3ZXJDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDEsIGFkYXB0ZXIsIGRpYWxvZ1JlZik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLm9uKHtcbiAgICAgICAgICAgICAgICAgICAgVmlld2VyQ29udHJvbENoYW5nZWQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVVsdlZpZXdlckV2ZW50KHVsdkNvbnRyb2wxLCBhZGFwdGVyLCBkaWFsb2dSZWYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodWx2Q29udHJvbDIpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYyID0gdWx2Q29udHJvbDI7XG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcyA9IHVsdkNvbnRyb2wyLlNldHRpbmcuRGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBfaGFuZGxlVWx2Vmlld2VyRXZlbnQodWx2Q29udHJvbDE6IGFueSwgYWRhcHRlcjogYW55LCBkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnksIGFueT4pIHtcbiAgICAgICAgdWx2Q29udHJvbDEudmlld2VyQ29udHJvbC5TaG93T2tDYW5jZWxCdXR0b25zID0gYWRhcHRlci5TaG93T2tDYW5jZWxCdXR0b25zO1xuICAgICAgICB1bHZDb250cm9sMS52aWV3ZXJDb250cm9sLm9uKHtcbiAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgICAgICAgICByb3dzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICAgICAgICAgIHJvd2Rlc2VsZWN0OiAoc2VuZGVyLCBpbmRleCwgbW8pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvd1NlbGVjdEFsbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHVsdkNvbnRyb2wxLlNldHRpbmcuRGF0YS5Nb0RhdGFMaXN0LmZvckVhY2goKG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZEl0ZW0oZGlhbG9nUmVmLCBtbyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcm93RGVTZWxlY3RBbGw6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB1bHZDb250cm9sMS5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVJdGVtKGRpYWxvZ1JlZiwgbW8pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbk9rKGRpYWxvZ1JlZjogRGlhbG9nUmVmKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdWx2LCB1bHYyIH0gPSB0aGlzLl9nZXRVbHYoZGlhbG9nUmVmKTtcbiAgICAgICAgLy8gaWYgKHVsdikge1xuICAgICAgICAvLyAgICAgaWYgKHVsdjIpIHtcbiAgICAgICAgLy8gICAgICAgICBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgLy8gICAgICAgICBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnQWRkJyk7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGhpcy5fYnRuQ2xpY2sodWx2LCAnT2snKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRVbHYoZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB7IHVsdjogYW55OyB1bHYyOiBhbnkgfSB7XG4gICAgICAgIGNvbnN0IHVsdjIgPSBkaWFsb2dSZWYuZGF0YS51bHYyO1xuICAgICAgICBjb25zdCB1bHYxID0gZGlhbG9nUmVmLmRhdGEudWx2MTtcbiAgICAgICAgY29uc3QgdWx2ID0gdWx2MiB8fCB1bHYxO1xuICAgICAgICByZXR1cm4geyB1bHYsIHVsdjIgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9idG5DbGljayh1bHY6IGFueSwgYnRuS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2tCdG4gPSB1bHYuYnV0dG9ucy5maW5kKChjKSA9PiBjLktleSA9PT0gYnRuS2V5KTtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSBva0J0bi5zY29wZTtcbiAgICAgICAgb2tCdG4uaGFuZGxlci5iaW5kKHNjb3BlKShva0J0bik7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoZGlhbG9nUmVmOiBEaWFsb2dSZWYpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFkaWFsb2dSZWYuZGF0YS5hZGFwdGVyPy5TaG93T2tDYW5jZWxCdXR0b25zKSB7XG4gICAgICAgICAgICBkaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgdWx2LCB1bHYyIH0gPSB0aGlzLl9nZXRVbHYoZGlhbG9nUmVmKTtcbiAgICAgICAgdGhpcy5fYnRuQ2xpY2sodWx2LCAnQ2FuY2VsJyk7XG4gICAgfVxuXG4gICAgb25DbGVhcihkaWFsb2dSZWY6IERpYWxvZ1JlZik6IHZvaWQge1xuICAgICAgICBkaWFsb2dSZWYuZGF0YS51bHYxLnZpZXdlckNvbnRyb2wuZmlyZUV2ZW50KCdDbGVhckFsbFNlbGVjdGVkJyk7XG4gICAgICAgIGRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCA9IFtdO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlU2VsZWN0ZWQoZGlhbG9nUmVmOiBEaWFsb2dSZWYsIGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlSXRlbShkaWFsb2dSZWYsIGl0ZW0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcmVtb3ZlSXRlbShkaWFsb2dSZWY6IERpYWxvZ1JlZjxhbnk+LCBtbzogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zO1xuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QgPSBzZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QuZmlsdGVyKChjKSA9PiBjLklkICE9PSBtby5JZCk7XG4gICAgICAgIGRpYWxvZ1JlZi5kYXRhLnVsdjEudmlld2VyQ29udHJvbC5maXJlRXZlbnQoJ0Rlc2VsZWN0Um93SW5EaWFsb2cnLCBbbW9dKTtcbiAgICAgICAgaWYgKGRpYWxvZ1JlZi5kYXRhLnVsdjIpIHtcbiAgICAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ1JlbW92ZScpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnN0IGFkYXB0ZXIgPSBkaWFsb2dSZWYuZGF0YS5hZGFwdGVyO1xuICAgICAgICAvLyBhZGFwdGVyLmZpcmVFdmVudCgnQWRkUmVtb3ZlQnV0dG9uQ2xpY2snLCBhZGFwdGVyLCAnUmVtb3ZlJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9hZGRJdGVtKGRpYWxvZ1JlZjogRGlhbG9nUmVmPGFueT4sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBkaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zO1xuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdC5maW5kKChjKSA9PiBjLklkID09PSBtby5JZCkpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdCA9IFsuLi5zZWxlY3RlZEl0ZW1zLk1vRGF0YUxpc3QsIG1vXTtcbiAgICAgICAgICAgIGlmIChkaWFsb2dSZWYuZGF0YS51bHYyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWRhcHRlciA9IGRpYWxvZ1JlZi5kYXRhLmFkYXB0ZXI7XG4gICAgICAgICAgICAgICAgYWRhcHRlci5maXJlRXZlbnQoJ0FkZFJlbW92ZUJ1dHRvbkNsaWNrJywgYWRhcHRlciwgJ0FkZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjb25zdCBhZGFwdGVyID0gZGlhbG9nUmVmLmRhdGEuYWRhcHRlcjtcbiAgICAgICAgICAgIC8vIGFkYXB0ZXIuZmlyZUV2ZW50KCdBZGRSZW1vdmVCdXR0b25DbGljaycsIGFkYXB0ZXIsICdBZGQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF90cmFja0J5U2VsZWN0ZWRGbihfaW5kZXg6IG51bWJlciwgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCk6IG51bWJlciB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLklkO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjY29udGFpbmVyPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiICNkaWFsb2dUcGw+XG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGlkPVwiZmQtZGlhbG9nLWhlYWRlci0zXCIgZmQtdGl0bGU+e3sgZGlhbG9nLmRhdGEudGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFkaWFsb2dDb25maWcuZnVsbHNjcmVlbikge1xuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiZnVsbHNjcmVlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZGlhbG9nLmRhdGEuZnVsbHNjcmVlbiA/ICdleGl0ZnVsbHNjcmVlbicgOiAncmVzaXplJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRGlhbG9nXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nXT1cImRpYWxvZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuQ2hhbmdlZCk9XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2dDb21wb25lbnRdPVwiZGlhbG9nVHBsXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhciBhcmlhTGFiZWw9XCJjbG9zZVwiIGdseXBoPVwiZGVjbGluZVwiIChjbGljayk9XCJvbkNhbmNlbChkaWFsb2cpXCI+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwhLS0gPGgzIGZkLXRpdGxlPnt7IGRpYWxvZy5kYXRhLnRpdGxlIH19PC9oMz5cbiAgICAgIDxidXR0b24gZmQtZGlhbG9nLWNsb3NlLWJ1dHRvbj48L2J1dHRvbj4gLS0+XG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cblxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICBAaWYgKGRpYWxvZy5kYXRhLnVsdjE7IGFzIHVsdjEpIHtcbiAgICAgICAgICAgIDxic3UtdWktdWx2LW1haW4tdWlcbiAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1mb3JtLW11bHRpLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW2NvbnRleHRdPVwidWx2MVwiXG4gICAgICAgICAgICAgICAgW2luRGlhbG9nXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtpc011bHRpU2VsZWN0XT1cImRpYWxvZy5kYXRhLlNob3dTZWNvbmRQYW5lbFwiXG4gICAgICAgICAgICAgICAgW2Z1bGxzY3JlZW5dPVwiZGlhbG9nLmRhdGEuZnVsbHNjcmVlblwiXG4gICAgICAgICAgICA+PC9ic3UtdWktdWx2LW1haW4tdWk+XG4gICAgICAgICAgICB9IEBpZiAoZGlhbG9nLmRhdGEudWx2MiAmJiBkaWFsb2cuZGF0YS5TaG93U2Vjb25kUGFuZWwpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3JvdyB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19zZWxlY3Rpb24tcm93XCJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInU2VsZWN0ZWRJdGVtc0FuZENvbmRpdGlvbnMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aDUgZmQtdGl0bGUgY2xhc3M9XCJzZWxlY3RlZC1hbmQtY29uZGl0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPnt7ICdTZWxlY3RlZEl0ZW1zQW5kQ29uZGl0aW9ucycgfCBiYmJUcmFuc2xhdGUgfX0gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAoe3sgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcz8uTW9EYXRhTGlzdD8ubGVuZ3RoIHx8IDAgfX0pXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvaDU+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX190b2tlbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXIgW3Nob3VsZE92ZXJmbG93XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlbGVjdGVkIGl0ZW1zIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKCBpdGVtIG9mIGRpYWxvZy5kYXRhLnNlbGVjdGVkSXRlbXMuTW9EYXRhTGlzdDsgdHJhY2sgX3RyYWNrQnlTZWxlY3RlZEZuKHNlbGVjdGVkSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSk7IGxldCBzZWxlY3RlZEluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRva2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJoaWdoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZHAtdmFsdWUtaGVscC1kaWFsb2dfX3NlbGVjdGlvbi10b2tlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwib25SZW1vdmVTZWxlY3RlZChkaWFsb2csIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0uJENhcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRva2VuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zLWNsZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidDbGVhcicgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgICAgIEBpZiAoZGlhbG9nLmRhdGEudWx2MSAmJiAhZGlhbG9nLmRhdGEudWx2MT8uSGlkZU9rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZGlhbG9nLmRhdGEuYWRhcHRlcj8uU2hvd09rQ2FuY2VsQnV0dG9ucyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fYWN0aW9ucy1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXN1Y2Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidPSycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25PayhkaWFsb2cpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZGlzbWlzcy1kaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQ2FuY2VsJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKGRpYWxvZylcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICB9XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuIl19
|