barsa-sap-ui 2.0.11 → 2.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/barsa-report-one-of-list/barsa-report-one-of-list.component.mjs +3 -3
- package/esm2022/lib/report-tree-base.mjs +5 -33
- package/esm2022/lib/ui-grid/ui-grid.component.mjs +1 -1
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +5 -3
- package/esm2022/lib/ui-tree/ui-tree.component.mjs +3 -3
- package/fesm2022/barsa-sap-ui.mjs +13 -39
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/report-tree-base.d.ts +0 -2
- package/lib/ui-table-view/ui-table-view.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -81,11 +81,11 @@ export class BarsaReportOneOfListComponent extends ReportViewBaseComponent {
|
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaReportOneOfListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaReportOneOfListComponent, selector: "bsu-barsa-report-one-of-list", inputs: { disabled: "disabled" }, viewQueries: [{ propertyName: "_inputGroupRef", first: true, predicate: ["InputGroupRef"], descendants: true, static: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"relative\" #containerRef>\n <input\n fd-form-control\n [readonly]=\"true\"\n [ngModel]=\"viewSetting.DbColumnName | rval: lastRecord:allColumns:true\"\n class=\"revert-readonly-bg\"\n />\n <div class=\"!absolute left-0 top-[0.1875rem] flex\">\n @if (viewSetting.OpenInIndependentForm) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"popup-window\"\n ariaLabel=\"Open in an independent form\"\n title=\"Open in an independent form\"\n (click)=\"openInIndependentFormClicked()\"\n ></button>\n }\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"list\"\n ariaLabel=\"Show list\"\n title=\"Show list\"\n (click)=\"open(popover, dialogTemplate)\"\n ></button>\n </div>\n <fd-popover\n #popover\n placement=\"bottom-end\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [appendTo]=\"containerRef\"\n class=\"!block\"\n >\n <fd-popover-body [style.width.px]=\"containerRef.offsetWidth\">\n <ng-container *ngTemplateOutlet=\"middle\"></ng-container>\n <div fd-popover-body-footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\n<ng-template #middle>\n <bsu-ulv-toolbar\n [hideToolbar]=\"customButtons.length === 0\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"customButtons\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [title]=\"isMobile ? title : ''\"\n [access]=\"access\"\n [isMultiSelect]=\"isMultiSelect\"\n [inDialog]=\"inDialog\"\n [hasSelected]=\"hasSelected\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"false\"\n [allowInlineEdit]=\"false\"\n [moDataListCount]=\"moDataList.length\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n ></bsu-ulv-toolbar>\n <bsu-ui-table-view\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n [cartableTemplates]=\"cartableTemplates\"\n [parentHeight]=\"parentHeight\"\n [fullscreen]=\"fullscreen\"\n [selectedMo]=\"selectedMo\"\n [rtl]=\"rtl\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [cartableChildsMo]=\"cartableChildsMo\"\n [contextView]=\"contextView\"\n [isCheckList]=\"isCheckList\"\n [allChecked]=\"allChecked\"\n [moDataList]=\"moDataList\"\n [access]=\"access\"\n [hasInlineDeleteButton]=\"true\"\n [hasInlineEditButton]=\"true\"\n [toolbarButtons]=\"toolbarButtons\"\n [groupby]=\"groupby\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [navigationArrow]=\"navigationArrow\"\n [title]=\"title\"\n [mobileOrTablet]=\"mobileOrTablet\"\n [disableResponsive]=\"disableResponsive\"\n [popin]=\"popin\"\n [secondaryColumns]=\"secondaryColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [columns]=\"columns\"\n [columnWidth]=\"100 / columns.length\"\n [columnsCount]=\"columnsCount\"\n [rowHoverable]=\"rowHoverable\"\n [rowActivable]=\"rowActivable\"\n [formSetting]=\"formSetting\"\n [typeDefId]=\"typeDefId\"\n [reportId]=\"reportId\"\n [listEditViewId]=\"listEditViewId\"\n [typeViewId]=\"typeViewId\"\n [extraRelation]=\"extraRelation\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [fitWidth]=\"false\"\n [hasSummary]=\"hasSummary\"\n [newInlineEditMo]=\"newInlineEditMo\"\n (ulvCommandClick)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n (rowClick)=\"onRowClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n >\n </bsu-ui-table-view>\n</ng-template>\n<ng-template #footer let-dialog=\"dialog\" let-popover=\"popover\">\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-right>\n <fd-button-bar\n [label]=\"getNewButton?.text ?? ''\"\n fdType=\"emphasized\"\n (click)=\"onAdd(popover)\"\n bodyClick\n glyph=\"add\"\n ></fd-button-bar>\n <fd-button-bar\n fdType=\"transparent\"\n label=\"\u0628\u0633\u062A\u0646\"\n (click)=\"close(popover, dialog)\"\n ariaLabel=\"Close\"\n ></fd-button-bar>\n </div>\n </div>\n</ng-template>\n\n<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ title }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss()\"></button>\n </fd-dialog-header>\n <fd-dialog-body class=\"!pt-0\">\n <ng-container *ngTemplateOutlet=\"middle\"></ng-container>\n </fd-dialog-body>\n <fd-dialog-footer>\n <ng-container *ngTemplateOutlet=\"footer; context: { dialog: dialog }\"></ng-container>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".revert-readonly-bg{background-color:var(--sapField_Background)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i7.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i7.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i7.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i7.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "directive", type: i7.DialogTemplateDirective, selector: "[fdDialogTemplate]", inputs: ["fdDialogTemplateConfig"] }, { kind: "component", type: i8.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i9.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i9.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i9.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i10.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: i11.UiTableViewComponent, selector: "bsu-ui-table-view", inputs: ["columnWidth", "minWidth", "minHeight", "rowResizer", "enableResizing"] }, { kind: "pipe", type: i3.MoReportValuePipe, name: "rval" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaReportOneOfListComponent, selector: "bsu-barsa-report-one-of-list", inputs: { disabled: "disabled" }, viewQueries: [{ propertyName: "_inputGroupRef", first: true, predicate: ["InputGroupRef"], descendants: true, static: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"tw-relative\" #containerRef>\n <input\n fd-form-control\n [readonly]=\"true\"\n [ngModel]=\"viewSetting.DbColumnName | rval: lastRecord:allColumns:true\"\n class=\"revert-readonly-bg\"\n />\n <div class=\"!tw-absolute tw-left-0 tw-top-[0.1875rem] tw-flex\">\n @if (viewSetting.OpenInIndependentForm) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"popup-window\"\n ariaLabel=\"Open in an independent form\"\n title=\"Open in an independent form\"\n (click)=\"openInIndependentFormClicked()\"\n ></button>\n }\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"list\"\n ariaLabel=\"Show list\"\n title=\"Show list\"\n (click)=\"open(popover, dialogTemplate)\"\n ></button>\n </div>\n <fd-popover\n #popover\n placement=\"bottom-end\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [appendTo]=\"containerRef\"\n class=\"!tw-block\"\n >\n <fd-popover-body [style.width.px]=\"containerRef.offsetWidth\">\n <ng-container *ngTemplateOutlet=\"middle\"></ng-container>\n <div fd-popover-body-footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\n<ng-template #middle>\n <bsu-ulv-toolbar\n [hideToolbar]=\"customButtons.length === 0\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"customButtons\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [title]=\"isMobile ? title : ''\"\n [access]=\"access\"\n [isMultiSelect]=\"isMultiSelect\"\n [inDialog]=\"inDialog\"\n [hasSelected]=\"hasSelected\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"false\"\n [allowInlineEdit]=\"false\"\n [moDataListCount]=\"moDataList.length\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n ></bsu-ulv-toolbar>\n <bsu-ui-table-view\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n [cartableTemplates]=\"cartableTemplates\"\n [parentHeight]=\"parentHeight\"\n [fullscreen]=\"fullscreen\"\n [selectedMo]=\"selectedMo\"\n [rtl]=\"rtl\"\n [inDialog]=\"inDialog\"\n [disableFixedTableLayout]=\"true\"\n [isMultiSelect]=\"isMultiSelect\"\n [cartableChildsMo]=\"cartableChildsMo\"\n [contextView]=\"contextView\"\n [isCheckList]=\"isCheckList\"\n [allChecked]=\"allChecked\"\n [moDataList]=\"moDataList\"\n [access]=\"access\"\n [hasInlineDeleteButton]=\"true\"\n [hasInlineEditButton]=\"true\"\n [toolbarButtons]=\"toolbarButtons\"\n [groupby]=\"groupby\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [navigationArrow]=\"navigationArrow\"\n [title]=\"title\"\n [mobileOrTablet]=\"mobileOrTablet\"\n [disableResponsive]=\"disableResponsive\"\n [popin]=\"popin\"\n [secondaryColumns]=\"secondaryColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [columns]=\"columns\"\n [columnWidth]=\"100 / columns.length\"\n [columnsCount]=\"columnsCount\"\n [rowHoverable]=\"rowHoverable\"\n [rowActivable]=\"rowActivable\"\n [formSetting]=\"formSetting\"\n [typeDefId]=\"typeDefId\"\n [reportId]=\"reportId\"\n [listEditViewId]=\"listEditViewId\"\n [typeViewId]=\"typeViewId\"\n [extraRelation]=\"extraRelation\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [fitWidth]=\"false\"\n [hasSummary]=\"hasSummary\"\n [newInlineEditMo]=\"newInlineEditMo\"\n (ulvCommandClick)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n (rowClick)=\"onRowClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n >\n </bsu-ui-table-view>\n</ng-template>\n<ng-template #footer let-dialog=\"dialog\" let-popover=\"popover\">\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-right>\n <fd-button-bar\n [label]=\"getNewButton?.text ?? ''\"\n fdType=\"emphasized\"\n (click)=\"onAdd(popover)\"\n bodyClick\n glyph=\"add\"\n ></fd-button-bar>\n <fd-button-bar\n fdType=\"transparent\"\n label=\"\u0628\u0633\u062A\u0646\"\n (click)=\"close(popover, dialog)\"\n ariaLabel=\"Close\"\n ></fd-button-bar>\n </div>\n </div>\n</ng-template>\n\n<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ title }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss()\"></button>\n </fd-dialog-header>\n <fd-dialog-body class=\"!tw-pt-0\">\n <ng-container *ngTemplateOutlet=\"middle\"></ng-container>\n </fd-dialog-body>\n <fd-dialog-footer>\n <ng-container *ngTemplateOutlet=\"footer; context: { dialog: dialog }\"></ng-container>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".revert-readonly-bg{background-color:var(--sapField_Background)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i7.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i7.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i7.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i7.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "directive", type: i7.DialogTemplateDirective, selector: "[fdDialogTemplate]", inputs: ["fdDialogTemplateConfig"] }, { kind: "component", type: i8.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i9.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i9.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i9.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i10.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: i11.UiTableViewComponent, selector: "bsu-ui-table-view", inputs: ["columnWidth", "minWidth", "minHeight", "rowResizer", "enableResizing", "disableFixedTableLayout"] }, { kind: "pipe", type: i3.MoReportValuePipe, name: "rval" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
85
85
|
}
|
|
86
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaReportOneOfListComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
88
|
-
args: [{ selector: 'bsu-barsa-report-one-of-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\" #containerRef>\n <input\n fd-form-control\n [readonly]=\"true\"\n [ngModel]=\"viewSetting.DbColumnName | rval: lastRecord:allColumns:true\"\n class=\"revert-readonly-bg\"\n />\n <div class=\"!absolute left-0 top-[0.1875rem] flex\">\n @if (viewSetting.OpenInIndependentForm) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"popup-window\"\n ariaLabel=\"Open in an independent form\"\n title=\"Open in an independent form\"\n (click)=\"openInIndependentFormClicked()\"\n ></button>\n }\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"list\"\n ariaLabel=\"Show list\"\n title=\"Show list\"\n (click)=\"open(popover, dialogTemplate)\"\n ></button>\n </div>\n <fd-popover\n #popover\n placement=\"bottom-end\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [appendTo]=\"containerRef\"\n class=\"!block\"\n >\n <fd-popover-body [style.width.px]=\"containerRef.offsetWidth\">\n <ng-container *ngTemplateOutlet=\"middle\"></ng-container>\n <div fd-popover-body-footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\n<ng-template #middle>\n <bsu-ulv-toolbar\n [hideToolbar]=\"customButtons.length === 0\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"customButtons\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [title]=\"isMobile ? title : ''\"\n [access]=\"access\"\n [isMultiSelect]=\"isMultiSelect\"\n [inDialog]=\"inDialog\"\n [hasSelected]=\"hasSelected\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"false\"\n [allowInlineEdit]=\"false\"\n [moDataListCount]=\"moDataList.length\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n ></bsu-ulv-toolbar>\n <bsu-ui-table-view\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n [cartableTemplates]=\"cartableTemplates\"\n [parentHeight]=\"parentHeight\"\n [fullscreen]=\"fullscreen\"\n [selectedMo]=\"selectedMo\"\n [rtl]=\"rtl\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [cartableChildsMo]=\"cartableChildsMo\"\n [contextView]=\"contextView\"\n [isCheckList]=\"isCheckList\"\n [allChecked]=\"allChecked\"\n [moDataList]=\"moDataList\"\n [access]=\"access\"\n [hasInlineDeleteButton]=\"true\"\n [hasInlineEditButton]=\"true\"\n [toolbarButtons]=\"toolbarButtons\"\n [groupby]=\"groupby\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [navigationArrow]=\"navigationArrow\"\n [title]=\"title\"\n [mobileOrTablet]=\"mobileOrTablet\"\n [disableResponsive]=\"disableResponsive\"\n [popin]=\"popin\"\n [secondaryColumns]=\"secondaryColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [columns]=\"columns\"\n [columnWidth]=\"100 / columns.length\"\n [columnsCount]=\"columnsCount\"\n [rowHoverable]=\"rowHoverable\"\n [rowActivable]=\"rowActivable\"\n [formSetting]=\"formSetting\"\n [typeDefId]=\"typeDefId\"\n [reportId]=\"reportId\"\n [listEditViewId]=\"listEditViewId\"\n [typeViewId]=\"typeViewId\"\n [extraRelation]=\"extraRelation\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [fitWidth]=\"false\"\n [hasSummary]=\"hasSummary\"\n [newInlineEditMo]=\"newInlineEditMo\"\n (ulvCommandClick)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n (rowClick)=\"onRowClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n >\n </bsu-ui-table-view>\n</ng-template>\n<ng-template #footer let-dialog=\"dialog\" let-popover=\"popover\">\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-right>\n <fd-button-bar\n [label]=\"getNewButton?.text ?? ''\"\n fdType=\"emphasized\"\n (click)=\"onAdd(popover)\"\n bodyClick\n glyph=\"add\"\n ></fd-button-bar>\n <fd-button-bar\n fdType=\"transparent\"\n label=\"\u0628\u0633\u062A\u0646\"\n (click)=\"close(popover, dialog)\"\n ariaLabel=\"Close\"\n ></fd-button-bar>\n </div>\n </div>\n</ng-template>\n\n<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ title }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss()\"></button>\n </fd-dialog-header>\n <fd-dialog-body class=\"!pt-0\">\n <ng-container *ngTemplateOutlet=\"middle\"></ng-container>\n </fd-dialog-body>\n <fd-dialog-footer>\n <ng-container *ngTemplateOutlet=\"footer; context: { dialog: dialog }\"></ng-container>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".revert-readonly-bg{background-color:var(--sapField_Background)}\n"] }]
|
|
88
|
+
args: [{ selector: 'bsu-barsa-report-one-of-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tw-relative\" #containerRef>\n <input\n fd-form-control\n [readonly]=\"true\"\n [ngModel]=\"viewSetting.DbColumnName | rval: lastRecord:allColumns:true\"\n class=\"revert-readonly-bg\"\n />\n <div class=\"!tw-absolute tw-left-0 tw-top-[0.1875rem] tw-flex\">\n @if (viewSetting.OpenInIndependentForm) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"popup-window\"\n ariaLabel=\"Open in an independent form\"\n title=\"Open in an independent form\"\n (click)=\"openInIndependentFormClicked()\"\n ></button>\n }\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"list\"\n ariaLabel=\"Show list\"\n title=\"Show list\"\n (click)=\"open(popover, dialogTemplate)\"\n ></button>\n </div>\n <fd-popover\n #popover\n placement=\"bottom-end\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [appendTo]=\"containerRef\"\n class=\"!tw-block\"\n >\n <fd-popover-body [style.width.px]=\"containerRef.offsetWidth\">\n <ng-container *ngTemplateOutlet=\"middle\"></ng-container>\n <div fd-popover-body-footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\n<ng-template #middle>\n <bsu-ulv-toolbar\n [hideToolbar]=\"customButtons.length === 0\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [toolbarButtons]=\"customButtons\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [title]=\"isMobile ? title : ''\"\n [access]=\"access\"\n [isMultiSelect]=\"isMultiSelect\"\n [inDialog]=\"inDialog\"\n [hasSelected]=\"hasSelected\"\n [contentDensity]=\"contentDensity\"\n [inlineEditMode]=\"false\"\n [allowInlineEdit]=\"false\"\n [moDataListCount]=\"moDataList.length\"\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n ></bsu-ulv-toolbar>\n <bsu-ui-table-view\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\n [cartableTemplates]=\"cartableTemplates\"\n [parentHeight]=\"parentHeight\"\n [fullscreen]=\"fullscreen\"\n [selectedMo]=\"selectedMo\"\n [rtl]=\"rtl\"\n [inDialog]=\"inDialog\"\n [disableFixedTableLayout]=\"true\"\n [isMultiSelect]=\"isMultiSelect\"\n [cartableChildsMo]=\"cartableChildsMo\"\n [contextView]=\"contextView\"\n [isCheckList]=\"isCheckList\"\n [allChecked]=\"allChecked\"\n [moDataList]=\"moDataList\"\n [access]=\"access\"\n [hasInlineDeleteButton]=\"true\"\n [hasInlineEditButton]=\"true\"\n [toolbarButtons]=\"toolbarButtons\"\n [groupby]=\"groupby\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [navigationArrow]=\"navigationArrow\"\n [title]=\"title\"\n [mobileOrTablet]=\"mobileOrTablet\"\n [disableResponsive]=\"disableResponsive\"\n [popin]=\"popin\"\n [secondaryColumns]=\"secondaryColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [columns]=\"columns\"\n [columnWidth]=\"100 / columns.length\"\n [columnsCount]=\"columnsCount\"\n [rowHoverable]=\"rowHoverable\"\n [rowActivable]=\"rowActivable\"\n [formSetting]=\"formSetting\"\n [typeDefId]=\"typeDefId\"\n [reportId]=\"reportId\"\n [listEditViewId]=\"listEditViewId\"\n [typeViewId]=\"typeViewId\"\n [extraRelation]=\"extraRelation\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [fitWidth]=\"false\"\n [hasSummary]=\"hasSummary\"\n [newInlineEditMo]=\"newInlineEditMo\"\n (ulvCommandClick)=\"onUlvCommand($event)\"\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\n (sortAscending)=\"onSortAscending($event)\"\n (sortDescending)=\"onSortDescending($event)\"\n (filter)=\"onFilter($event)\"\n (rowClick)=\"onRowClick($event)\"\n (rowCheck)=\"onRowCheck($event)\"\n (allCheckbox)=\"onAllCheckbox($event)\"\n (expandClick)=\"onExpandClick($event)\"\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\n >\n </bsu-ui-table-view>\n</ng-template>\n<ng-template #footer let-dialog=\"dialog\" let-popover=\"popover\">\n <div fd-bar [barDesign]=\"'footer'\">\n <div fd-bar-right>\n <fd-button-bar\n [label]=\"getNewButton?.text ?? ''\"\n fdType=\"emphasized\"\n (click)=\"onAdd(popover)\"\n bodyClick\n glyph=\"add\"\n ></fd-button-bar>\n <fd-button-bar\n fdType=\"transparent\"\n label=\"\u0628\u0633\u062A\u0646\"\n (click)=\"close(popover, dialog)\"\n ariaLabel=\"Close\"\n ></fd-button-bar>\n </div>\n </div>\n</ng-template>\n\n<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-3\" fd-title>{{ title }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss()\"></button>\n </fd-dialog-header>\n <fd-dialog-body class=\"!tw-pt-0\">\n <ng-container *ngTemplateOutlet=\"middle\"></ng-container>\n </fd-dialog-body>\n <fd-dialog-footer>\n <ng-container *ngTemplateOutlet=\"footer; context: { dialog: dialog }\"></ng-container>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [".revert-readonly-bg{background-color:var(--sapField_Background)}\n"] }]
|
|
89
89
|
}], propDecorators: { disabled: [{
|
|
90
90
|
type: Input
|
|
91
91
|
}], _inputGroupRef: [{
|
|
@@ -95,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
95
95
|
type: ViewChild,
|
|
96
96
|
args: ['popover', { static: true }]
|
|
97
97
|
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtcmVwb3J0LW9uZS1vZi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXJlcG9ydC1vbmUtb2YtbGlzdC9iYXJzYS1yZXBvcnQtb25lLW9mLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtcmVwb3J0LW9uZS1vZi1saXN0L2JhcnNhLXJlcG9ydC1vbmUtb2YtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFDSCxpQkFBaUIsRUFFakIsdUJBQXVCLEVBRzFCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFnQixhQUFhLEVBQXlDLE1BQU0sdUJBQXVCLENBQUM7QUFDM0csT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVF6RCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQW9EO0lBTnZHOztRQVVZLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsb0JBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFHakQsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQy9CLGtCQUFhLEdBQWUsRUFBRSxDQUFDO0tBMERsQztJQXpERyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFDTyxtQkFBbUIsQ0FBQyxNQUE2QjtRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFPO1FBQ1QsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDakMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNSLE1BQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWM7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsTUFBTSxZQUFZLEdBQWlCO2dCQUMvQixNQUFNLEVBQUUsSUFBSTthQUNmLENBQUM7WUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsQ0FBQztJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVM7UUFDcEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNMLENBQUM7SUFDRCw0QkFBNEI7UUFDeEIsTUFBTSxXQUFXLEdBQUc7WUFDaEIsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUU7U0FDeEMsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUNqQjtZQUNJLGVBQWU7WUFDZjtnQkFDSSxPQUFPLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQztpQkFDMUM7YUFDSjtTQUNKLEVBQ0Q7WUFDSSxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDaEMsS0FBSyxFQUFFLEVBQUU7WUFDVCxtQkFBbUIsRUFBRSxVQUFVO1lBQy9CLGtCQUFrQixFQUFFLEtBQUs7U0FDNUIsQ0FDSixDQUFDO0lBQ04sQ0FBQzs4R0FwRVEsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsK1ZDakIxQyw2bU1BOEpBOzsyRkQ3SWEsNkJBQTZCO2tCQU56QyxTQUFTOytCQUNJLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDd0MsY0FBYztzQkFBM0QsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNKLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBnZXREZXZpY2VJc01vYmlsZSxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50LFxuICAgIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nLFxuICAgIE1lbnVJdGVtXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IERpYWxvZ0NvbmZpZywgRGlhbG9nU2VydmljZSwgSW5wdXRHcm91cENvbXBvbmVudCwgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtcmVwb3J0LW9uZS1vZi1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtcmVwb3J0LW9uZS1vZi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1yZXBvcnQtb25lLW9mLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVJlcG9ydE9uZU9mTGlzdENvbXBvbmVudCBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PEJhcnNhUmVwb3J0T25lT2ZMaXN0U2V0dGluZz4ge1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICAgIEBWaWV3Q2hpbGQoJ0lucHV0R3JvdXBSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfaW5wdXRHcm91cFJlZjogSW5wdXRHcm91cENvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJywgeyBzdGF0aWM6IHRydWUgfSkgcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgX3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICByZWNvcmRzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgbGFzdFJlY29yZDogYW55O1xuICAgIGNhcHRpb24gPSAnJztcbiAgICBpc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XG4gICAgY3VzdG9tQnV0dG9uczogTWVudUl0ZW1bXSA9IFtdO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9tYXBNb0xpc3RUb1JlY29yZHModGhpcy5tb0RhdGFMaXN0KTtcbiAgICAgICAgdGhpcy5jdXN0b21CdXR0b25zID0gdGhpcy50b29sYmFyQnV0dG9ucy5maWx0ZXIoKHRiKSA9PiB0YiAmJiB0Yi5Db21tYW5kICYmICF0Yi5Db21tYW5kLklzQnVpbHRpbik7XG4gICAgfVxuICAgIHByaXZhdGUgX21hcE1vTGlzdFRvUmVjb3Jkcyhtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlY29yZHMgPSBtb2xpc3Q7XG4gICAgICAgIHRoaXMubGFzdFJlY29yZCA9IHRoaXMucmVjb3Jkc1swXTtcbiAgICB9XG4gICAgb25BZGQocG9wb3Zlcik6IHZvaWQge1xuICAgICAgICBwb3BvdmVyPy5jbG9zZSgpO1xuICAgICAgICBjb25zdCBhZGRCdG4gPSB0aGlzLmdldE5ld0J1dHRvbjtcbiAgICAgICAgaWYgKGFkZEJ0bikge1xuICAgICAgICAgICAgKGFkZEJ0biBhcyBhbnkpLmhhbmRsZXIoYWRkQnRuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZ2V0TmV3QnV0dG9uKCk6IE1lbnVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckJ1dHRvbnMuZmluZCgodGIpID0+IHRiPy5pdGVtSWQgPT09ICdOZXcnKTtcbiAgICB9XG4gICAgb3Blbihwb3BvdmVyLCBkaWFsb2dUZW1wbGF0ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgY29uc3QgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgbW9iaWxlOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKGRpYWxvZ1RlbXBsYXRlLCBkaWFsb2dDb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9wb3Zlci5vcGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xvc2UocG9wb3ZlciwgZGlhbG9nUmVmKTogdm9pZCB7XG4gICAgICAgIGlmIChkaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kaXNtaXNzKCdDYW5jZWwnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvcGVuSW5JbmRlcGVuZGVudEZvcm1DbGlja2VkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnZpZXdTZXR0aW5nLlJlbGF0ZWRSZXBvcnQuSWRcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdmb3JtZmllbGRzaG93JyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG91dGxldHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1haW46IFsnZmllbGRzaG93JywgeyAuLi5xdWVyeVBhcmFtcyB9XVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLl9hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICBzdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ3ByZXNlcnZlJyxcbiAgICAgICAgICAgICAgICBza2lwTG9jYXRpb25DaGFuZ2U6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgQmFyc2FSZXBvcnRPbmVPZkxpc3RTZXR0aW5nIGV4dGVuZHMgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcge1xuICAgIERiQ29sdW1uTmFtZTogc3RyaW5nO1xuICAgIE9wZW5JbkluZGVwZW5kZW50Rm9ybTogc3RyaW5nO1xuICAgIFJlbGF0ZWRSZXBvcnQ6IE1ldGFvYmplY3REYXRhTW9kZWw7XG59XG4iLCI8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIiAjY29udGFpbmVyUmVmPlxuICAgIDxpbnB1dFxuICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2aWV3U2V0dGluZy5EYkNvbHVtbk5hbWUgfCBydmFsOiBsYXN0UmVjb3JkOmFsbENvbHVtbnM6dHJ1ZVwiXG4gICAgICAgIGNsYXNzPVwicmV2ZXJ0LXJlYWRvbmx5LWJnXCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCIhYWJzb2x1dGUgbGVmdC0wIHRvcC1bMC4xODc1cmVtXSBmbGV4XCI+XG4gICAgICAgIEBpZiAodmlld1NldHRpbmcuT3BlbkluSW5kZXBlbmRlbnRGb3JtKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgZ2x5cGg9XCJwb3B1cC13aW5kb3dcIlxuICAgICAgICAgICAgYXJpYUxhYmVsPVwiT3BlbiBpbiBhbiBpbmRlcGVuZGVudCBmb3JtXCJcbiAgICAgICAgICAgIHRpdGxlPVwiT3BlbiBpbiBhbiBpbmRlcGVuZGVudCBmb3JtXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW5JbmRlcGVuZGVudEZvcm1DbGlja2VkKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBnbHlwaD1cImxpc3RcIlxuICAgICAgICAgICAgYXJpYUxhYmVsPVwiU2hvdyBsaXN0XCJcbiAgICAgICAgICAgIHRpdGxlPVwiU2hvdyBsaXN0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuKHBvcG92ZXIsIGRpYWxvZ1RlbXBsYXRlKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAjcG9wb3ZlclxuICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tZW5kXCJcbiAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgIFthcHBlbmRUb109XCJjb250YWluZXJSZWZcIlxuICAgICAgICBjbGFzcz1cIiFibG9ja1wiXG4gICAgPlxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IFtzdHlsZS53aWR0aC5weF09XCJjb250YWluZXJSZWYub2Zmc2V0V2lkdGhcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtaWRkbGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgPC9mZC1wb3BvdmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI21pZGRsZT5cbiAgICA8YnN1LXVsdi10b29sYmFyXG4gICAgICAgIFtoaWRlVG9vbGJhcl09XCJjdXN0b21CdXR0b25zLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW3Rvb2xiYXJCdXR0b25zXT1cImN1c3RvbUJ1dHRvbnNcIlxuICAgICAgICBbVWx2TWFpbkN0cmxyXT1cIlVsdk1haW5DdHJsclwiXG4gICAgICAgIFt0aXRsZV09XCJpc01vYmlsZSA/IHRpdGxlIDogJydcIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpc011bHRpU2VsZWN0XT1cImlzTXVsdGlTZWxlY3RcIlxuICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICBbaGFzU2VsZWN0ZWRdPVwiaGFzU2VsZWN0ZWRcIlxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiZmFsc2VcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImZhbHNlXCJcbiAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Lmxlbmd0aFwiXG4gICAgICAgIFtncmlkRnJlZUNvbHVtblNpemluZ109XCJncmlkRnJlZUNvbHVtblNpemluZ1wiXG4gICAgPjwvYnN1LXVsdi10b29sYmFyPlxuICAgIDxic3UtdWktdGFibGUtdmlld1xuICAgICAgICBbZ3JpZEZyZWVDb2x1bW5TaXppbmddPVwiZ3JpZEZyZWVDb2x1bW5TaXppbmdcIlxuICAgICAgICBbY2FydGFibGVUZW1wbGF0ZXNdPVwiY2FydGFibGVUZW1wbGF0ZXNcIlxuICAgICAgICBbcGFyZW50SGVpZ2h0XT1cInBhcmVudEhlaWdodFwiXG4gICAgICAgIFtmdWxsc2NyZWVuXT1cImZ1bGxzY3JlZW5cIlxuICAgICAgICBbc2VsZWN0ZWRNb109XCJzZWxlY3RlZE1vXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICBbaXNNdWx0aVNlbGVjdF09XCJpc011bHRpU2VsZWN0XCJcbiAgICAgICAgW2NhcnRhYmxlQ2hpbGRzTW9dPVwiY2FydGFibGVDaGlsZHNNb1wiXG4gICAgICAgIFtjb250ZXh0Vmlld109XCJjb250ZXh0Vmlld1wiXG4gICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgIFthbGxDaGVja2VkXT1cImFsbENoZWNrZWRcIlxuICAgICAgICBbbW9EYXRhTGlzdF09XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICBbaGFzSW5saW5lRGVsZXRlQnV0dG9uXT1cInRydWVcIlxuICAgICAgICBbaGFzSW5saW5lRWRpdEJ1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgW3Rvb2xiYXJCdXR0b25zXT1cInRvb2xiYXJCdXR0b25zXCJcbiAgICAgICAgW2dyb3VwYnldPVwiZ3JvdXBieVwiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICAgIFttb2JpbGVPclRhYmxldF09XCJtb2JpbGVPclRhYmxldFwiXG4gICAgICAgIFtkaXNhYmxlUmVzcG9uc2l2ZV09XCJkaXNhYmxlUmVzcG9uc2l2ZVwiXG4gICAgICAgIFtwb3Bpbl09XCJwb3BpblwiXG4gICAgICAgIFtzZWNvbmRhcnlDb2x1bW5zXT1cInNlY29uZGFyeUNvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFthbGxvd0lubGluZUVkaXRdPVwiYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgIFtjb2x1bW5XaWR0aF09XCIxMDAgLyBjb2x1bW5zLmxlbmd0aFwiXG4gICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50XCJcbiAgICAgICAgW3Jvd0hvdmVyYWJsZV09XCJyb3dIb3ZlcmFibGVcIlxuICAgICAgICBbcm93QWN0aXZhYmxlXT1cInJvd0FjdGl2YWJsZVwiXG4gICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgIFt0eXBlRGVmSWRdPVwidHlwZURlZklkXCJcbiAgICAgICAgW3JlcG9ydElkXT1cInJlcG9ydElkXCJcbiAgICAgICAgW2xpc3RFZGl0Vmlld0lkXT1cImxpc3RFZGl0Vmlld0lkXCJcbiAgICAgICAgW3R5cGVWaWV3SWRdPVwidHlwZVZpZXdJZFwiXG4gICAgICAgIFtleHRyYVJlbGF0aW9uXT1cImV4dHJhUmVsYXRpb25cIlxuICAgICAgICBbc2hvd09rQ2FuY2VsQnV0dG9uc109XCJzaG93T2tDYW5jZWxCdXR0b25zXCJcbiAgICAgICAgW2ZpdFdpZHRoXT1cImZhbHNlXCJcbiAgICAgICAgW2hhc1N1bW1hcnldPVwiaGFzU3VtbWFyeVwiXG4gICAgICAgIFtuZXdJbmxpbmVFZGl0TW9dPVwibmV3SW5saW5lRWRpdE1vXCJcbiAgICAgICAgKHVsdkNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoJGV2ZW50KVwiXG4gICAgICAgIChzZWxlY3ROZXh0SW5saW5lUmVjb3JkKT1cIm9uU2VsZWN0TmV4dElubGluZVJlY29yZCgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxDYW5jZWwpPVwib25FZGl0Rm9ybVBhbmVsQ2FuY2VsKCRldmVudClcIlxuICAgICAgICAoZWRpdEZvcm1QYW5lbFNhdmUpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgKGVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSk9XCJvbkVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHNvcnRBc2NlbmRpbmcpPVwib25Tb3J0QXNjZW5kaW5nKCRldmVudClcIlxuICAgICAgICAoc29ydERlc2NlbmRpbmcpPVwib25Tb3J0RGVzY2VuZGluZygkZXZlbnQpXCJcbiAgICAgICAgKGZpbHRlcik9XCJvbkZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChyb3dDaGVjayk9XCJvblJvd0NoZWNrKCRldmVudClcIlxuICAgICAgICAoYWxsQ2hlY2tib3gpPVwib25BbGxDaGVja2JveCgkZXZlbnQpXCJcbiAgICAgICAgKGV4cGFuZENsaWNrKT1cIm9uRXhwYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICh3b3JrZmxvd1NoYXJlQnV0dG9ucyk9XCJvbldvcmtmbG93U2hhcmVCdXR0b25zKCRldmVudClcIlxuICAgID5cbiAgICA8L2JzdS11aS10YWJsZS12aWV3PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyIGxldC1kaWFsb2c9XCJkaWFsb2dcIiBsZXQtcG9wb3Zlcj1cInBvcG92ZXJcIj5cbiAgICA8ZGl2IGZkLWJhciBbYmFyRGVzaWduXT1cIidmb290ZXInXCI+XG4gICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZ2V0TmV3QnV0dG9uPy50ZXh0ID8/ICcnXCJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BZGQocG9wb3ZlcilcIlxuICAgICAgICAgICAgICAgIGJvZHlDbGlja1xuICAgICAgICAgICAgICAgIGdseXBoPVwiYWRkXCJcbiAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cItio2LPYqtmGXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UocG9wb3ZlciwgZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiQ2xvc2VcIlxuICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgW2ZkRGlhbG9nVGVtcGxhdGVdIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNkaWFsb2dUZW1wbGF0ZT5cbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cbiAgICAgICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTNcIiBmZC10aXRsZT57eyB0aXRsZSB9fTwvaDE+XG4gICAgICAgICAgICA8YnV0dG9uIGZkLWRpYWxvZy1jbG9zZS1idXR0b24gKGNsaWNrKT1cImRpYWxvZy5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHkgY2xhc3M9XCIhcHQtMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1pZGRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXI7IGNvbnRleHQ6IHsgZGlhbG9nOiBkaWFsb2cgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtcmVwb3J0LW9uZS1vZi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXJlcG9ydC1vbmUtb2YtbGlzdC9iYXJzYS1yZXBvcnQtb25lLW9mLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtcmVwb3J0LW9uZS1vZi1saXN0L2JhcnNhLXJlcG9ydC1vbmUtb2YtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFDSCxpQkFBaUIsRUFFakIsdUJBQXVCLEVBRzFCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFnQixhQUFhLEVBQXlDLE1BQU0sdUJBQXVCLENBQUM7QUFDM0csT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVF6RCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQW9EO0lBTnZHOztRQVVZLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsb0JBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFHakQsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQy9CLGtCQUFhLEdBQWUsRUFBRSxDQUFDO0tBMERsQztJQXpERyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFDTyxtQkFBbUIsQ0FBQyxNQUE2QjtRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFPO1FBQ1QsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDakMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNSLE1BQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWM7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsTUFBTSxZQUFZLEdBQWlCO2dCQUMvQixNQUFNLEVBQUUsSUFBSTthQUNmLENBQUM7WUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsQ0FBQztJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVM7UUFDcEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNMLENBQUM7SUFDRCw0QkFBNEI7UUFDeEIsTUFBTSxXQUFXLEdBQUc7WUFDaEIsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUU7U0FDeEMsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUNqQjtZQUNJLGVBQWU7WUFDZjtnQkFDSSxPQUFPLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQztpQkFDMUM7YUFDSjtTQUNKLEVBQ0Q7WUFDSSxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDaEMsS0FBSyxFQUFFLEVBQUU7WUFDVCxtQkFBbUIsRUFBRSxVQUFVO1lBQy9CLGtCQUFrQixFQUFFLEtBQUs7U0FDNUIsQ0FDSixDQUFDO0lBQ04sQ0FBQzs4R0FwRVEsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsK1ZDakIxQyw4cU1BK0pBOzsyRkQ5SWEsNkJBQTZCO2tCQU56QyxTQUFTOytCQUNJLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDd0MsY0FBYztzQkFBM0QsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNKLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBnZXREZXZpY2VJc01vYmlsZSxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50LFxuICAgIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nLFxuICAgIE1lbnVJdGVtXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IERpYWxvZ0NvbmZpZywgRGlhbG9nU2VydmljZSwgSW5wdXRHcm91cENvbXBvbmVudCwgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtcmVwb3J0LW9uZS1vZi1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtcmVwb3J0LW9uZS1vZi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1yZXBvcnQtb25lLW9mLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVJlcG9ydE9uZU9mTGlzdENvbXBvbmVudCBleHRlbmRzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PEJhcnNhUmVwb3J0T25lT2ZMaXN0U2V0dGluZz4ge1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICAgIEBWaWV3Q2hpbGQoJ0lucHV0R3JvdXBSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfaW5wdXRHcm91cFJlZjogSW5wdXRHcm91cENvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJywgeyBzdGF0aWM6IHRydWUgfSkgcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgX3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICByZWNvcmRzOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgbGFzdFJlY29yZDogYW55O1xuICAgIGNhcHRpb24gPSAnJztcbiAgICBpc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XG4gICAgY3VzdG9tQnV0dG9uczogTWVudUl0ZW1bXSA9IFtdO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9tYXBNb0xpc3RUb1JlY29yZHModGhpcy5tb0RhdGFMaXN0KTtcbiAgICAgICAgdGhpcy5jdXN0b21CdXR0b25zID0gdGhpcy50b29sYmFyQnV0dG9ucy5maWx0ZXIoKHRiKSA9PiB0YiAmJiB0Yi5Db21tYW5kICYmICF0Yi5Db21tYW5kLklzQnVpbHRpbik7XG4gICAgfVxuICAgIHByaXZhdGUgX21hcE1vTGlzdFRvUmVjb3Jkcyhtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlY29yZHMgPSBtb2xpc3Q7XG4gICAgICAgIHRoaXMubGFzdFJlY29yZCA9IHRoaXMucmVjb3Jkc1swXTtcbiAgICB9XG4gICAgb25BZGQocG9wb3Zlcik6IHZvaWQge1xuICAgICAgICBwb3BvdmVyPy5jbG9zZSgpO1xuICAgICAgICBjb25zdCBhZGRCdG4gPSB0aGlzLmdldE5ld0J1dHRvbjtcbiAgICAgICAgaWYgKGFkZEJ0bikge1xuICAgICAgICAgICAgKGFkZEJ0biBhcyBhbnkpLmhhbmRsZXIoYWRkQnRuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZ2V0TmV3QnV0dG9uKCk6IE1lbnVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckJ1dHRvbnMuZmluZCgodGIpID0+IHRiPy5pdGVtSWQgPT09ICdOZXcnKTtcbiAgICB9XG4gICAgb3Blbihwb3BvdmVyLCBkaWFsb2dUZW1wbGF0ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgY29uc3QgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgbW9iaWxlOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKGRpYWxvZ1RlbXBsYXRlLCBkaWFsb2dDb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9wb3Zlci5vcGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xvc2UocG9wb3ZlciwgZGlhbG9nUmVmKTogdm9pZCB7XG4gICAgICAgIGlmIChkaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kaXNtaXNzKCdDYW5jZWwnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvcGVuSW5JbmRlcGVuZGVudEZvcm1DbGlja2VkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnZpZXdTZXR0aW5nLlJlbGF0ZWRSZXBvcnQuSWRcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdmb3JtZmllbGRzaG93JyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG91dGxldHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1haW46IFsnZmllbGRzaG93JywgeyAuLi5xdWVyeVBhcmFtcyB9XVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLl9hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICBzdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ3ByZXNlcnZlJyxcbiAgICAgICAgICAgICAgICBza2lwTG9jYXRpb25DaGFuZ2U6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgQmFyc2FSZXBvcnRPbmVPZkxpc3RTZXR0aW5nIGV4dGVuZHMgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcge1xuICAgIERiQ29sdW1uTmFtZTogc3RyaW5nO1xuICAgIE9wZW5JbkluZGVwZW5kZW50Rm9ybTogc3RyaW5nO1xuICAgIFJlbGF0ZWRSZXBvcnQ6IE1ldGFvYmplY3REYXRhTW9kZWw7XG59XG4iLCI8ZGl2IGNsYXNzPVwidHctcmVsYXRpdmVcIiAjY29udGFpbmVyUmVmPlxuICAgIDxpbnB1dFxuICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2aWV3U2V0dGluZy5EYkNvbHVtbk5hbWUgfCBydmFsOiBsYXN0UmVjb3JkOmFsbENvbHVtbnM6dHJ1ZVwiXG4gICAgICAgIGNsYXNzPVwicmV2ZXJ0LXJlYWRvbmx5LWJnXCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCIhdHctYWJzb2x1dGUgdHctbGVmdC0wIHR3LXRvcC1bMC4xODc1cmVtXSB0dy1mbGV4XCI+XG4gICAgICAgIEBpZiAodmlld1NldHRpbmcuT3BlbkluSW5kZXBlbmRlbnRGb3JtKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgZ2x5cGg9XCJwb3B1cC13aW5kb3dcIlxuICAgICAgICAgICAgYXJpYUxhYmVsPVwiT3BlbiBpbiBhbiBpbmRlcGVuZGVudCBmb3JtXCJcbiAgICAgICAgICAgIHRpdGxlPVwiT3BlbiBpbiBhbiBpbmRlcGVuZGVudCBmb3JtXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuSW5JbmRlcGVuZGVudEZvcm1DbGlja2VkKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBnbHlwaD1cImxpc3RcIlxuICAgICAgICAgICAgYXJpYUxhYmVsPVwiU2hvdyBsaXN0XCJcbiAgICAgICAgICAgIHRpdGxlPVwiU2hvdyBsaXN0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuKHBvcG92ZXIsIGRpYWxvZ1RlbXBsYXRlKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAjcG9wb3ZlclxuICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tZW5kXCJcbiAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgIFthcHBlbmRUb109XCJjb250YWluZXJSZWZcIlxuICAgICAgICBjbGFzcz1cIiF0dy1ibG9ja1wiXG4gICAgPlxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IFtzdHlsZS53aWR0aC5weF09XCJjb250YWluZXJSZWYub2Zmc2V0V2lkdGhcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtaWRkbGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgPC9mZC1wb3BvdmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI21pZGRsZT5cbiAgICA8YnN1LXVsdi10b29sYmFyXG4gICAgICAgIFtoaWRlVG9vbGJhcl09XCJjdXN0b21CdXR0b25zLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW3Rvb2xiYXJCdXR0b25zXT1cImN1c3RvbUJ1dHRvbnNcIlxuICAgICAgICBbVWx2TWFpbkN0cmxyXT1cIlVsdk1haW5DdHJsclwiXG4gICAgICAgIFt0aXRsZV09XCJpc01vYmlsZSA/IHRpdGxlIDogJydcIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtpc011bHRpU2VsZWN0XT1cImlzTXVsdGlTZWxlY3RcIlxuICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICBbaGFzU2VsZWN0ZWRdPVwiaGFzU2VsZWN0ZWRcIlxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiZmFsc2VcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImZhbHNlXCJcbiAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Lmxlbmd0aFwiXG4gICAgICAgIFtncmlkRnJlZUNvbHVtblNpemluZ109XCJncmlkRnJlZUNvbHVtblNpemluZ1wiXG4gICAgPjwvYnN1LXVsdi10b29sYmFyPlxuICAgIDxic3UtdWktdGFibGUtdmlld1xuICAgICAgICBbZ3JpZEZyZWVDb2x1bW5TaXppbmddPVwiZ3JpZEZyZWVDb2x1bW5TaXppbmdcIlxuICAgICAgICBbY2FydGFibGVUZW1wbGF0ZXNdPVwiY2FydGFibGVUZW1wbGF0ZXNcIlxuICAgICAgICBbcGFyZW50SGVpZ2h0XT1cInBhcmVudEhlaWdodFwiXG4gICAgICAgIFtmdWxsc2NyZWVuXT1cImZ1bGxzY3JlZW5cIlxuICAgICAgICBbc2VsZWN0ZWRNb109XCJzZWxlY3RlZE1vXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICBbZGlzYWJsZUZpeGVkVGFibGVMYXlvdXRdPVwidHJ1ZVwiXG4gICAgICAgIFtpc011bHRpU2VsZWN0XT1cImlzTXVsdGlTZWxlY3RcIlxuICAgICAgICBbY2FydGFibGVDaGlsZHNNb109XCJjYXJ0YWJsZUNoaWxkc01vXCJcbiAgICAgICAgW2NvbnRleHRWaWV3XT1cImNvbnRleHRWaWV3XCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgW2FsbENoZWNrZWRdPVwiYWxsQ2hlY2tlZFwiXG4gICAgICAgIFttb0RhdGFMaXN0XT1cIm1vRGF0YUxpc3RcIlxuICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgIFtoYXNJbmxpbmVEZWxldGVCdXR0b25dPVwidHJ1ZVwiXG4gICAgICAgIFtoYXNJbmxpbmVFZGl0QnV0dG9uXT1cInRydWVcIlxuICAgICAgICBbdG9vbGJhckJ1dHRvbnNdPVwidG9vbGJhckJ1dHRvbnNcIlxuICAgICAgICBbZ3JvdXBieV09XCJncm91cGJ5XCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgW21vYmlsZU9yVGFibGV0XT1cIm1vYmlsZU9yVGFibGV0XCJcbiAgICAgICAgW2Rpc2FibGVSZXNwb25zaXZlXT1cImRpc2FibGVSZXNwb25zaXZlXCJcbiAgICAgICAgW3BvcGluXT1cInBvcGluXCJcbiAgICAgICAgW3NlY29uZGFyeUNvbHVtbnNdPVwic2Vjb25kYXJ5Q29sdW1uc1wiXG4gICAgICAgIFtjb250ZXh0TWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgW2FsbG93SW5saW5lRWRpdF09XCJhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgW2NvbHVtbldpZHRoXT1cIjEwMCAvIGNvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgW2NvbHVtbnNDb3VudF09XCJjb2x1bW5zQ291bnRcIlxuICAgICAgICBbcm93SG92ZXJhYmxlXT1cInJvd0hvdmVyYWJsZVwiXG4gICAgICAgIFtyb3dBY3RpdmFibGVdPVwicm93QWN0aXZhYmxlXCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICBbcmVwb3J0SWRdPVwicmVwb3J0SWRcIlxuICAgICAgICBbbGlzdEVkaXRWaWV3SWRdPVwibGlzdEVkaXRWaWV3SWRcIlxuICAgICAgICBbdHlwZVZpZXdJZF09XCJ0eXBlVmlld0lkXCJcbiAgICAgICAgW2V4dHJhUmVsYXRpb25dPVwiZXh0cmFSZWxhdGlvblwiXG4gICAgICAgIFtzaG93T2tDYW5jZWxCdXR0b25zXT1cInNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgICAgICBbZml0V2lkdGhdPVwiZmFsc2VcIlxuICAgICAgICBbaGFzU3VtbWFyeV09XCJoYXNTdW1tYXJ5XCJcbiAgICAgICAgW25ld0lubGluZUVkaXRNb109XCJuZXdJbmxpbmVFZGl0TW9cIlxuICAgICAgICAodWx2Q29tbWFuZENsaWNrKT1cIm9uVWx2Q29tbWFuZCgkZXZlbnQpXCJcbiAgICAgICAgKHNlbGVjdE5leHRJbmxpbmVSZWNvcmQpPVwib25TZWxlY3ROZXh0SW5saW5lUmVjb3JkKCRldmVudClcIlxuICAgICAgICAoZWRpdEZvcm1QYW5lbENhbmNlbCk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsU2F2ZSk9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKCRldmVudClcIlxuICAgICAgICAoZWRpdEZvcm1QYW5lbFZhbHVlQ2hhbmdlKT1cIm9uRWRpdEZvcm1QYW5lbFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoc29ydEFzY2VuZGluZyk9XCJvblNvcnRBc2NlbmRpbmcoJGV2ZW50KVwiXG4gICAgICAgIChzb3J0RGVzY2VuZGluZyk9XCJvblNvcnREZXNjZW5kaW5nKCRldmVudClcIlxuICAgICAgICAoZmlsdGVyKT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHJvd0NoZWNrKT1cIm9uUm93Q2hlY2soJGV2ZW50KVwiXG4gICAgICAgIChhbGxDaGVja2JveCk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIlxuICAgICAgICAoZXhwYW5kQ2xpY2spPVwib25FeHBhbmRDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHdvcmtmbG93U2hhcmVCdXR0b25zKT1cIm9uV29ya2Zsb3dTaGFyZUJ1dHRvbnMoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYnN1LXVpLXRhYmxlLXZpZXc+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmb290ZXIgbGV0LWRpYWxvZz1cImRpYWxvZ1wiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgIDxkaXYgZmQtYmFyIFtiYXJEZXNpZ25dPVwiJ2Zvb3RlcidcIj5cbiAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJnZXROZXdCdXR0b24/LnRleHQgPz8gJydcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFkZChwb3BvdmVyKVwiXG4gICAgICAgICAgICAgICAgYm9keUNsaWNrXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJhZGRcIlxuICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwi2KjYs9iq2YZcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZShwb3BvdmVyLCBkaWFsb2cpXCJcbiAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJDbG9zZVwiXG4gICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBbZmREaWFsb2dUZW1wbGF0ZV0gbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2RpYWxvZ1RlbXBsYXRlPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItM1wiIGZkLXRpdGxlPnt7IHRpdGxlIH19PC9oMT5cbiAgICAgICAgICAgIDxidXR0b24gZmQtZGlhbG9nLWNsb3NlLWJ1dHRvbiAoY2xpY2spPVwiZGlhbG9nLmRpc21pc3MoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgIDxmZC1kaWFsb2ctYm9keSBjbGFzcz1cIiF0dy1wdC0wXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWlkZGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlcjsgY29udGV4dDogeyBkaWFsb2c6IGRpYWxvZyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
3
|
import { debounceTime, map, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { BarsaApi } from 'barsa-novin-ray-core';
|
|
4
|
+
import { BarsaApi, getAllItemsPerChildren, setOneDepthLevel } from 'barsa-novin-ray-core';
|
|
5
5
|
import { SapUiReportBaseComponent } from './sap-ui-report-base.component';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class ReportTreeBaseComponent extends SapUiReportBaseComponent {
|
|
@@ -35,7 +35,7 @@ export class ReportTreeBaseComponent extends SapUiReportBaseComponent {
|
|
|
35
35
|
if (root) {
|
|
36
36
|
const moList = [];
|
|
37
37
|
const autoOpenLevels = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.TreeAutoOpenLevels', 1);
|
|
38
|
-
|
|
38
|
+
getAllItemsPerChildren(root, 0, moList, root, autoOpenLevels);
|
|
39
39
|
return moList;
|
|
40
40
|
}
|
|
41
41
|
return [];
|
|
@@ -117,8 +117,8 @@ export class ReportTreeBaseComponent extends SapUiReportBaseComponent {
|
|
|
117
117
|
break;
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
setOneDepthLevel(newParentNode);
|
|
121
|
+
setOneDepthLevel(oldParentNode);
|
|
122
122
|
this._clearDragInfo(true);
|
|
123
123
|
}
|
|
124
124
|
}
|
|
@@ -188,24 +188,6 @@ export class ReportTreeBaseComponent extends SapUiReportBaseComponent {
|
|
|
188
188
|
_resetDropActionTodo() {
|
|
189
189
|
this.dropActionTodo = { targetId: null, action: null };
|
|
190
190
|
}
|
|
191
|
-
_getAllItemsPerChildren(item, level, array, parentNode, autoOpenLevels) {
|
|
192
|
-
let newItem = item;
|
|
193
|
-
if (level > 0) {
|
|
194
|
-
item.parentNode = parentNode;
|
|
195
|
-
item.level = level;
|
|
196
|
-
item.isExpand = item.isExpand ?? autoOpenLevels > level;
|
|
197
|
-
item.visibility = item.parentNode.isExpand;
|
|
198
|
-
array.push(newItem);
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
newItem = item;
|
|
202
|
-
newItem.isExpand = true;
|
|
203
|
-
}
|
|
204
|
-
if (item.children) {
|
|
205
|
-
item.children.forEach((child) => this.setOneDepthLevel(child));
|
|
206
|
-
return item.children.map((i) => this._getAllItemsPerChildren(i, level + 1, array, newItem, autoOpenLevels));
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
191
|
_changeDraggedItemsOrder(draggedItem, targetItem, newParentNode, oldParentNode, oldParentNodeId) {
|
|
210
192
|
this._removeDraggedItemFromMoDataList(draggedItem);
|
|
211
193
|
if (oldParentNodeId !== '$Root') {
|
|
@@ -343,16 +325,6 @@ export class ReportTreeBaseComponent extends SapUiReportBaseComponent {
|
|
|
343
325
|
}
|
|
344
326
|
this._showDragInfo();
|
|
345
327
|
}
|
|
346
|
-
setOneDepthLevel(node) {
|
|
347
|
-
let hasOneDepth = true;
|
|
348
|
-
node.children?.forEach((child) => {
|
|
349
|
-
if (child.Data?.$HasChildren) {
|
|
350
|
-
hasOneDepth = false;
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
|
-
});
|
|
354
|
-
node.hasOneDepthLevel = hasOneDepth;
|
|
355
|
-
}
|
|
356
328
|
_removeNoDrops() {
|
|
357
329
|
this.flatMoDataList
|
|
358
330
|
.filter((node) => node.noDrop)
|
|
@@ -408,4 +380,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
408
380
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
409
381
|
}]
|
|
410
382
|
}] });
|
|
411
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXRyZWUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3JlcG9ydC10cmVlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RCxPQUFPLEVBQ0gsUUFBUSxFQUtYLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBUTFFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx3QkFBaUQ7SUFMOUY7O1FBWUksY0FBUyxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFJckIsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBQ3BFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO0tBd2J6RTtJQXZiRyxJQUFZLEtBQUs7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUks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LEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxVQUFVLEVBQUUsZUFBZTtRQUN4QyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pELE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUNELG9CQUFvQjtJQUNaLE1BQU0sQ0FBQyx1QkFBdUI7UUFDbEMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDM0UsQ0FBQzs4R0FuY1EsdUJBQXVCO2tHQUF2Qix1QkFBdUIsbUZBSHRCLEVBQUU7OzJGQUdILHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBEaWFsb2dDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEJhcnNhQXBpLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcsXG4gICAgVHJlZU5vZGVPYmosXG4gICAgUmVsYXRpb25JdGVtVHlwZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBTYXBVaVJlcG9ydEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3NhcC11aS1yZXBvcnQtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcEluZm8gfSBmcm9tICcuL3VpLXRyZWUtdmlldy91aS10cmVlLXZpZXcuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtcmVwb3J0LXRyZWUtYmFzZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50IGV4dGVuZHMgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50PFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcbiAgICBydGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGRpYWxvZ1NlbGVjdGVkTm9kZTtcbiAgICBzZWxlY3RlZE5vZGUkOiBPYnNlcnZhYmxlPFRyZWVOb2RlT2JqIHwgbnVsbD47XG4gICAgcm9vdCQ6IE9ic2VydmFibGU8VHJlZU5vZGVPYmogfCBudWxsPjtcbiAgICBkcm9wQWN0aW9uVG9kbzogRHJvcEluZm87XG4gICAgX2RyYWdNb3ZlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICAgIGZsYXRNb0RhdGFMaXN0O1xuICAgIGRpYWxvZ1JlZjtcblxuICAgIHByb3RlY3RlZCBfc2VsZWN0ZWROb2RlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUcmVlTm9kZU9iaiB8IG51bGw+KG51bGwpO1xuICAgIHByb3RlY3RlZCBfcm9vdFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJlZU5vZGVPYmogfCBudWxsPihudWxsKTtcbiAgICBwcml2YXRlIGdldCBfcm9vdCgpOiBUcmVlTm9kZU9iaiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdFNvdXJjZS5nZXRWYWx1ZSgpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUkID0gdGhpcy5fc2VsZWN0ZWROb2RlU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLnJvb3QkID0gdGhpcy5fcm9vdFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucnRsJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UucnRsJDtcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UuY29udGVudERlbnNpdHk7XG4gICAgICAgIHRoaXMuX3Jvb3RTb3VyY2UubmV4dCh0aGlzLmNvbnRleHQucm9vdCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkTm9kZVNvdXJjZS5uZXh0KHRoaXMuY29udGV4dC5zZWxOb2RlKTtcbiAgICAgICAgdGhpcy5jb250ZXh0Lm9uKHtcbiAgICAgICAgICAgIHJvb3RDaGFuZ2VkOiAocm9vdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jvb3RTb3VyY2UubmV4dChyb290KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZWxlY3RlZE5vZGVDaGFuZ2U6IChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWROb2RlU291cmNlLm5leHQobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9yb290U291cmNlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgbWFwKChyb290KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb290KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtb0xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0b09wZW5MZXZlbHMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NldHRpbmcuVmlldy5UcmVlQXV0b09wZW5MZXZlbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXRBbGxJdGVtc1BlckNoaWxkcmVuKHJvb3QsIDAsIG1vTGlzdCwgcm9vdCwgYXV0b09wZW5MZXZlbHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vTGlzdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZsYXRNb0RhdGFMaXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0TW9EYXRhTGlzdCA9IGZsYXRNb0RhdGFMaXN0Lm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogYy5wYXJlbnROb2RlID8geyAuLi5jLnBhcmVudE5vZGUgfSA6IG51bGxcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcmVzZXREcm9wQWN0aW9uVG9kbygpO1xuICAgICAgICB0aGlzLl9kcmFnTW92ZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRlYm91bmNlVGltZSg1MCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RvRHJhZ01vdmUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25DcmVhdGVOZXcoZTogUmVsYXRpb25JdGVtVHlwZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjcmVhdGVOZXcnLCBlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGRyYWdNb3ZlZChldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcmFnTW92ZS5uZXh0KGV2ZW50KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGRyb3AoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlTm9Ecm9wcygpO1xuICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKCk7XG4gICAgICAgIGNvbnN0IGRyYWdBY3Rpb24gPSB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbjtcbiAgICAgICAgaWYgKCFkcmFnQWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRyYWdBY3Rpb24gPT09ICdmb3JiaWQnKSB7XG4gICAgICAgICAgICBSZXBvcnRUcmVlQmFzZUNvbXBvbmVudC5fc2hvd0ZvcmJpZGRlbk1vdmVBbGVydCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRyYWdnZWRJdGVtSWQgPSBldmVudC5pdGVtLmRhdGE7XG4gICAgICAgIGNvbnN0IHRhcmdldEl0ZW1JZCA9IHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SWQ7XG4gICAgICAgIGNvbnN0IGRyYWdnZWRJdGVtID0gdGhpcy5fZ2V0Tm9kZUJ5SWQoZHJhZ2dlZEl0ZW1JZCk7XG4gICAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSB0aGlzLl9nZXROb2RlQnlJZCh0YXJnZXRJdGVtSWQpO1xuICAgICAgICBjb25zdCBvbGRQYXJlbnROb2RlSWQgPSBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlPy5EYXRhPy5JZCB8fCAnJFJvb3QnO1xuICAgICAgICBjb25zdCBuZXdQYXJlbnROb2RlSWQgPSB0YXJnZXRJdGVtLnBhcmVudE5vZGU/LkRhdGE/LklkIHx8ICckUm9vdCc7XG4gICAgICAgIGNvbnN0IG9sZFBhcmVudE5vZGUgPSBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlO1xuICAgICAgICBsZXQgbmV3UGFyZW50Tm9kZSA9IHRhcmdldEl0ZW0ucGFyZW50Tm9kZTtcbiAgICAgICAgaWYgKG9sZFBhcmVudE5vZGUgJiYgbmV3UGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgc3dpdGNoIChkcmFnQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnYmVmb3JlJzpcbiAgICAgICAgICAgICAgICBjYXNlICdhZnRlcic6IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlcnZlclRhcmdldDogVHJlZU5vZGVPYmogfCBudWxsID0gdGFyZ2V0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRyYWdBY3Rpb24gPT09ICdhZnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5mbGF0TW9EYXRhTGlzdC5maW5kSW5kZXgoKGMpID0+IGMuRGF0YS5JZCA9PT0gdGFyZ2V0SXRlbS5EYXRhLklkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRJbmRleCA9PT0gdGhpcy5mbGF0TW9EYXRhTGlzdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyVGFyZ2V0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWZ0ZXJUYXJnZXQgPSB0aGlzLmZsYXRNb0RhdGFMaXN0W3RhcmdldEluZGV4ICsgMV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFmdGVyVGFyZ2V0LnBhcmVudE5vZGUgPT09IHRhcmdldEl0ZW0ucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJUYXJnZXQgPSBhZnRlclRhcmdldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJUYXJnZXQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zYXZlVG9TZXJ2ZXIoZHJhZ2dlZEl0ZW0uRGF0YS5JZCwgc2VydmVyVGFyZ2V0LCBuZXdQYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRHJhZ2dlZEl0ZW1zT3JkZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2VkSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBhcmVudE5vZGVJZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFyZW50Tm9kZUlkICE9PSAnJFJvb3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0LmluZGV4T2YoZHJhZ2dlZEl0ZW0pIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0LmluZGV4T2YodGFyZ2V0SXRlbS5wYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmVudE5vZGU/LmNoaWxkcmVuLnNwbGljZShpLCAwLCBkcmFnZ2VkSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBzZW5kIG5ldyBtb0RhdGFMaXN0IFRvIHNlcnZlcjpcbiAgICAgICAgICAgICAgICAgICAgLy8gKGRyYWdnZWRJdGVtLCBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlLCBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlLmNoaWxkcmVuPy5pbmRleE9mKGRyYWdnZWRJdGVtKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY2FzZSAnaW5zaWRlJzoge1xuICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnROb2RlID0gdGFyZ2V0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2F2ZVRvU2VydmVyKGRyYWdnZWRJdGVtLkRhdGEuSWQsIG51bGwsIG5ld1BhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb3ZlTm9kZUluc2lkZUFub3RoZXIoZHJhZ2dlZEl0ZW0sIHRhcmdldEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldE9uZURlcHRoTGV2ZWwobmV3UGFyZW50Tm9kZSk7XG4gICAgICAgICAgICB0aGlzLnNldE9uZURlcHRoTGV2ZWwob2xkUGFyZW50Tm9kZSk7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcmViaW5kUm9vdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcm9vdFNvdXJjZS5uZXh0KHRoaXMuX3Jvb3QpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfc2F2ZVRvU2VydmVyKGRyYWdnZWRJZDogc3RyaW5nLCB0YXJnZXQ6IFRyZWVOb2RlT2JqIHwgbnVsbCwgcGFyZW50OiBUcmVlTm9kZU9iaik6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXRJZDogc3RyaW5nID0gdGFyZ2V0ID8gdGFyZ2V0LkRhdGEuSWQgOiAnMCc7XG4gICAgICAgIGNvbnN0IHBhcmVudElkOiBzdHJpbmcgPSBwYXJlbnQuRGF0YS5JZCA9PT0gJyRSb290JyA/ICcwJyA6IHBhcmVudC5EYXRhLklkO1xuICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZCgnTW92ZVRyZWVOb2RlJywgZHJhZ2dlZElkLCB0YXJnZXRJZCwgcGFyZW50SWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25maXJtRGlhbG9nKHNlbGVjdGVkTm9kZTogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShzZWxlY3RlZE5vZGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkaXNtaXNzRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbGxhcHNlQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjb2xsYXBzZUFsbCcpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVuTW92ZVRvRGlhbG9nKHNvdXJjZU5vZGUsIGRldmljZTogc3RyaW5nLCBkaWFsb2dUbXApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnOiBEaWFsb2dDb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIGRhdGE6IHsgY29udGV4dDogdGhpcy5jb250ZXh0IH0sXG4gICAgICAgICAgICBtb2JpbGU6IGRldmljZSA9PT0gJ21vYmlsZScsXG4gICAgICAgICAgICBtaW5XaWR0aDogZGV2aWNlID09PSAnbW9iaWxlJyA/ICdhdXRvJyA6IHRoaXMuZGlhbG9nQ29uZmlnLm1pbldpZHRoLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiBkZXZpY2UgPT09ICdtb2JpbGUnID8gJ2F1dG8nIDogdGhpcy5kaWFsb2dDb25maWcubWluSGVpZ2h0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKGRpYWxvZ1RtcCwgY29uZmlnKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKChkZXN0aW5hdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmICghZGVzdGluYXRpb25Ob2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY2FuTW92ZSA9IHRoaXMuX2Nhbk1vdmUoc291cmNlTm9kZSwgZGVzdGluYXRpb25Ob2RlKTtcbiAgICAgICAgICAgIGlmIChjYW5Nb3ZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW92ZU5vZGVJbnNpZGVBbm90aGVyKHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50Ll9zaG93Rm9yYmlkZGVuTW92ZUFsZXJ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9yb290U291cmNlLm5leHQodGhpcy5fcm9vdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZWxlY3ROb2RlSW5Nb3ZlRGlhbG9nKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZWxlY3RlZE5vZGUgPSBldi5ub2RlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQ2hpbGRyZW4obm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnbG9hZE5vZGVDaGlsZHJlbicsIG5vZGUpO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVHcmlkU2V0dGluZygpOiB2b2lkIHt9XG5cbiAgICBwcm90ZWN0ZWQgX3NlbGVjdE5vZGUobm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnNlbE5vZGUgPSBub2RlO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChub2RlKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnY2xpY2snKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnc2VsZWN0aW9uY2hhbmdlJyk7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBwcm90ZWN0ZWQgX2Rlc2VsZWN0Tm9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnNlbE5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChudWxsKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3JhaXNlUm93Q2xpY2soaW5kZXgsIG1vKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5zZWxOb2RlID0gbW87XG4gICAgICAgIHRoaXMuY29udGV4dD8uZmlyZUV2ZW50KCdkYmxjbGljaycsIHRoaXMuY29udGV4dCwgaW5kZXgsIG1vKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXNldERyb3BBY3Rpb25Ub2RvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvID0geyB0YXJnZXRJZDogbnVsbCwgYWN0aW9uOiBudWxsIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0QWxsSXRlbXNQZXJDaGlsZHJlbihcbiAgICAgICAgaXRlbTogVHJlZU5vZGVPYmosXG4gICAgICAgIGxldmVsOiBudW1iZXIsXG4gICAgICAgIGFycmF5OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10sXG4gICAgICAgIHBhcmVudE5vZGU6IFRyZWVOb2RlT2JqLFxuICAgICAgICBhdXRvT3BlbkxldmVsczogbnVtYmVyXG4gICAgKTogYW55IHtcbiAgICAgICAgbGV0IG5ld0l0ZW06IGFueSA9IGl0ZW07XG4gICAgICAgIGlmIChsZXZlbCA+IDApIHtcbiAgICAgICAgICAgIGl0ZW0ucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICBpdGVtLmxldmVsID0gbGV2ZWw7XG4gICAgICAgICAgICBpdGVtLmlzRXhwYW5kID0gaXRlbS5pc0V4cGFuZCA/PyBhdXRvT3BlbkxldmVscyA+IGxldmVsO1xuICAgICAgICAgICAgaXRlbS52aXNpYmlsaXR5ID0gaXRlbS5wYXJlbnROb2RlLmlzRXhwYW5kO1xuICAgICAgICAgICAgYXJyYXkucHVzaChuZXdJdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0l0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgbmV3SXRlbS5pc0V4cGFuZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gdGhpcy5zZXRPbmVEZXB0aExldmVsKGNoaWxkKSk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5jaGlsZHJlbi5tYXAoKGkpID0+IHRoaXMuX2dldEFsbEl0ZW1zUGVyQ2hpbGRyZW4oaSwgbGV2ZWwgKyAxLCBhcnJheSwgbmV3SXRlbSwgYXV0b09wZW5MZXZlbHMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9jaGFuZ2VEcmFnZ2VkSXRlbXNPcmRlcihcbiAgICAgICAgZHJhZ2dlZEl0ZW06IFRyZWVOb2RlT2JqLFxuICAgICAgICB0YXJnZXRJdGVtOiBUcmVlTm9kZU9iaixcbiAgICAgICAgbmV3UGFyZW50Tm9kZTogVHJlZU5vZGVPYmosXG4gICAgICAgIG9sZFBhcmVudE5vZGU6IFRyZWVOb2RlT2JqLFxuICAgICAgICBvbGRQYXJlbnROb2RlSWRcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlRHJhZ2dlZEl0ZW1Gcm9tTW9EYXRhTGlzdChkcmFnZ2VkSXRlbSk7XG4gICAgICAgIGlmIChvbGRQYXJlbnROb2RlSWQgIT09ICckUm9vdCcpIHtcbiAgICAgICAgICAgIC8vIG9sZFBhcmVudE5vZGUuY2hpbGRyZW4/LnJlbW92ZShkcmFnZ2VkSXRlbSk7XG4gICAgICAgICAgICBvbGRQYXJlbnROb2RlLmNoaWxkcmVuID0gb2xkUGFyZW50Tm9kZS5jaGlsZHJlbi5maWx0ZXIoKGMpID0+IGMuRGF0YS5JZCAhPT0gZHJhZ2dlZEl0ZW0uRGF0YS5JZCk7XG5cbiAgICAgICAgICAgIG9sZFBhcmVudE5vZGUubGVhZiA9ICEob2xkUGFyZW50Tm9kZS5jaGlsZHJlbj8ubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICBvbGRQYXJlbnROb2RlLkRhdGEuJEhhc0NoaWxkcmVuID0gIW9sZFBhcmVudE5vZGUubGVhZjtcbiAgICAgICAgfVxuICAgICAgICBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlID0gbmV3UGFyZW50Tm9kZTtcbiAgICAgICAgdGhpcy5fc2V0TGV2ZWxGb3JEcmFnZ2VkSXRlbXMoZHJhZ2dlZEl0ZW0sIG5ld1BhcmVudE5vZGUubGV2ZWwgfHwgMCk7XG4gICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5mbGF0TW9EYXRhTGlzdC5pbmRleE9mKHRhcmdldEl0ZW0pO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uID09PSAnYmVmb3JlJyA/IHRhcmdldEluZGV4IDogdGhpcy5fbmV4dEluZGV4SW5Nb0RhdGFMaXN0KHRhcmdldEl0ZW0pO1xuICAgICAgICB0aGlzLl9hZGREcmFnZ2VkSXRlbXNUb01vRGF0YUxpc3QoZHJhZ2dlZEl0ZW0sIGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hZGREcmFnZ2VkSXRlbXNUb01vRGF0YUxpc3Qobm9kZTogVHJlZU5vZGVPYmosIGkpOiBudW1iZXIge1xuICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0LnNwbGljZShpLCAwLCBub2RlKTtcbiAgICAgICAgbm9kZT8uY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBpID0gdGhpcy5fYWRkRHJhZ2dlZEl0ZW1zVG9Nb0RhdGFMaXN0KGNoaWxkLCBpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlbW92ZURyYWdnZWRJdGVtRnJvbU1vRGF0YUxpc3Qobm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgbm9kZT8uY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9yZW1vdmVEcmFnZ2VkSXRlbUZyb21Nb0RhdGFMaXN0KGNoaWxkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZmxhdE1vRGF0YUxpc3QucmVtb3ZlKG5vZGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX25leHRJbmRleEluTW9EYXRhTGlzdChub2RlOiBUcmVlTm9kZU9iaik6IEFycmF5PE1ldGFvYmplY3REYXRhTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxhdE1vRGF0YUxpc3QuaW5kZXhPZihub2RlKSArIHRoaXMuX2FsbE5lc3RlZENoaWxkZXNDb3VudChub2RlKSArIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWxsTmVzdGVkQ2hpbGRlc0NvdW50KG5vZGU6IFRyZWVOb2RlT2JqLCBpID0gMCk6IG51bWJlciB7XG4gICAgICAgIG5vZGUuY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBpZiAoY2hpbGQuY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBpID0gdGhpcy5fYWxsTmVzdGVkQ2hpbGRlc0NvdW50KGNoaWxkLCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldE5vZGVCeUlkKGlkOiBhbnkpOiBUcmVlTm9kZU9iaiB7XG4gICAgICAgIGxldCBub2RlO1xuICAgICAgICBmb3IgKGNvbnN0IG1vIG9mIHRoaXMuZmxhdE1vRGF0YUxpc3QpIHtcbiAgICAgICAgICAgIGlmIChtby5EYXRhLklkID09PSBpZCkge1xuICAgICAgICAgICAgICAgIG5vZGUgPSBtbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRMZXZlbEZvckRyYWdnZWRJdGVtcyhub2RlLCBwYXJlbnRMZXZlbCk6IHZvaWQge1xuICAgICAgICBwYXJlbnRMZXZlbCsrO1xuICAgICAgICBub2RlLmxldmVsID0gcGFyZW50TGV2ZWw7XG4gICAgICAgIG5vZGU/LmNoaWxkcmVuPy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2V0TGV2ZWxGb3JEcmFnZ2VkSXRlbXMoY2hpbGQsIHBhcmVudExldmVsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW92ZU5vZGVJbnNpZGVBbm90aGVyKHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBvbGRQYXJlbnROb2RlID0gc291cmNlTm9kZS5wYXJlbnROb2RlO1xuICAgICAgICBjb25zdCBvbGRQYXJlbnROb2RlSWQgPSBvbGRQYXJlbnROb2RlPy5EYXRhPy5JZCB8fCAnJFJvb3QnO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEcmFnZ2VkSXRlbXNPcmRlcihzb3VyY2VOb2RlLCBkZXN0aW5hdGlvbk5vZGUsIGRlc3RpbmF0aW9uTm9kZSwgb2xkUGFyZW50Tm9kZSwgb2xkUGFyZW50Tm9kZUlkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnbW92ZU5vZGVJbnNpZGVBbm90aGVyJywgc291cmNlTm9kZSwgZGVzdGluYXRpb25Ob2RlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGVhckRyYWdJbmZvKGRyb3BwZWQgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoZHJvcHBlZCkge1xuICAgICAgICAgICAgdGhpcy5fcmVzZXREcm9wQWN0aW9uVG9kbygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kcm9wLWJlZm9yZScpXG4gICAgICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4gdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgJ2Ryb3AtYmVmb3JlJykpO1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuZHJvcC1hZnRlcicpXG4gICAgICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4gdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgJ2Ryb3AtYWZ0ZXInKSk7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kcm9wLWluc2lkZScpXG4gICAgICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4gdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgJ2Ryb3AtaW5zaWRlJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3N0b3BEcmFnZ2luZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xlYXJEcmFnSW5mbygpO1xuICAgICAgICB0aGlzLl9yZXNldERyb3BBY3Rpb25Ub2RvKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd0RyYWdJbmZvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKCk7XG4gICAgICAgIGlmICh0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldElkKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLl9nZXROb2RlQnlJZCh0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldElkKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudElkID0gcGFyZW50Py5wYXJlbnROb2RlPy5EYXRhPy5JZCB8fCAnJFJvb3QnO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Tm9kZUVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI25vZGUtJyArIHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SWQpO1xuICAgICAgICAgICAgaWYgKCF0YXJnZXROb2RlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0RHJvcEFjdGlvblRvZG8oKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5ld1BhcmVudElkID09PSAnJFJvb3QnICYmIHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uICE9PSAnaW5zaWRlJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3RDb250YWluZXIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZmQtbGF5b3V0LXBhbmVsJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3Mocm9vdENvbnRhaW5lciwgJ2Ryb3AtaW5zaWRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0YXJnZXROb2RlRWxlbWVudCwgJ2Ryb3AtJyArIHRoaXMuZHJvcEFjdGlvblRvZG8/LmFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kb0RyYWdNb3ZlKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRGcm9tUG9pbnQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGV2ZW50LnBvaW50ZXJQb3NpdGlvbi54LCBldmVudC5wb2ludGVyUG9zaXRpb24ueSk7XG5cbiAgICAgICAgaWYgKCFlbGVtZW50RnJvbVBvaW50KSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9wRHJhZ2dpbmcoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXJnZXROb2RlRWxlbWVudCA9IGVsZW1lbnRGcm9tUG9pbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdub2RlLWl0ZW0nKVxuICAgICAgICAgICAgPyBlbGVtZW50RnJvbVBvaW50XG4gICAgICAgICAgICA6IGVsZW1lbnRGcm9tUG9pbnQuY2xvc2VzdCgnLm5vZGUtaXRlbScpO1xuICAgICAgICBpZiAoIXRhcmdldE5vZGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9wRHJhZ2dpbmcoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvID0ge1xuICAgICAgICAgICAgdGFyZ2V0SWQ6IHRhcmdldE5vZGVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0YXJnZXROb2RlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qgb25lVGhpcmQgPSB0YXJnZXRSZWN0LmhlaWdodCAvIDM7XG5cbiAgICAgICAgaWYgKGV2ZW50LnBvaW50ZXJQb3NpdGlvbi55IC0gdGFyZ2V0UmVjdC50b3AgPCBvbmVUaGlyZCkge1xuICAgICAgICAgICAgLy8gYmVmb3JlXG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiA9ICdiZWZvcmUnO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBvaW50ZXJQb3NpdGlvbi55IC0gdGFyZ2V0UmVjdC50b3AgPiAyICogb25lVGhpcmQpIHtcbiAgICAgICAgICAgIC8vIGFmdGVyXG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiA9ICdhZnRlcic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpbnNpZGVcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uID0gJ2luc2lkZSc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0Tm9Ecm9wSXRlbXMoZXZlbnQuc291cmNlLmRhdGEpO1xuICAgICAgICB0aGlzLl9zZXROb0Ryb3BTdHlsZSgpO1xuICAgICAgICBjb25zdCB0YXJnZXROb2RlID0gdGhpcy5fZ2V0Tm9kZUJ5SWQodGhpcy5kcm9wQWN0aW9uVG9kby50YXJnZXRJZCk7XG4gICAgICAgIGlmICh0YXJnZXROb2RlLm5vRHJvcCkge1xuICAgICAgICAgICAgdGhpcy5fc3RvcERyYWdnaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiA9ICdmb3JiaWQnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Nob3dEcmFnSW5mbygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0T25lRGVwdGhMZXZlbChub2RlKTogdm9pZCB7XG4gICAgICAgIGxldCBoYXNPbmVEZXB0aCA9IHRydWU7XG4gICAgICAgIG5vZGUuY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuRGF0YT8uJEhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaGFzT25lRGVwdGggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBub2RlLmhhc09uZURlcHRoTGV2ZWwgPSBoYXNPbmVEZXB0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZW1vdmVOb0Ryb3BzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0XG4gICAgICAgICAgICAuZmlsdGVyKChub2RlKSA9PiBub2RlLm5vRHJvcClcbiAgICAgICAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgbm9kZS5ub0Ryb3AgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjbm9kZS0nICsgbm9kZS5EYXRhLklkKTtcbiAgICAgICAgICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWwsICduby1kcm9wJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Tm9Ecm9wSXRlbXMoZHJhZ2dlZEl0ZW1JZCk6IHZvaWQge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5fZ2V0Tm9kZUJ5SWQoZHJhZ2dlZEl0ZW1JZCk7XG4gICAgICAgIG5vZGUubm9Ecm9wID0gdHJ1ZTtcbiAgICAgICAgbm9kZS5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldE5vRHJvcEl0ZW1zKGNoaWxkLkRhdGEuSWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXROb0Ryb3BTdHlsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mbGF0TW9EYXRhTGlzdFxuICAgICAgICAgICAgLmZpbHRlcigobm9kZSkgPT4gbm9kZS5ub0Ryb3ApXG4gICAgICAgICAgICAuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyNub2RlLScgKyBub2RlLkRhdGEuSWQpO1xuICAgICAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhlbCwgJ25vLWRyb3AnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW5Nb3ZlKHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgY2FuTW92ZSA9IHRydWU7XG4gICAgICAgIGlmIChzb3VyY2VOb2RlLkRhdGEuSWQgPT09IGRlc3RpbmF0aW9uTm9kZS5EYXRhLklkKSB7XG4gICAgICAgICAgICBjYW5Nb3ZlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzb3VyY2VOb2RlLmNoaWxkcmVuPy5mb3JlYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNhbk1vdmUgPSB0aGlzLl9jYW5Nb3ZlKHNvdXJjZU5vZGUsIGNoaWxkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYW5Nb3ZlO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHByaXZhdGUgc3RhdGljIF9zaG93Rm9yYmlkZGVuTW92ZUFsZXJ0KCk6IHZvaWQge1xuICAgICAgICBCYXJzYUFwaS5Cdy5Nc2cuRXJyb3IoJ9mG2YXbjNiq2YjYp9mG24zYryDYotuM2KrZhSDYsdinINio2Ycg2LLbjNix2LTYp9iu2Ycg2K7ZiNiv2LQg2YXZhtiq2YLZhCDaqdmG24zYry4nKTtcbiAgICB9XG59XG4iXX0=
|
|
383
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXRyZWUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3JlcG9ydC10cmVlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RCxPQUFPLEVBQ0gsUUFBUSxFQUtSLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHdCQUFpRDtJQUw5Rjs7UUFZSSxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUlyQix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsSUFBSSxDQUFDLENBQUM7UUFDcEUsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsSUFBSSxDQUFDLENBQUM7S0FxWnpFO0lBcFpHLElBQVksS0FBSztRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQy9FLEtBQUssQ0FBQyxRQUFRLEVBQUUs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QUUsS0FBSyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pELE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUNELG9CQUFvQjtJQUNaLE1BQU0sQ0FBQyx1QkFBdUI7UUFDbEMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDM0UsQ0FBQzs4R0FoYVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsbUZBSHRCLEVBQUU7OzJGQUdILHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBEaWFsb2dDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEJhcnNhQXBpLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcsXG4gICAgVHJlZU5vZGVPYmosXG4gICAgUmVsYXRpb25JdGVtVHlwZSxcbiAgICBnZXRBbGxJdGVtc1BlckNoaWxkcmVuLFxuICAgIHNldE9uZURlcHRoTGV2ZWxcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9zYXAtdWktcmVwb3J0LWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IERyb3BJbmZvIH0gZnJvbSAnLi91aS10cmVlLXZpZXcvdWktdHJlZS12aWV3LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXJlcG9ydC10cmVlLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZXBvcnRUcmVlQmFzZUNvbXBvbmVudCBleHRlbmRzIFNhcFVpUmVwb3J0QmFzZUNvbXBvbmVudDxVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XG4gICAgcnRsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBkaWFsb2dTZWxlY3RlZE5vZGU7XG4gICAgc2VsZWN0ZWROb2RlJDogT2JzZXJ2YWJsZTxUcmVlTm9kZU9iaiB8IG51bGw+O1xuICAgIHJvb3QkOiBPYnNlcnZhYmxlPFRyZWVOb2RlT2JqIHwgbnVsbD47XG4gICAgZHJvcEFjdGlvblRvZG86IERyb3BJbmZvO1xuICAgIF9kcmFnTW92ZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICBmbGF0TW9EYXRhTGlzdDtcbiAgICBkaWFsb2dSZWY7XG5cbiAgICBwcm90ZWN0ZWQgX3NlbGVjdGVkTm9kZVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJlZU5vZGVPYmogfCBudWxsPihudWxsKTtcbiAgICBwcm90ZWN0ZWQgX3Jvb3RTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyZWVOb2RlT2JqIHwgbnVsbD4obnVsbCk7XG4gICAgcHJpdmF0ZSBnZXQgX3Jvb3QoKTogVHJlZU5vZGVPYmogfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3RTb3VyY2UuZ2V0VmFsdWUoKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlJCA9IHRoaXMuX3NlbGVjdGVkTm9kZVNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5yb290JCA9IHRoaXMuX3Jvb3RTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnJ0bCQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnJ0bCQ7XG4gICAgICAgIHRoaXMuY29udGVudERlbnNpdHkkID0gdGhpcy5fY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xuICAgICAgICB0aGlzLl9yb290U291cmNlLm5leHQodGhpcy5jb250ZXh0LnJvb3QpO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dCh0aGlzLmNvbnRleHQuc2VsTm9kZSk7XG4gICAgICAgIHRoaXMuY29udGV4dC5vbih7XG4gICAgICAgICAgICByb290Q2hhbmdlZDogKHJvb3QpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yb290U291cmNlLm5leHQocm9vdCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VsZWN0ZWROb2RlQ2hhbmdlOiAobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTm9kZVNvdXJjZS5uZXh0KG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcm9vdFNvdXJjZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIG1hcCgocm9vdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9MaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dG9PcGVuTGV2ZWxzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTZXR0aW5nLlZpZXcuVHJlZUF1dG9PcGVuTGV2ZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0QWxsSXRlbXNQZXJDaGlsZHJlbihyb290LCAwLCBtb0xpc3QsIHJvb3QsIGF1dG9PcGVuTGV2ZWxzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb0xpc3Q7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmbGF0TW9EYXRhTGlzdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdE1vRGF0YUxpc3QgPSBmbGF0TW9EYXRhTGlzdC5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6IGMucGFyZW50Tm9kZSA/IHsgLi4uYy5wYXJlbnROb2RlIH0gOiBudWxsXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3Jlc2V0RHJvcEFjdGlvblRvZG8oKTtcbiAgICAgICAgdGhpcy5fZHJhZ01vdmVcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoNTApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kb0RyYWdNb3ZlKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ3JlYXRlTmV3KGU6IFJlbGF0aW9uSXRlbVR5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnY3JlYXRlTmV3JywgZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBkcmFnTW92ZWQoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZHJhZ01vdmUubmV4dChldmVudCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBkcm9wKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZU5vRHJvcHMoKTtcbiAgICAgICAgdGhpcy5fY2xlYXJEcmFnSW5mbygpO1xuICAgICAgICBjb25zdCBkcmFnQWN0aW9uID0gdGhpcy5kcm9wQWN0aW9uVG9kby5hY3Rpb247XG4gICAgICAgIGlmICghZHJhZ0FjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkcmFnQWN0aW9uID09PSAnZm9yYmlkJykge1xuICAgICAgICAgICAgUmVwb3J0VHJlZUJhc2VDb21wb25lbnQuX3Nob3dGb3JiaWRkZW5Nb3ZlQWxlcnQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkcmFnZ2VkSXRlbUlkID0gZXZlbnQuaXRlbS5kYXRhO1xuICAgICAgICBjb25zdCB0YXJnZXRJdGVtSWQgPSB0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldElkO1xuICAgICAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IHRoaXMuX2dldE5vZGVCeUlkKGRyYWdnZWRJdGVtSWQpO1xuICAgICAgICBjb25zdCB0YXJnZXRJdGVtID0gdGhpcy5fZ2V0Tm9kZUJ5SWQodGFyZ2V0SXRlbUlkKTtcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50Tm9kZUlkID0gZHJhZ2dlZEl0ZW0ucGFyZW50Tm9kZT8uRGF0YT8uSWQgfHwgJyRSb290JztcbiAgICAgICAgY29uc3QgbmV3UGFyZW50Tm9kZUlkID0gdGFyZ2V0SXRlbS5wYXJlbnROb2RlPy5EYXRhPy5JZCB8fCAnJFJvb3QnO1xuICAgICAgICBjb25zdCBvbGRQYXJlbnROb2RlID0gZHJhZ2dlZEl0ZW0ucGFyZW50Tm9kZTtcbiAgICAgICAgbGV0IG5ld1BhcmVudE5vZGUgPSB0YXJnZXRJdGVtLnBhcmVudE5vZGU7XG4gICAgICAgIGlmIChvbGRQYXJlbnROb2RlICYmIG5ld1BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoZHJhZ0FjdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JlZm9yZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnYWZ0ZXInOiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzZXJ2ZXJUYXJnZXQ6IFRyZWVOb2RlT2JqIHwgbnVsbCA9IHRhcmdldEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIGlmIChkcmFnQWN0aW9uID09PSAnYWZ0ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRJbmRleCA9IHRoaXMuZmxhdE1vRGF0YUxpc3QuZmluZEluZGV4KChjKSA9PiBjLkRhdGEuSWQgPT09IHRhcmdldEl0ZW0uRGF0YS5JZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0SW5kZXggPT09IHRoaXMuZmxhdE1vRGF0YUxpc3QubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclRhcmdldCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyVGFyZ2V0ID0gdGhpcy5mbGF0TW9EYXRhTGlzdFt0YXJnZXRJbmRleCArIDFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZnRlclRhcmdldC5wYXJlbnROb2RlID09PSB0YXJnZXRJdGVtLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyVGFyZ2V0ID0gYWZ0ZXJUYXJnZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyVGFyZ2V0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2F2ZVRvU2VydmVyKGRyYWdnZWRJdGVtLkRhdGEuSWQsIHNlcnZlclRhcmdldCwgbmV3UGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURyYWdnZWRJdGVtc09yZGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBhcmVudE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbGRQYXJlbnROb2RlSWRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhcmVudE5vZGVJZCAhPT0gJyRSb290Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mbGF0TW9EYXRhTGlzdC5pbmRleE9mKGRyYWdnZWRJdGVtKSAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mbGF0TW9EYXRhTGlzdC5pbmRleE9mKHRhcmdldEl0ZW0ucGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnROb2RlPy5jaGlsZHJlbi5zcGxpY2UoaSwgMCwgZHJhZ2dlZEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gc2VuZCBuZXcgbW9EYXRhTGlzdCBUbyBzZXJ2ZXI6XG4gICAgICAgICAgICAgICAgICAgIC8vIChkcmFnZ2VkSXRlbSwgZHJhZ2dlZEl0ZW0ucGFyZW50Tm9kZSwgZHJhZ2dlZEl0ZW0ucGFyZW50Tm9kZS5jaGlsZHJlbj8uaW5kZXhPZihkcmFnZ2VkSXRlbSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNhc2UgJ2luc2lkZSc6IHtcbiAgICAgICAgICAgICAgICAgICAgbmV3UGFyZW50Tm9kZSA9IHRhcmdldEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NhdmVUb1NlcnZlcihkcmFnZ2VkSXRlbS5EYXRhLklkLCBudWxsLCBuZXdQYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbW92ZU5vZGVJbnNpZGVBbm90aGVyKGRyYWdnZWRJdGVtLCB0YXJnZXRJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0T25lRGVwdGhMZXZlbChuZXdQYXJlbnROb2RlKTtcbiAgICAgICAgICAgIHNldE9uZURlcHRoTGV2ZWwob2xkUGFyZW50Tm9kZSk7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcmViaW5kUm9vdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcm9vdFNvdXJjZS5uZXh0KHRoaXMuX3Jvb3QpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfc2F2ZVRvU2VydmVyKGRyYWdnZWRJZDogc3RyaW5nLCB0YXJnZXQ6IFRyZWVOb2RlT2JqIHwgbnVsbCwgcGFyZW50OiBUcmVlTm9kZU9iaik6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXRJZDogc3RyaW5nID0gdGFyZ2V0ID8gdGFyZ2V0LkRhdGEuSWQgOiAnMCc7XG4gICAgICAgIGNvbnN0IHBhcmVudElkOiBzdHJpbmcgPSBwYXJlbnQuRGF0YS5JZCA9PT0gJyRSb290JyA/ICcwJyA6IHBhcmVudC5EYXRhLklkO1xuICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZCgnTW92ZVRyZWVOb2RlJywgZHJhZ2dlZElkLCB0YXJnZXRJZCwgcGFyZW50SWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25maXJtRGlhbG9nKHNlbGVjdGVkTm9kZTogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShzZWxlY3RlZE5vZGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkaXNtaXNzRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbGxhcHNlQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjb2xsYXBzZUFsbCcpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVuTW92ZVRvRGlhbG9nKHNvdXJjZU5vZGUsIGRldmljZTogc3RyaW5nLCBkaWFsb2dUbXApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnOiBEaWFsb2dDb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIGRhdGE6IHsgY29udGV4dDogdGhpcy5jb250ZXh0IH0sXG4gICAgICAgICAgICBtb2JpbGU6IGRldmljZSA9PT0gJ21vYmlsZScsXG4gICAgICAgICAgICBtaW5XaWR0aDogZGV2aWNlID09PSAnbW9iaWxlJyA/ICdhdXRvJyA6IHRoaXMuZGlhbG9nQ29uZmlnLm1pbldpZHRoLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiBkZXZpY2UgPT09ICdtb2JpbGUnID8gJ2F1dG8nIDogdGhpcy5kaWFsb2dDb25maWcubWluSGVpZ2h0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKGRpYWxvZ1RtcCwgY29uZmlnKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKChkZXN0aW5hdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmICghZGVzdGluYXRpb25Ob2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY2FuTW92ZSA9IHRoaXMuX2Nhbk1vdmUoc291cmNlTm9kZSwgZGVzdGluYXRpb25Ob2RlKTtcbiAgICAgICAgICAgIGlmIChjYW5Nb3ZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW92ZU5vZGVJbnNpZGVBbm90aGVyKHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50Ll9zaG93Rm9yYmlkZGVuTW92ZUFsZXJ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9yb290U291cmNlLm5leHQodGhpcy5fcm9vdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZWxlY3ROb2RlSW5Nb3ZlRGlhbG9nKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZWxlY3RlZE5vZGUgPSBldi5ub2RlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQ2hpbGRyZW4obm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnbG9hZE5vZGVDaGlsZHJlbicsIG5vZGUpO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVHcmlkU2V0dGluZygpOiB2b2lkIHt9XG5cbiAgICBwcm90ZWN0ZWQgX3NlbGVjdE5vZGUobm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnNlbE5vZGUgPSBub2RlO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChub2RlKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnY2xpY2snKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnc2VsZWN0aW9uY2hhbmdlJyk7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBwcm90ZWN0ZWQgX2Rlc2VsZWN0Tm9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnNlbE5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChudWxsKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3JhaXNlUm93Q2xpY2soaW5kZXgsIG1vKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5zZWxOb2RlID0gbW87XG4gICAgICAgIHRoaXMuY29udGV4dD8uZmlyZUV2ZW50KCdkYmxjbGljaycsIHRoaXMuY29udGV4dCwgaW5kZXgsIG1vKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXNldERyb3BBY3Rpb25Ub2RvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvID0geyB0YXJnZXRJZDogbnVsbCwgYWN0aW9uOiBudWxsIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hhbmdlRHJhZ2dlZEl0ZW1zT3JkZXIoXG4gICAgICAgIGRyYWdnZWRJdGVtOiBUcmVlTm9kZU9iaixcbiAgICAgICAgdGFyZ2V0SXRlbTogVHJlZU5vZGVPYmosXG4gICAgICAgIG5ld1BhcmVudE5vZGU6IFRyZWVOb2RlT2JqLFxuICAgICAgICBvbGRQYXJlbnROb2RlOiBUcmVlTm9kZU9iaixcbiAgICAgICAgb2xkUGFyZW50Tm9kZUlkXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZURyYWdnZWRJdGVtRnJvbU1vRGF0YUxpc3QoZHJhZ2dlZEl0ZW0pO1xuICAgICAgICBpZiAob2xkUGFyZW50Tm9kZUlkICE9PSAnJFJvb3QnKSB7XG4gICAgICAgICAgICAvLyBvbGRQYXJlbnROb2RlLmNoaWxkcmVuPy5yZW1vdmUoZHJhZ2dlZEl0ZW0pO1xuICAgICAgICAgICAgb2xkUGFyZW50Tm9kZS5jaGlsZHJlbiA9IG9sZFBhcmVudE5vZGUuY2hpbGRyZW4uZmlsdGVyKChjKSA9PiBjLkRhdGEuSWQgIT09IGRyYWdnZWRJdGVtLkRhdGEuSWQpO1xuXG4gICAgICAgICAgICBvbGRQYXJlbnROb2RlLmxlYWYgPSAhKG9sZFBhcmVudE5vZGUuY2hpbGRyZW4/Lmxlbmd0aCA+IDApO1xuICAgICAgICAgICAgb2xkUGFyZW50Tm9kZS5EYXRhLiRIYXNDaGlsZHJlbiA9ICFvbGRQYXJlbnROb2RlLmxlYWY7XG4gICAgICAgIH1cbiAgICAgICAgZHJhZ2dlZEl0ZW0ucGFyZW50Tm9kZSA9IG5ld1BhcmVudE5vZGU7XG4gICAgICAgIHRoaXMuX3NldExldmVsRm9yRHJhZ2dlZEl0ZW1zKGRyYWdnZWRJdGVtLCBuZXdQYXJlbnROb2RlLmxldmVsIHx8IDApO1xuICAgICAgICBjb25zdCB0YXJnZXRJbmRleCA9IHRoaXMuZmxhdE1vRGF0YUxpc3QuaW5kZXhPZih0YXJnZXRJdGVtKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiA9PT0gJ2JlZm9yZScgPyB0YXJnZXRJbmRleCA6IHRoaXMuX25leHRJbmRleEluTW9EYXRhTGlzdCh0YXJnZXRJdGVtKTtcbiAgICAgICAgdGhpcy5fYWRkRHJhZ2dlZEl0ZW1zVG9Nb0RhdGFMaXN0KGRyYWdnZWRJdGVtLCBpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWRkRHJhZ2dlZEl0ZW1zVG9Nb0RhdGFMaXN0KG5vZGU6IFRyZWVOb2RlT2JqLCBpKTogbnVtYmVyIHtcbiAgICAgICAgdGhpcy5mbGF0TW9EYXRhTGlzdC5zcGxpY2UoaSwgMCwgbm9kZSk7XG4gICAgICAgIG5vZGU/LmNoaWxkcmVuPy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgaSA9IHRoaXMuX2FkZERyYWdnZWRJdGVtc1RvTW9EYXRhTGlzdChjaGlsZCwgaSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZW1vdmVEcmFnZ2VkSXRlbUZyb21Nb0RhdGFMaXN0KG5vZGU6IFRyZWVOb2RlT2JqKTogdm9pZCB7XG4gICAgICAgIG5vZGU/LmNoaWxkcmVuPy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVtb3ZlRHJhZ2dlZEl0ZW1Gcm9tTW9EYXRhTGlzdChjaGlsZCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0LnJlbW92ZShub2RlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9uZXh0SW5kZXhJbk1vRGF0YUxpc3Qobm9kZTogVHJlZU5vZGVPYmopOiBBcnJheTxNZXRhb2JqZWN0RGF0YU1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZsYXRNb0RhdGFMaXN0LmluZGV4T2Yobm9kZSkgKyB0aGlzLl9hbGxOZXN0ZWRDaGlsZGVzQ291bnQobm9kZSkgKyAxO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2FsbE5lc3RlZENoaWxkZXNDb3VudChub2RlOiBUcmVlTm9kZU9iaiwgaSA9IDApOiBudW1iZXIge1xuICAgICAgICBub2RlLmNoaWxkcmVuPy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkcmVuPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgaSA9IHRoaXMuX2FsbE5lc3RlZENoaWxkZXNDb3VudChjaGlsZCwgaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXROb2RlQnlJZChpZDogYW55KTogVHJlZU5vZGVPYmoge1xuICAgICAgICBsZXQgbm9kZTtcbiAgICAgICAgZm9yIChjb25zdCBtbyBvZiB0aGlzLmZsYXRNb0RhdGFMaXN0KSB7XG4gICAgICAgICAgICBpZiAobW8uRGF0YS5JZCA9PT0gaWQpIHtcbiAgICAgICAgICAgICAgICBub2RlID0gbW87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0TGV2ZWxGb3JEcmFnZ2VkSXRlbXMobm9kZSwgcGFyZW50TGV2ZWwpOiB2b2lkIHtcbiAgICAgICAgcGFyZW50TGV2ZWwrKztcbiAgICAgICAgbm9kZS5sZXZlbCA9IHBhcmVudExldmVsO1xuICAgICAgICBub2RlPy5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldExldmVsRm9yRHJhZ2dlZEl0ZW1zKGNoaWxkLCBwYXJlbnRMZXZlbCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX21vdmVOb2RlSW5zaWRlQW5vdGhlcihzb3VyY2VOb2RlLCBkZXN0aW5hdGlvbk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50Tm9kZSA9IHNvdXJjZU5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50Tm9kZUlkID0gb2xkUGFyZW50Tm9kZT8uRGF0YT8uSWQgfHwgJyRSb290JztcbiAgICAgICAgdGhpcy5fY2hhbmdlRHJhZ2dlZEl0ZW1zT3JkZXIoc291cmNlTm9kZSwgZGVzdGluYXRpb25Ob2RlLCBkZXN0aW5hdGlvbk5vZGUsIG9sZFBhcmVudE5vZGUsIG9sZFBhcmVudE5vZGVJZCk7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ21vdmVOb2RlSW5zaWRlQW5vdGhlcicsIHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYXJEcmFnSW5mbyhkcm9wcGVkID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRyb3BwZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0RHJvcEFjdGlvblRvZG8oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuZHJvcC1iZWZvcmUnKVxuICAgICAgICAgICAgLmZvckVhY2goKGVsZW1lbnQpID0+IHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKGVsZW1lbnQsICdkcm9wLWJlZm9yZScpKTtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmRyb3AtYWZ0ZXInKVxuICAgICAgICAgICAgLmZvckVhY2goKGVsZW1lbnQpID0+IHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKGVsZW1lbnQsICdkcm9wLWFmdGVyJykpO1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuZHJvcC1pbnNpZGUnKVxuICAgICAgICAgICAgLmZvckVhY2goKGVsZW1lbnQpID0+IHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKGVsZW1lbnQsICdkcm9wLWluc2lkZScpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdG9wRHJhZ2dpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NsZWFyRHJhZ0luZm8oKTtcbiAgICAgICAgdGhpcy5fcmVzZXREcm9wQWN0aW9uVG9kbygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Nob3dEcmFnSW5mbygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xlYXJEcmFnSW5mbygpO1xuICAgICAgICBpZiAodGhpcy5kcm9wQWN0aW9uVG9kby50YXJnZXRJZCkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5fZ2V0Tm9kZUJ5SWQodGhpcy5kcm9wQWN0aW9uVG9kby50YXJnZXRJZCk7XG4gICAgICAgICAgICBjb25zdCBuZXdQYXJlbnRJZCA9IHBhcmVudD8ucGFyZW50Tm9kZT8uRGF0YT8uSWQgfHwgJyRSb290JztcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldE5vZGVFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyNub2RlLScgKyB0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldElkKTtcbiAgICAgICAgICAgIGlmICghdGFyZ2V0Tm9kZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNldERyb3BBY3Rpb25Ub2RvKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuZXdQYXJlbnRJZCA9PT0gJyRSb290JyAmJiB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiAhPT0gJ2luc2lkZScpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb290Q29udGFpbmVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ZkLWxheW91dC1wYW5lbCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHJvb3RDb250YWluZXIsICdkcm9wLWluc2lkZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGFyZ2V0Tm9kZUVsZW1lbnQsICdkcm9wLScgKyB0aGlzLmRyb3BBY3Rpb25Ub2RvPy5hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZG9EcmFnTW92ZShldmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50RnJvbVBvaW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChldmVudC5wb2ludGVyUG9zaXRpb24ueCwgZXZlbnQucG9pbnRlclBvc2l0aW9uLnkpO1xuXG4gICAgICAgIGlmICghZWxlbWVudEZyb21Qb2ludCkge1xuICAgICAgICAgICAgdGhpcy5fc3RvcERyYWdnaW5nKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFyZ2V0Tm9kZUVsZW1lbnQgPSBlbGVtZW50RnJvbVBvaW50LmNsYXNzTGlzdC5jb250YWlucygnbm9kZS1pdGVtJylcbiAgICAgICAgICAgID8gZWxlbWVudEZyb21Qb2ludFxuICAgICAgICAgICAgOiBlbGVtZW50RnJvbVBvaW50LmNsb3Nlc3QoJy5ub2RlLWl0ZW0nKTtcbiAgICAgICAgaWYgKCF0YXJnZXROb2RlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5fc3RvcERyYWdnaW5nKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kcm9wQWN0aW9uVG9kbyA9IHtcbiAgICAgICAgICAgIHRhcmdldElkOiB0YXJnZXROb2RlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGFyZ2V0Tm9kZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IG9uZVRoaXJkID0gdGFyZ2V0UmVjdC5oZWlnaHQgLyAzO1xuXG4gICAgICAgIGlmIChldmVudC5wb2ludGVyUG9zaXRpb24ueSAtIHRhcmdldFJlY3QudG9wIDwgb25lVGhpcmQpIHtcbiAgICAgICAgICAgIC8vIGJlZm9yZVxuICAgICAgICAgICAgdGhpcy5kcm9wQWN0aW9uVG9kby5hY3Rpb24gPSAnYmVmb3JlJztcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5wb2ludGVyUG9zaXRpb24ueSAtIHRhcmdldFJlY3QudG9wID4gMiAqIG9uZVRoaXJkKSB7XG4gICAgICAgICAgICAvLyBhZnRlclxuICAgICAgICAgICAgdGhpcy5kcm9wQWN0aW9uVG9kby5hY3Rpb24gPSAnYWZ0ZXInO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaW5zaWRlXG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiA9ICdpbnNpZGUnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldE5vRHJvcEl0ZW1zKGV2ZW50LnNvdXJjZS5kYXRhKTtcbiAgICAgICAgdGhpcy5fc2V0Tm9Ecm9wU3R5bGUoKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0Tm9kZSA9IHRoaXMuX2dldE5vZGVCeUlkKHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SWQpO1xuICAgICAgICBpZiAodGFyZ2V0Tm9kZS5ub0Ryb3ApIHtcbiAgICAgICAgICAgIHRoaXMuX3N0b3BEcmFnZ2luZygpO1xuICAgICAgICAgICAgdGhpcy5kcm9wQWN0aW9uVG9kby5hY3Rpb24gPSAnZm9yYmlkJztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zaG93RHJhZ0luZm8oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZW1vdmVOb0Ryb3BzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0XG4gICAgICAgICAgICAuZmlsdGVyKChub2RlKSA9PiBub2RlLm5vRHJvcClcbiAgICAgICAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgbm9kZS5ub0Ryb3AgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjbm9kZS0nICsgbm9kZS5EYXRhLklkKTtcbiAgICAgICAgICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWwsICduby1kcm9wJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Tm9Ecm9wSXRlbXMoZHJhZ2dlZEl0ZW1JZCk6IHZvaWQge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5fZ2V0Tm9kZUJ5SWQoZHJhZ2dlZEl0ZW1JZCk7XG4gICAgICAgIG5vZGUubm9Ecm9wID0gdHJ1ZTtcbiAgICAgICAgbm9kZS5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldE5vRHJvcEl0ZW1zKGNoaWxkLkRhdGEuSWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXROb0Ryb3BTdHlsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mbGF0TW9EYXRhTGlzdFxuICAgICAgICAgICAgLmZpbHRlcigobm9kZSkgPT4gbm9kZS5ub0Ryb3ApXG4gICAgICAgICAgICAuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyNub2RlLScgKyBub2RlLkRhdGEuSWQpO1xuICAgICAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhlbCwgJ25vLWRyb3AnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW5Nb3ZlKHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgY2FuTW92ZSA9IHRydWU7XG4gICAgICAgIGlmIChzb3VyY2VOb2RlLkRhdGEuSWQgPT09IGRlc3RpbmF0aW9uTm9kZS5EYXRhLklkKSB7XG4gICAgICAgICAgICBjYW5Nb3ZlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzb3VyY2VOb2RlLmNoaWxkcmVuPy5mb3JlYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNhbk1vdmUgPSB0aGlzLl9jYW5Nb3ZlKHNvdXJjZU5vZGUsIGNoaWxkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYW5Nb3ZlO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHByaXZhdGUgc3RhdGljIF9zaG93Rm9yYmlkZGVuTW92ZUFsZXJ0KCk6IHZvaWQge1xuICAgICAgICBCYXJzYUFwaS5Cdy5Nc2cuRXJyb3IoJ9mG2YXbjNiq2YjYp9mG24zYryDYotuM2KrZhSDYsdinINio2Ycg2LLbjNix2LTYp9iu2Ycg2K7ZiNiv2LQg2YXZhtiq2YLZhCDaqdmG24zYry4nKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -14,7 +14,7 @@ export class UiGridComponent extends SapUiReportBaseComponent {
|
|
|
14
14
|
this.widthTypeEnum = WidthTypeEnum;
|
|
15
15
|
}
|
|
16
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: UiGridComponent, selector: "bsu-ui-grid", inputs: { showOkCancelButtons: "showOkCancelButtons" }, usesInheritance: true, ngImport: i0, template: "<!--render container-->\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n renderContainer;\r\n context: {\r\n $implicit: gridDataSource.data$ | async,\r\n allChecked: allChecked$ | async,\r\n groupby: groupby$ | async,\r\n isCheckList: context.Setting.View?.IsCheckList,\r\n hasSummary: context.Setting.View?.HasSummaryRow,\r\n columns: columns$ | async,\r\n columnsCount: columnsCount$ | async,\r\n allowInlineEdit: allowInlineEdit$ | async,\r\n inlineEditMode: inlineEditMode$ | async,\r\n onlyInlineEdit: onlyInlineEdit$ | async,\r\n secondaryColumns: secondaryColumns$ | async,\r\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\r\n popin: (mobileOrTablet$ | async) || (secondaryColumnsCount$ | async)!! > 0 ? true : false,\r\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\r\n conditionalFormats: conditionalFormats$ | async,\r\n deviceName: deviceName$ | async,\r\n deviceSize: deviceSize$ | async,\r\n mobileOrTablet: mobileOrTablet$ | async,\r\n access: context.Setting.Extra?.DefaultCommandsAccess,\r\n extraRelation: context.Setting.Extra?.Relation,\r\n title: title$ | async,\r\n rtl: rtl$ | async,\r\n hideToolbar: hideToolbar$ | async,\r\n allColumns: allColumns,\r\n gridSetting: gridSetting$ | async,\r\n contentDensity: contentDensity$ | async,\r\n formSetting: context.Setting.FormTemplate,\r\n hasSelected: hasSelected$ | async,\r\n showOkCancelButtons: showOkCancelButtons,\r\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\r\n navigationArrow: navigationArrow$ | async,\r\n containerWidth: containerWidth$ | async,\r\n newInlineEditMo: newInlineEditMo$ | async,\r\n typeDefId: context.Setting.Extra.Report.TypeDefId,\r\n reportId: context.Setting.Extra.Report.Id,\r\n listEditViewId: context.Setting.Extra.Report.ListEditViewId,\r\n typeViewId: context.Setting.Extra.Report.TypeViewId,\r\n contextView: context.Setting.View,\r\n cartableTemplates: cartableTemplates$ | async,\r\n cartableChildsMo: cartableChildsMo$ | async,\r\n inDialog: inDialog$ | async,\r\n isMultiSelect: isMultiSelect$ | async,\r\n disableResponsive: disableResponsive$ | async,\r\n fullscreen: fullscreen$ | async,\r\n selectedMo: selectedMo$ | async,\r\n gridFreeColumnSizing: gridFreeColumnSizing$ | async,\r\n allowGridColumnSort: context.ViewSetting?.AllowGridColumnSort,\r\n UlvMainCtrlr: context.Adapter?.UlvMainCtrlr,\r\n pagingSetting: pagingSetting$ | async\r\n }\r\n \"\r\n></ng-container>\r\n<!--render container -->\r\n<ng-template\r\n #renderContainer\r\n let-moDataList\r\n let-allChecked=\"allChecked\"\r\n let-isCheckList=\"isCheckList\"\r\n let-columns=\"columns\"\r\n let-columnsCount=\"columnsCount\"\r\n let-groupby=\"groupby\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-contextMenuItems=\"contextMenuItems\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-deviceName=\"deviceName\"\r\n let-deviceSize=\"deviceSize\"\r\n let-access=\"access\"\r\n let-toolbarButtons=\"toolbarButtons\"\r\n let-popin=\"popin\"\r\n let-mobileOrTablet=\"mobileOrTablet\"\r\n let-title=\"title\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-allowInlineEdit=\"allowInlineEdit\"\r\n let-hideToolbar=\"hideToolbar\"\r\n let-gridSetting=\"gridSetting\"\r\n let-contentDensity=\"contentDensity\"\r\n let-formSetting=\"formSetting\"\r\n let-hasSelected=\"hasSelected\"\r\n let-showOkCancelButtons=\"showOkCancelButtons\"\r\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\r\n let-navigationArrow=\"navigationArrow\"\r\n let-containerWidth=\"containerWidth\"\r\n let-newInlineEditMo=\"newInlineEditMo\"\r\n let-hasSummary=\"hasSummary\"\r\n let-extraRelation=\"extraRelation\"\r\n let-typeDefId=\"typeDefId\"\r\n let-contextView=\"contextView\"\r\n let-cartableTemplates=\"cartableTemplates\"\r\n let-cartableChildsMo=\"cartableChildsMo\"\r\n let-inDialog=\"inDialog\"\r\n let-isMultiSelect=\"isMultiSelect\"\r\n let-fullscreen=\"fullscreen\"\r\n let-selectedMo=\"selectedMo\"\r\n let-disableResponsive=\"disableResponsive\"\r\n let-gridFreeColumnSizing=\"gridFreeColumnSizing\"\r\n let-reportId=\"reportId\"\r\n let-listEditViewId=\"listEditViewId\"\r\n let-typeViewId=\"typeViewId\"\r\n let-UlvMainCtrlr=\"UlvMainCtrlr\"\r\n let-rtl=\"rtl\"\r\n let-allColumns=\"allColumns\"\r\n let-allowGridColumnSort=\"allowGridColumnSort\"\r\n let-pagingSetting=\"pagingSetting\"\r\n>\r\n <bsu-ulv-toolbar\r\n [hideToolbar]=\"hideToolbar\"\r\n [deviceName]=\"deviceName\"\r\n [hideTitle]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [toolbarButtons]=\"toolbarButtons\"\r\n [gridSetting]=\"gridSetting\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [title]=\"title\"\r\n [hasSelected]=\"hasSelected\"\r\n [access]=\"access\"\r\n [disableResponsive]=\"disableResponsive\"\r\n [inDialog]=\"inDialog\"\r\n [isMultiSelect]=\"isMultiSelect\"\r\n [contentDensity]=\"contentDensity\"\r\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [moDataListCount]=\"moDataList.length\"\r\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\r\n [allowGridColumnSort]=\"allowGridColumnSort\"\r\n (sortClick)=\"onSortSettings(deviceName)\"\r\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\r\n (columnClick)=\"onColumnSettings(deviceName)\"\r\n (editModeClick)=\"onEditMode()\"\r\n (createNewInlineMo)=\"onToolbarCreateNewInlineMo()\"\r\n ></bsu-ulv-toolbar>\r\n <bsu-ui-table-view\r\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [cartableTemplates]=\"cartableTemplates\"\r\n [pagingSetting]=\"pagingSetting\"\r\n [parentHeight]=\"parentHeight\"\r\n [fullscreen]=\"fullscreen\"\r\n [selectedMo]=\"selectedMo\"\r\n [rtl]=\"rtl\"\r\n [allowGridColumnSort]=\"allowGridColumnSort\"\r\n [inDialog]=\"inDialog\"\r\n [isMultiSelect]=\"isMultiSelect\"\r\n [allColumns]=\"allColumns\"\r\n [cartableChildsMo]=\"cartableChildsMo\"\r\n [contextView]=\"contextView\"\r\n [containerWidth]=\"containerWidth\"\r\n [isCheckList]=\"isCheckList\"\r\n [allChecked]=\"allChecked\"\r\n [moDataList]=\"moDataList\"\r\n [access]=\"access\"\r\n [groupby]=\"groupby\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [title]=\"title\"\r\n [mobileOrTablet]=\"mobileOrTablet\"\r\n [disableResponsive]=\"disableResponsive\"\r\n [popin]=\"popin\"\r\n [secondaryColumns]=\"secondaryColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [columns]=\"columns\"\r\n [columnWidth]=\"100 / columns.length\"\r\n [columnsCount]=\"columnsCount\"\r\n [rowHoverable]=\"rowHoverable\"\r\n [rowActivable]=\"rowActivable\"\r\n [formSetting]=\"formSetting\"\r\n [typeDefId]=\"typeDefId\"\r\n [reportId]=\"reportId\"\r\n [listEditViewId]=\"listEditViewId\"\r\n [typeViewId]=\"typeViewId\"\r\n [extraRelation]=\"extraRelation\"\r\n [showOkCancelButtons]=\"showOkCancelButtons\"\r\n [fitWidth]=\"false\"\r\n [hasSummary]=\"hasSummary\"\r\n [rowResizer]=\"rowResizer\"\r\n [enableResizing]=\"enableResizing\"\r\n [newInlineEditMo]=\"newInlineEditMo\"\r\n (escapeKey)=\"onEscapeKey($event)\"\r\n (deselectAll)=\"onDeselectAll()\"\r\n (ulvCommandClick)=\"onUlvCommand($event)\"\r\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\r\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\r\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\r\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\r\n (sortAscending)=\"onSortAscending($event)\"\r\n (sortDescending)=\"onSortDescending($event)\"\r\n (filter)=\"onFilter($event)\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (rowCheck)=\"onRowCheck($event)\"\r\n (allCheckbox)=\"onAllCheckbox($event)\"\r\n (expandClick)=\"onExpandClick($event)\"\r\n (columnResized)=\"onColumnResized($event)\"\r\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\r\n >\r\n </bsu-ui-table-view>\r\n</ng-template>\r\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.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: i3.UiTableViewComponent, selector: "bsu-ui-table-view", inputs: ["columnWidth", "minWidth", "minHeight", "rowResizer", "enableResizing"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SeperatorFixPipe, name: "seperatorFix" }, { kind: "pipe", type: i4.ContextMenuPipe, name: "contextMenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: UiGridComponent, selector: "bsu-ui-grid", inputs: { showOkCancelButtons: "showOkCancelButtons" }, usesInheritance: true, ngImport: i0, template: "<!--render container-->\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n renderContainer;\r\n context: {\r\n $implicit: gridDataSource.data$ | async,\r\n allChecked: allChecked$ | async,\r\n groupby: groupby$ | async,\r\n isCheckList: context.Setting.View?.IsCheckList,\r\n hasSummary: context.Setting.View?.HasSummaryRow,\r\n columns: columns$ | async,\r\n columnsCount: columnsCount$ | async,\r\n allowInlineEdit: allowInlineEdit$ | async,\r\n inlineEditMode: inlineEditMode$ | async,\r\n onlyInlineEdit: onlyInlineEdit$ | async,\r\n secondaryColumns: secondaryColumns$ | async,\r\n toolbarButtons: (toolbarButtons$ | async)!! | seperatorFix,\r\n popin: (mobileOrTablet$ | async) || (secondaryColumnsCount$ | async)!! > 0 ? true : false,\r\n contextMenuItems: menuItems$ | async | contextMenu: context.Setting.View?.IsCheckList,\r\n conditionalFormats: conditionalFormats$ | async,\r\n deviceName: deviceName$ | async,\r\n deviceSize: deviceSize$ | async,\r\n mobileOrTablet: mobileOrTablet$ | async,\r\n access: context.Setting.Extra?.DefaultCommandsAccess,\r\n extraRelation: context.Setting.Extra?.Relation,\r\n title: title$ | async,\r\n rtl: rtl$ | async,\r\n hideToolbar: hideToolbar$ | async,\r\n allColumns: allColumns,\r\n gridSetting: gridSetting$ | async,\r\n contentDensity: contentDensity$ | async,\r\n formSetting: context.Setting.FormTemplate,\r\n hasSelected: hasSelected$ | async,\r\n showOkCancelButtons: showOkCancelButtons,\r\n disableOverflowContextMenu: viewSetting?.DisableOverflowContextMenu,\r\n navigationArrow: navigationArrow$ | async,\r\n containerWidth: containerWidth$ | async,\r\n newInlineEditMo: newInlineEditMo$ | async,\r\n typeDefId: context.Setting.Extra.Report.TypeDefId,\r\n reportId: context.Setting.Extra.Report.Id,\r\n listEditViewId: context.Setting.Extra.Report.ListEditViewId,\r\n typeViewId: context.Setting.Extra.Report.TypeViewId,\r\n contextView: context.Setting.View,\r\n cartableTemplates: cartableTemplates$ | async,\r\n cartableChildsMo: cartableChildsMo$ | async,\r\n inDialog: inDialog$ | async,\r\n isMultiSelect: isMultiSelect$ | async,\r\n disableResponsive: disableResponsive$ | async,\r\n fullscreen: fullscreen$ | async,\r\n selectedMo: selectedMo$ | async,\r\n gridFreeColumnSizing: gridFreeColumnSizing$ | async,\r\n allowGridColumnSort: context.ViewSetting?.AllowGridColumnSort,\r\n UlvMainCtrlr: context.Adapter?.UlvMainCtrlr,\r\n pagingSetting: pagingSetting$ | async\r\n }\r\n \"\r\n></ng-container>\r\n<!--render container -->\r\n<ng-template\r\n #renderContainer\r\n let-moDataList\r\n let-allChecked=\"allChecked\"\r\n let-isCheckList=\"isCheckList\"\r\n let-columns=\"columns\"\r\n let-columnsCount=\"columnsCount\"\r\n let-groupby=\"groupby\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-contextMenuItems=\"contextMenuItems\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-deviceName=\"deviceName\"\r\n let-deviceSize=\"deviceSize\"\r\n let-access=\"access\"\r\n let-toolbarButtons=\"toolbarButtons\"\r\n let-popin=\"popin\"\r\n let-mobileOrTablet=\"mobileOrTablet\"\r\n let-title=\"title\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-allowInlineEdit=\"allowInlineEdit\"\r\n let-hideToolbar=\"hideToolbar\"\r\n let-gridSetting=\"gridSetting\"\r\n let-contentDensity=\"contentDensity\"\r\n let-formSetting=\"formSetting\"\r\n let-hasSelected=\"hasSelected\"\r\n let-showOkCancelButtons=\"showOkCancelButtons\"\r\n let-disableOverflowContextMenu=\"disableOverflowContextMenu\"\r\n let-navigationArrow=\"navigationArrow\"\r\n let-containerWidth=\"containerWidth\"\r\n let-newInlineEditMo=\"newInlineEditMo\"\r\n let-hasSummary=\"hasSummary\"\r\n let-extraRelation=\"extraRelation\"\r\n let-typeDefId=\"typeDefId\"\r\n let-contextView=\"contextView\"\r\n let-cartableTemplates=\"cartableTemplates\"\r\n let-cartableChildsMo=\"cartableChildsMo\"\r\n let-inDialog=\"inDialog\"\r\n let-isMultiSelect=\"isMultiSelect\"\r\n let-fullscreen=\"fullscreen\"\r\n let-selectedMo=\"selectedMo\"\r\n let-disableResponsive=\"disableResponsive\"\r\n let-gridFreeColumnSizing=\"gridFreeColumnSizing\"\r\n let-reportId=\"reportId\"\r\n let-listEditViewId=\"listEditViewId\"\r\n let-typeViewId=\"typeViewId\"\r\n let-UlvMainCtrlr=\"UlvMainCtrlr\"\r\n let-rtl=\"rtl\"\r\n let-allColumns=\"allColumns\"\r\n let-allowGridColumnSort=\"allowGridColumnSort\"\r\n let-pagingSetting=\"pagingSetting\"\r\n>\r\n <bsu-ulv-toolbar\r\n [hideToolbar]=\"hideToolbar\"\r\n [deviceName]=\"deviceName\"\r\n [hideTitle]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [toolbarButtons]=\"toolbarButtons\"\r\n [gridSetting]=\"gridSetting\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [title]=\"title\"\r\n [hasSelected]=\"hasSelected\"\r\n [access]=\"access\"\r\n [disableResponsive]=\"disableResponsive\"\r\n [inDialog]=\"inDialog\"\r\n [isMultiSelect]=\"isMultiSelect\"\r\n [contentDensity]=\"contentDensity\"\r\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [moDataListCount]=\"moDataList.length\"\r\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\r\n [allowGridColumnSort]=\"allowGridColumnSort\"\r\n (sortClick)=\"onSortSettings(deviceName)\"\r\n (groupbyClick)=\"onGroupbySettings(deviceName)\"\r\n (columnClick)=\"onColumnSettings(deviceName)\"\r\n (editModeClick)=\"onEditMode()\"\r\n (createNewInlineMo)=\"onToolbarCreateNewInlineMo()\"\r\n ></bsu-ulv-toolbar>\r\n <bsu-ui-table-view\r\n [gridFreeColumnSizing]=\"gridFreeColumnSizing\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [cartableTemplates]=\"cartableTemplates\"\r\n [pagingSetting]=\"pagingSetting\"\r\n [parentHeight]=\"parentHeight\"\r\n [fullscreen]=\"fullscreen\"\r\n [selectedMo]=\"selectedMo\"\r\n [rtl]=\"rtl\"\r\n [allowGridColumnSort]=\"allowGridColumnSort\"\r\n [inDialog]=\"inDialog\"\r\n [isMultiSelect]=\"isMultiSelect\"\r\n [allColumns]=\"allColumns\"\r\n [cartableChildsMo]=\"cartableChildsMo\"\r\n [contextView]=\"contextView\"\r\n [containerWidth]=\"containerWidth\"\r\n [isCheckList]=\"isCheckList\"\r\n [allChecked]=\"allChecked\"\r\n [moDataList]=\"moDataList\"\r\n [access]=\"access\"\r\n [groupby]=\"groupby\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [title]=\"title\"\r\n [mobileOrTablet]=\"mobileOrTablet\"\r\n [disableResponsive]=\"disableResponsive\"\r\n [popin]=\"popin\"\r\n [secondaryColumns]=\"secondaryColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [inlineEditMode]=\"inlineEditMode && allowInlineEdit\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [columns]=\"columns\"\r\n [columnWidth]=\"100 / columns.length\"\r\n [columnsCount]=\"columnsCount\"\r\n [rowHoverable]=\"rowHoverable\"\r\n [rowActivable]=\"rowActivable\"\r\n [formSetting]=\"formSetting\"\r\n [typeDefId]=\"typeDefId\"\r\n [reportId]=\"reportId\"\r\n [listEditViewId]=\"listEditViewId\"\r\n [typeViewId]=\"typeViewId\"\r\n [extraRelation]=\"extraRelation\"\r\n [showOkCancelButtons]=\"showOkCancelButtons\"\r\n [fitWidth]=\"false\"\r\n [hasSummary]=\"hasSummary\"\r\n [rowResizer]=\"rowResizer\"\r\n [enableResizing]=\"enableResizing\"\r\n [newInlineEditMo]=\"newInlineEditMo\"\r\n (escapeKey)=\"onEscapeKey($event)\"\r\n (deselectAll)=\"onDeselectAll()\"\r\n (ulvCommandClick)=\"onUlvCommand($event)\"\r\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\r\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\r\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\r\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\r\n (sortAscending)=\"onSortAscending($event)\"\r\n (sortDescending)=\"onSortDescending($event)\"\r\n (filter)=\"onFilter($event)\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (rowCheck)=\"onRowCheck($event)\"\r\n (allCheckbox)=\"onAllCheckbox($event)\"\r\n (expandClick)=\"onExpandClick($event)\"\r\n (columnResized)=\"onColumnResized($event)\"\r\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\r\n >\r\n </bsu-ui-table-view>\r\n</ng-template>\r\n", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.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: i3.UiTableViewComponent, selector: "bsu-ui-table-view", inputs: ["columnWidth", "minWidth", "minHeight", "rowResizer", "enableResizing", "disableFixedTableLayout"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SeperatorFixPipe, name: "seperatorFix" }, { kind: "pipe", type: i4.ContextMenuPipe, name: "contextMenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiGridComponent, decorators: [{
|
|
20
20
|
type: Component,
|