barsa-sap-ui 1.0.403 → 1.0.405

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.
Files changed (39) hide show
  1. package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +1 -1
  2. package/esm2020/lib/barsa-simple-form/barsa-simple-form.component.mjs +21 -6
  3. package/esm2020/lib/constants.mjs +9 -1
  4. package/esm2020/lib/form-toolbar/form-toolbar.component.mjs +3 -3
  5. package/esm2020/lib/form-toolbar-button/form-toolbar-button.component.mjs +3 -3
  6. package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +32 -17
  7. package/esm2020/lib/list-item/list-item.component.mjs +2 -2
  8. package/esm2020/lib/ly-empty-space/ly-empty-space.component.mjs +9 -2
  9. package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +1 -1
  10. package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +1 -1
  11. package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +3 -3
  12. package/esm2020/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +1 -1
  13. package/esm2020/lib/ui-grid/ui-grid.component.mjs +1 -1
  14. package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +3 -3
  15. package/esm2020/lib/ui-multi-select-card/ui-multi-select-card.component.mjs +4 -3
  16. package/esm2020/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +16 -13
  17. package/esm2020/lib/ui-multi-select-radio/ui-multi-select-radio.component.mjs +5 -4
  18. package/esm2020/lib/ui-multi-select-slider/ui-multi-select-slider.component.mjs +12 -10
  19. package/esm2020/lib/ui-multi-select-smile/ui-multi-select-smile.component.mjs +8 -19
  20. package/esm2020/lib/ui-num-int-slider/ui-num-int-slider.component.mjs +3 -3
  21. package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +3 -3
  22. package/esm2020/lib/ui-tree/ui-tree.component.mjs +1 -1
  23. package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +6 -4
  24. package/fesm2015/barsa-sap-ui.mjs +146 -107
  25. package/fesm2015/barsa-sap-ui.mjs.map +1 -1
  26. package/fesm2020/barsa-sap-ui.mjs +146 -107
  27. package/fesm2020/barsa-sap-ui.mjs.map +1 -1
  28. package/lib/barsa-simple-form/barsa-simple-form.component.d.ts +9 -1
  29. package/lib/constants.d.ts +6 -0
  30. package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +9 -1
  31. package/lib/ly-empty-space/ly-empty-space.component.d.ts +1 -0
  32. package/lib/ui-form-panel/ui-form-panel.component.d.ts +4 -0
  33. package/lib/ui-multi-select-combo/ui-multi-select-combo.component.d.ts +1 -0
  34. package/lib/ui-multi-select-radio/ui-multi-select-radio.component.d.ts +1 -1
  35. package/lib/ui-multi-select-slider/ui-multi-select-slider.component.d.ts +10 -4
  36. package/lib/ui-multi-select-smile/ui-multi-select-smile.component.d.ts +3 -10
  37. package/lib/ui-num-int-slider/ui-num-int-slider.component.d.ts +1 -0
  38. package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +2 -1
  39. package/package.json +1 -1
@@ -82,7 +82,7 @@ export class UiTreeComponent extends ReportTreeBaseComponent {
82
82
  }
83
83
  }
84
84
  UiTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiTreeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
85
- UiTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", 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 <button\n fd-button\n *ngIf=\"!showOkCancelButtons\"\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n ></button>\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 fdTemplate=\"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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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", "ariaLabel", "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"] }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdTemplate]", inputs: ["fdTemplate"] }, { kind: "directive", type: i6.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i8.UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: ["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 });
85
+ UiTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", 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 <button\n fd-button\n *ngIf=\"!showOkCancelButtons\"\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n ></button>\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 fdTemplate=\"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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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", "ariaLabel", "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"] }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdTemplate]", inputs: ["fdTemplate"] }, { kind: "directive", type: i6.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { 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 });
86
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiTreeComponent, decorators: [{
87
87
  type: Component,
88
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 <button\n fd-button\n *ngIf=\"!showOkCancelButtons\"\n fd-toolbar-item\n [fdType]=\"'transparent'\"\n [glyph]=\"'move'\"\n (click)=\"onOpenMoveToDialog(selectedNode, deviceName, moveDialog)\"\n ></button>\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 fdTemplate=\"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"] }]
@@ -47,11 +47,13 @@ export class UlvToolbarComponent extends BaseComponent {
47
47
  }
48
48
  }
49
49
  UlvToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvToolbarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
