barsa-sap-ui 1.0.394 → 1.0.396
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/barsa-simple-form/barsa-simple-form.component.mjs +7 -5
- package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
- package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +3 -3
- package/esm2020/lib/card-view-content/card-view-content.component.mjs +1 -1
- package/esm2020/lib/form-dialog/form-dialog.component.mjs +3 -3
- package/esm2020/lib/form-toolbar/form-toolbar.component.mjs +2 -2
- package/esm2020/lib/layout-control/layout-control.component.mjs +2 -2
- package/esm2020/lib/no-data/no-data.component.mjs +10 -7
- package/esm2020/lib/ui-card-view-horizontal-group/ui-card-view-horizontal-group.component.mjs +1 -1
- package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +3 -3
- package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +8 -8
- package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +3 -3
- package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +1 -1
- package/fesm2015/barsa-sap-ui.mjs +60 -56
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +58 -54
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-simple-form/barsa-simple-form.component.d.ts +3 -2
- package/lib/no-data/no-data.component.d.ts +2 -1
- package/lib/ui-list-view/ui-list-view.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -74,14 +74,14 @@ export class UiFormPanelComponent extends FormBaseComponent {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
UiFormPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiFormPanelComponent, deps: [{ token: i1.BreadcrumbService }, { token: i1.PortalService }, { token: i2.Router }, { token: i0.ElementRef }, { token: i1.ControlUiPipe }, { token: i1.FormPanelService, self: true }, { token: i2.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i3.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
-
UiFormPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiFormPanelComponent, selector: "bsu-ui-form-panel", host: { properties: { "attr.typeDefName": "this._typeDefName" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport; else dynamicPage\">\n <bsu-barsa-simple-form\n [canSend]=\"(canSend$ | async) === true\"\n [formVisibilityStatus]=\"formVisibilityStatus\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [hideClose]=\"(hideClose$ | async)!!\"\n [hideTitle]=\"(hideTitle$ | async)!!\"\n [hidePin]=\"(hidePin$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [isMobile]=\"isMobile\"\n [layout94]=\"extendLayout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [mo]=\"(mo$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n [landscape]=\"(landscape$ | async) === true\"\n [standalone]=\"(standalone$ | async) === true\"\n (close)=\"onClose()\"\n (toolbarClick)=\"onToolbarClick($event)\"\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\n ></bsu-barsa-simple-form>\n <!-- <div fd-bar barDesign=\"floating-footer\">\n <div\n *ngIf=\"context.WorkflowPanelUi\"\n fd-bar-right\n [footerActions]=\"context.WorkflowPanelUi\"\n ></div>\n <div\n *ngIf=\"\n !context.WorkflowPanelUi &&\n showToolbar &&\n \n toolbar.items.length > 0\n \"\n fd-bar-right\n [footerActions]=\"toolbar\"\n ></div>\n </div> -->\n</ng-container>\n<ng-template #dynamicPage>\n <bsu-fundamental-dynamic-form\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\n [canSend]=\"(canSend$ | async) === true\"\n [formVisibilityStatus]=\"formVisibilityStatus\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [hideClose]=\"(hideClose$ | async)!!\"\n [hideTitle]=\"(hideTitle$ | async)!!\"\n [hidePin]=\"(hidePin$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [fullscreen]=\"fullscreen\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [isMobile]=\"isMobile\"\n [layout94]=\"extendLayout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [mo]=\"(mo$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n [landscape]=\"(landscape$ | async) === true\"\n [standalone]=\"(standalone$ | async) === true\"\n (fullscreenRequest)=\"onFullscreen()\"\n (close)=\"onClose()\"\n (toolbarClick)=\"onToolbarClick($event)\"\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\n ></bsu-fundamental-dynamic-form>\n</ng-template>\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "hideTitle", "hideClose", "hidePin", "fullscreen", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "formVisibilityStatus"], outputs: ["toolbarClick", "workflowChoiceClick", "close", "fullscreenRequest"] }, { kind: "component", type: i6.BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "hideTitle", "hideClose", "hidePin", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "formVisibilityStatus"], outputs: ["toolbarClick", "workflowChoiceClick", "close"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TlbButtonsPipe, name: "tlbButtons" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
77
|
+
UiFormPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiFormPanelComponent, selector: "bsu-ui-form-panel", host: { properties: { "attr.typeDefName": "this._typeDefName" } }, providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport; else dynamicPage\">\n <bsu-barsa-simple-form\n [canSend]=\"(canSend$ | async) === true\"\n [formVisibilityStatus]=\"formVisibilityStatus\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [hideClose]=\"(hideClose$ | async)!!\"\n [hideTitle]=\"(hideTitle$ | async)!!\"\n [hidePin]=\"(hidePin$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [isModal]=\"isModal\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\n [isMobile]=\"isMobile\"\n [layout94]=\"extendLayout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [mo]=\"(mo$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n [landscape]=\"(landscape$ | async) === true\"\n [standalone]=\"(standalone$ | async) === true\"\n (close)=\"onClose()\"\n (toolbarClick)=\"onToolbarClick($event)\"\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\n ></bsu-barsa-simple-form>\n <!-- <div fd-bar barDesign=\"floating-footer\">\n <div\n *ngIf=\"context.WorkflowPanelUi\"\n fd-bar-right\n [footerActions]=\"context.WorkflowPanelUi\"\n ></div>\n <div\n *ngIf=\"\n !context.WorkflowPanelUi &&\n showToolbar &&\n \n toolbar.items.length > 0\n \"\n fd-bar-right\n [footerActions]=\"toolbar\"\n ></div>\n </div> -->\n</ng-container>\n<ng-template #dynamicPage>\n <bsu-fundamental-dynamic-form\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\n [canSend]=\"(canSend$ | async) === true\"\n [formVisibilityStatus]=\"formVisibilityStatus\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [hideClose]=\"(hideClose$ | async)!!\"\n [hideTitle]=\"(hideTitle$ | async)!!\"\n [hidePin]=\"(hidePin$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [fullscreen]=\"fullscreen\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [isMobile]=\"isMobile\"\n [layout94]=\"extendLayout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [mo]=\"(mo$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n [landscape]=\"(landscape$ | async) === true\"\n [standalone]=\"(standalone$ | async) === true\"\n (fullscreenRequest)=\"onFullscreen()\"\n (close)=\"onClose()\"\n (toolbarClick)=\"onToolbarClick($event)\"\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\n ></bsu-fundamental-dynamic-form>\n</ng-template>\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "hideTitle", "hideClose", "hidePin", "fullscreen", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "formVisibilityStatus"], outputs: ["toolbarClick", "workflowChoiceClick", "close", "fullscreenRequest"] }, { kind: "component", type: i6.BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "isModal", "hideTitle", "hideClose", "hidePin", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "workflowButtons", "formVisibilityStatus"], outputs: ["toolbarClick", "workflowChoiceClick", "close"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TlbButtonsPipe, name: "tlbButtons" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
78
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiFormPanelComponent, decorators: [{
|
|
79
79
|
type: Component,
|
|
80
|
-
args: [{ selector: 'bsu-ui-form-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], template: "<ng-container *ngIf=\"isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport; else dynamicPage\">\n <bsu-barsa-simple-form\n [canSend]=\"(canSend$ | async) === true\"\n [formVisibilityStatus]=\"formVisibilityStatus\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [hideClose]=\"(hideClose$ | async)!!\"\n [hideTitle]=\"(hideTitle$ | async)!!\"\n [hidePin]=\"(hidePin$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [isMobile]=\"isMobile\"\n [layout94]=\"extendLayout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [mo]=\"(mo$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n [landscape]=\"(landscape$ | async) === true\"\n [standalone]=\"(standalone$ | async) === true\"\n (close)=\"onClose()\"\n (toolbarClick)=\"onToolbarClick($event)\"\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\n ></bsu-barsa-simple-form>\n <!-- <div fd-bar barDesign=\"floating-footer\">\n <div\n *ngIf=\"context.WorkflowPanelUi\"\n fd-bar-right\n [footerActions]=\"context.WorkflowPanelUi\"\n ></div>\n <div\n *ngIf=\"\n !context.WorkflowPanelUi &&\n showToolbar &&\n \n toolbar.items.length > 0\n \"\n fd-bar-right\n [footerActions]=\"toolbar\"\n ></div>\n </div> -->\n</ng-container>\n<ng-template #dynamicPage>\n <bsu-fundamental-dynamic-form\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\n [canSend]=\"(canSend$ | async) === true\"\n [formVisibilityStatus]=\"formVisibilityStatus\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [hideClose]=\"(hideClose$ | async)!!\"\n [hideTitle]=\"(hideTitle$ | async)!!\"\n [hidePin]=\"(hidePin$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [fullscreen]=\"fullscreen\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [isMobile]=\"isMobile\"\n [layout94]=\"extendLayout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [mo]=\"(mo$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n [landscape]=\"(landscape$ | async) === true\"\n [standalone]=\"(standalone$ | async) === true\"\n (fullscreenRequest)=\"onFullscreen()\"\n (close)=\"onClose()\"\n (toolbarClick)=\"onToolbarClick($event)\"\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\n ></bsu-fundamental-dynamic-form>\n</ng-template>\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"] }]
|
|
80
|
+
args: [{ selector: 'bsu-ui-form-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService], template: "<ng-container *ngIf=\"isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport; else dynamicPage\">\n <bsu-barsa-simple-form\n [canSend]=\"(canSend$ | async) === true\"\n [formVisibilityStatus]=\"formVisibilityStatus\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [hideClose]=\"(hideClose$ | async)!!\"\n [hideTitle]=\"(hideTitle$ | async)!!\"\n [hidePin]=\"(hidePin$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [isModal]=\"isModal\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\n [isMobile]=\"isMobile\"\n [layout94]=\"extendLayout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [mo]=\"(mo$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n [landscape]=\"(landscape$ | async) === true\"\n [standalone]=\"(standalone$ | async) === true\"\n (close)=\"onClose()\"\n (toolbarClick)=\"onToolbarClick($event)\"\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\n ></bsu-barsa-simple-form>\n <!-- <div fd-bar barDesign=\"floating-footer\">\n <div\n *ngIf=\"context.WorkflowPanelUi\"\n fd-bar-right\n [footerActions]=\"context.WorkflowPanelUi\"\n ></div>\n <div\n *ngIf=\"\n !context.WorkflowPanelUi &&\n showToolbar &&\n \n toolbar.items.length > 0\n \"\n fd-bar-right\n [footerActions]=\"toolbar\"\n ></div>\n </div> -->\n</ng-container>\n<ng-template #dynamicPage>\n <bsu-fundamental-dynamic-form\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\n [canSend]=\"(canSend$ | async) === true\"\n [formVisibilityStatus]=\"formVisibilityStatus\"\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\n [breadCrumbs]=\"breadCrumbs$ | async\"\n [description]=\"(headerDescription$ | async)!!\"\n [hideClose]=\"(hideClose$ | async)!!\"\n [hideTitle]=\"(hideTitle$ | async)!!\"\n [hidePin]=\"(hidePin$ | async)!!\"\n [title]=\"(title$ | async)!!\"\n [subtitle]=\"(headerSubtitle$ | async)!!\"\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true\"\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\n [parameters]=\"parameters\"\n [fullscreen]=\"fullscreen\"\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\n [isMobile]=\"isMobile\"\n [layout94]=\"extendLayout94$ | async\"\n [rtl]=\"(rtl$ | async)!!\"\n [mask]=\"(mask$ | async)!!\"\n [mo]=\"(mo$ | async)!!\"\n [dirValue]=\"(dirValue$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [contentDensity]=\"(contentDensity$ | async)!!\"\n [modernTabs]=\"(modernTabs$ | async)!!\"\n [avatar]=\"(avatar$ | async)!!\"\n [fieldDict]=\"(fieldDict$ | async)!!\"\n [landscape]=\"(landscape$ | async) === true\"\n [standalone]=\"(standalone$ | async) === true\"\n (fullscreenRequest)=\"onFullscreen()\"\n (close)=\"onClose()\"\n (toolbarClick)=\"onToolbarClick($event)\"\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\n ></bsu-fundamental-dynamic-form>\n</ng-template>\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"] }]
|
|
81
81
|
}], ctorParameters: function () { return [{ type: i1.BreadcrumbService }, { type: i1.PortalService }, { type: i2.Router }, { type: i0.ElementRef }, { type: i1.ControlUiPipe }, { type: i1.FormPanelService, decorators: [{
|
|
82
82
|
type: Self
|
|
83
83
|
}] }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.ContentDensityService }]; }, propDecorators: { _typeDefName: [{
|
|
84
84
|
type: HostBinding,
|
|
85
85
|
args: ['attr.typeDefName']
|
|
86
86
|
}] } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZm9ybS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1mb3JtLXBhbmVsL3VpLWZvcm0tcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZm9ybS1wYW5lbC91aS1mb3JtLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFdBQVcsRUFFWCxJQUFJLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFjLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEQsT0FBTyxFQUNILGlCQUFpQixFQUdqQixnQkFBZ0IsRUFHaEIsNkJBQTZCLEVBQzdCLGVBQWUsRUFDZixRQUFRLEVBSVgsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFTOUIsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGlCQUFpQjtJQVl2RCxZQUNjLGtCQUFxQyxFQUNyQyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsR0FBZSxFQUNmLGNBQTZCLEVBQ3JCLGlCQUFtQyxFQUMzQyxlQUErQixFQUMvQixJQUF1QixFQUN2QixzQkFBNkM7UUFFdkQsS0FBSyxDQUNELGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsT0FBTyxFQUNQLEdBQUcsRUFDSCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixJQUFJLENBQ1AsQ0FBQztRQW5CUSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUMzQyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQXBCMUIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFnQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUcsc0JBQXNCLENBQUMsY0FBYyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUVoRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3RDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQzNCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFBSSxVQUFVLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQ3BDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQzdELE1BQU0sVUFBVSxHQUFHLDZCQUE2QixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzFFLElBQUksVUFBVSxFQUFFO3dCQUNaLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7cUJBQ3pEO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUMzQixHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUNqQixJQUFJLFVBQVUsRUFBRSxzQkFBc0IsRUFBRTtnQkFDcEMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDN0QsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pFLElBQUksV0FBVyxFQUFFO3dCQUNiLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7cUJBQzFEO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFDRCxJQUFJLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUU7Z0JBQzFDLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUN6RSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO29CQUN2QyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLGtCQUFrQixFQUFFO2lCQUNwRCxDQUFDLENBQUM7YUFDTjtZQUNELElBQUksVUFBVSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRTtnQkFDeEMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzdELFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7b0JBQ3JDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7aUJBQ2xELENBQUMsQ0FBQzthQUNOO1lBQ0QsSUFBSSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFO2dCQUM1QyxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDckUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtvQkFDekMsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRTtpQkFDdEQsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLEVBQUUsaUJBQWlCLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM5RSxDQUFDOztpSEExRlEsb0JBQW9CO3FHQUFwQixvQkFBb0IsK0dBRmxCLENBQUMsZ0JBQWdCLENBQUMsaURDakNqQyxrdElBOEZBOzJGRDNEYSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxnQkFBZ0IsQ0FBQzs7MEJBb0J4QixJQUFJOzZJQWpCd0IsWUFBWTtzQkFBNUMsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uSW5pdCxcbiAgICBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIENvbnRlbnREZW5zaXR5U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgRm9ybUJhc2VDb21wb25lbnQsXG4gICAgUG9ydGFsU2VydmljZSxcbiAgICBCcmVhZENydW1iSW5mbyxcbiAgICBGb3JtUGFuZWxTZXJ2aWNlLFxuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIENvbnRyb2xVaVBpcGUsXG4gICAgRmluZExheW91dFNldHRpbmdGcm9tTGF5b3V0OTQsXG4gICAgRmluZFRvb2xiYXJJdGVtLFxuICAgIEJhcnNhQXBpLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgRWpyYXlPbGdvLFxuICAgIE1vRm9yUmVwb3J0TW9kZWxcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1mb3JtLXBhbmVsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktZm9ybS1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZm9ybS1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFVpRm9ybVBhbmVsQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50eXBlRGVmTmFtZScpIF90eXBlRGVmTmFtZSA9ICcnO1xuXG4gICAgYnJlYWRDcnVtYnMkOiBPYnNlcnZhYmxlPEJyZWFkQ3J1bWJJbmZvW10+O1xuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XG4gICAgZGV2aWNlU2l6ZSQ6IE9ic2VydmFibGU8J3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJz47XG4gICAgZGlyVmFsdWUkOiBPYnNlcnZhYmxlPCdydGwnIHwgJ2x0cic+O1xuICAgIHJ0bCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgY2FuU2VuZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZXh0ZW5kTGF5b3V0OTQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgZXh0ZW5kVG9vbGJhckl0ZW1zJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgcGFyYW1ldGVyczogRm9ybVBhbmVsU2V0dGluZztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9icmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9jb250cm9sVWlQaXBlOiBDb250cm9sVWlQaXBlLFxuICAgICAgICBAU2VsZigpIHByb3RlY3RlZCBfZm9ybVBhbmVsU2VydmljZTogRm9ybVBhbmVsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIF9icmVhZGNydW1iU2VydmljZSxcbiAgICAgICAgICAgIF9wb3J0YWxTZXJ2aWNlLFxuICAgICAgICAgICAgX3JvdXRlcixcbiAgICAgICAgICAgIF9lbCxcbiAgICAgICAgICAgIF9jb250cm9sVWlQaXBlLFxuICAgICAgICAgICAgX2Zvcm1QYW5lbFNlcnZpY2UsXG4gICAgICAgICAgICBfYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICBfY2RyXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYnJlYWRDcnVtYnMkID0gX2JyZWFkY3J1bWJTZXJ2aWNlLmJyZWFkY3J1bWJzJDtcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSBfY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQ7XG4gICAgICAgIHRoaXMuZGlyVmFsdWUkID0gX3BvcnRhbFNlcnZpY2UuZGlyVmFsdWUkO1xuICAgICAgICB0aGlzLnJ0bCQgPSBfcG9ydGFsU2VydmljZS5ydGwkO1xuICAgICAgICB0aGlzLmNhblNlbmQkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5jYW5TZW5kJDtcblxuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLm1vJC5zdWJzY3JpYmUoKGMpID0+ICh0aGlzLl90eXBlRGVmTmFtZSA9IGM/LiRUeXBlRGVmTmFtZSA/PyAnJykpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMucGFyYW1ldGVycztcbiAgICAgICAgdGhpcy5leHRlbmRMYXlvdXQ5NCQgPSB0aGlzLmxheW91dDk0JC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgdGFwKChsYXlvdXQ5NCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5Gb3JtTGF5b3V0SXRlbXNTZXR0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMuRm9ybUxheW91dEl0ZW1zU2V0dGluZy5Nb0RhdGFMaXN0LmZvckVhY2goKHNldHRpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheW91dEl0ZW0gPSBGaW5kTGF5b3V0U2V0dGluZ0Zyb21MYXlvdXQ5NChsYXlvdXQ5NCwgc2V0dGluZy5UaXRsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5b3V0SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKGxheW91dEl0ZW0sIHNldHRpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmV4dGVuZFRvb2xiYXJJdGVtcyQgPSB0aGlzLnRvb2xiYXJJdGVtcyQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgIHRhcCgodG9vbGJhckl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnM/LkZvcm1MYXlvdXRJdGVtc1NldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycy5Gb3JtTGF5b3V0SXRlbXNTZXR0aW5nLk1vRGF0YUxpc3QuZm9yRWFjaCgoc2V0dGluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9vbGJhckl0ZW0gPSBGaW5kVG9vbGJhckl0ZW0odG9vbGJhckl0ZW1zLCBzZXR0aW5nLlRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0b29sYmFySXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKHRvb2xiYXJJdGVtLCBzZXR0aW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5TYXZlQnV0dG9uQ3VzdG9tVWk/LlNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhdmVJdGVtID0gRmluZFRvb2xiYXJJdGVtKHRvb2xiYXJJdGVtcywgJ1NhdmVBbmRDbG9zZScsICdpdGVtSWQnKTtcbiAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5GYXN0TWVyZ2Uoc2F2ZUl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGE6IHsgQ3VzdG9tVWk6IHBhcmFtZXRlcnMuU2F2ZUJ1dHRvbkN1c3RvbVVpIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5Pa0J1dHRvbkN1c3RvbVVpPy5TZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBva0l0ZW0gPSBGaW5kVG9vbGJhckl0ZW0odG9vbGJhckl0ZW1zLCAnT2snLCAnaXRlbUlkJyk7XG4gICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKG9rSXRlbSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgRGF0YTogeyBDdXN0b21VaTogcGFyYW1ldGVycy5Pa0J1dHRvbkN1c3RvbVVpIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5DYW5jZWxCdXR0b25DdXN0b21VaT8uU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FuY2VsSXRlbSA9IEZpbmRUb29sYmFySXRlbSh0b29sYmFySXRlbXMsICdDYW5jZWwnLCAnaXRlbUlkJyk7XG4gICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKGNhbmNlbEl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGE6IHsgQ3VzdG9tVWk6IHBhcmFtZXRlcnMuQ2FuY2VsQnV0dG9uQ3VzdG9tVWkgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4gPSBwYXJhbWV0ZXJzPy5GdWxsc2NyZWVuRGVmYXVsdCA9PT0gdHJ1ZSAmJiAhdGhpcy5pc01vZGFsO1xuICAgIH1cbn1cbmludGVyZmFjZSBGb3JtUGFuZWxTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgTGF5b3V0Q29tcG9uZW50OiBFanJheU9sZ287XG4gICAgSGVhZGVyQ29tcG9uZW50OiBFanJheU9sZ287XG4gICAgRm9vdGVyQ29tcG9uZW50OiBFanJheU9sZ287XG4gICAgU2F2ZUJ1dHRvbkN1c3RvbVVpOiBFanJheU9sZ287XG4gICAgT2tCdXR0b25DdXN0b21VaTogRWpyYXlPbGdvO1xuICAgIENhbmNlbEJ1dHRvbkN1c3RvbVVpOiBFanJheU9sZ287XG4gICAgRm9ybUxheW91dEl0ZW1zU2V0dGluZzogTW9Gb3JSZXBvcnRNb2RlbDtcbiAgICBGdWxsc2NyZWVuRGVmYXVsdDogYm9vbGVhbjtcbiAgICBDYW5GdWxsc2NyZWVuOiBib29sZWFuO1xuICAgIElzU2ltcGxlOiBib29sZWFuO1xuICAgIElzTW9kYWw6IGJvb2xlYW47XG4gICAgQ3NzU3R5bGVzOiBzdHJpbmc7XG4gICAgQ2FuTW92ZTogYm9vbGVhbjtcbiAgICBDYW5SZXNpemU6IGJvb2xlYW47XG4gICAgQ29udGVudElzUGFnZTogYm9vbGVhbjtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlYXJjaFBhbmVsIHx8IChpc1NpbXBsZSQgfCBhc3luYykgfHwgaXNTdWJGb3JtIHx8IGlzTW9kYWwgfHwgaXNGb3JtUmVwb3J0OyBlbHNlIGR5bmFtaWNQYWdlXCI+XG4gICAgPGJzdS1iYXJzYS1zaW1wbGUtZm9ybVxuICAgICAgICBbY2FuU2VuZF09XCIoY2FuU2VuZCQgfCBhc3luYykgPT09IHRydWVcIlxuICAgICAgICBbZm9ybVZpc2liaWxpdHlTdGF0dXNdPVwiZm9ybVZpc2liaWxpdHlTdGF0dXNcIlxuICAgICAgICBbcmVtb3ZlQ29udGVudFBhZGRpbmddPVwiKGhlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2JyZWFkQ3J1bWJzXT1cImJyZWFkQ3J1bWJzJCB8IGFzeW5jXCJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIihoZWFkZXJEZXNjcmlwdGlvbiQgfCBhc3luYykhIVwiXG4gICAgICAgIFtoaWRlQ2xvc2VdPVwiKGhpZGVDbG9zZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtoaWRlVGl0bGVdPVwiKGhpZGVUaXRsZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtoaWRlUGluXT1cIihoaWRlUGluJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW3RpdGxlXT1cIih0aXRsZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtzdWJ0aXRsZV09XCIoaGVhZGVyU3VidGl0bGUkIHwgYXN5bmMpISFcIlxuICAgICAgICBbdG9vbGJhckl0ZW1zXT1cImV4dGVuZFRvb2xiYXJJdGVtcyQgfCBhc3luYyB8IHRsYkJ1dHRvbnM6ICdpbkZvb3Rlcic6ZmFsc2VcIlxuICAgICAgICBbbGF5b3V0QWN0aW9uc109XCJleHRlbmRUb29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOnRydWVcIlxuICAgICAgICBbdG9vbGJhclZpc2libGVdPVwiKHRvb2xiYXJWaXNpYmxlJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2ZhY2V0TGlzdF09XCIoaGVhZGVyTGF5b3V0JCB8IGFzeW5jKT8uRmFjZXRMaXN0MlwiXG4gICAgICAgIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnNcIlxuICAgICAgICBbd29ya2Zsb3dQYW5lbFVpXT1cIndvcmtmbG93UGFuZWxVaSQgfCBhc3luY1wiXG4gICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXG4gICAgICAgIFtsYXlvdXQ5NF09XCJleHRlbmRMYXlvdXQ5NCQgfCBhc3luY1wiXG4gICAgICAgIFtydGxdPVwiKHJ0bCQgfCBhc3luYykhIVwiXG4gICAgICAgIFttYXNrXT1cIihtYXNrJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW21vXT1cIihtbyQgfCBhc3luYykhIVwiXG4gICAgICAgIFtkaXJWYWx1ZV09XCIoZGlyVmFsdWUkIHwgYXN5bmMpISFcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCIoY29udGVudERlbnNpdHkkIHwgYXN5bmMpISFcIlxuICAgICAgICBbbW9kZXJuVGFic109XCIobW9kZXJuVGFicyQgfCBhc3luYykhIVwiXG4gICAgICAgIFthdmF0YXJdPVwiKGF2YXRhciQgfCBhc3luYykhIVwiXG4gICAgICAgIFtmaWVsZERpY3RdPVwiKGZpZWxkRGljdCQgfCBhc3luYykhIVwiXG4gICAgICAgIFtsYW5kc2NhcGVdPVwiKGxhbmRzY2FwZSQgfCBhc3luYykgPT09IHRydWVcIlxuICAgICAgICBbc3RhbmRhbG9uZV09XCIoc3RhbmRhbG9uZSQgfCBhc3luYykgPT09IHRydWVcIlxuICAgICAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcbiAgICAgICAgKHRvb2xiYXJDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcbiAgICAgICAgW2NvbnRlbnRJc1BhZ2VdPVwicGFyYW1ldGVycz8uQ29udGVudElzUGFnZSA9PT0gdHJ1ZVwiXG4gICAgICAgICh3b3JrZmxvd0Nob2ljZUNsaWNrKT1cIm9uV29ya2Zsb3dDaG9pY2VDbGljaygkZXZlbnQpXCJcbiAgICA+PC9ic3UtYmFyc2Etc2ltcGxlLWZvcm0+XG4gICAgPCEtLSA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJmbG9hdGluZy1mb290ZXJcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImNvbnRleHQuV29ya2Zsb3dQYW5lbFVpXCJcbiAgICAgIGZkLWJhci1yaWdodFxuICAgICAgW2Zvb3RlckFjdGlvbnNdPVwiY29udGV4dC5Xb3JrZmxvd1BhbmVsVWlcIlxuICAgID48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIlxuICAgICAgICAhY29udGV4dC5Xb3JrZmxvd1BhbmVsVWkgJiZcbiAgICAgICAgc2hvd1Rvb2xiYXIgJiZcbiAgICAgICAgXG4gICAgICAgIHRvb2xiYXIuaXRlbXMubGVuZ3RoID4gMFxuICAgICAgXCJcbiAgICAgIGZkLWJhci1yaWdodFxuICAgICAgW2Zvb3RlckFjdGlvbnNdPVwidG9vbGJhclwiXG4gICAgPjwvZGl2PlxuICA8L2Rpdj4gLS0+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjZHluYW1pY1BhZ2U+XG4gICAgPGJzdS1mdW5kYW1lbnRhbC1keW5hbWljLWZvcm1cbiAgICAgICAgW3N0eWxlLnBvc2l0aW9uXT1cIihtYXNrJCB8IGFzeW5jKSA/ICdyZWxhdGl2ZScgOiBudWxsXCJcbiAgICAgICAgW2NhblNlbmRdPVwiKGNhblNlbmQkIHwgYXN5bmMpID09PSB0cnVlXCJcbiAgICAgICAgW2Zvcm1WaXNpYmlsaXR5U3RhdHVzXT1cImZvcm1WaXNpYmlsaXR5U3RhdHVzXCJcbiAgICAgICAgW3JlbW92ZUNvbnRlbnRQYWRkaW5nXT1cIihoZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQgfCBhc3luYykhIVwiXG4gICAgICAgIFticmVhZENydW1ic109XCJicmVhZENydW1icyQgfCBhc3luY1wiXG4gICAgICAgIFtkZXNjcmlwdGlvbl09XCIoaGVhZGVyRGVzY3JpcHRpb24kIHwgYXN5bmMpISFcIlxuICAgICAgICBbaGlkZUNsb3NlXT1cIihoaWRlQ2xvc2UkIHwgYXN5bmMpISFcIlxuICAgICAgICBbaGlkZVRpdGxlXT1cIihoaWRlVGl0bGUkIHwgYXN5bmMpISFcIlxuICAgICAgICBbaGlkZVBpbl09XCIoaGlkZVBpbiQgfCBhc3luYykhIVwiXG4gICAgICAgIFt0aXRsZV09XCIodGl0bGUkIHwgYXN5bmMpISFcIlxuICAgICAgICBbc3VidGl0bGVdPVwiKGhlYWRlclN1YnRpdGxlJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW3Rvb2xiYXJJdGVtc109XCJleHRlbmRUb29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOmZhbHNlXCJcbiAgICAgICAgW2xheW91dEFjdGlvbnNdPVwiZXh0ZW5kVG9vbGJhckl0ZW1zJCB8IGFzeW5jIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzp0cnVlXCJcbiAgICAgICAgW3Rvb2xiYXJWaXNpYmxlXT1cIih0b29sYmFyVmlzaWJsZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtmYWNldExpc3RdPVwiKGhlYWRlckxheW91dCQgfCBhc3luYyk/LkZhY2V0TGlzdDJcIlxuICAgICAgICBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzXCJcbiAgICAgICAgW2Z1bGxzY3JlZW5dPVwiZnVsbHNjcmVlblwiXG4gICAgICAgIFt3b3JrZmxvd1BhbmVsVWldPVwid29ya2Zsb3dQYW5lbFVpJCB8IGFzeW5jXCJcbiAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgICAgW2xheW91dDk0XT1cImV4dGVuZExheW91dDk0JCB8IGFzeW5jXCJcbiAgICAgICAgW3J0bF09XCIocnRsJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW21hc2tdPVwiKG1hc2skIHwgYXN5bmMpISFcIlxuICAgICAgICBbbW9dPVwiKG1vJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2RpclZhbHVlXT1cIihkaXJWYWx1ZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cIihjb250ZW50RGVuc2l0eSQgfCBhc3luYykhIVwiXG4gICAgICAgIFttb2Rlcm5UYWJzXT1cIihtb2Rlcm5UYWJzJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2F2YXRhcl09XCIoYXZhdGFyJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2ZpZWxkRGljdF09XCIoZmllbGREaWN0JCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2xhbmRzY2FwZV09XCIobGFuZHNjYXBlJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXG4gICAgICAgIFtzdGFuZGFsb25lXT1cIihzdGFuZGFsb25lJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXG4gICAgICAgIChmdWxsc2NyZWVuUmVxdWVzdCk9XCJvbkZ1bGxzY3JlZW4oKVwiXG4gICAgICAgIChjbG9zZSk9XCJvbkNsb3NlKClcIlxuICAgICAgICAodG9vbGJhckNsaWNrKT1cIm9uVG9vbGJhckNsaWNrKCRldmVudClcIlxuICAgICAgICBbY29udGVudElzUGFnZV09XCJwYXJhbWV0ZXJzPy5Db250ZW50SXNQYWdlID09PSB0cnVlXCJcbiAgICAgICAgKHdvcmtmbG93Q2hvaWNlQ2xpY2spPVwib25Xb3JrZmxvd0Nob2ljZUNsaWNrKCRldmVudClcIlxuICAgID48L2JzdS1mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZm9ybS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1mb3JtLXBhbmVsL3VpLWZvcm0tcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZm9ybS1wYW5lbC91aS1mb3JtLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFdBQVcsRUFFWCxJQUFJLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFjLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEQsT0FBTyxFQUNILGlCQUFpQixFQUdqQixnQkFBZ0IsRUFHaEIsNkJBQTZCLEVBQzdCLGVBQWUsRUFDZixRQUFRLEVBSVgsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFTOUIsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGlCQUFpQjtJQVl2RCxZQUNjLGtCQUFxQyxFQUNyQyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsR0FBZSxFQUNmLGNBQTZCLEVBQ3JCLGlCQUFtQyxFQUMzQyxlQUErQixFQUMvQixJQUF1QixFQUN2QixzQkFBNkM7UUFFdkQsS0FBSyxDQUNELGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsT0FBTyxFQUNQLEdBQUcsRUFDSCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixJQUFJLENBQ1AsQ0FBQztRQW5CUSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUMzQyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQXBCMUIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFnQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUcsc0JBQXNCLENBQUMsY0FBYyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUVoRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3RDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQzNCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFBSSxVQUFVLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQ3BDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQzdELE1BQU0sVUFBVSxHQUFHLDZCQUE2QixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzFFLElBQUksVUFBVSxFQUFFO3dCQUNaLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7cUJBQ3pEO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUMzQixHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUNqQixJQUFJLFVBQVUsRUFBRSxzQkFBc0IsRUFBRTtnQkFDcEMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDN0QsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pFLElBQUksV0FBVyxFQUFFO3dCQUNiLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7cUJBQzFEO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFDRCxJQUFJLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUU7Z0JBQzFDLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUN6RSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO29CQUN2QyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLGtCQUFrQixFQUFFO2lCQUNwRCxDQUFDLENBQUM7YUFDTjtZQUNELElBQUksVUFBVSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRTtnQkFDeEMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzdELFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7b0JBQ3JDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7aUJBQ2xELENBQUMsQ0FBQzthQUNOO1lBQ0QsSUFBSSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFO2dCQUM1QyxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDckUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtvQkFDekMsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRTtpQkFDdEQsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLEVBQUUsaUJBQWlCLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM5RSxDQUFDOztpSEExRlEsb0JBQW9CO3FHQUFwQixvQkFBb0IsK0dBRmxCLENBQUMsZ0JBQWdCLENBQUMsaURDakNqQyw2eUlBZ0dBOzJGRDdEYSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxnQkFBZ0IsQ0FBQzs7MEJBb0J4QixJQUFJOzZJQWpCd0IsWUFBWTtzQkFBNUMsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uSW5pdCxcbiAgICBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIENvbnRlbnREZW5zaXR5U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgRm9ybUJhc2VDb21wb25lbnQsXG4gICAgUG9ydGFsU2VydmljZSxcbiAgICBCcmVhZENydW1iSW5mbyxcbiAgICBGb3JtUGFuZWxTZXJ2aWNlLFxuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIENvbnRyb2xVaVBpcGUsXG4gICAgRmluZExheW91dFNldHRpbmdGcm9tTGF5b3V0OTQsXG4gICAgRmluZFRvb2xiYXJJdGVtLFxuICAgIEJhcnNhQXBpLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgRWpyYXlPbGdvLFxuICAgIE1vRm9yUmVwb3J0TW9kZWxcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1mb3JtLXBhbmVsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktZm9ybS1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktZm9ybS1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFVpRm9ybVBhbmVsQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50eXBlRGVmTmFtZScpIF90eXBlRGVmTmFtZSA9ICcnO1xuXG4gICAgYnJlYWRDcnVtYnMkOiBPYnNlcnZhYmxlPEJyZWFkQ3J1bWJJbmZvW10+O1xuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XG4gICAgZGV2aWNlU2l6ZSQ6IE9ic2VydmFibGU8J3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJz47XG4gICAgZGlyVmFsdWUkOiBPYnNlcnZhYmxlPCdydGwnIHwgJ2x0cic+O1xuICAgIHJ0bCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgY2FuU2VuZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZXh0ZW5kTGF5b3V0OTQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgZXh0ZW5kVG9vbGJhckl0ZW1zJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgcGFyYW1ldGVyczogRm9ybVBhbmVsU2V0dGluZztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9icmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9jb250cm9sVWlQaXBlOiBDb250cm9sVWlQaXBlLFxuICAgICAgICBAU2VsZigpIHByb3RlY3RlZCBfZm9ybVBhbmVsU2VydmljZTogRm9ybVBhbmVsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIF9icmVhZGNydW1iU2VydmljZSxcbiAgICAgICAgICAgIF9wb3J0YWxTZXJ2aWNlLFxuICAgICAgICAgICAgX3JvdXRlcixcbiAgICAgICAgICAgIF9lbCxcbiAgICAgICAgICAgIF9jb250cm9sVWlQaXBlLFxuICAgICAgICAgICAgX2Zvcm1QYW5lbFNlcnZpY2UsXG4gICAgICAgICAgICBfYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICBfY2RyXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYnJlYWRDcnVtYnMkID0gX2JyZWFkY3J1bWJTZXJ2aWNlLmJyZWFkY3J1bWJzJDtcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSBfY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQ7XG4gICAgICAgIHRoaXMuZGlyVmFsdWUkID0gX3BvcnRhbFNlcnZpY2UuZGlyVmFsdWUkO1xuICAgICAgICB0aGlzLnJ0bCQgPSBfcG9ydGFsU2VydmljZS5ydGwkO1xuICAgICAgICB0aGlzLmNhblNlbmQkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5jYW5TZW5kJDtcblxuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLm1vJC5zdWJzY3JpYmUoKGMpID0+ICh0aGlzLl90eXBlRGVmTmFtZSA9IGM/LiRUeXBlRGVmTmFtZSA/PyAnJykpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMucGFyYW1ldGVycztcbiAgICAgICAgdGhpcy5leHRlbmRMYXlvdXQ5NCQgPSB0aGlzLmxheW91dDk0JC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgdGFwKChsYXlvdXQ5NCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5Gb3JtTGF5b3V0SXRlbXNTZXR0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMuRm9ybUxheW91dEl0ZW1zU2V0dGluZy5Nb0RhdGFMaXN0LmZvckVhY2goKHNldHRpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheW91dEl0ZW0gPSBGaW5kTGF5b3V0U2V0dGluZ0Zyb21MYXlvdXQ5NChsYXlvdXQ5NCwgc2V0dGluZy5UaXRsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5b3V0SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKGxheW91dEl0ZW0sIHNldHRpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmV4dGVuZFRvb2xiYXJJdGVtcyQgPSB0aGlzLnRvb2xiYXJJdGVtcyQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgIHRhcCgodG9vbGJhckl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnM/LkZvcm1MYXlvdXRJdGVtc1NldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycy5Gb3JtTGF5b3V0SXRlbXNTZXR0aW5nLk1vRGF0YUxpc3QuZm9yRWFjaCgoc2V0dGluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9vbGJhckl0ZW0gPSBGaW5kVG9vbGJhckl0ZW0odG9vbGJhckl0ZW1zLCBzZXR0aW5nLlRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0b29sYmFySXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKHRvb2xiYXJJdGVtLCBzZXR0aW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5TYXZlQnV0dG9uQ3VzdG9tVWk/LlNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhdmVJdGVtID0gRmluZFRvb2xiYXJJdGVtKHRvb2xiYXJJdGVtcywgJ1NhdmVBbmRDbG9zZScsICdpdGVtSWQnKTtcbiAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5GYXN0TWVyZ2Uoc2F2ZUl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGE6IHsgQ3VzdG9tVWk6IHBhcmFtZXRlcnMuU2F2ZUJ1dHRvbkN1c3RvbVVpIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5Pa0J1dHRvbkN1c3RvbVVpPy5TZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBva0l0ZW0gPSBGaW5kVG9vbGJhckl0ZW0odG9vbGJhckl0ZW1zLCAnT2snLCAnaXRlbUlkJyk7XG4gICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKG9rSXRlbSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgRGF0YTogeyBDdXN0b21VaTogcGFyYW1ldGVycy5Pa0J1dHRvbkN1c3RvbVVpIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5DYW5jZWxCdXR0b25DdXN0b21VaT8uU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FuY2VsSXRlbSA9IEZpbmRUb29sYmFySXRlbSh0b29sYmFySXRlbXMsICdDYW5jZWwnLCAnaXRlbUlkJyk7XG4gICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5NZXJnZXIuRmFzdE1lcmdlKGNhbmNlbEl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGE6IHsgQ3VzdG9tVWk6IHBhcmFtZXRlcnMuQ2FuY2VsQnV0dG9uQ3VzdG9tVWkgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4gPSBwYXJhbWV0ZXJzPy5GdWxsc2NyZWVuRGVmYXVsdCA9PT0gdHJ1ZSAmJiAhdGhpcy5pc01vZGFsO1xuICAgIH1cbn1cbmludGVyZmFjZSBGb3JtUGFuZWxTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgTGF5b3V0Q29tcG9uZW50OiBFanJheU9sZ287XG4gICAgSGVhZGVyQ29tcG9uZW50OiBFanJheU9sZ287XG4gICAgRm9vdGVyQ29tcG9uZW50OiBFanJheU9sZ287XG4gICAgU2F2ZUJ1dHRvbkN1c3RvbVVpOiBFanJheU9sZ287XG4gICAgT2tCdXR0b25DdXN0b21VaTogRWpyYXlPbGdvO1xuICAgIENhbmNlbEJ1dHRvbkN1c3RvbVVpOiBFanJheU9sZ287XG4gICAgRm9ybUxheW91dEl0ZW1zU2V0dGluZzogTW9Gb3JSZXBvcnRNb2RlbDtcbiAgICBGdWxsc2NyZWVuRGVmYXVsdDogYm9vbGVhbjtcbiAgICBDYW5GdWxsc2NyZWVuOiBib29sZWFuO1xuICAgIElzU2ltcGxlOiBib29sZWFuO1xuICAgIElzTW9kYWw6IGJvb2xlYW47XG4gICAgQ3NzU3R5bGVzOiBzdHJpbmc7XG4gICAgQ2FuTW92ZTogYm9vbGVhbjtcbiAgICBDYW5SZXNpemU6IGJvb2xlYW47XG4gICAgQ29udGVudElzUGFnZTogYm9vbGVhbjtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlYXJjaFBhbmVsIHx8IChpc1NpbXBsZSQgfCBhc3luYykgfHwgaXNTdWJGb3JtIHx8IGlzTW9kYWwgfHwgaXNGb3JtUmVwb3J0OyBlbHNlIGR5bmFtaWNQYWdlXCI+XG4gICAgPGJzdS1iYXJzYS1zaW1wbGUtZm9ybVxuICAgICAgICBbY2FuU2VuZF09XCIoY2FuU2VuZCQgfCBhc3luYykgPT09IHRydWVcIlxuICAgICAgICBbZm9ybVZpc2liaWxpdHlTdGF0dXNdPVwiZm9ybVZpc2liaWxpdHlTdGF0dXNcIlxuICAgICAgICBbcmVtb3ZlQ29udGVudFBhZGRpbmddPVwiKGhlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2JyZWFkQ3J1bWJzXT1cImJyZWFkQ3J1bWJzJCB8IGFzeW5jXCJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIihoZWFkZXJEZXNjcmlwdGlvbiQgfCBhc3luYykhIVwiXG4gICAgICAgIFtoaWRlQ2xvc2VdPVwiKGhpZGVDbG9zZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtoaWRlVGl0bGVdPVwiKGhpZGVUaXRsZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtoaWRlUGluXT1cIihoaWRlUGluJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW3RpdGxlXT1cIih0aXRsZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtpc01vZGFsXT1cImlzTW9kYWxcIlxuICAgICAgICBbc3VidGl0bGVdPVwiKGhlYWRlclN1YnRpdGxlJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW3Rvb2xiYXJJdGVtc109XCJleHRlbmRUb29sYmFySXRlbXMkIHwgYXN5bmMgfCB0bGJCdXR0b25zOiAnaW5Gb290ZXInOmZhbHNlXCJcbiAgICAgICAgW2xheW91dEFjdGlvbnNdPVwiZXh0ZW5kVG9vbGJhckl0ZW1zJCB8IGFzeW5jIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzp0cnVlXCJcbiAgICAgICAgW3Rvb2xiYXJWaXNpYmxlXT1cIih0b29sYmFyVmlzaWJsZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtmYWNldExpc3RdPVwiKGhlYWRlckxheW91dCQgfCBhc3luYyk/LkZhY2V0TGlzdDJcIlxuICAgICAgICBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzXCJcbiAgICAgICAgW3dvcmtmbG93UGFuZWxVaV09XCJ3b3JrZmxvd1BhbmVsVWkkIHwgYXN5bmNcIlxuICAgICAgICBbd29ya2Zsb3dCdXR0b25zXT1cIih3b3JrZmxvd0J1dHRvbnMkIHwgYXN5bmMpISFcIlxuICAgICAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxuICAgICAgICBbbGF5b3V0OTRdPVwiZXh0ZW5kTGF5b3V0OTQkIHwgYXN5bmNcIlxuICAgICAgICBbcnRsXT1cIihydGwkIHwgYXN5bmMpISFcIlxuICAgICAgICBbbWFza109XCIobWFzayQgfCBhc3luYykhIVwiXG4gICAgICAgIFttb109XCIobW8kIHwgYXN5bmMpISFcIlxuICAgICAgICBbZGlyVmFsdWVdPVwiKGRpclZhbHVlJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiKGRldmljZVNpemUkIHwgYXN5bmMpISFcIlxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiKGNvbnRlbnREZW5zaXR5JCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW21vZGVyblRhYnNdPVwiKG1vZGVyblRhYnMkIHwgYXN5bmMpISFcIlxuICAgICAgICBbYXZhdGFyXT1cIihhdmF0YXIkIHwgYXN5bmMpISFcIlxuICAgICAgICBbZmllbGREaWN0XT1cIihmaWVsZERpY3QkIHwgYXN5bmMpISFcIlxuICAgICAgICBbbGFuZHNjYXBlXT1cIihsYW5kc2NhcGUkIHwgYXN5bmMpID09PSB0cnVlXCJcbiAgICAgICAgW3N0YW5kYWxvbmVdPVwiKHN0YW5kYWxvbmUkIHwgYXN5bmMpID09PSB0cnVlXCJcbiAgICAgICAgKGNsb3NlKT1cIm9uQ2xvc2UoKVwiXG4gICAgICAgICh0b29sYmFyQ2xpY2spPVwib25Ub29sYmFyQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIFtjb250ZW50SXNQYWdlXT1cInBhcmFtZXRlcnM/LkNvbnRlbnRJc1BhZ2UgPT09IHRydWVcIlxuICAgICAgICAod29ya2Zsb3dDaG9pY2VDbGljayk9XCJvbldvcmtmbG93Q2hvaWNlQ2xpY2soJGV2ZW50KVwiXG4gICAgPjwvYnN1LWJhcnNhLXNpbXBsZS1mb3JtPlxuICAgIDwhLS0gPGRpdiBmZC1iYXIgYmFyRGVzaWduPVwiZmxvYXRpbmctZm9vdGVyXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJjb250ZXh0LldvcmtmbG93UGFuZWxVaVwiXG4gICAgICBmZC1iYXItcmlnaHRcbiAgICAgIFtmb290ZXJBY3Rpb25zXT1cImNvbnRleHQuV29ya2Zsb3dQYW5lbFVpXCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgIWNvbnRleHQuV29ya2Zsb3dQYW5lbFVpICYmXG4gICAgICAgIHNob3dUb29sYmFyICYmXG4gICAgICAgIFxuICAgICAgICB0b29sYmFyLml0ZW1zLmxlbmd0aCA+IDBcbiAgICAgIFwiXG4gICAgICBmZC1iYXItcmlnaHRcbiAgICAgIFtmb290ZXJBY3Rpb25zXT1cInRvb2xiYXJcIlxuICAgID48L2Rpdj5cbiAgPC9kaXY+IC0tPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2R5bmFtaWNQYWdlPlxuICAgIDxic3UtZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtXG4gICAgICAgIFtzdHlsZS5wb3NpdGlvbl09XCIobWFzayQgfCBhc3luYykgPyAncmVsYXRpdmUnIDogbnVsbFwiXG4gICAgICAgIFtjYW5TZW5kXT1cIihjYW5TZW5kJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXG4gICAgICAgIFtmb3JtVmlzaWJpbGl0eVN0YXR1c109XCJmb3JtVmlzaWJpbGl0eVN0YXR1c1wiXG4gICAgICAgIFtyZW1vdmVDb250ZW50UGFkZGluZ109XCIoaGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmckIHwgYXN5bmMpISFcIlxuICAgICAgICBbYnJlYWRDcnVtYnNdPVwiYnJlYWRDcnVtYnMkIHwgYXN5bmNcIlxuICAgICAgICBbZGVzY3JpcHRpb25dPVwiKGhlYWRlckRlc2NyaXB0aW9uJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2hpZGVDbG9zZV09XCIoaGlkZUNsb3NlJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2hpZGVUaXRsZV09XCIoaGlkZVRpdGxlJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW2hpZGVQaW5dPVwiKGhpZGVQaW4kIHwgYXN5bmMpISFcIlxuICAgICAgICBbdGl0bGVdPVwiKHRpdGxlJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW3N1YnRpdGxlXT1cIihoZWFkZXJTdWJ0aXRsZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFt0b29sYmFySXRlbXNdPVwiZXh0ZW5kVG9vbGJhckl0ZW1zJCB8IGFzeW5jIHwgdGxiQnV0dG9uczogJ2luRm9vdGVyJzpmYWxzZVwiXG4gICAgICAgIFtsYXlvdXRBY3Rpb25zXT1cImV4dGVuZFRvb2xiYXJJdGVtcyQgfCBhc3luYyB8IHRsYkJ1dHRvbnM6ICdpbkZvb3Rlcic6dHJ1ZVwiXG4gICAgICAgIFt0b29sYmFyVmlzaWJsZV09XCIodG9vbGJhclZpc2libGUkIHwgYXN5bmMpISFcIlxuICAgICAgICBbZmFjZXRMaXN0XT1cIihoZWFkZXJMYXlvdXQkIHwgYXN5bmMpPy5GYWNldExpc3QyXCJcbiAgICAgICAgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVyc1wiXG4gICAgICAgIFtmdWxsc2NyZWVuXT1cImZ1bGxzY3JlZW5cIlxuICAgICAgICBbd29ya2Zsb3dQYW5lbFVpXT1cIndvcmtmbG93UGFuZWxVaSQgfCBhc3luY1wiXG4gICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXG4gICAgICAgIFtsYXlvdXQ5NF09XCJleHRlbmRMYXlvdXQ5NCQgfCBhc3luY1wiXG4gICAgICAgIFtydGxdPVwiKHJ0bCQgfCBhc3luYykhIVwiXG4gICAgICAgIFttYXNrXT1cIihtYXNrJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgW21vXT1cIihtbyQgfCBhc3luYykhIVwiXG4gICAgICAgIFtkaXJWYWx1ZV09XCIoZGlyVmFsdWUkIHwgYXN5bmMpISFcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtjb250ZW50RGVuc2l0eV09XCIoY29udGVudERlbnNpdHkkIHwgYXN5bmMpISFcIlxuICAgICAgICBbbW9kZXJuVGFic109XCIobW9kZXJuVGFicyQgfCBhc3luYykhIVwiXG4gICAgICAgIFthdmF0YXJdPVwiKGF2YXRhciQgfCBhc3luYykhIVwiXG4gICAgICAgIFtmaWVsZERpY3RdPVwiKGZpZWxkRGljdCQgfCBhc3luYykhIVwiXG4gICAgICAgIFtsYW5kc2NhcGVdPVwiKGxhbmRzY2FwZSQgfCBhc3luYykgPT09IHRydWVcIlxuICAgICAgICBbc3RhbmRhbG9uZV09XCIoc3RhbmRhbG9uZSQgfCBhc3luYykgPT09IHRydWVcIlxuICAgICAgICAoZnVsbHNjcmVlblJlcXVlc3QpPVwib25GdWxsc2NyZWVuKClcIlxuICAgICAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcbiAgICAgICAgKHRvb2xiYXJDbGljayk9XCJvblRvb2xiYXJDbGljaygkZXZlbnQpXCJcbiAgICAgICAgW2NvbnRlbnRJc1BhZ2VdPVwicGFyYW1ldGVycz8uQ29udGVudElzUGFnZSA9PT0gdHJ1ZVwiXG4gICAgICAgICh3b3JrZmxvd0Nob2ljZUNsaWNrKT1cIm9uV29ya2Zsb3dDaG9pY2VDbGljaygkZXZlbnQpXCJcbiAgICA+PC9ic3UtZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -22,13 +22,12 @@ export class UiListViewComponent extends ReportViewBaseComponent {
|
|
|
22
22
|
this.detailsColumns = [];
|
|
23
23
|
this.popoverOpen = false;
|
|
24
24
|
this.columnComponents = [];
|
|
25
|
+
this.popupMode = false;
|
|
25
26
|
}
|
|
26
27
|
ngOnInit() {
|
|
27
28
|
super.ngOnInit();
|
|
28
|
-
this.
|
|
29
|
-
|
|
30
|
-
? this.popupModeTemplateRef
|
|
31
|
-
: this._getPresentaionMode();
|
|
29
|
+
this.popupMode = this.viewSetting.MenuInSmallDevice === true && this.deviceSize === 's';
|
|
30
|
+
this.selectedPresentaionTemplate = this.popupMode ? this.popupModeTemplateRef : this._getPresentaionMode();
|
|
32
31
|
this.isDisplayType = this.viewSetting.ItemType$Caption === 'Display';
|
|
33
32
|
const viewSetting = this.viewSetting;
|
|
34
33
|
this.hasRowOlgo = this.viewSetting?.RowOlgo?.Selector;
|
|
@@ -56,20 +55,21 @@ export class UiListViewComponent extends ReportViewBaseComponent {
|
|
|
56
55
|
default:
|
|
57
56
|
return this.defaultModeTemplateRef;
|
|
58
57
|
case '2':
|
|
58
|
+
this.popupMode = true;
|
|
59
59
|
return this.popupModeTemplateRef;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
UiListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiListViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
-
UiListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiListViewComponent, selector: "bsu-ui-list-view", viewQueries: [{ propertyName: "popupModeTemplateRef", first: true, predicate: ["popupMode"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultModeTemplateRef", first: true, predicate: ["defaultMode"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"selectedPresentaionTemplate\"></ng-container>\n\n<ng-template #popupMode>\n <ng-container *ngTemplateOutlet=\"deviceSize === 's' ? mobileTpl : desktopTpl\"></ng-container>\n\n <!-- <fd-menu [appendTo]=\"_el\"\n #menu [mobile]=\"deviceSize === 's'\" >\n </fd-menu> -->\n</ng-template>\n<ng-template #mobileTpl>\n <div class=\"popup-mode\">\n <ng-container *ngTemplateOutlet=\"buttonDropDown; context: { menu: menu }\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"tokensTpl\"></ng-container>\n <fd-menu #menu [mobile]=\"true\" [mobileConfig]=\"{ title: title | bbbTranslate, hasCloseButton: true }\">\n <ng-container *ngTemplateOutlet=\"defaultMode; context: { popover: menu, popupMode: true }\"></ng-container>\n </fd-menu>\n</ng-template>\n<ng-template #desktopTpl>\n <fd-popover #popover fillControlMode=\"equal\">\n <fd-popover-control class=\"popup-mode\">\n <ng-container *ngTemplateOutlet=\"buttonDropDown\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ng-container\n *ngTemplateOutlet=\"defaultMode; context: { popover: popover, popupMode: true }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n <ng-container *ngTemplateOutlet=\"tokensTpl\"></ng-container>\n</ng-template>\n<ng-template #buttonDropDown let-menu=\"menu\">\n <button\n class=\"drop-down\"\n fd-button\n [label]=\"selectedMo ? (selectedMo.$Caption | bbbTranslate) : (title | bbbTranslate)\"\n [fdMenu]=\"true\"\n [fdMenuTrigger]=\"menu\"\n >\n <span\n *ngIf=\"selectedCount > 0 && isCheckList\"\n fd-object-status\n [inverted]=\"true\"\n [label]=\"selectedCount\"\n [title]=\"selectedCount\"\n ></span>\n </button>\n</ng-template>\n<ng-template #tokensTpl>\n <div\n *ngIf=\"isCheckList && hasSelected\"\n style=\"padding: 5px; display: flex; flex-wrap: wrap; row-gap: 5px; column-gap: 5px\"\n >\n <ng-container *ngFor=\"let mo of moDataList; let index = index\">\n <fd-token *ngIf=\"mo.$IsChecked\" fdCozy [readOnly]=\"false\" (onCloseClick)=\"onRowCheck({mo, index})\">{{\n columns[0].Caption | rval: mo:columns:true\n }}</fd-token>\n </ng-container>\n </div>\n</ng-template>\n<ng-template #defaultMode let-popover=\"popover\" let-popupMode=\"popupMode\">\n <fd-layout-panel [class.popup-mode]=\"popupMode\" [ngClass]=\"'size-' + deviceSize\">\n <fd-layout-panel-header>\n <fd-layout-panel-head>\n <h4 fd-layout-panel-title>{{ title | bbbTranslate }}</h4>\n <span\n *ngIf=\"selectedCount > 0\"\n fd-object-status\n [inverted]=\"true\"\n [label]=\"selectedCount\"\n [title]=\"selectedCount\"\n ></span>\n </fd-layout-panel-head>\n <fd-layout-panel-actions>\n <button\n *ngIf=\"deviceSize !== 's'\"\n style=\"margin-top: 5px\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n (click)=\"popover.close()\"\n ></button>\n </fd-layout-panel-actions>\n </fd-layout-panel-header>\n <fd-layout-panel-filters *ngIf=\"isCheckList\">\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <a class=\"clearCheckAll\" (click)=\"onAllCheckbox($event)\" fd-link [aria-label]=\"'All' | bbbTranslate\">{{\n 'All' | bbbTranslate\n }}</a>\n <label fd-toolbar-label style=\"font-size: 1rem; font-weight: bold\">.</label>\n <a\n (click)=\"onClearCheckbox()\"\n fd-toolbar-item\n class=\"clearCheckAll\"\n fd-link\n [aria-label]=\"'Clear' | bbbTranslate\"\n >{{ 'Clear' | bbbTranslate }}</a\n >\n </fd-toolbar>\n </fd-layout-panel-filters>\n\n <fd-layout-panel-body [bleed]=\"true\">\n <ng-container\n *ngTemplateOutlet=\"\n isDisplayType ? displayListTemplate : standardListTemplate;\n context: {\n $implicit: moDataList,\n isCheckList: isCheckList,\n groupby: groupby,\n conditionalFormats: conditionalFormats,\n deviceName: deviceName,\n viewSetting: viewSetting,\n allColumns: allColumns,\n access: access,\n rtl: rtl,\n popover: popover\n }\n \"\n >\n </ng-container>\n </fd-layout-panel-body>\n </fd-layout-panel>\n</ng-template>\n\n<!--display list-->\n<ng-template\n #displayListTemplate\n let-moDataList\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-conditionalFormats=\"conditionalFormats\"\n let-deviceName=\"deviceName\"\n let-allColumns=\"allColumns\"\n let-viewSetting=\"viewSetting\"\n let-access=\"access\"\n let-rtl=\"rtl\"\n>\n <ul\n fd-list\n class=\"display-list fd-list--navigation\"\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n ellipsify\n >\n <ng-container *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; let last = last\">\n <ng-container *ngIf=\"!mo.parent || mo.parent?.expanded\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: mo,\n index: index,\n last: last,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-template>\n<!--standard list-->\n<ng-template\n #standardListTemplate\n let-moDataList\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-conditionalFormats=\"conditionalFormats\"\n let-allColumns=\"allColumns\"\n let-deviceName=\"deviceName\"\n let-access=\"access\"\n let-viewSetting=\"viewSetting\"\n let-rtl=\"rtl\"\n let-last=\"last\"\n>\n <ul\n class=\"fd-list--navigation\"\n [class.fd-list--byline]=\"!isDisplayType\"\n fd-list\n [byline]=\"true\"\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n ellipsify\n >\n <ng-container *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index\">\n <ng-container *ngIf=\"!mo.parent || mo.parent?.expanded\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: mo,\n index: index,\n last: last,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-template>\n\n<!--noData-->\n<ng-template #noData>\n <bsu-no-data></bsu-no-data>\n</ng-template>\n<ng-template\n #itemTemplate\n let-mo\n let-index=\"index\"\n let-last=\"last\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n>\n <li\n fd-list-group-header\n *ngIf=\"mo.group || mo.group === ''; else listItemTemplate\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [attr.level]=\"mo.level\"\n [class.root-group]=\"mo.level === 0\"\n >\n <fd-icon\n [glyph]=\"mo.expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick(mo)\"\n ></fd-icon>\n <span fd-list-title>{{ mo.group }}</span>\n </li>\n <ng-template #listItemTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? dynamicItemTemplate : defaultItem;\n context: {\n $implicit: mo,\n index: index,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n <ng-template\n #defaultItem\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n >\n <bsu-list-item\n *ngIf=\"!hasRowOlgo; else dynamicItemTemplate\"\n [isDisplayType]=\"isDisplayType\"\n [mo]=\"mo\"\n [isChecked]=\"mo.$IsChecked\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [index]=\"index\"\n [last]=\"last\"\n [setting]=\"listSetting\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [allColumns]=\"allColumns\"\n [contentDensity]=\"contentDensity\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n >\n </bsu-list-item>\n </ng-template>\n\n <ng-template\n #dynamicItemTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n >\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplates[mo.RelatedMo?.$TypeDefId]\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [last]=\"last\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"columns[0].MetaFieldTypeId === '41'\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.fd-list__group-header{column-gap:10px;align-items:center}.header th{border-left:none!important;border-right:none!important}.clearCheckAll{text-decoration:none!important}.fd-list--navigation-indication .fd-list__item:after{min-width:0!important}li.standard-list-row{padding-top:.2rem;padding-bottom:.2rem;min-height:4rem;justify-content:space-evenly;column-gap:10px}li.standard-list-row:hover:not(.selected){background-color:var(--sapBackgroundColor, #f7f7f7)}li.standard-list-row .fd-list__content{row-gap:.4rem}li.standard-list-row .fd-list__content .fd-list__byline{padding:0;font-size:.775rem}li.standard-list-row ::ng-deep .fd-form-item{position:static}li.standard-list-row ::ng-deep .fd-form-item .fd-checkbox__label--compact{padding:0;margin-left:0}li.standard-list-row ::ng-deep fd-icon{font-size:.75rem!important}fd-layout-panel{height:100%}.li-link.checklink[rtl=true]{padding-right:0!important}.li-link.checklist[rtl=false]{padding-left:0!important}.standard-list-group-label{padding-top:10px;padding-bottom:3px}fd-layout-panel-header{display:none}fd-layout-panel.popup-mode.size-s{box-shadow:none!important}fd-layout-panel.popup-mode.size-s fd-layout-panel-header{display:none!important}.popup-mode fd-layout-panel-header{display:flex;min-height:1rem;height:1rem;border:none!important}.popup-mode fd-layout-panel-header h4{font-weight:700;font-size:1rem}.popup-mode fd-layout-panel-head{display:flex;column-gap:5px;align-items:center;justify-content:center}.popup-mode ::ng-deep li{border:none!important}.popup-mode fd-layout-panel-body{margin-top:.3rem}.popup-mode fd-layout-panel-filters{border:none!important;padding:0 1rem}.popup-mode .drop-down{width:100%;max-width:100%;max-height:2rem!important;height:2rem!important;background:var(--sapButton_Background)!important;border:1px solid #ccc!important}.popup-mode .drop-down ::ng-deep span{font-size:1rem!important;line-height:1.2rem!important}.popup-mode .drop-down ::ng-deep fd-icon{position:absolute;left:10px}fd-popover{width:100%;max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i2.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i7.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage"] }, { kind: "component", type: i7.LayoutPanelHeaderComponent, selector: "fd-layout-panel-header" }, { kind: "component", type: i7.LayoutPanelHeadComponent, selector: "fd-layout-panel-head" }, { kind: "directive", type: i7.LayoutPanelTitleDirective, selector: "[fd-layout-panel-title]" }, { kind: "component", type: i7.LayoutPanelActionsComponent, selector: "fd-layout-panel-actions" }, { kind: "component", type: i7.LayoutPanelFiltersComponent, selector: "fd-layout-panel-filters" }, { kind: "component", type: i7.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i8.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: i9.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "directive", type: i9.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i10.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "component", type: i11.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i11.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i11.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i12.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "directive", type: i12.ToolbarLabelDirective, selector: "[fd-toolbar-label]" }, { kind: "component", type: i13.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly", "deleteButtonLabel", "ariaRoleDescription"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown"] }, { kind: "component", type: i14.NoDataComponent, selector: "bsu-no-data" }, { kind: "component", type: i15.ListItemComponent, selector: "bsu-list-item", inputs: ["setting", "isDisplayType"] }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
64
|
+
UiListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiListViewComponent, selector: "bsu-ui-list-view", viewQueries: [{ propertyName: "popupModeTemplateRef", first: true, predicate: ["popupModeTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultModeTemplateRef", first: true, predicate: ["defaultMode"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"selectedPresentaionTemplate\"></ng-container>\n\n<ng-template #popupModeTemplate>\n <ng-container *ngTemplateOutlet=\"deviceSize === 's' ? mobileTpl : desktopTpl\"></ng-container>\n\n <!-- <fd-menu [appendTo]=\"_el\"\n #menu [mobile]=\"deviceSize === 's'\" >\n </fd-menu> -->\n</ng-template>\n<ng-template #mobileTpl>\n <div class=\"popup-mode\">\n <ng-container *ngTemplateOutlet=\"buttonDropDown; context: { menu: menu }\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"tokensTpl\"></ng-container>\n <fd-menu #menu [mobile]=\"true\" [mobileConfig]=\"{ title: title | bbbTranslate, hasCloseButton: true }\">\n <ng-container *ngTemplateOutlet=\"defaultMode; context: { popover: menu, popupMode: true }\"></ng-container>\n </fd-menu>\n</ng-template>\n<ng-template #desktopTpl>\n <fd-popover #popover fillControlMode=\"equal\">\n <fd-popover-control class=\"popup-mode\">\n <ng-container *ngTemplateOutlet=\"buttonDropDown\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ng-container\n *ngTemplateOutlet=\"defaultMode; context: { popover: popover, popupMode: true }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n <ng-container *ngTemplateOutlet=\"tokensTpl\"></ng-container>\n</ng-template>\n<ng-template #buttonDropDown let-menu=\"menu\">\n <button\n class=\"drop-down\"\n fd-button\n [label]=\"selectedMo ? (selectedMo.$Caption | bbbTranslate) : (title | bbbTranslate)\"\n [fdMenu]=\"true\"\n [fdMenuTrigger]=\"menu\"\n >\n <span\n *ngIf=\"selectedCount > 0 && isCheckList\"\n fd-object-status\n [inverted]=\"true\"\n [label]=\"selectedCount\"\n [title]=\"selectedCount\"\n ></span>\n </button>\n</ng-template>\n<ng-template #tokensTpl>\n <div\n *ngIf=\"isCheckList && hasSelected\"\n style=\"padding: 5px; display: flex; flex-wrap: wrap; row-gap: 5px; column-gap: 5px\"\n >\n <ng-container *ngFor=\"let mo of moDataList; let index = index\">\n <fd-token *ngIf=\"mo.$IsChecked\" fdCozy [readOnly]=\"false\" (onCloseClick)=\"onRowCheck({mo, index})\">{{\n columns[0].Caption | rval: mo:columns:true\n }}</fd-token>\n </ng-container>\n </div>\n</ng-template>\n<ng-template #defaultMode let-popover=\"popover\" let-popupMode=\"popupMode\">\n <fd-layout-panel [class.popup-mode]=\"popupMode\" [ngClass]=\"'size-' + deviceSize\">\n <fd-layout-panel-header>\n <fd-layout-panel-head>\n <h4 fd-layout-panel-title>{{ title | bbbTranslate }}</h4>\n <span\n *ngIf=\"selectedCount > 0\"\n fd-object-status\n [inverted]=\"true\"\n [label]=\"selectedCount\"\n [title]=\"selectedCount\"\n ></span>\n </fd-layout-panel-head>\n <fd-layout-panel-actions>\n <button\n *ngIf=\"deviceSize !== 's'\"\n style=\"margin-top: 5px\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n (click)=\"popover.close()\"\n ></button>\n </fd-layout-panel-actions>\n </fd-layout-panel-header>\n <fd-layout-panel-filters *ngIf=\"isCheckList && moDataList.length\">\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <a class=\"clearCheckAll\" (click)=\"onAllCheckbox($event)\" fd-link [aria-label]=\"'All' | bbbTranslate\">{{\n 'All' | bbbTranslate\n }}</a>\n <label fd-toolbar-label style=\"font-size: 1rem; font-weight: bold\">.</label>\n <a\n (click)=\"onClearCheckbox()\"\n fd-toolbar-item\n class=\"clearCheckAll\"\n fd-link\n [aria-label]=\"'Clear' | bbbTranslate\"\n >{{ 'Clear' | bbbTranslate }}</a\n >\n </fd-toolbar>\n </fd-layout-panel-filters>\n\n <fd-layout-panel-body [bleed]=\"true\">\n <ng-container\n *ngTemplateOutlet=\"\n isDisplayType ? displayListTemplate : standardListTemplate;\n context: {\n $implicit: moDataList,\n isCheckList: isCheckList,\n groupby: groupby,\n conditionalFormats: conditionalFormats,\n deviceName: deviceName,\n viewSetting: viewSetting,\n allColumns: allColumns,\n access: access,\n rtl: rtl,\n popover: popover\n }\n \"\n >\n </ng-container>\n </fd-layout-panel-body>\n </fd-layout-panel>\n</ng-template>\n\n<!--display list-->\n<ng-template\n #displayListTemplate\n let-moDataList\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-conditionalFormats=\"conditionalFormats\"\n let-deviceName=\"deviceName\"\n let-allColumns=\"allColumns\"\n let-viewSetting=\"viewSetting\"\n let-access=\"access\"\n let-rtl=\"rtl\"\n>\n <ul\n fd-list\n class=\"display-list fd-list--navigation\"\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n ellipsify\n >\n <ng-container *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; let last = last\">\n <ng-container *ngIf=\"!mo.parent || mo.parent?.expanded\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: mo,\n index: index,\n last: last,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-template>\n<!--standard list-->\n<ng-template\n #standardListTemplate\n let-moDataList\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-conditionalFormats=\"conditionalFormats\"\n let-allColumns=\"allColumns\"\n let-deviceName=\"deviceName\"\n let-access=\"access\"\n let-viewSetting=\"viewSetting\"\n let-rtl=\"rtl\"\n let-last=\"last\"\n>\n <ul\n class=\"fd-list--navigation\"\n [class.fd-list--byline]=\"!isDisplayType\"\n fd-list\n [byline]=\"true\"\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n ellipsify\n >\n <ng-container *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index\">\n <ng-container *ngIf=\"!mo.parent || mo.parent?.expanded\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: mo,\n index: index,\n last: last,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-template>\n\n<!--noData-->\n<ng-template #noData>\n <bsu-no-data [simple]=\"popupMode\"></bsu-no-data>\n</ng-template>\n<ng-template\n #itemTemplate\n let-mo\n let-index=\"index\"\n let-last=\"last\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n>\n <li\n fd-list-group-header\n *ngIf=\"mo.group || mo.group === ''; else listItemTemplate\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [attr.level]=\"mo.level\"\n [class.root-group]=\"mo.level === 0\"\n >\n <fd-icon\n [glyph]=\"mo.expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick(mo)\"\n ></fd-icon>\n <span fd-list-title>{{ mo.group }}</span>\n </li>\n <ng-template #listItemTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? dynamicItemTemplate : defaultItem;\n context: {\n $implicit: mo,\n index: index,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n <ng-template\n #defaultItem\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n >\n <bsu-list-item\n *ngIf=\"!hasRowOlgo; else dynamicItemTemplate\"\n [isDisplayType]=\"isDisplayType\"\n [mo]=\"mo\"\n [isChecked]=\"mo.$IsChecked\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [index]=\"index\"\n [last]=\"last\"\n [setting]=\"listSetting\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [allColumns]=\"allColumns\"\n [contentDensity]=\"contentDensity\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n >\n </bsu-list-item>\n </ng-template>\n\n <ng-template\n #dynamicItemTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n >\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplates[mo.RelatedMo?.$TypeDefId]\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [last]=\"last\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"columns[0].MetaFieldTypeId === '41'\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.fd-list__group-header{column-gap:10px;align-items:center}.header th{border-left:none!important;border-right:none!important}.clearCheckAll{text-decoration:none!important}.fd-list--navigation-indication .fd-list__item:after{min-width:0!important}li.standard-list-row{padding-top:.2rem;padding-bottom:.2rem;min-height:4rem;justify-content:space-evenly;column-gap:10px}li.standard-list-row:hover:not(.selected){background-color:var(--sapBackgroundColor, #f7f7f7)}li.standard-list-row .fd-list__content{row-gap:.4rem}li.standard-list-row .fd-list__content .fd-list__byline{padding:0;font-size:.775rem}li.standard-list-row ::ng-deep .fd-form-item{position:static}li.standard-list-row ::ng-deep .fd-form-item .fd-checkbox__label--compact{padding:0;margin-left:0}li.standard-list-row ::ng-deep fd-icon{font-size:.75rem!important}fd-layout-panel{height:100%}.li-link.checklink[rtl=true]{padding-right:0!important}.li-link.checklist[rtl=false]{padding-left:0!important}.standard-list-group-label{padding-top:10px;padding-bottom:3px}fd-layout-panel-header{display:none}fd-layout-panel.popup-mode.size-s{box-shadow:none!important}fd-layout-panel.popup-mode.size-s fd-layout-panel-header{display:none!important}.popup-mode fd-layout-panel-header{display:flex;min-height:1rem;height:1rem;border:none!important}.popup-mode fd-layout-panel-header h4{font-weight:700;font-size:1rem}.popup-mode fd-layout-panel-head{display:flex;column-gap:5px;align-items:center;justify-content:center}.popup-mode ::ng-deep li{border:none!important}.popup-mode fd-layout-panel-body{margin-top:.3rem}.popup-mode fd-layout-panel-filters{border:none!important;padding:0 1rem}.popup-mode .drop-down{width:100%;max-width:100%;max-height:2rem!important;height:2rem!important;background:var(--sapButton_Background)!important;border:1px solid #ccc!important}.popup-mode .drop-down ::ng-deep span{font-size:1rem!important;line-height:1.2rem!important}.popup-mode .drop-down ::ng-deep fd-icon{position:absolute;left:10px}fd-popover{width:100%;max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i2.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i7.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage"] }, { kind: "component", type: i7.LayoutPanelHeaderComponent, selector: "fd-layout-panel-header" }, { kind: "component", type: i7.LayoutPanelHeadComponent, selector: "fd-layout-panel-head" }, { kind: "directive", type: i7.LayoutPanelTitleDirective, selector: "[fd-layout-panel-title]" }, { kind: "component", type: i7.LayoutPanelActionsComponent, selector: "fd-layout-panel-actions" }, { kind: "component", type: i7.LayoutPanelFiltersComponent, selector: "fd-layout-panel-filters" }, { kind: "component", type: i7.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i8.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: i9.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "directive", type: i9.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i10.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "component", type: i11.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i11.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i11.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i12.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "directive", type: i12.ToolbarLabelDirective, selector: "[fd-toolbar-label]" }, { kind: "component", type: i13.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly", "deleteButtonLabel", "ariaRoleDescription"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown"] }, { kind: "component", type: i14.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: i15.ListItemComponent, selector: "bsu-list-item", inputs: ["setting", "isDisplayType"] }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
65
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiListViewComponent, decorators: [{
|
|
66
66
|
type: Component,
|
|
67
|
-
args: [{ selector: 'bsu-ui-list-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngTemplateOutlet=\"selectedPresentaionTemplate\"></ng-container>\n\n<ng-template #popupMode>\n <ng-container *ngTemplateOutlet=\"deviceSize === 's' ? mobileTpl : desktopTpl\"></ng-container>\n\n <!-- <fd-menu [appendTo]=\"_el\"\n #menu [mobile]=\"deviceSize === 's'\" >\n </fd-menu> -->\n</ng-template>\n<ng-template #mobileTpl>\n <div class=\"popup-mode\">\n <ng-container *ngTemplateOutlet=\"buttonDropDown; context: { menu: menu }\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"tokensTpl\"></ng-container>\n <fd-menu #menu [mobile]=\"true\" [mobileConfig]=\"{ title: title | bbbTranslate, hasCloseButton: true }\">\n <ng-container *ngTemplateOutlet=\"defaultMode; context: { popover: menu, popupMode: true }\"></ng-container>\n </fd-menu>\n</ng-template>\n<ng-template #desktopTpl>\n <fd-popover #popover fillControlMode=\"equal\">\n <fd-popover-control class=\"popup-mode\">\n <ng-container *ngTemplateOutlet=\"buttonDropDown\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ng-container\n *ngTemplateOutlet=\"defaultMode; context: { popover: popover, popupMode: true }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n <ng-container *ngTemplateOutlet=\"tokensTpl\"></ng-container>\n</ng-template>\n<ng-template #buttonDropDown let-menu=\"menu\">\n <button\n class=\"drop-down\"\n fd-button\n [label]=\"selectedMo ? (selectedMo.$Caption | bbbTranslate) : (title | bbbTranslate)\"\n [fdMenu]=\"true\"\n [fdMenuTrigger]=\"menu\"\n >\n <span\n *ngIf=\"selectedCount > 0 && isCheckList\"\n fd-object-status\n [inverted]=\"true\"\n [label]=\"selectedCount\"\n [title]=\"selectedCount\"\n ></span>\n </button>\n</ng-template>\n<ng-template #tokensTpl>\n <div\n *ngIf=\"isCheckList && hasSelected\"\n style=\"padding: 5px; display: flex; flex-wrap: wrap; row-gap: 5px; column-gap: 5px\"\n >\n <ng-container *ngFor=\"let mo of moDataList; let index = index\">\n <fd-token *ngIf=\"mo.$IsChecked\" fdCozy [readOnly]=\"false\" (onCloseClick)=\"onRowCheck({mo, index})\">{{\n columns[0].Caption | rval: mo:columns:true\n }}</fd-token>\n </ng-container>\n </div>\n</ng-template>\n<ng-template #defaultMode let-popover=\"popover\" let-popupMode=\"popupMode\">\n <fd-layout-panel [class.popup-mode]=\"popupMode\" [ngClass]=\"'size-' + deviceSize\">\n <fd-layout-panel-header>\n <fd-layout-panel-head>\n <h4 fd-layout-panel-title>{{ title | bbbTranslate }}</h4>\n <span\n *ngIf=\"selectedCount > 0\"\n fd-object-status\n [inverted]=\"true\"\n [label]=\"selectedCount\"\n [title]=\"selectedCount\"\n ></span>\n </fd-layout-panel-head>\n <fd-layout-panel-actions>\n <button\n *ngIf=\"deviceSize !== 's'\"\n style=\"margin-top: 5px\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n (click)=\"popover.close()\"\n ></button>\n </fd-layout-panel-actions>\n </fd-layout-panel-header>\n <fd-layout-panel-filters *ngIf=\"isCheckList\">\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <a class=\"clearCheckAll\" (click)=\"onAllCheckbox($event)\" fd-link [aria-label]=\"'All' | bbbTranslate\">{{\n 'All' | bbbTranslate\n }}</a>\n <label fd-toolbar-label style=\"font-size: 1rem; font-weight: bold\">.</label>\n <a\n (click)=\"onClearCheckbox()\"\n fd-toolbar-item\n class=\"clearCheckAll\"\n fd-link\n [aria-label]=\"'Clear' | bbbTranslate\"\n >{{ 'Clear' | bbbTranslate }}</a\n >\n </fd-toolbar>\n </fd-layout-panel-filters>\n\n <fd-layout-panel-body [bleed]=\"true\">\n <ng-container\n *ngTemplateOutlet=\"\n isDisplayType ? displayListTemplate : standardListTemplate;\n context: {\n $implicit: moDataList,\n isCheckList: isCheckList,\n groupby: groupby,\n conditionalFormats: conditionalFormats,\n deviceName: deviceName,\n viewSetting: viewSetting,\n allColumns: allColumns,\n access: access,\n rtl: rtl,\n popover: popover\n }\n \"\n >\n </ng-container>\n </fd-layout-panel-body>\n </fd-layout-panel>\n</ng-template>\n\n<!--display list-->\n<ng-template\n #displayListTemplate\n let-moDataList\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-conditionalFormats=\"conditionalFormats\"\n let-deviceName=\"deviceName\"\n let-allColumns=\"allColumns\"\n let-viewSetting=\"viewSetting\"\n let-access=\"access\"\n let-rtl=\"rtl\"\n>\n <ul\n fd-list\n class=\"display-list fd-list--navigation\"\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n ellipsify\n >\n <ng-container *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; let last = last\">\n <ng-container *ngIf=\"!mo.parent || mo.parent?.expanded\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: mo,\n index: index,\n last: last,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-template>\n<!--standard list-->\n<ng-template\n #standardListTemplate\n let-moDataList\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-conditionalFormats=\"conditionalFormats\"\n let-allColumns=\"allColumns\"\n let-deviceName=\"deviceName\"\n let-access=\"access\"\n let-viewSetting=\"viewSetting\"\n let-rtl=\"rtl\"\n let-last=\"last\"\n>\n <ul\n class=\"fd-list--navigation\"\n [class.fd-list--byline]=\"!isDisplayType\"\n fd-list\n [byline]=\"true\"\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n ellipsify\n >\n <ng-container *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index\">\n <ng-container *ngIf=\"!mo.parent || mo.parent?.expanded\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: mo,\n index: index,\n last: last,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-template>\n\n<!--noData-->\n<ng-template #noData>\n <bsu-no-data></bsu-no-data>\n</ng-template>\n<ng-template\n #itemTemplate\n let-mo\n let-index=\"index\"\n let-last=\"last\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n>\n <li\n fd-list-group-header\n *ngIf=\"mo.group || mo.group === ''; else listItemTemplate\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [attr.level]=\"mo.level\"\n [class.root-group]=\"mo.level === 0\"\n >\n <fd-icon\n [glyph]=\"mo.expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick(mo)\"\n ></fd-icon>\n <span fd-list-title>{{ mo.group }}</span>\n </li>\n <ng-template #listItemTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? dynamicItemTemplate : defaultItem;\n context: {\n $implicit: mo,\n index: index,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n <ng-template\n #defaultItem\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n >\n <bsu-list-item\n *ngIf=\"!hasRowOlgo; else dynamicItemTemplate\"\n [isDisplayType]=\"isDisplayType\"\n [mo]=\"mo\"\n [isChecked]=\"mo.$IsChecked\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [index]=\"index\"\n [last]=\"last\"\n [setting]=\"listSetting\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [allColumns]=\"allColumns\"\n [contentDensity]=\"contentDensity\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n >\n </bsu-list-item>\n </ng-template>\n\n <ng-template\n #dynamicItemTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n >\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplates[mo.RelatedMo?.$TypeDefId]\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [last]=\"last\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"columns[0].MetaFieldTypeId === '41'\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.fd-list__group-header{column-gap:10px;align-items:center}.header th{border-left:none!important;border-right:none!important}.clearCheckAll{text-decoration:none!important}.fd-list--navigation-indication .fd-list__item:after{min-width:0!important}li.standard-list-row{padding-top:.2rem;padding-bottom:.2rem;min-height:4rem;justify-content:space-evenly;column-gap:10px}li.standard-list-row:hover:not(.selected){background-color:var(--sapBackgroundColor, #f7f7f7)}li.standard-list-row .fd-list__content{row-gap:.4rem}li.standard-list-row .fd-list__content .fd-list__byline{padding:0;font-size:.775rem}li.standard-list-row ::ng-deep .fd-form-item{position:static}li.standard-list-row ::ng-deep .fd-form-item .fd-checkbox__label--compact{padding:0;margin-left:0}li.standard-list-row ::ng-deep fd-icon{font-size:.75rem!important}fd-layout-panel{height:100%}.li-link.checklink[rtl=true]{padding-right:0!important}.li-link.checklist[rtl=false]{padding-left:0!important}.standard-list-group-label{padding-top:10px;padding-bottom:3px}fd-layout-panel-header{display:none}fd-layout-panel.popup-mode.size-s{box-shadow:none!important}fd-layout-panel.popup-mode.size-s fd-layout-panel-header{display:none!important}.popup-mode fd-layout-panel-header{display:flex;min-height:1rem;height:1rem;border:none!important}.popup-mode fd-layout-panel-header h4{font-weight:700;font-size:1rem}.popup-mode fd-layout-panel-head{display:flex;column-gap:5px;align-items:center;justify-content:center}.popup-mode ::ng-deep li{border:none!important}.popup-mode fd-layout-panel-body{margin-top:.3rem}.popup-mode fd-layout-panel-filters{border:none!important;padding:0 1rem}.popup-mode .drop-down{width:100%;max-width:100%;max-height:2rem!important;height:2rem!important;background:var(--sapButton_Background)!important;border:1px solid #ccc!important}.popup-mode .drop-down ::ng-deep span{font-size:1rem!important;line-height:1.2rem!important}.popup-mode .drop-down ::ng-deep fd-icon{position:absolute;left:10px}fd-popover{width:100%;max-width:100%}\n"] }]
|
|
67
|
+
args: [{ selector: 'bsu-ui-list-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngTemplateOutlet=\"selectedPresentaionTemplate\"></ng-container>\n\n<ng-template #popupModeTemplate>\n <ng-container *ngTemplateOutlet=\"deviceSize === 's' ? mobileTpl : desktopTpl\"></ng-container>\n\n <!-- <fd-menu [appendTo]=\"_el\"\n #menu [mobile]=\"deviceSize === 's'\" >\n </fd-menu> -->\n</ng-template>\n<ng-template #mobileTpl>\n <div class=\"popup-mode\">\n <ng-container *ngTemplateOutlet=\"buttonDropDown; context: { menu: menu }\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"tokensTpl\"></ng-container>\n <fd-menu #menu [mobile]=\"true\" [mobileConfig]=\"{ title: title | bbbTranslate, hasCloseButton: true }\">\n <ng-container *ngTemplateOutlet=\"defaultMode; context: { popover: menu, popupMode: true }\"></ng-container>\n </fd-menu>\n</ng-template>\n<ng-template #desktopTpl>\n <fd-popover #popover fillControlMode=\"equal\">\n <fd-popover-control class=\"popup-mode\">\n <ng-container *ngTemplateOutlet=\"buttonDropDown\"></ng-container>\n </fd-popover-control>\n <fd-popover-body>\n <ng-container\n *ngTemplateOutlet=\"defaultMode; context: { popover: popover, popupMode: true }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n <ng-container *ngTemplateOutlet=\"tokensTpl\"></ng-container>\n</ng-template>\n<ng-template #buttonDropDown let-menu=\"menu\">\n <button\n class=\"drop-down\"\n fd-button\n [label]=\"selectedMo ? (selectedMo.$Caption | bbbTranslate) : (title | bbbTranslate)\"\n [fdMenu]=\"true\"\n [fdMenuTrigger]=\"menu\"\n >\n <span\n *ngIf=\"selectedCount > 0 && isCheckList\"\n fd-object-status\n [inverted]=\"true\"\n [label]=\"selectedCount\"\n [title]=\"selectedCount\"\n ></span>\n </button>\n</ng-template>\n<ng-template #tokensTpl>\n <div\n *ngIf=\"isCheckList && hasSelected\"\n style=\"padding: 5px; display: flex; flex-wrap: wrap; row-gap: 5px; column-gap: 5px\"\n >\n <ng-container *ngFor=\"let mo of moDataList; let index = index\">\n <fd-token *ngIf=\"mo.$IsChecked\" fdCozy [readOnly]=\"false\" (onCloseClick)=\"onRowCheck({mo, index})\">{{\n columns[0].Caption | rval: mo:columns:true\n }}</fd-token>\n </ng-container>\n </div>\n</ng-template>\n<ng-template #defaultMode let-popover=\"popover\" let-popupMode=\"popupMode\">\n <fd-layout-panel [class.popup-mode]=\"popupMode\" [ngClass]=\"'size-' + deviceSize\">\n <fd-layout-panel-header>\n <fd-layout-panel-head>\n <h4 fd-layout-panel-title>{{ title | bbbTranslate }}</h4>\n <span\n *ngIf=\"selectedCount > 0\"\n fd-object-status\n [inverted]=\"true\"\n [label]=\"selectedCount\"\n [title]=\"selectedCount\"\n ></span>\n </fd-layout-panel-head>\n <fd-layout-panel-actions>\n <button\n *ngIf=\"deviceSize !== 's'\"\n style=\"margin-top: 5px\"\n fd-button\n glyph=\"decline\"\n fdType=\"transparent\"\n (click)=\"popover.close()\"\n ></button>\n </fd-layout-panel-actions>\n </fd-layout-panel-header>\n <fd-layout-panel-filters *ngIf=\"isCheckList && moDataList.length\">\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <a class=\"clearCheckAll\" (click)=\"onAllCheckbox($event)\" fd-link [aria-label]=\"'All' | bbbTranslate\">{{\n 'All' | bbbTranslate\n }}</a>\n <label fd-toolbar-label style=\"font-size: 1rem; font-weight: bold\">.</label>\n <a\n (click)=\"onClearCheckbox()\"\n fd-toolbar-item\n class=\"clearCheckAll\"\n fd-link\n [aria-label]=\"'Clear' | bbbTranslate\"\n >{{ 'Clear' | bbbTranslate }}</a\n >\n </fd-toolbar>\n </fd-layout-panel-filters>\n\n <fd-layout-panel-body [bleed]=\"true\">\n <ng-container\n *ngTemplateOutlet=\"\n isDisplayType ? displayListTemplate : standardListTemplate;\n context: {\n $implicit: moDataList,\n isCheckList: isCheckList,\n groupby: groupby,\n conditionalFormats: conditionalFormats,\n deviceName: deviceName,\n viewSetting: viewSetting,\n allColumns: allColumns,\n access: access,\n rtl: rtl,\n popover: popover\n }\n \"\n >\n </ng-container>\n </fd-layout-panel-body>\n </fd-layout-panel>\n</ng-template>\n\n<!--display list-->\n<ng-template\n #displayListTemplate\n let-moDataList\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-conditionalFormats=\"conditionalFormats\"\n let-deviceName=\"deviceName\"\n let-allColumns=\"allColumns\"\n let-viewSetting=\"viewSetting\"\n let-access=\"access\"\n let-rtl=\"rtl\"\n>\n <ul\n fd-list\n class=\"display-list fd-list--navigation\"\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n ellipsify\n >\n <ng-container *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index; let last = last\">\n <ng-container *ngIf=\"!mo.parent || mo.parent?.expanded\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: mo,\n index: index,\n last: last,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-template>\n<!--standard list-->\n<ng-template\n #standardListTemplate\n let-moDataList\n let-isCheckList=\"isCheckList\"\n let-groupby=\"groupby\"\n let-conditionalFormats=\"conditionalFormats\"\n let-allColumns=\"allColumns\"\n let-deviceName=\"deviceName\"\n let-access=\"access\"\n let-viewSetting=\"viewSetting\"\n let-rtl=\"rtl\"\n let-last=\"last\"\n>\n <ul\n class=\"fd-list--navigation\"\n [class.fd-list--byline]=\"!isDisplayType\"\n fd-list\n [byline]=\"true\"\n *ngIf=\"moDataList && moDataList.length > 0; else noData\"\n ellipsify\n >\n <ng-container *ngFor=\"let mo of moDataList | multipleGroupBy: groupby; let index = index\">\n <ng-container *ngIf=\"!mo.parent || mo.parent?.expanded\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: mo,\n index: index,\n last: last,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-template>\n\n<!--noData-->\n<ng-template #noData>\n <bsu-no-data [simple]=\"popupMode\"></bsu-no-data>\n</ng-template>\n<ng-template\n #itemTemplate\n let-mo\n let-index=\"index\"\n let-last=\"last\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n>\n <li\n fd-list-group-header\n *ngIf=\"mo.group || mo.group === ''; else listItemTemplate\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [attr.level]=\"mo.level\"\n [class.root-group]=\"mo.level === 0\"\n >\n <fd-icon\n [glyph]=\"mo.expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick(mo)\"\n ></fd-icon>\n <span fd-list-title>{{ mo.group }}</span>\n </li>\n <ng-template #listItemTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n hasRowOlgo ? dynamicItemTemplate : defaultItem;\n context: {\n $implicit: mo,\n index: index,\n columns: columns,\n moDataList: moDataList,\n moDataListCount: moDataList.length\n }\n \"\n ></ng-container>\n <ng-template\n #defaultItem\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n >\n <bsu-list-item\n *ngIf=\"!hasRowOlgo; else dynamicItemTemplate\"\n [isDisplayType]=\"isDisplayType\"\n [mo]=\"mo\"\n [isChecked]=\"mo.$IsChecked\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [index]=\"index\"\n [last]=\"last\"\n [setting]=\"listSetting\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [allColumns]=\"allColumns\"\n [contentDensity]=\"contentDensity\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (rowCheck)=\"onRowCheck($event)\"\n (rowClick)=\"onRowClick($event)\"\n (ulvCommand)=\"onUlvCommand($event)\"\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\n >\n </bsu-list-item>\n </ng-template>\n\n <ng-template\n #dynamicItemTemplate\n let-mo\n let-index=\"index\"\n let-columns=\"columns\"\n let-moDataListCount=\"moDataListCount\"\n let-moDataList=\"moDataList\"\n >\n <bnrc-dynamic-item-component\n [component]=\"viewSetting.RowOlgo\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [moDataList]=\"moDataList\"\n [showDetailsInRow]=\"showDetailsInRow\"\n [hideOpenIcon]=\"hideOpenIcon\"\n [detailsColumns]=\"detailsColumns\"\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\n [cartableTemplate]=\"cartableTemplates[mo.RelatedMo?.$TypeDefId]\"\n [cartableMo]=\"mo.RelatedMo\"\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\n [detailsComponent]=\"detailsComponent\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [moDataListCount]=\"moDataListCount\"\n [columnsCount]=\"columnsCount - detailsColumns.length\"\n [typeDefId]=\"typeDefId\"\n [extraRelation]=\"extraRelation\"\n [formSetting]=\"formSetting\"\n [index]=\"index\"\n [last]=\"last\"\n [setting]=\"viewSetting\"\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns\"\n [columns]=\"columns | filterColumnsByDetails: detailsColumns\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [access]=\"access\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n [rowIndicator]=\"columns[0].MetaFieldTypeId === '41'\"\n (events)=\"onOlgoEvents($event)\"\n >\n </bnrc-dynamic-item-component>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.fd-list__group-header{column-gap:10px;align-items:center}.header th{border-left:none!important;border-right:none!important}.clearCheckAll{text-decoration:none!important}.fd-list--navigation-indication .fd-list__item:after{min-width:0!important}li.standard-list-row{padding-top:.2rem;padding-bottom:.2rem;min-height:4rem;justify-content:space-evenly;column-gap:10px}li.standard-list-row:hover:not(.selected){background-color:var(--sapBackgroundColor, #f7f7f7)}li.standard-list-row .fd-list__content{row-gap:.4rem}li.standard-list-row .fd-list__content .fd-list__byline{padding:0;font-size:.775rem}li.standard-list-row ::ng-deep .fd-form-item{position:static}li.standard-list-row ::ng-deep .fd-form-item .fd-checkbox__label--compact{padding:0;margin-left:0}li.standard-list-row ::ng-deep fd-icon{font-size:.75rem!important}fd-layout-panel{height:100%}.li-link.checklink[rtl=true]{padding-right:0!important}.li-link.checklist[rtl=false]{padding-left:0!important}.standard-list-group-label{padding-top:10px;padding-bottom:3px}fd-layout-panel-header{display:none}fd-layout-panel.popup-mode.size-s{box-shadow:none!important}fd-layout-panel.popup-mode.size-s fd-layout-panel-header{display:none!important}.popup-mode fd-layout-panel-header{display:flex;min-height:1rem;height:1rem;border:none!important}.popup-mode fd-layout-panel-header h4{font-weight:700;font-size:1rem}.popup-mode fd-layout-panel-head{display:flex;column-gap:5px;align-items:center;justify-content:center}.popup-mode ::ng-deep li{border:none!important}.popup-mode fd-layout-panel-body{margin-top:.3rem}.popup-mode fd-layout-panel-filters{border:none!important;padding:0 1rem}.popup-mode .drop-down{width:100%;max-width:100%;max-height:2rem!important;height:2rem!important;background:var(--sapButton_Background)!important;border:1px solid #ccc!important}.popup-mode .drop-down ::ng-deep span{font-size:1rem!important;line-height:1.2rem!important}.popup-mode .drop-down ::ng-deep fd-icon{position:absolute;left:10px}fd-popover{width:100%;max-width:100%}\n"] }]
|
|
68
68
|
}], propDecorators: { popupModeTemplateRef: [{
|
|
69
69
|
type: ViewChild,
|
|
70
|
-
args: ['
|
|
70
|
+
args: ['popupModeTemplate', { static: true, read: TemplateRef }]
|
|
71
71
|
}], defaultModeTemplateRef: [{
|
|
72
72
|
type: ViewChild,
|
|
73
73
|
args: ['defaultMode', { static: true, read: TemplateRef }]
|
|
74
74
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWxpc3Qtdmlldy91aS1saXN0LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbGlzdC12aWV3L3VpLWxpc3Qtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkcsT0FBTyxFQUdILHVCQUF1QixFQUV2QixxQkFBcUIsRUFDeEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVOUIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHVCQUEwQztJQU5uRjs7UUFZSSxtQkFBYyxHQUF1QixFQUFFLENBQUM7UUFJeEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIscUJBQWdCLEdBQW1FLEVBQUUsQ0FBQztLQTZDekY7SUEzQ0csUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsMkJBQTJCO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRztnQkFDbEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0I7Z0JBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUVyQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDO1FBQ3JFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQ25DLFdBQVcsQ0FBQyxVQUFVLEVBQ3RCLElBQUksQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDeEMsQ0FBQztRQUVWLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDZixHQUFHLFdBQVc7WUFDZCxVQUFVLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDcEUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNoRixZQUFZLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQzlFLFdBQVcsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUN0RSxRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVEsSUFBSSxJQUFJO1lBQ3RDLFdBQVcsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUN0RSxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQztTQUNuRixDQUFDO0lBQ04sQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQUUsRUFBRSxLQUFLO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEVBQUUsRUFBRSxLQUFLO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELG1CQUFtQjtRQUNmLFFBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUU7WUFDdEM7Z0JBQ0ksT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7WUFDdkMsS0FBSyxHQUFHO2dCQUNKLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO1NBQ3hDO0lBQ0wsQ0FBQzs7Z0hBdkRRLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHNKQUNrQixXQUFXLDhIQUNULFdBQVcsa0VDcEIvRCxnL2FBeVZBOzJGRHZVYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07OEJBR2Msb0JBQW9CO3NCQUFoRixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDSSxzQkFBc0I7c0JBQXBGLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7XG4gICAgRWpyYXlPbGdvLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQsXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcbiAgICBlbnVtVmFsdWVUb1N0cmluZ1NpemVcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5pbXBvcnQgeyBVaUxpc3RWaWV3U2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9ncmlkLXZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1saXN0LXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLWxpc3Qtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpTGlzdFZpZXdDb21wb25lbnQgZXh0ZW5kcyBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudDxVaUxpc3RWaWV3U2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3BvcHVwTW9kZScsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBwb3B1cE1vZGVUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0TW9kZScsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBkZWZhdWx0TW9kZVRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGxpc3RTZXR0aW5nOiBVaUxpc3RWaWV3U2V0dGluZztcbiAgICBhdmF0YXJTaXplOiBTaXplO1xuICAgIGlzRGlzcGxheVR5cGU6IGJvb2xlYW47XG4gICAgZGV0YWlsc0NvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXSA9IFtdO1xuICAgIGRldGFpbHNDb21wb25lbnQ6IEVqcmF5T2xnbztcbiAgICBzaG93RGV0YWlsc0luUm93OiBib29sZWFuO1xuICAgIGhhc1Jvd09sZ286IGJvb2xlYW47XG4gICAgcG9wb3Zlck9wZW4gPSBmYWxzZTtcbiAgICBjb2x1bW5Db21wb25lbnRzOiB7IGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbjsgY29tcG9uZW50OiBNZXRhb2JqZWN0RGF0YU1vZGVsIH1bXSA9IFtdO1xuICAgIHNlbGVjdGVkUHJlc2VudGFpb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFByZXNlbnRhaW9uVGVtcGxhdGUgPVxuICAgICAgICAgICAgdGhpcy52aWV3U2V0dGluZy5NZW51SW5TbWFsbERldmljZSA9PT0gdHJ1ZSAmJiB0aGlzLmRldmljZVNpemUgPT09ICdzJ1xuICAgICAgICAgICAgICAgID8gdGhpcy5wb3B1cE1vZGVUZW1wbGF0ZVJlZlxuICAgICAgICAgICAgICAgIDogdGhpcy5fZ2V0UHJlc2VudGFpb25Nb2RlKCk7XG5cbiAgICAgICAgdGhpcy5pc0Rpc3BsYXlUeXBlID0gdGhpcy52aWV3U2V0dGluZy5JdGVtVHlwZSRDYXB0aW9uID09PSAnRGlzcGxheSc7XG4gICAgICAgIGNvbnN0IHZpZXdTZXR0aW5nID0gdGhpcy52aWV3U2V0dGluZztcbiAgICAgICAgdGhpcy5oYXNSb3dPbGdvID0gdGhpcy52aWV3U2V0dGluZz8uUm93T2xnbz8uU2VsZWN0b3I7XG4gICAgICAgIGNvbnN0IGZpbmRDb2x1bW4gPSB0aGlzLl9maW5kQ29sdW1uQnlEYk5hbWU7XG4gICAgICAgIHRoaXMuYXZhdGFyU2l6ZSA9IGVudW1WYWx1ZVRvU3RyaW5nU2l6ZShcbiAgICAgICAgICAgIHZpZXdTZXR0aW5nLkF2YXRhclNpemUsXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5ID09PSAnY29tcGFjdCcgPyAncycgOiAnbSdcbiAgICAgICAgKSBhcyBTaXplO1xuXG4gICAgICAgIHRoaXMubGlzdFNldHRpbmcgPSB7XG4gICAgICAgICAgICAuLi52aWV3U2V0dGluZyxcbiAgICAgICAgICAgIFRpdGxlRmllbGQ6IGZpbmRDb2x1bW4udHJhbnNmb3JtKHRoaXMuYWxsQ29sdW1ucywgdmlld1NldHRpbmcuVGl0bGUpLFxuICAgICAgICAgICAgU3VidGl0bGVGaWVsZDogZmluZENvbHVtbi50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5TdWJ0aXRsZSkgPz8gJycsXG4gICAgICAgICAgICBDb3VudGVyRmllbGQ6IGZpbmRDb2x1bW4udHJhbnNmb3JtKHRoaXMuYWxsQ29sdW1ucywgdmlld1NldHRpbmcuQ291bnRlcikgPz8gJycsXG4gICAgICAgICAgICBBdmF0YXJGaWVsZDogZmluZENvbHVtbi50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5BdmF0YXIpLFxuICAgICAgICAgICAgSWNvbkZvbnQ6IHZpZXdTZXR0aW5nLkljb25Gb250IHx8IG51bGwsXG4gICAgICAgICAgICBTdGF0dXNGaWVsZDogZmluZENvbHVtbi50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5TdGF0dXMpLFxuICAgICAgICAgICAgRGVzY3JpcHRpb25GaWVsZDogZmluZENvbHVtbi50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5EZXNjcmlwdGlvbilcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbkxpc3RDaGVja2JveENsaWNrKG1vLCBpbmRleCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvd0NoZWNrLmVtaXQoeyBtbywgaW5kZXggfSk7XG4gICAgfVxuXG4gICAgb25MaXN0TmF2aWdhdGlvbkNsaWNrKG1vLCBpbmRleCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvd0NsaWNrLmVtaXQoeyBtbywgaW5kZXggfSk7XG4gICAgfVxuICAgIF9nZXRQcmVzZW50YWlvbk1vZGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy52aWV3U2V0dGluZy5QcmVzZW50YWlvbk1vZGUpIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdE1vZGVUZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgIGNhc2UgJzInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBvcHVwTW9kZVRlbXBsYXRlUmVmO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdGVkUHJlc2VudGFpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3BvcHVwTW9kZT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gbW9iaWxlVHBsIDogZGVza3RvcFRwbFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSA8ZmQtbWVudSBbYXBwZW5kVG9dPVwiX2VsXCJcbiAgICAjbWVudSBbbW9iaWxlXT1cImRldmljZVNpemUgPT09ICdzJ1wiID5cbiAgICA8L2ZkLW1lbnU+IC0tPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbW9iaWxlVHBsPlxuICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1tb2RlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25Ecm9wRG93bjsgY29udGV4dDogeyBtZW51OiBtZW51IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9rZW5zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGZkLW1lbnUgI21lbnUgW21vYmlsZV09XCJ0cnVlXCIgW21vYmlsZUNvbmZpZ109XCJ7IHRpdGxlOiB0aXRsZSB8IGJiYlRyYW5zbGF0ZSwgaGFzQ2xvc2VCdXR0b246IHRydWUgfVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVmYXVsdE1vZGU7IGNvbnRleHQ6IHsgcG9wb3ZlcjogbWVudSwgcG9wdXBNb2RlOiB0cnVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2ZkLW1lbnU+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZXNrdG9wVHBsPlxuICAgIDxmZC1wb3BvdmVyICNwb3BvdmVyIGZpbGxDb250cm9sTW9kZT1cImVxdWFsXCI+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2wgY2xhc3M9XCJwb3B1cC1tb2RlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uRHJvcERvd25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWZhdWx0TW9kZTsgY29udGV4dDogeyBwb3BvdmVyOiBwb3BvdmVyLCBwb3B1cE1vZGU6IHRydWUgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgIDwvZmQtcG9wb3Zlcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9rZW5zVHBsXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNidXR0b25Ecm9wRG93biBsZXQtbWVudT1cIm1lbnVcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZHJvcC1kb3duXCJcbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIFtsYWJlbF09XCJzZWxlY3RlZE1vID8gKHNlbGVjdGVkTW8uJENhcHRpb24gfCBiYmJUcmFuc2xhdGUpIDogKHRpdGxlIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgIFtmZE1lbnVdPVwidHJ1ZVwiXG4gICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb3VudCA+IDAgJiYgaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgW2ludmVydGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2xhYmVsXT1cInNlbGVjdGVkQ291bnRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInNlbGVjdGVkQ291bnRcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdG9rZW5zVHBsPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc0NoZWNrTGlzdCAmJiBoYXNTZWxlY3RlZFwiXG4gICAgICAgIHN0eWxlPVwicGFkZGluZzogNXB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IHJvdy1nYXA6IDVweDsgY29sdW1uLWdhcDogNXB4XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1vIG9mIG1vRGF0YUxpc3Q7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgICA8ZmQtdG9rZW4gKm5nSWY9XCJtby4kSXNDaGVja2VkXCIgZmRDb3p5IFtyZWFkT25seV09XCJmYWxzZVwiIChvbkNsb3NlQ2xpY2spPVwib25Sb3dDaGVjayh7bW8sIGluZGV4fSlcIj57e1xuICAgICAgICAgICAgICAgIGNvbHVtbnNbMF0uQ2FwdGlvbiB8IHJ2YWw6IG1vOmNvbHVtbnM6dHJ1ZVxuICAgICAgICAgICAgfX08L2ZkLXRva2VuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRNb2RlIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiIGxldC1wb3B1cE1vZGU9XCJwb3B1cE1vZGVcIj5cbiAgICA8ZmQtbGF5b3V0LXBhbmVsIFtjbGFzcy5wb3B1cC1tb2RlXT1cInBvcHVwTW9kZVwiIFtuZ0NsYXNzXT1cIidzaXplLScgKyBkZXZpY2VTaXplXCI+XG4gICAgICAgIDxmZC1sYXlvdXQtcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgPGZkLWxheW91dC1wYW5lbC1oZWFkPlxuICAgICAgICAgICAgICAgIDxoNCBmZC1sYXlvdXQtcGFuZWwtdGl0bGU+e3sgdGl0bGUgfCBiYmJUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb3VudCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgIFtpbnZlcnRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInNlbGVjdGVkQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VsZWN0ZWRDb3VudFwiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWhlYWQ+XG4gICAgICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldmljZVNpemUgIT09ICdzJ1wiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4XCJcbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBvcG92ZXIuY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mZC1sYXlvdXQtcGFuZWwtYWN0aW9ucz5cbiAgICAgICAgPC9mZC1sYXlvdXQtcGFuZWwtaGVhZGVyPlxuICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWZpbHRlcnMgKm5nSWY9XCJpc0NoZWNrTGlzdFwiPlxuICAgICAgICAgICAgPGZkLXRvb2xiYXIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiY2xlYXJDaGVja0FsbFwiIChjbGljayk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIiBmZC1saW5rIFthcmlhLWxhYmVsXT1cIidBbGwnIHwgYmJiVHJhbnNsYXRlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgJ0FsbCcgfCBiYmJUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fTwvYT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZmQtdG9vbGJhci1sYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMXJlbTsgZm9udC13ZWlnaHQ6IGJvbGRcIj4uPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGVhckNoZWNrYm94KClcIlxuICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjbGVhckNoZWNrQWxsXCJcbiAgICAgICAgICAgICAgICAgICAgZmQtbGlua1xuICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7ICdDbGVhcicgfCBiYmJUcmFuc2xhdGUgfX08L2FcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWZpbHRlcnM+XG5cbiAgICAgICAgPGZkLWxheW91dC1wYW5lbC1ib2R5IFtibGVlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNwbGF5VHlwZSA/IGRpc3BsYXlMaXN0VGVtcGxhdGUgOiBzdGFuZGFyZExpc3RUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGVja0xpc3Q6IGlzQ2hlY2tMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBieTogZ3JvdXBieSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlTmFtZTogZGV2aWNlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdTZXR0aW5nOiB2aWV3U2V0dGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbENvbHVtbnM6IGFsbENvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3M6IGFjY2VzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ0bDogcnRsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3ZlcjogcG9wb3ZlclxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWxheW91dC1wYW5lbC1ib2R5PlxuICAgIDwvZmQtbGF5b3V0LXBhbmVsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLWRpc3BsYXkgbGlzdC0tPlxuPG5nLXRlbXBsYXRlXG4gICAgI2Rpc3BsYXlMaXN0VGVtcGxhdGVcbiAgICBsZXQtbW9EYXRhTGlzdFxuICAgIGxldC1pc0NoZWNrTGlzdD1cImlzQ2hlY2tMaXN0XCJcbiAgICBsZXQtZ3JvdXBieT1cImdyb3VwYnlcIlxuICAgIGxldC1jb25kaXRpb25hbEZvcm1hdHM9XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgIGxldC1kZXZpY2VOYW1lPVwiZGV2aWNlTmFtZVwiXG4gICAgbGV0LWFsbENvbHVtbnM9XCJhbGxDb2x1bW5zXCJcbiAgICBsZXQtdmlld1NldHRpbmc9XCJ2aWV3U2V0dGluZ1wiXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXG4gICAgbGV0LXJ0bD1cInJ0bFwiXG4+XG4gICAgPHVsXG4gICAgICAgIGZkLWxpc3RcbiAgICAgICAgY2xhc3M9XCJkaXNwbGF5LWxpc3QgZmQtbGlzdC0tbmF2aWdhdGlvblwiXG4gICAgICAgICpuZ0lmPVwibW9EYXRhTGlzdCAmJiBtb0RhdGFMaXN0Lmxlbmd0aCA+IDA7IGVsc2Ugbm9EYXRhXCJcbiAgICAgICAgZWxsaXBzaWZ5XG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbyBvZiBtb0RhdGFMaXN0IHwgbXVsdGlwbGVHcm91cEJ5OiBncm91cGJ5OyBsZXQgaW5kZXggPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vLnBhcmVudCB8fCBtby5wYXJlbnQ/LmV4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Q6IGxhc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogY29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0OiBtb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3RDb3VudDogbW9EYXRhTGlzdC5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG48IS0tc3RhbmRhcmQgbGlzdC0tPlxuPG5nLXRlbXBsYXRlXG4gICAgI3N0YW5kYXJkTGlzdFRlbXBsYXRlXG4gICAgbGV0LW1vRGF0YUxpc3RcbiAgICBsZXQtaXNDaGVja0xpc3Q9XCJpc0NoZWNrTGlzdFwiXG4gICAgbGV0LWdyb3VwYnk9XCJncm91cGJ5XCJcbiAgICBsZXQtY29uZGl0aW9uYWxGb3JtYXRzPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBsZXQtYWxsQ29sdW1ucz1cImFsbENvbHVtbnNcIlxuICAgIGxldC1kZXZpY2VOYW1lPVwiZGV2aWNlTmFtZVwiXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXG4gICAgbGV0LXZpZXdTZXR0aW5nPVwidmlld1NldHRpbmdcIlxuICAgIGxldC1ydGw9XCJydGxcIlxuICAgIGxldC1sYXN0PVwibGFzdFwiXG4+XG4gICAgPHVsXG4gICAgICAgIGNsYXNzPVwiZmQtbGlzdC0tbmF2aWdhdGlvblwiXG4gICAgICAgIFtjbGFzcy5mZC1saXN0LS1ieWxpbmVdPVwiIWlzRGlzcGxheVR5cGVcIlxuICAgICAgICBmZC1saXN0XG4gICAgICAgIFtieWxpbmVdPVwidHJ1ZVwiXG4gICAgICAgICpuZ0lmPVwibW9EYXRhTGlzdCAmJiBtb0RhdGFMaXN0Lmxlbmd0aCA+IDA7IGVsc2Ugbm9EYXRhXCJcbiAgICAgICAgZWxsaXBzaWZ5XG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbyBvZiBtb0RhdGFMaXN0IHwgbXVsdGlwbGVHcm91cEJ5OiBncm91cGJ5OyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtby5wYXJlbnQgfHwgbW8ucGFyZW50Py5leHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0OiBsYXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdDogbW9EYXRhTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0Q291bnQ6IG1vRGF0YUxpc3QubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tbm9EYXRhLS0+XG48bmctdGVtcGxhdGUgI25vRGF0YT5cbiAgICA8YnN1LW5vLWRhdGE+PC9ic3Utbm8tZGF0YT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjaXRlbVRlbXBsYXRlXG4gICAgbGV0LW1vXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1sYXN0PVwibGFzdFwiXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICBsZXQtbW9EYXRhTGlzdENvdW50PVwibW9EYXRhTGlzdENvdW50XCJcbiAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxuPlxuICAgIDxsaVxuICAgICAgICBmZC1saXN0LWdyb3VwLWhlYWRlclxuICAgICAgICAqbmdJZj1cIm1vLmdyb3VwIHx8IG1vLmdyb3VwID09PSAnJzsgZWxzZSBsaXN0SXRlbVRlbXBsYXRlXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwiJ2NhbGMoIDFyZW0gKyAnICsgbW8ubGV2ZWwgKiAxMiArICdweCcgKyAnICknXCJcbiAgICAgICAgW2F0dHIubGV2ZWxdPVwibW8ubGV2ZWxcIlxuICAgICAgICBbY2xhc3Mucm9vdC1ncm91cF09XCJtby5sZXZlbCA9PT0gMFwiXG4gICAgPlxuICAgICAgICA8ZmQtaWNvblxuICAgICAgICAgICAgW2dseXBoXT1cIm1vLmV4cGFuZGVkID8gJ25hdmlnYXRpb24tZG93bi1hcnJvdycgOiAnbmF2aWdhdGlvbi1sZWZ0LWFycm93J1wiXG4gICAgICAgICAgICBjbGFzcz1cImNlbGwtZXhwYW5kXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkV4cGFuZENsaWNrKG1vKVwiXG4gICAgICAgID48L2ZkLWljb24+XG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgbW8uZ3JvdXAgfX08L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtVGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgaGFzUm93T2xnbyA/IGR5bmFtaWNJdGVtVGVtcGxhdGUgOiBkZWZhdWx0SXRlbTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogbW8sXG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uczogY29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdDogbW9EYXRhTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdENvdW50OiBtb0RhdGFMaXN0Lmxlbmd0aFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAjZGVmYXVsdEl0ZW1cbiAgICAgICAgICAgIGxldC1tb1xuICAgICAgICAgICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgICAgICAgICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICAgICAgICAgIGxldC1tb0RhdGFMaXN0Q291bnQ9XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgICAgICAgICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJzdS1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFoYXNSb3dPbGdvOyBlbHNlIGR5bmFtaWNJdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtpc0Rpc3BsYXlUeXBlXT1cImlzRGlzcGxheVR5cGVcIlxuICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJtby4kSXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgW2lzTmV3SW5saW5lTW9dPVwibW8uJE5ld0lubGluZU1vXCJcbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtsYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICAgIFtzZXR0aW5nXT1cImxpc3RTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgICAgICBbaGlkZU9wZW5JY29uXT1cImhpZGVPcGVuSWNvblwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbZm9ybVNldHRpbmddPVwiZm9ybVNldHRpbmdcIlxuICAgICAgICAgICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICAgICAgICAgIFtjb250ZW50RGVuc2l0eV09XCJjb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICAgICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAgICAgKHJvd0NoZWNrKT1cIm9uUm93Q2hlY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHVsdkNvbW1hbmQpPVwib25VbHZDb21tYW5kKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChlZGl0Rm9ybVBhbmVsU2F2ZSk9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChlZGl0Rm9ybVBhbmVsQ2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYnN1LWxpc3QtaXRlbT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICNkeW5hbWljSXRlbVRlbXBsYXRlXG4gICAgICAgICAgICBsZXQtbW9cbiAgICAgICAgICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICAgICAgICAgIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXG4gICAgICAgICAgICBsZXQtbW9EYXRhTGlzdENvdW50PVwibW9EYXRhTGlzdENvdW50XCJcbiAgICAgICAgICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgICAgICAgICBbY29tcG9uZW50XT1cInZpZXdTZXR0aW5nLlJvd09sZ29cIlxuICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgICAgIFttb0RhdGFMaXN0XT1cIm1vRGF0YUxpc3RcIlxuICAgICAgICAgICAgICAgIFtzaG93RGV0YWlsc0luUm93XT1cInNob3dEZXRhaWxzSW5Sb3dcIlxuICAgICAgICAgICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcbiAgICAgICAgICAgICAgICBbZGV0YWlsc0NvbHVtbnNdPVwiZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5Db21wb25lbnRzXT1cInZpZXdTZXR0aW5nPy5Db2x1bW5Db21wb25lbnRzIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgIFtjYXJ0YWJsZVRlbXBsYXRlXT1cImNhcnRhYmxlVGVtcGxhdGVzW21vLlJlbGF0ZWRNbz8uJFR5cGVEZWZJZF1cIlxuICAgICAgICAgICAgICAgIFtjYXJ0YWJsZU1vXT1cIm1vLlJlbGF0ZWRNb1wiXG4gICAgICAgICAgICAgICAgW2NhcnRhYmxlV29ya2Zsb3dEYXRhXT1cIm1vLlNlcmlhbGl6ZWRXb3JrZmxvd0RhdGFcIlxuICAgICAgICAgICAgICAgIFtzZXJpYWxpemVkUmVsYXRlZE1vXT1cIm1vLlNlcmlhbGl6ZWRSZWxhdGVkTW9cIlxuICAgICAgICAgICAgICAgIFtkZXRhaWxzVGV4dF09XCJ2aWV3U2V0dGluZz8uRGV0YWlsc1NldHRpbmc/LkJ1dHRvblRleHRcIlxuICAgICAgICAgICAgICAgIFtkZXRhaWxzQ29tcG9uZW50XT1cImRldGFpbHNDb21wb25lbnRcIlxuICAgICAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwibW8uJElzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgW3Zpc2liaWxpdHldPVwibW8uJFZpc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgIFtsZXZlbF09XCJtby4kTGV2ZWxcIlxuICAgICAgICAgICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJtby4kUGFyZW50Py4kRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgIFttb0RhdGFMaXN0Q291bnRdPVwibW9EYXRhTGlzdENvdW50XCJcbiAgICAgICAgICAgICAgICBbY29sdW1uc0NvdW50XT1cImNvbHVtbnNDb3VudCAtIGRldGFpbHNDb2x1bW5zLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICAgICAgICAgIFtleHRyYVJlbGF0aW9uXT1cImV4dHJhUmVsYXRpb25cIlxuICAgICAgICAgICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbbGFzdF09XCJsYXN0XCJcbiAgICAgICAgICAgICAgICBbc2V0dGluZ109XCJ2aWV3U2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgW3NlY29uZGFyeUNvbHVtbnNdPVwic2Vjb25kYXJ5Q29sdW1ucyB8IGZpbHRlckNvbHVtbnNCeURldGFpbHM6IGRldGFpbHNDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICAgICAgICAgIFtpc05ld0lubGluZU1vXT1cIm1vLiROZXdJbmxpbmVNb1wiXG4gICAgICAgICAgICAgICAgW2FjY2Vzc109XCJhY2Nlc3NcIlxuICAgICAgICAgICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgICAgICAgICAgW2FsbG93SW5saW5lRWRpdF09XCJhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbY2FuVmlld109XCJjYW5WaWV3XCJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICAgICBbcm93SW5kaWNhdG9yXT1cImNvbHVtbnNbMF0uTWV0YUZpZWxkVHlwZUlkID09PSAnNDEnXCJcbiAgICAgICAgICAgICAgICAoZXZlbnRzKT1cIm9uT2xnb0V2ZW50cygkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWxpc3Qtdmlldy91aS1saXN0LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbGlzdC12aWV3L3VpLWxpc3Qtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkcsT0FBTyxFQUdILHVCQUF1QixFQUV2QixxQkFBcUIsRUFDeEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVOUIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHVCQUEwQztJQU5uRjs7UUFZSSxtQkFBYyxHQUF1QixFQUFFLENBQUM7UUFJeEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIscUJBQWdCLEdBQW1FLEVBQUUsQ0FBQztRQUV0RixjQUFTLEdBQUcsS0FBSyxDQUFDO0tBMkNyQjtJQTFDRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxHQUFHLENBQUM7UUFDeEYsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0csSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsQ0FBQztRQUNyRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDO1FBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUNuQyxXQUFXLENBQUMsVUFBVSxFQUN0QixJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQ3hDLENBQUM7UUFFVixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2YsR0FBRyxXQUFXO1lBQ2QsVUFBVSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3BFLGFBQWEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDaEYsWUFBWSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUM5RSxXQUFXLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDdEUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRLElBQUksSUFBSTtZQUN0QyxXQUFXLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDdEUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUM7U0FDbkYsQ0FBQztJQUNOLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsS0FBSztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsS0FBSztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxtQkFBbUI7UUFDZixRQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFO1lBQ3RDO2dCQUNJLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQ3ZDLEtBQUssR0FBRztnQkFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7U0FDeEM7SUFDTCxDQUFDOztnSEF2RFEsbUJBQW1CO29HQUFuQixtQkFBbUIsOEpBQzBCLFdBQVcsOEhBQ2pCLFdBQVcsa0VDcEIvRCxvaWJBeVZBOzJGRHZVYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07OEJBR3NCLG9CQUFvQjtzQkFBeEYsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDSixzQkFBc0I7c0JBQXBGLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7XG4gICAgRWpyYXlPbGdvLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQsXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcbiAgICBlbnVtVmFsdWVUb1N0cmluZ1NpemVcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5pbXBvcnQgeyBVaUxpc3RWaWV3U2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9ncmlkLXZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1saXN0LXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLWxpc3Qtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpTGlzdFZpZXdDb21wb25lbnQgZXh0ZW5kcyBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudDxVaUxpc3RWaWV3U2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3BvcHVwTW9kZVRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHBvcHVwTW9kZVRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRNb2RlJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGRlZmF1bHRNb2RlVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgbGlzdFNldHRpbmc6IFVpTGlzdFZpZXdTZXR0aW5nO1xuICAgIGF2YXRhclNpemU6IFNpemU7XG4gICAgaXNEaXNwbGF5VHlwZTogYm9vbGVhbjtcbiAgICBkZXRhaWxzQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdID0gW107XG4gICAgZGV0YWlsc0NvbXBvbmVudDogRWpyYXlPbGdvO1xuICAgIHNob3dEZXRhaWxzSW5Sb3c6IGJvb2xlYW47XG4gICAgaGFzUm93T2xnbzogYm9vbGVhbjtcbiAgICBwb3BvdmVyT3BlbiA9IGZhbHNlO1xuICAgIGNvbHVtbkNvbXBvbmVudHM6IHsgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uOyBjb21wb25lbnQ6IE1ldGFvYmplY3REYXRhTW9kZWwgfVtdID0gW107XG4gICAgc2VsZWN0ZWRQcmVzZW50YWlvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHBvcHVwTW9kZSA9IGZhbHNlO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnBvcHVwTW9kZSA9IHRoaXMudmlld1NldHRpbmcuTWVudUluU21hbGxEZXZpY2UgPT09IHRydWUgJiYgdGhpcy5kZXZpY2VTaXplID09PSAncyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YWlvblRlbXBsYXRlID0gdGhpcy5wb3B1cE1vZGUgPyB0aGlzLnBvcHVwTW9kZVRlbXBsYXRlUmVmIDogdGhpcy5fZ2V0UHJlc2VudGFpb25Nb2RlKCk7XG5cbiAgICAgICAgdGhpcy5pc0Rpc3BsYXlUeXBlID0gdGhpcy52aWV3U2V0dGluZy5JdGVtVHlwZSRDYXB0aW9uID09PSAnRGlzcGxheSc7XG4gICAgICAgIGNvbnN0IHZpZXdTZXR0aW5nID0gdGhpcy52aWV3U2V0dGluZztcbiAgICAgICAgdGhpcy5oYXNSb3dPbGdvID0gdGhpcy52aWV3U2V0dGluZz8uUm93T2xnbz8uU2VsZWN0b3I7XG4gICAgICAgIGNvbnN0IGZpbmRDb2x1bW4gPSB0aGlzLl9maW5kQ29sdW1uQnlEYk5hbWU7XG4gICAgICAgIHRoaXMuYXZhdGFyU2l6ZSA9IGVudW1WYWx1ZVRvU3RyaW5nU2l6ZShcbiAgICAgICAgICAgIHZpZXdTZXR0aW5nLkF2YXRhclNpemUsXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5ID09PSAnY29tcGFjdCcgPyAncycgOiAnbSdcbiAgICAgICAgKSBhcyBTaXplO1xuXG4gICAgICAgIHRoaXMubGlzdFNldHRpbmcgPSB7XG4gICAgICAgICAgICAuLi52aWV3U2V0dGluZyxcbiAgICAgICAgICAgIFRpdGxlRmllbGQ6IGZpbmRDb2x1bW4udHJhbnNmb3JtKHRoaXMuYWxsQ29sdW1ucywgdmlld1NldHRpbmcuVGl0bGUpLFxuICAgICAgICAgICAgU3VidGl0bGVGaWVsZDogZmluZENvbHVtbi50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5TdWJ0aXRsZSkgPz8gJycsXG4gICAgICAgICAgICBDb3VudGVyRmllbGQ6IGZpbmRDb2x1bW4udHJhbnNmb3JtKHRoaXMuYWxsQ29sdW1ucywgdmlld1NldHRpbmcuQ291bnRlcikgPz8gJycsXG4gICAgICAgICAgICBBdmF0YXJGaWVsZDogZmluZENvbHVtbi50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5BdmF0YXIpLFxuICAgICAgICAgICAgSWNvbkZvbnQ6IHZpZXdTZXR0aW5nLkljb25Gb250IHx8IG51bGwsXG4gICAgICAgICAgICBTdGF0dXNGaWVsZDogZmluZENvbHVtbi50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5TdGF0dXMpLFxuICAgICAgICAgICAgRGVzY3JpcHRpb25GaWVsZDogZmluZENvbHVtbi50cmFuc2Zvcm0odGhpcy5hbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5EZXNjcmlwdGlvbilcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbkxpc3RDaGVja2JveENsaWNrKG1vLCBpbmRleCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvd0NoZWNrLmVtaXQoeyBtbywgaW5kZXggfSk7XG4gICAgfVxuXG4gICAgb25MaXN0TmF2aWdhdGlvbkNsaWNrKG1vLCBpbmRleCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvd0NsaWNrLmVtaXQoeyBtbywgaW5kZXggfSk7XG4gICAgfVxuICAgIF9nZXRQcmVzZW50YWlvbk1vZGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy52aWV3U2V0dGluZy5QcmVzZW50YWlvbk1vZGUpIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdE1vZGVUZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgIGNhc2UgJzInOlxuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBNb2RlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wb3B1cE1vZGVUZW1wbGF0ZVJlZjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RlZFByZXNlbnRhaW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNwb3B1cE1vZGVUZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gbW9iaWxlVHBsIDogZGVza3RvcFRwbFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSA8ZmQtbWVudSBbYXBwZW5kVG9dPVwiX2VsXCJcbiAgICAjbWVudSBbbW9iaWxlXT1cImRldmljZVNpemUgPT09ICdzJ1wiID5cbiAgICA8L2ZkLW1lbnU+IC0tPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbW9iaWxlVHBsPlxuICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1tb2RlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25Ecm9wRG93bjsgY29udGV4dDogeyBtZW51OiBtZW51IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9rZW5zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGZkLW1lbnUgI21lbnUgW21vYmlsZV09XCJ0cnVlXCIgW21vYmlsZUNvbmZpZ109XCJ7IHRpdGxlOiB0aXRsZSB8IGJiYlRyYW5zbGF0ZSwgaGFzQ2xvc2VCdXR0b246IHRydWUgfVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVmYXVsdE1vZGU7IGNvbnRleHQ6IHsgcG9wb3ZlcjogbWVudSwgcG9wdXBNb2RlOiB0cnVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2ZkLW1lbnU+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZXNrdG9wVHBsPlxuICAgIDxmZC1wb3BvdmVyICNwb3BvdmVyIGZpbGxDb250cm9sTW9kZT1cImVxdWFsXCI+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2wgY2xhc3M9XCJwb3B1cC1tb2RlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uRHJvcERvd25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWZhdWx0TW9kZTsgY29udGV4dDogeyBwb3BvdmVyOiBwb3BvdmVyLCBwb3B1cE1vZGU6IHRydWUgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgIDwvZmQtcG9wb3Zlcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9rZW5zVHBsXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNidXR0b25Ecm9wRG93biBsZXQtbWVudT1cIm1lbnVcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZHJvcC1kb3duXCJcbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIFtsYWJlbF09XCJzZWxlY3RlZE1vID8gKHNlbGVjdGVkTW8uJENhcHRpb24gfCBiYmJUcmFuc2xhdGUpIDogKHRpdGxlIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgIFtmZE1lbnVdPVwidHJ1ZVwiXG4gICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb3VudCA+IDAgJiYgaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgW2ludmVydGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2xhYmVsXT1cInNlbGVjdGVkQ291bnRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInNlbGVjdGVkQ291bnRcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdG9rZW5zVHBsPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc0NoZWNrTGlzdCAmJiBoYXNTZWxlY3RlZFwiXG4gICAgICAgIHN0eWxlPVwicGFkZGluZzogNXB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IHJvdy1nYXA6IDVweDsgY29sdW1uLWdhcDogNXB4XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1vIG9mIG1vRGF0YUxpc3Q7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgICA8ZmQtdG9rZW4gKm5nSWY9XCJtby4kSXNDaGVja2VkXCIgZmRDb3p5IFtyZWFkT25seV09XCJmYWxzZVwiIChvbkNsb3NlQ2xpY2spPVwib25Sb3dDaGVjayh7bW8sIGluZGV4fSlcIj57e1xuICAgICAgICAgICAgICAgIGNvbHVtbnNbMF0uQ2FwdGlvbiB8IHJ2YWw6IG1vOmNvbHVtbnM6dHJ1ZVxuICAgICAgICAgICAgfX08L2ZkLXRva2VuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRNb2RlIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiIGxldC1wb3B1cE1vZGU9XCJwb3B1cE1vZGVcIj5cbiAgICA8ZmQtbGF5b3V0LXBhbmVsIFtjbGFzcy5wb3B1cC1tb2RlXT1cInBvcHVwTW9kZVwiIFtuZ0NsYXNzXT1cIidzaXplLScgKyBkZXZpY2VTaXplXCI+XG4gICAgICAgIDxmZC1sYXlvdXQtcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgPGZkLWxheW91dC1wYW5lbC1oZWFkPlxuICAgICAgICAgICAgICAgIDxoNCBmZC1sYXlvdXQtcGFuZWwtdGl0bGU+e3sgdGl0bGUgfCBiYmJUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb3VudCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgIFtpbnZlcnRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInNlbGVjdGVkQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VsZWN0ZWRDb3VudFwiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWhlYWQ+XG4gICAgICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldmljZVNpemUgIT09ICdzJ1wiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4XCJcbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBvcG92ZXIuY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mZC1sYXlvdXQtcGFuZWwtYWN0aW9ucz5cbiAgICAgICAgPC9mZC1sYXlvdXQtcGFuZWwtaGVhZGVyPlxuICAgICAgICA8ZmQtbGF5b3V0LXBhbmVsLWZpbHRlcnMgKm5nSWY9XCJpc0NoZWNrTGlzdCAmJiBtb0RhdGFMaXN0Lmxlbmd0aFwiPlxuICAgICAgICAgICAgPGZkLXRvb2xiYXIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiY2xlYXJDaGVja0FsbFwiIChjbGljayk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIiBmZC1saW5rIFthcmlhLWxhYmVsXT1cIidBbGwnIHwgYmJiVHJhbnNsYXRlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgJ0FsbCcgfCBiYmJUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fTwvYT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZmQtdG9vbGJhci1sYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMXJlbTsgZm9udC13ZWlnaHQ6IGJvbGRcIj4uPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGVhckNoZWNrYm94KClcIlxuICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjbGVhckNoZWNrQWxsXCJcbiAgICAgICAgICAgICAgICAgICAgZmQtbGlua1xuICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7ICdDbGVhcicgfCBiYmJUcmFuc2xhdGUgfX08L2FcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgIDwvZmQtbGF5b3V0LXBhbmVsLWZpbHRlcnM+XG5cbiAgICAgICAgPGZkLWxheW91dC1wYW5lbC1ib2R5IFtibGVlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNwbGF5VHlwZSA/IGRpc3BsYXlMaXN0VGVtcGxhdGUgOiBzdGFuZGFyZExpc3RUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGVja0xpc3Q6IGlzQ2hlY2tMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBieTogZ3JvdXBieSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlTmFtZTogZGV2aWNlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdTZXR0aW5nOiB2aWV3U2V0dGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbENvbHVtbnM6IGFsbENvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3M6IGFjY2VzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ0bDogcnRsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3ZlcjogcG9wb3ZlclxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWxheW91dC1wYW5lbC1ib2R5PlxuICAgIDwvZmQtbGF5b3V0LXBhbmVsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLWRpc3BsYXkgbGlzdC0tPlxuPG5nLXRlbXBsYXRlXG4gICAgI2Rpc3BsYXlMaXN0VGVtcGxhdGVcbiAgICBsZXQtbW9EYXRhTGlzdFxuICAgIGxldC1pc0NoZWNrTGlzdD1cImlzQ2hlY2tMaXN0XCJcbiAgICBsZXQtZ3JvdXBieT1cImdyb3VwYnlcIlxuICAgIGxldC1jb25kaXRpb25hbEZvcm1hdHM9XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgIGxldC1kZXZpY2VOYW1lPVwiZGV2aWNlTmFtZVwiXG4gICAgbGV0LWFsbENvbHVtbnM9XCJhbGxDb2x1bW5zXCJcbiAgICBsZXQtdmlld1NldHRpbmc9XCJ2aWV3U2V0dGluZ1wiXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXG4gICAgbGV0LXJ0bD1cInJ0bFwiXG4+XG4gICAgPHVsXG4gICAgICAgIGZkLWxpc3RcbiAgICAgICAgY2xhc3M9XCJkaXNwbGF5LWxpc3QgZmQtbGlzdC0tbmF2aWdhdGlvblwiXG4gICAgICAgICpuZ0lmPVwibW9EYXRhTGlzdCAmJiBtb0RhdGFMaXN0Lmxlbmd0aCA+IDA7IGVsc2Ugbm9EYXRhXCJcbiAgICAgICAgZWxsaXBzaWZ5XG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbyBvZiBtb0RhdGFMaXN0IHwgbXVsdGlwbGVHcm91cEJ5OiBncm91cGJ5OyBsZXQgaW5kZXggPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vLnBhcmVudCB8fCBtby5wYXJlbnQ/LmV4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Q6IGxhc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogY29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0OiBtb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vRGF0YUxpc3RDb3VudDogbW9EYXRhTGlzdC5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG48IS0tc3RhbmRhcmQgbGlzdC0tPlxuPG5nLXRlbXBsYXRlXG4gICAgI3N0YW5kYXJkTGlzdFRlbXBsYXRlXG4gICAgbGV0LW1vRGF0YUxpc3RcbiAgICBsZXQtaXNDaGVja0xpc3Q9XCJpc0NoZWNrTGlzdFwiXG4gICAgbGV0LWdyb3VwYnk9XCJncm91cGJ5XCJcbiAgICBsZXQtY29uZGl0aW9uYWxGb3JtYXRzPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBsZXQtYWxsQ29sdW1ucz1cImFsbENvbHVtbnNcIlxuICAgIGxldC1kZXZpY2VOYW1lPVwiZGV2aWNlTmFtZVwiXG4gICAgbGV0LWFjY2Vzcz1cImFjY2Vzc1wiXG4gICAgbGV0LXZpZXdTZXR0aW5nPVwidmlld1NldHRpbmdcIlxuICAgIGxldC1ydGw9XCJydGxcIlxuICAgIGxldC1sYXN0PVwibGFzdFwiXG4+XG4gICAgPHVsXG4gICAgICAgIGNsYXNzPVwiZmQtbGlzdC0tbmF2aWdhdGlvblwiXG4gICAgICAgIFtjbGFzcy5mZC1saXN0LS1ieWxpbmVdPVwiIWlzRGlzcGxheVR5cGVcIlxuICAgICAgICBmZC1saXN0XG4gICAgICAgIFtieWxpbmVdPVwidHJ1ZVwiXG4gICAgICAgICpuZ0lmPVwibW9EYXRhTGlzdCAmJiBtb0RhdGFMaXN0Lmxlbmd0aCA+IDA7IGVsc2Ugbm9EYXRhXCJcbiAgICAgICAgZWxsaXBzaWZ5XG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbyBvZiBtb0RhdGFMaXN0IHwgbXVsdGlwbGVHcm91cEJ5OiBncm91cGJ5OyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtby5wYXJlbnQgfHwgbW8ucGFyZW50Py5leHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0OiBsYXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9EYXRhTGlzdDogbW9EYXRhTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0Q291bnQ6IG1vRGF0YUxpc3QubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tbm9EYXRhLS0+XG48bmctdGVtcGxhdGUgI25vRGF0YT5cbiAgICA8YnN1LW5vLWRhdGEgW3NpbXBsZV09XCJwb3B1cE1vZGVcIj48L2JzdS1uby1kYXRhPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNpdGVtVGVtcGxhdGVcbiAgICBsZXQtbW9cbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgbGV0LWxhc3Q9XCJsYXN0XCJcbiAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICAgIGxldC1tb0RhdGFMaXN0Q291bnQ9XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgIGxldC1tb0RhdGFMaXN0PVwibW9EYXRhTGlzdFwiXG4+XG4gICAgPGxpXG4gICAgICAgIGZkLWxpc3QtZ3JvdXAtaGVhZGVyXG4gICAgICAgICpuZ0lmPVwibW8uZ3JvdXAgfHwgbW8uZ3JvdXAgPT09ICcnOyBlbHNlIGxpc3RJdGVtVGVtcGxhdGVcIlxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCInY2FsYyggMXJlbSArICcgKyBtby5sZXZlbCAqIDEyICsgJ3B4JyArICcgKSdcIlxuICAgICAgICBbYXR0ci5sZXZlbF09XCJtby5sZXZlbFwiXG4gICAgICAgIFtjbGFzcy5yb290LWdyb3VwXT1cIm1vLmxldmVsID09PSAwXCJcbiAgICA+XG4gICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICBbZ2x5cGhdPVwibW8uZXhwYW5kZWQgPyAnbmF2aWdhdGlvbi1kb3duLWFycm93JyA6ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2VsbC1leHBhbmRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRXhwYW5kQ2xpY2sobW8pXCJcbiAgICAgICAgPjwvZmQtaWNvbj5cbiAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBtby5ncm91cCB9fTwvc3Bhbj5cbiAgICA8L2xpPlxuICAgIDxuZy10ZW1wbGF0ZSAjbGlzdEl0ZW1UZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBoYXNSb3dPbGdvID8gZHluYW1pY0l0ZW1UZW1wbGF0ZSA6IGRlZmF1bHRJdGVtO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtbyxcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0OiBtb0RhdGFMaXN0LFxuICAgICAgICAgICAgICAgICAgICBtb0RhdGFMaXN0Q291bnQ6IG1vRGF0YUxpc3QubGVuZ3RoXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICNkZWZhdWx0SXRlbVxuICAgICAgICAgICAgbGV0LW1vXG4gICAgICAgICAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgICAgICAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICAgICAgICAgICAgbGV0LW1vRGF0YUxpc3RDb3VudD1cIm1vRGF0YUxpc3RDb3VudFwiXG4gICAgICAgICAgICBsZXQtbW9EYXRhTGlzdD1cIm1vRGF0YUxpc3RcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWhhc1Jvd09sZ287IGVsc2UgZHluYW1pY0l0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2lzRGlzcGxheVR5cGVdPVwiaXNEaXNwbGF5VHlwZVwiXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cIm1vLiRTdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2xhc3RdPVwibGFzdFwiXG4gICAgICAgICAgICAgICAgW3NldHRpbmddPVwibGlzdFNldHRpbmdcIlxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFtoaWRlT3Blbkljb25dPVwiaGlkZU9wZW5JY29uXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbY2FuVmlld109XCJjYW5WaWV3XCJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICAgICAocm93Q2hlY2spPVwib25Sb3dDaGVjaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAodWx2Q29tbWFuZCk9XCJvblVsdkNvbW1hbmQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGVkaXRGb3JtUGFuZWxTYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGVkaXRGb3JtUGFuZWxDYW5jZWwpPVwib25FZGl0Rm9ybVBhbmVsQ2FuY2VsKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9ic3UtbGlzdC1pdGVtPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgI2R5bmFtaWNJdGVtVGVtcGxhdGVcbiAgICAgICAgICAgIGxldC1tb1xuICAgICAgICAgICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgICAgICAgICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICAgICAgICAgIGxldC1tb0RhdGFMaXN0Q291bnQ9XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgICAgICAgICAgbGV0LW1vRGF0YUxpc3Q9XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwidmlld1NldHRpbmcuUm93T2xnb1wiXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgW21vRGF0YUxpc3RdPVwibW9EYXRhTGlzdFwiXG4gICAgICAgICAgICAgICAgW3Nob3dEZXRhaWxzSW5Sb3ddPVwic2hvd0RldGFpbHNJblJvd1wiXG4gICAgICAgICAgICAgICAgW2hpZGVPcGVuSWNvbl09XCJoaWRlT3Blbkljb25cIlxuICAgICAgICAgICAgICAgIFtkZXRhaWxzQ29sdW1uc109XCJkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtbkNvbXBvbmVudHNdPVwidmlld1NldHRpbmc/LkNvbHVtbkNvbXBvbmVudHMgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgW2NhcnRhYmxlVGVtcGxhdGVdPVwiY2FydGFibGVUZW1wbGF0ZXNbbW8uUmVsYXRlZE1vPy4kVHlwZURlZklkXVwiXG4gICAgICAgICAgICAgICAgW2NhcnRhYmxlTW9dPVwibW8uUmVsYXRlZE1vXCJcbiAgICAgICAgICAgICAgICBbY2FydGFibGVXb3JrZmxvd0RhdGFdPVwibW8uU2VyaWFsaXplZFdvcmtmbG93RGF0YVwiXG4gICAgICAgICAgICAgICAgW3NlcmlhbGl6ZWRSZWxhdGVkTW9dPVwibW8uU2VyaWFsaXplZFJlbGF0ZWRNb1wiXG4gICAgICAgICAgICAgICAgW2RldGFpbHNUZXh0XT1cInZpZXdTZXR0aW5nPy5EZXRhaWxzU2V0dGluZz8uQnV0dG9uVGV4dFwiXG4gICAgICAgICAgICAgICAgW2RldGFpbHNDb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJtby4kSXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgW2V4cGFuZGVkXT1cIm1vLiRFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgW2xldmVsXT1cIm1vLiRMZXZlbFwiXG4gICAgICAgICAgICAgICAgW3BhcmVudEV4cGFuZGVkXT1cIm1vLiRQYXJlbnQ/LiRFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgW21vRGF0YUxpc3RDb3VudF09XCJtb0RhdGFMaXN0Q291bnRcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5zQ291bnRdPVwiY29sdW1uc0NvdW50IC0gZGV0YWlsc0NvbHVtbnMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbdHlwZURlZklkXT1cInR5cGVEZWZJZFwiXG4gICAgICAgICAgICAgICAgW2V4dHJhUmVsYXRpb25dPVwiZXh0cmFSZWxhdGlvblwiXG4gICAgICAgICAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtsYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgICAgIFtzZXR0aW5nXT1cInZpZXdTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbc2Vjb25kYXJ5Q29sdW1uc109XCJzZWNvbmRhcnlDb2x1bW5zIHwgZmlsdGVyQ29sdW1uc0J5RGV0YWlsczogZGV0YWlsc0NvbHVtbnNcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBmaWx0ZXJDb2x1bW5zQnlEZXRhaWxzOiBkZXRhaWxzQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW2lzTmV3SW5saW5lTW9dPVwibW8uJE5ld0lubGluZU1vXCJcbiAgICAgICAgICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgICAgICAgICAgW2lubGluZUVkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICAgICAgICAgIFtjb250ZXh0TWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICAgICAgICAgIFtjYW5WaWV3XT1cImNhblZpZXdcIlxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgICAgIFtyb3dJbmRpY2F0b3JdPVwiY29sdW1uc1swXS5NZXRhRmllbGRUeXBlSWQgPT09ICc0MSdcIlxuICAgICAgICAgICAgICAgIChldmVudHMpPVwib25PbGdvRXZlbnRzKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|