50
- UlvToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: { useLayoutItemTextForControl: "useLayoutItemTextForControl", enableSearch: "enableSearch", hideTitle: "hideTitle", title: "title", deviceName: "deviceName", deviceSize: "deviceSize", access: "access", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", contentDensity: "contentDensity", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", gridSetting: "gridSetting", viewCollection: "viewCollection", reportView: "reportView", inDialog: "inDialog", isMultiSelect: "isMultiSelect", hasSelected: "hasSelected", config: "config", hidden: "hidden", buttons: "buttons", moDataListCount: "moDataListCount" }, outputs: { search: "search", groupbyClick: "groupbyClick", sortClick: "sortClick", columnClick: "columnClick", editModeClick: "editModeClick", viewClick: "viewClick", createNewInlineMo: "createNewInlineMo" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"false\"\n [title]=\"!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''\"\n *ngIf=\"!useLayoutItemTextForControl && !hideToolbar\"\n>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\" fd-toolbar-item></fd-toolbar-spacer>\n\n <ng-container *ngIf=\"!hideToolbar\">\n <ng-container *ngFor=\"let btn of toolbarButtons; trackBy: _trackBy; let i = index\">\n <button\n *ngIf=\"btn !== '-' && btn.Command && !btn.Command.CustomUi && !btn.menu\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n >\n <img\n *ngIf=\"!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span *ngIf=\"!btn.hideText\">{{ btn.text | bbbTranslate }}</span>\n </button>\n <fd-toolbar-separator\n fd-toolbar-item\n *ngIf=\"(btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile'\"\n ></fd-toolbar-separator>\n\n <button\n *ngIf=\"btn.menu\"\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n >\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let btnCommand of btn.menu.items\"\n [ulvCommandHandler]=\"btnCommand\"\n (click)=\"menu.close()\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </button>\n\n <bnrc-dynamic-form-toolbaritem\n *ngIf=\"btn !== '-' && btn.Command && btn.Command.CustomUi\"\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-container>\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n <button\n *ngIf=\"allowInlineEdit && access.Edit\"\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n ></button>\n <ng-container *ngIf=\"gridSetting && gridSetting.Hidden !== true\">\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n ></button>\n\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\">\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\">\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\">\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n\n <fd-split-button\n *ngIf=\"viewCollection && viewCollection.length > 1\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let viewObject of viewCollection\">\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\">\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n</fd-toolbar>\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i5.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i5.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i5.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i5.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i5.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i6.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i7.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i7.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i7.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: i7.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ UlvToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UlvToolbarComponent, selector: "bsu-ulv-toolbar", inputs: { allowGridColumnSort: "allowGridColumnSort", useLayoutItemTextForControl: "useLayoutItemTextForControl", enableSearch: "enableSearch", hideTitle: "hideTitle", title: "title", deviceName: "deviceName", deviceSize: "deviceSize", access: "access", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", contentDensity: "contentDensity", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", gridSetting: "gridSetting", viewCollection: "viewCollection", reportView: "reportView", inDialog: "inDialog", isMultiSelect: "isMultiSelect", hasSelected: "hasSelected", config: "config", hidden: "hidden", buttons: "buttons", moDataListCount: "moDataListCount" }, outputs: { search: "search", groupbyClick: "groupbyClick", sortClick: "sortClick", columnClick: "columnClick", editModeClick: "editModeClick", viewClick: "viewClick", createNewInlineMo: "createNewInlineMo" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"false\"\n [title]=\"!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''\"\n *ngIf=\"!useLayoutItemTextForControl && !hideToolbar\"\n>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\" fd-toolbar-item></fd-toolbar-spacer>\n\n <ng-container *ngIf=\"!hideToolbar\">\n <ng-container *ngFor=\"let btn of toolbarButtons; trackBy: _trackBy; let i = index\">\n <button\n *ngIf=\"btn !== '-' && btn.Command && !btn.Command.CustomUi && !btn.menu\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n [label]=\"deviceSize === 's' ? (btn.text || '' | bbbTranslate) : ''\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n bodyClick\n >\n <img\n *ngIf=\"!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span *ngIf=\"!btn.hideText\">{{ btn.text | bbbTranslate }}</span>\n </button>\n <fd-toolbar-separator\n fd-toolbar-item\n *ngIf=\"(btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile'\"\n ></fd-toolbar-separator>\n\n <button\n *ngIf=\"btn.menu\"\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n bodyClick\n >\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let btnCommand of btn.menu.items\"\n [ulvCommandHandler]=\"btnCommand\"\n (click)=\"menu.close()\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </button>\n\n <bnrc-dynamic-form-toolbaritem\n *ngIf=\"btn !== '-' && btn.Command && btn.Command.CustomUi\"\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n bodyClick\n ></bnrc-dynamic-form-toolbaritem>\n </ng-container>\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n <button\n *ngIf=\"allowInlineEdit && access.Edit\"\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n bodyClick\n ></button>\n <ng-container *ngIf=\"gridSetting && gridSetting.Hidden !== true && allowGridColumnSort\">\n <ng-container *ngIf=\"deviceSize === 's'\">\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [label]=\"'Groups' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [label]=\"'Sort' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [label]=\"'Columns' | bbbTranslate\"\n bodyClick\n ></button>\n </ng-container>\n\n <button\n *ngIf=\"deviceSize !== 's'\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n bodyClick\n ></button>\n\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n\n <fd-split-button\n *ngIf=\"viewCollection && viewCollection.length > 1\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let viewObject of viewCollection\">\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\">\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n</fd-toolbar>\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i5.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i5.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i5.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i5.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i5.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i6.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "disabled", "mainActionTitle", "fdType", "expandButtonAriaLabel", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i7.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i7.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: i7.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: i7.ToolbarOverflowPriorityDirective, selector: "[fdOverflowPriority]", inputs: ["fdOverflowPriority"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UlvToolbarComponent, decorators: [{
52
52
  type: Component,
53
- args: [{ selector: 'bsu-ulv-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"false\"\n [title]=\"!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''\"\n *ngIf=\"!useLayoutItemTextForControl && !hideToolbar\"\n>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\" fd-toolbar-item></fd-toolbar-spacer>\n\n <ng-container *ngIf=\"!hideToolbar\">\n <ng-container *ngFor=\"let btn of toolbarButtons; trackBy: _trackBy; let i = index\">\n <button\n *ngIf=\"btn !== '-' && btn.Command && !btn.Command.CustomUi && !btn.menu\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n >\n <img\n *ngIf=\"!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span *ngIf=\"!btn.hideText\">{{ btn.text | bbbTranslate }}</span>\n </button>\n <fd-toolbar-separator\n fd-toolbar-item\n *ngIf=\"(btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile'\"\n ></fd-toolbar-separator>\n\n <button\n *ngIf=\"btn.menu\"\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n >\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let btnCommand of btn.menu.items\"\n [ulvCommandHandler]=\"btnCommand\"\n (click)=\"menu.close()\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </button>\n\n <bnrc-dynamic-form-toolbaritem\n *ngIf=\"btn !== '-' && btn.Command && btn.Command.CustomUi\"\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n ></bnrc-dynamic-form-toolbaritem>\n </ng-container>\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n <button\n *ngIf=\"allowInlineEdit && access.Edit\"\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n ></button>\n <ng-container *ngIf=\"gridSetting && gridSetting.Hidden !== true\">\n <button\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n ></button>\n\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\">\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\">\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\">\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n\n <fd-split-button\n *ngIf=\"viewCollection && viewCollection.length > 1\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let viewObject of viewCollection\">\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\">\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n</fd-toolbar>\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"] }]
54
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { useLayoutItemTextForControl: [{
53
+ args: [{ selector: 'bsu-ulv-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-toolbar\n #toolbar\n [shouldOverflow]=\"deviceSize === 's'\"\n [ngClass]=\"deviceSize\"\n [hasTitle]=\"!hideTitle\"\n [forceOverflow]=\"false\"\n [title]=\"!hideTitle && deviceSize !== 's' ? (title | bbbTranslate) : ''\"\n *ngIf=\"!useLayoutItemTextForControl && !hideToolbar\"\n>\n <fd-toolbar-spacer *ngIf=\"deviceSize !== 's'\" fd-toolbar-item></fd-toolbar-spacer>\n\n <ng-container *ngIf=\"!hideToolbar\">\n <ng-container *ngFor=\"let btn of toolbarButtons; trackBy: _trackBy; let i = index\">\n <button\n *ngIf=\"btn !== '-' && btn.Command && !btn.Command.CustomUi && !btn.menu\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"btn.itemId === 'Edit' ? 'always' : btn.Command?.IsBuiltin ? 'low' : 'high'\"\n [ulvCommandHandler]=\"btn\"\n [disable]=\"inlineEditMode && btn.itemId === 'New'\"\n [disabled]=\"btn.Command._isEnable === false ? true : false\"\n [fdType]=\"!btn.Command._isEnable ? 'transparent' : btn.Command.JsonExtraProp?.Design || 'transparent'\"\n [glyph]=\"deviceSize === 's' ? null : btn.Command.JsonExtraProp?.Icon\"\n [title]=\"(btn.Command?.IsBuiltin ? btn.text : '') | bbbTranslate\"\n [label]=\"deviceSize === 's' ? (btn.text || '' | bbbTranslate) : ''\"\n (click)=\"inlineEditMode && btn.itemId === 'New' && createNewInlineMo.emit()\"\n bodyClick\n >\n <img\n *ngIf=\"!btn.Command.JsonExtraProp?.Icon && !btn.Command?.IsBuiltin && btn.icon\"\n width=\"16\"\n [src]=\"btn.icon\"\n />\n <span *ngIf=\"!btn.hideText\">{{ btn.text | bbbTranslate }}</span>\n </button>\n <fd-toolbar-separator\n fd-toolbar-item\n *ngIf=\"(btn === '-' || btn.type === 'seperator') && deviceName !== 'mobile'\"\n ></fd-toolbar-separator>\n\n <button\n *ngIf=\"btn.menu\"\n fd-button\n fd-toolbar-item\n [fdMenu]=\"true\"\n [fdType]=\"btn.Command?.IsBuiltin ? 'standard' : 'transparent'\"\n [label]=\"btn.text | bbbTranslate\"\n [ariaLabel]=\"btn.text | bbbTranslate\"\n [fdMenuTrigger]=\"menu\"\n bodyClick\n >\n <fd-menu #menu>\n <li\n fd-menu-item\n *ngFor=\"let btnCommand of btn.menu.items\"\n [ulvCommandHandler]=\"btnCommand\"\n (click)=\"menu.close()\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n </fd-menu>\n </button>\n\n <bnrc-dynamic-form-toolbaritem\n *ngIf=\"btn !== '-' && btn.Command && btn.Command.CustomUi\"\n fd-toolbar-item\n [ulvCommandHandler]=\"btn\"\n [component]=\"btn.Command?.CustomUi\"\n [context]=\"btn\"\n [isEnable]=\"btn.Command?._isEnable\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n bodyClick\n ></bnrc-dynamic-form-toolbaritem>\n </ng-container>\n <ng-content select=\"[fd-toolbar-item]\"></ng-content>\n <button\n *ngIf=\"allowInlineEdit && access.Edit\"\n fd-button\n fd-toolbar-item\n [fdType]=\"inlineEditMode ? 'emphasized' : 'transparent'\"\n [glyph]=\"'edit'\"\n [label]=\"deviceSize === 's' ? ('Inline Edit In List' | bbbTranslate) : ''\"\n (click)=\"onEditMode()\"\n [attr.fdOverflowPriority]=\"'always'\"\n [title]=\"'Inline Edit In List' | bbbTranslate\"\n bodyClick\n ></button>\n <ng-container *ngIf=\"gridSetting && gridSetting.Hidden !== true && allowGridColumnSort\">\n <ng-container *ngIf=\"deviceSize === 's'\">\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onGroupbySettings()\"\n [label]=\"'Groups' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onSortSettings()\"\n [label]=\"'Sort' | bbbTranslate\"\n bodyClick\n ></button>\n <button\n fd-toolbar-item\n fd-button\n [contentDensity]=\"contentDensity\"\n fdType=\"transparent\"\n [attr.fdOverflowPriority]=\"'always'\"\n (click)=\"onColumnSettings()\"\n [label]=\"'Columns' | bbbTranslate\"\n bodyClick\n ></button>\n </ng-container>\n\n <button\n *ngIf=\"deviceSize !== 's'\"\n fd-button\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"'never'\"\n [fdMenu]=\"true\"\n fdType=\"transparent\"\n glyph=\"action-settings\"\n [title]=\"'Settings' | bbbTranslate\"\n [fdMenuTrigger]=\"tableMenuSettings\"\n bodyClick\n ></button>\n\n <fd-menu #tableMenuSettings>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onColumnSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"action-settings\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Columns' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onSortSettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"sort\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Sort' | bbbTranslate }}\n </span>\n </div>\n </li>\n <li fd-menu-item>\n <div fd-menu-interactive (click)=\"tableMenuSettings.close(); onGroupbySettings()\" bodyClick>\n <fd-menu-addon position=\"before\" glyph=\"group-2\"></fd-menu-addon>\n <span fd-menu-title>\n {{ 'Groups' | bbbTranslate }}\n </span>\n </div>\n </li>\n </fd-menu>\n\n <fd-split-button\n *ngIf=\"viewCollection && viewCollection.length > 1\"\n fd-toolbar-item\n [attr.fdOverflowPriority]=\"deviceSize === 's' ? 'always' : 'low'\"\n [fdType]=\"'transparent'\"\n [mainAction]=\"{\n keepMainAction: true,\n mainActionTitle: splitBtnTitle\n }\"\n >\n <fd-menu>\n <li fd-menu-item *ngFor=\"let viewObject of viewCollection\">\n <div fd-menu-interactive (click)=\"onChangeView(viewObject)\">\n <span fd-menu-title>\n <fd-icon [glyph]=\"viewObject.UiComponent.Settings?.Icon\"> </fd-icon>\n </span>\n </div>\n </li>\n </fd-menu>\n </fd-split-button>\n <ng-template #splitBtnTitle>\n <fd-icon [glyph]=\"reportView.UiComponent.Settings?.Icon\"></fd-icon>\n </ng-template>\n <ng-template #splitBtnSettings>\n <fd-icon [glyph]=\"'action-settings'\"></fd-icon>\n </ng-template>\n </ng-container>\n </ng-container>\n</fd-toolbar>\n", styles: [":host{display:block;width:100%;position:relative}:host ::ng-deep .fd-toolbar{flex-wrap:nowrap!important}:host ::ng-deep .fd-toolbar{border-top:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-left:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-right:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}:host fd-toolbar.s ::ng-deep .fd-toolbar{justify-content:end}\n"] }]
54
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { allowGridColumnSort: [{
55
+ type: Input
56
+ }], useLayoutItemTextForControl: [{
55
57
  type: Input
56
58
  }], enableSearch: [{
57
59
  type: Input
@@ -110,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
110
112
  }], createNewInlineMo: [{
111
113
  type: Output
112
114
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNILGFBQWEsRUFLaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBZ0NsRCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTdCeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQXFCakIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ2pELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFJdkQsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELGNBQWM7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsVUFBVTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVksQ0FBQyxJQUFzQjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBQ00sUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDOztnSEEzRFEsbUJBQW1CO29HQUFuQixtQkFBbUIsbzdCQzFCaEMsc3pOQXdKQTsyRkQ5SGEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNO2lHQUd0QywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHkgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEJhc2VDb21wb25lbnQsXG4gICAgRGVmYXVsdENvbW1hbmRzQWNjZXNzLFxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcbiAgICBEZXZpY2VTaXplLFxuICAgIFVpUmVwb3J0Vmlld0Jhc2Vcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11bHYtdG9vbGJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vsdi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91bHYtdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVsdlRvb2xiYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSB1c2VMYXlvdXRJdGVtVGV4dEZvckNvbnRyb2w6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZW5hYmxlU2VhcmNoOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVUaXRsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG4gICAgQElucHV0KCkgYWNjZXNzOiBEZWZhdWx0Q29tbWFuZHNBY2Nlc3M7XG4gICAgQElucHV0KCkgaGlkZVRvb2xiYXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdG9vbGJhckJ1dHRvbnM6IGFueVtdO1xuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0TW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhbGxvd0lubGluZUVkaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZ3JpZFNldHRpbmc6IGFueTtcbiAgICBASW5wdXQoKSB2aWV3Q29sbGVjdGlvbjogYW55W107XG4gICAgQElucHV0KCkgcmVwb3J0VmlldzogVWlSZXBvcnRWaWV3QmFzZTtcbiAgICBASW5wdXQoKSBpbkRpYWxvZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc011bHRpU2VsZWN0OiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgaGFzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29uZmlnOiBhbnk7XG4gICAgQElucHV0KCkgaGlkZGVuOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGJ1dHRvbnM6IGFueVtdO1xuICAgIEBJbnB1dCgpIG1vRGF0YUxpc3RDb3VudDogbnVtYmVyO1xuICAgIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgZ3JvdXBieUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgQE91dHB1dCgpIHNvcnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBjb2x1bW5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBlZGl0TW9kZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSB2aWV3Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFVpUmVwb3J0Vmlld0Jhc2U+KCk7XG4gICAgQE91dHB1dCgpIGNyZWF0ZU5ld0lubGluZU1vID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICB9XG5cbiAgICBvbkdyb3VwYnlTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cGJ5Q2xpY2suZW1pdCh0aGlzLmRldmljZU5hbWUpO1xuICAgIH1cbiAgICBvblNvcnRTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zb3J0Q2xpY2suZW1pdCh0aGlzLmRldmljZU5hbWUpO1xuICAgIH1cbiAgICBvbkNvbHVtblNldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbkNsaWNrLmVtaXQodGhpcy5kZXZpY2VOYW1lKTtcbiAgICB9XG4gICAgb25FZGl0TW9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0TW9kZUNsaWNrLmVtaXQoKTtcbiAgICB9XG4gICAgb25DaGFuZ2VWaWV3KHZpZXc6IFVpUmVwb3J0Vmlld0Jhc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q2xpY2suZW1pdCh2aWV3KTtcbiAgICB9XG4gICAgX3RyYWNrQnkoaW5kZXgsIGl0ZW0pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbT8uaXRlbUlkO1xuICAgIH1cbiAgICBwdWJsaWMgaWRlbnRpZnkoaW5kZXgsIGl0ZW0pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS50ZXh0O1xuICAgIH1cbn1cbiIsIjxmZC10b29sYmFyXG4gICAgI3Rvb2xiYXJcbiAgICBbc2hvdWxkT3ZlcmZsb3ddPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCJcbiAgICBbbmdDbGFzc109XCJkZXZpY2VTaXplXCJcbiAgICBbaGFzVGl0bGVdPVwiIWhpZGVUaXRsZVwiXG4gICAgW2ZvcmNlT3ZlcmZsb3ddPVwiZmFsc2VcIlxuICAgIFt0aXRsZV09XCIhaGlkZVRpdGxlICYmIGRldmljZVNpemUgIT09ICdzJyA/ICh0aXRsZSB8IGJiYlRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgKm5nSWY9XCIhdXNlTGF5b3V0SXRlbVRleHRGb3JDb250cm9sICYmICFoaWRlVG9vbGJhclwiXG4+XG4gICAgPGZkLXRvb2xiYXItc3BhY2VyICpuZ0lmPVwiZGV2aWNlU2l6ZSAhPT0gJ3MnXCIgZmQtdG9vbGJhci1pdGVtPjwvZmQtdG9vbGJhci1zcGFjZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVUb29sYmFyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiB0b29sYmFyQnV0dG9uczsgdHJhY2tCeTogX3RyYWNrQnk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImJ0biAhPT0gJy0nICYmIGJ0bi5Db21tYW5kICYmICFidG4uQ29tbWFuZC5DdXN0b21VaSAmJiAhYnRuLm1lbnVcIlxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCJidG4uaXRlbUlkID09PSAnRWRpdCcgPyAnYWx3YXlzJyA6IGJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gPyAnbG93JyA6ICdoaWdoJ1wiXG4gICAgICAgICAgICAgICAgW3VsdkNvbW1hbmRIYW5kbGVyXT1cImJ0blwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYnRuLml0ZW1JZCA9PT0gJ05ldydcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4uQ29tbWFuZC5faXNFbmFibGUgPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIiFidG4uQ29tbWFuZC5faXNFbmFibGUgPyAndHJhbnNwYXJlbnQnIDogYnRuLkNvbW1hbmQuSnNvbkV4dHJhUHJvcD8uRGVzaWduIHx8ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJidG4uQ29tbWFuZC5Kc29uRXh0cmFQcm9wPy5JY29uXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiKGJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gPyBidG4udGV4dCA6ICcnKSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImlubGluZUVkaXRNb2RlICYmIGJ0bi5pdGVtSWQgPT09ICdOZXcnICYmIGNyZWF0ZU5ld0lubGluZU1vLmVtaXQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFidG4uQ29tbWFuZC5Kc29uRXh0cmFQcm9wPy5JY29uICYmICFidG4uQ29tbWFuZD8uSXNCdWlsdGluICYmIGJ0bi5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYnRuLmljb25cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhYnRuLmhpZGVUZXh0XCI+e3sgYnRuLnRleHQgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvclxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGJ0biA9PT0gJy0nIHx8IGJ0bi50eXBlID09PSAnc2VwZXJhdG9yJykgJiYgZGV2aWNlTmFtZSAhPT0gJ21vYmlsZSdcIlxuICAgICAgICAgICAgPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImJ0bi5tZW51XCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBbZmRNZW51XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiYnRuLkNvbW1hbmQ/LklzQnVpbHRpbiA/ICdzdGFuZGFyZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiYnRuLnRleHQgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiYnRuLnRleHQgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1tZW51ICNtZW51PlxuICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJ0bkNvbW1hbmQgb2YgYnRuLm1lbnUuaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3VsdkNvbW1hbmRIYW5kbGVyXT1cImJ0bkNvbW1hbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnUuY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7IGJ0bkNvbW1hbmQudGV4dCB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvZmQtbWVudT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8Ym5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW1cbiAgICAgICAgICAgICAgICAqbmdJZj1cImJ0biAhPT0gJy0nICYmIGJ0bi5Db21tYW5kICYmIGJ0bi5Db21tYW5kLkN1c3RvbVVpXCJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiYnRuXCJcbiAgICAgICAgICAgICAgICBbY29tcG9uZW50XT1cImJ0bi5Db21tYW5kPy5DdXN0b21VaVwiXG4gICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiYnRuXCJcbiAgICAgICAgICAgICAgICBbaXNFbmFibGVdPVwiYnRuLkNvbW1hbmQ/Ll9pc0VuYWJsZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtZm9ybS10b29sYmFyaXRlbT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZC10b29sYmFyLWl0ZW1dXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImFsbG93SW5saW5lRWRpdCAmJiBhY2Nlc3MuRWRpdFwiXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2ZkVHlwZV09XCJpbmxpbmVFZGl0TW9kZSA/ICdlbXBoYXNpemVkJyA6ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgW2dseXBoXT1cIidlZGl0J1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25FZGl0TW9kZSgpXCJcbiAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ0lubGluZSBFZGl0IEluIExpc3QnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JpZFNldHRpbmcgJiYgZ3JpZFNldHRpbmcuSGlkZGVuICE9PSB0cnVlXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cIiduZXZlcidcIlxuICAgICAgICAgICAgICAgIFtmZE1lbnVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIGdseXBoPVwiYWN0aW9uLXNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ1NldHRpbmdzJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2ZkTWVudVRyaWdnZXJdPVwidGFibGVNZW51U2V0dGluZ3NcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8ZmQtbWVudSAjdGFibGVNZW51U2V0dGluZ3M+XG4gICAgICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJ0YWJsZU1lbnVTZXR0aW5ncy5jbG9zZSgpOyBvbkNvbHVtblNldHRpbmdzKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJhY3Rpb24tc2V0dGluZ3NcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdDb2x1bW5zJyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwidGFibGVNZW51U2V0dGluZ3MuY2xvc2UoKTsgb25Tb3J0U2V0dGluZ3MoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnRcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdTb3J0JyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwidGFibGVNZW51U2V0dGluZ3MuY2xvc2UoKTsgb25Hcm91cGJ5U2V0dGluZ3MoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cImdyb3VwLTJcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdHcm91cHMnIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L2ZkLW1lbnU+XG5cbiAgICAgICAgICAgIDxmZC1zcGxpdC1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInZpZXdDb2xsZWN0aW9uICYmIHZpZXdDb2xsZWN0aW9uLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCJkZXZpY2VTaXplID09PSAncycgPyAnYWx3YXlzJyA6ICdsb3cnXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFttYWluQWN0aW9uXT1cIntcbiAgICAgICAgICAgICAgICAgICAga2VlcE1haW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG1haW5BY3Rpb25UaXRsZTogc3BsaXRCdG5UaXRsZVxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1tZW51PlxuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCB2aWV3T2JqZWN0IG9mIHZpZXdDb2xsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmUgKGNsaWNrKT1cIm9uQ2hhbmdlVmlldyh2aWV3T2JqZWN0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJ2aWV3T2JqZWN0LlVpQ29tcG9uZW50LlNldHRpbmdzPy5JY29uXCI+IDwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L2ZkLW1lbnU+XG4gICAgICAgICAgICA8L2ZkLXNwbGl0LWJ1dHRvbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3BsaXRCdG5UaXRsZT5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwicmVwb3J0Vmlldy5VaUNvbXBvbmVudC5TZXR0aW5ncz8uSWNvblwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NwbGl0QnRuU2V0dGluZ3M+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cIidhY3Rpb24tc2V0dGluZ3MnXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2ZkLXRvb2xiYXI+XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNILGFBQWEsRUFLaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBUTlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBaUNsRCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTdCeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQXFCakIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ2pELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFJdkQsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELGNBQWM7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsVUFBVTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVksQ0FBQyxJQUFzQjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBQ00sUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDOztnSEE1RFEsbUJBQW1CO29HQUFuQixtQkFBbUIsZytCQzFCaEMsaWpSQWlNQTsyRkR2S2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNO2lHQUd0QyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHkgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBEZWZhdWx0Q29tbWFuZHNBY2Nlc3MsXHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBEZXZpY2VTaXplLFxyXG4gICAgVWlSZXBvcnRWaWV3QmFzZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWx2LXRvb2xiYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vsdi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Vsdi10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWx2VG9vbGJhckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgYWxsb3dHcmlkQ29sdW1uU29ydDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHVzZUxheW91dEl0ZW1UZXh0Rm9yQ29udHJvbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGVuYWJsZVNlYXJjaDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGhpZGVUaXRsZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGRldmljZU5hbWU6IERldmljZVNpemU7XHJcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XHJcbiAgICBASW5wdXQoKSBhY2Nlc3M6IERlZmF1bHRDb21tYW5kc0FjY2VzcztcclxuICAgIEBJbnB1dCgpIGhpZGVUb29sYmFyOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgdG9vbGJhckJ1dHRvbnM6IGFueVtdO1xyXG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5O1xyXG4gICAgQElucHV0KCkgaW5saW5lRWRpdE1vZGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBhbGxvd0lubGluZUVkaXQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBncmlkU2V0dGluZzogYW55O1xyXG4gICAgQElucHV0KCkgdmlld0NvbGxlY3Rpb246IGFueVtdO1xyXG4gICAgQElucHV0KCkgcmVwb3J0VmlldzogVWlSZXBvcnRWaWV3QmFzZTtcclxuICAgIEBJbnB1dCgpIGluRGlhbG9nOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNNdWx0aVNlbGVjdDogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKSBoYXNTZWxlY3RlZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbmZpZzogYW55O1xyXG4gICAgQElucHV0KCkgaGlkZGVuOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgYnV0dG9uczogYW55W107XHJcbiAgICBASW5wdXQoKSBtb0RhdGFMaXN0Q291bnQ6IG51bWJlcjtcclxuICAgIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBncm91cGJ5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBzb3J0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBjb2x1bW5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIGVkaXRNb2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgdmlld0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxVaVJlcG9ydFZpZXdCYXNlPigpO1xyXG4gICAgQE91dHB1dCgpIGNyZWF0ZU5ld0lubGluZU1vID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgZW5hYmxlOiBib29sZWFuO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkdyb3VwYnlTZXR0aW5ncygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdyb3VwYnlDbGljay5lbWl0KHRoaXMuZGV2aWNlTmFtZSk7XHJcbiAgICB9XHJcbiAgICBvblNvcnRTZXR0aW5ncygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNvcnRDbGljay5lbWl0KHRoaXMuZGV2aWNlTmFtZSk7XHJcbiAgICB9XHJcbiAgICBvbkNvbHVtblNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29sdW1uQ2xpY2suZW1pdCh0aGlzLmRldmljZU5hbWUpO1xyXG4gICAgfVxyXG4gICAgb25FZGl0TW9kZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRNb2RlQ2xpY2suZW1pdCgpO1xyXG4gICAgfVxyXG4gICAgb25DaGFuZ2VWaWV3KHZpZXc6IFVpUmVwb3J0Vmlld0Jhc2UpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdDbGljay5lbWl0KHZpZXcpO1xyXG4gICAgfVxyXG4gICAgX3RyYWNrQnkoaW5kZXgsIGl0ZW0pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBpdGVtPy5pdGVtSWQ7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgaWRlbnRpZnkoaW5kZXgsIGl0ZW0pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnRleHQ7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZkLXRvb2xiYXJcbiAgICAjdG9vbGJhclxuICAgIFtzaG91bGRPdmVyZmxvd109XCJkZXZpY2VTaXplID09PSAncydcIlxuICAgIFtuZ0NsYXNzXT1cImRldmljZVNpemVcIlxuICAgIFtoYXNUaXRsZV09XCIhaGlkZVRpdGxlXCJcbiAgICBbZm9yY2VPdmVyZmxvd109XCJmYWxzZVwiXG4gICAgW3RpdGxlXT1cIiFoaWRlVGl0bGUgJiYgZGV2aWNlU2l6ZSAhPT0gJ3MnID8gKHRpdGxlIHwgYmJiVHJhbnNsYXRlKSA6ICcnXCJcbiAgICAqbmdJZj1cIiF1c2VMYXlvdXRJdGVtVGV4dEZvckNvbnRyb2wgJiYgIWhpZGVUb29sYmFyXCJcbj5cbiAgICA8ZmQtdG9vbGJhci1zcGFjZXIgKm5nSWY9XCJkZXZpY2VTaXplICE9PSAncydcIiBmZC10b29sYmFyLWl0ZW0+PC9mZC10b29sYmFyLXNwYWNlcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZVRvb2xiYXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIHRvb2xiYXJCdXR0b25zOyB0cmFja0J5OiBfdHJhY2tCeTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYnRuICE9PSAnLScgJiYgYnRuLkNvbW1hbmQgJiYgIWJ0bi5Db21tYW5kLkN1c3RvbVVpICYmICFidG4ubWVudVwiXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgW2F0dHIuZmRPdmVyZmxvd1ByaW9yaXR5XT1cImJ0bi5pdGVtSWQgPT09ICdFZGl0JyA/ICdhbHdheXMnIDogYnRuLkNvbW1hbmQ/LklzQnVpbHRpbiA/ICdsb3cnIDogJ2hpZ2gnXCJcbiAgICAgICAgICAgICAgICBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiYnRuXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZV09XCJpbmxpbmVFZGl0TW9kZSAmJiBidG4uaXRlbUlkID09PSAnTmV3J1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5Db21tYW5kLl9pc0VuYWJsZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiIWJ0bi5Db21tYW5kLl9pc0VuYWJsZSA/ICd0cmFuc3BhcmVudCcgOiBidG4uQ29tbWFuZC5Kc29uRXh0cmFQcm9wPy5EZXNpZ24gfHwgJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cImRldmljZVNpemUgPT09ICdzJyA/IG51bGwgOiBidG4uQ29tbWFuZC5Kc29uRXh0cmFQcm9wPy5JY29uXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiKGJ0bi5Db21tYW5kPy5Jc0J1aWx0aW4gPyBidG4udGV4dCA6ICcnKSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImRldmljZVNpemUgPT09ICdzJyA/IChidG4udGV4dCB8fCAnJyB8IGJiYlRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImlubGluZUVkaXRNb2RlICYmIGJ0bi5pdGVtSWQgPT09ICdOZXcnICYmIGNyZWF0ZU5ld0lubGluZU1vLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgYm9keUNsaWNrXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFidG4uQ29tbWFuZC5Kc29uRXh0cmFQcm9wPy5JY29uICYmICFidG4uQ29tbWFuZD8uSXNCdWlsdGluICYmIGJ0bi5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYnRuLmljb25cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhYnRuLmhpZGVUZXh0XCI+e3sgYnRuLnRleHQgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvclxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGJ0biA9PT0gJy0nIHx8IGJ0bi50eXBlID09PSAnc2VwZXJhdG9yJykgJiYgZGV2aWNlTmFtZSAhPT0gJ21vYmlsZSdcIlxuICAgICAgICAgICAgPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImJ0bi5tZW51XCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBbZmRNZW51XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiYnRuLkNvbW1hbmQ/LklzQnVpbHRpbiA/ICdzdGFuZGFyZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiYnRuLnRleHQgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiYnRuLnRleHQgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgICAgICAgICAgICAgIGJvZHlDbGlja1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1tZW51ICNtZW51PlxuICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJ0bkNvbW1hbmQgb2YgYnRuLm1lbnUuaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3VsdkNvbW1hbmRIYW5kbGVyXT1cImJ0bkNvbW1hbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnUuY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7IGJ0bkNvbW1hbmQudGV4dCB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvZmQtbWVudT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8Ym5yYy1keW5hbWljLWZvcm0tdG9vbGJhcml0ZW1cbiAgICAgICAgICAgICAgICAqbmdJZj1cImJ0biAhPT0gJy0nICYmIGJ0bi5Db21tYW5kICYmIGJ0bi5Db21tYW5kLkN1c3RvbVVpXCJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiYnRuXCJcbiAgICAgICAgICAgICAgICBbY29tcG9uZW50XT1cImJ0bi5Db21tYW5kPy5DdXN0b21VaVwiXG4gICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiYnRuXCJcbiAgICAgICAgICAgICAgICBbaXNFbmFibGVdPVwiYnRuLkNvbW1hbmQ/Ll9pc0VuYWJsZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgYm9keUNsaWNrXG4gICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtZm9ybS10b29sYmFyaXRlbT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZC10b29sYmFyLWl0ZW1dXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImFsbG93SW5saW5lRWRpdCAmJiBhY2Nlc3MuRWRpdFwiXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2ZkVHlwZV09XCJpbmxpbmVFZGl0TW9kZSA/ICdlbXBoYXNpemVkJyA6ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgW2dseXBoXT1cIidlZGl0J1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gKCdJbmxpbmUgRWRpdCBJbiBMaXN0JyB8IGJiYlRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25FZGl0TW9kZSgpXCJcbiAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ0lubGluZSBFZGl0IEluIExpc3QnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGJvZHlDbGlja1xuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncmlkU2V0dGluZyAmJiBncmlkU2V0dGluZy5IaWRkZW4gIT09IHRydWUgJiYgYWxsb3dHcmlkQ29sdW1uU29ydFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldmljZVNpemUgPT09ICdzJ1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkdyb3VwYnlTZXR0aW5ncygpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidHcm91cHMnIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgYm9keUNsaWNrXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInYWx3YXlzJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNvcnRTZXR0aW5ncygpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTb3J0JyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvZHlDbGlja1xuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiJ2Fsd2F5cydcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db2x1bW5TZXR0aW5ncygpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDb2x1bW5zJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvZHlDbGlja1xuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkZXZpY2VTaXplICE9PSAncydcIlxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIFthdHRyLmZkT3ZlcmZsb3dQcmlvcml0eV09XCInbmV2ZXInXCJcbiAgICAgICAgICAgICAgICBbZmRNZW51XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBnbHlwaD1cImFjdGlvbi1zZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidTZXR0aW5ncycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cInRhYmxlTWVudVNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICBib2R5Q2xpY2tcbiAgICAgICAgICAgID48L2J1dHRvbj5cblxuICAgICAgICAgICAgPGZkLW1lbnUgI3RhYmxlTWVudVNldHRpbmdzPlxuICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwidGFibGVNZW51U2V0dGluZ3MuY2xvc2UoKTsgb25Db2x1bW5TZXR0aW5ncygpXCIgYm9keUNsaWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cImFjdGlvbi1zZXR0aW5nc1wiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0NvbHVtbnMnIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJ0YWJsZU1lbnVTZXR0aW5ncy5jbG9zZSgpOyBvblNvcnRTZXR0aW5ncygpXCIgYm9keUNsaWNrPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnRcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdTb3J0JyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZSAoY2xpY2spPVwidGFibGVNZW51U2V0dGluZ3MuY2xvc2UoKTsgb25Hcm91cGJ5U2V0dGluZ3MoKVwiIGJvZHlDbGljaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJncm91cC0yXCI+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnR3JvdXBzJyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9mZC1tZW51PlxuXG4gICAgICAgICAgICA8ZmQtc3BsaXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ2aWV3Q29sbGVjdGlvbiAmJiB2aWV3Q29sbGVjdGlvbi5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICBbYXR0ci5mZE92ZXJmbG93UHJpb3JpdHldPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gJ2Fsd2F5cycgOiAnbG93J1wiXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbbWFpbkFjdGlvbl09XCJ7XG4gICAgICAgICAgICAgICAgICAgIGtlZXBNYWluQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtYWluQWN0aW9uVGl0bGU6IHNwbGl0QnRuVGl0bGVcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZmQtbWVudT5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgdmlld09iamVjdCBvZiB2aWV3Q29sbGVjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlIChjbGljayk9XCJvbkNoYW5nZVZpZXcodmlld09iamVjdClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBbZ2x5cGhdPVwidmlld09iamVjdC5VaUNvbXBvbmVudC5TZXR0aW5ncz8uSWNvblwiPiA8L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9mZC1tZW51PlxuICAgICAgICAgICAgPC9mZC1zcGxpdC1idXR0b24+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NwbGl0QnRuVGl0bGU+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cInJlcG9ydFZpZXcuVWlDb21wb25lbnQuU2V0dGluZ3M/Lkljb25cIj48L2ZkLWljb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzcGxpdEJ0blNldHRpbmdzPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCInYWN0aW9uLXNldHRpbmdzJ1wiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9mZC10b29sYmFyPlxuIl19