barsa-sap-ui 1.0.405 → 1.0.407

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.
@@ -66,10 +66,10 @@ export class BarsaSimpleFormComponent extends BaseComponent {
66
66
  }
67
67
  }
68
68
  BarsaSimpleFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaSimpleFormComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
69
- BarsaSimpleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", rtl: "rtl", isModal: "isModal", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", workflowButtons: "workflowButtons", layoutGridCol: "layoutGridCol", colLg: "colLg", colXl: "colXl", colMd: "colMd", formVisibilityStatus: "formVisibilityStatus" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close" }, viewQueries: [{ propertyName: "_toolbarComponent", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }, { propertyName: "closeFormTemplate", first: true, predicate: ["closeForm"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<bsu-mask *ngIf=\"mask\"> </bsu-mask>\n<fd-layout-grid>\n <div fdLayoutGridRow>\n <div\n class=\"grid-col\"\n [fdLayoutGridCol]=\"0\"\n [colMd]=\"layout1.colMd\"\n [colLg]=\"layout1.colLg\"\n [colXl]=\"layout1.colXl\"\n ></div>\n <div class=\"grid-col\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\n <ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n </div>\n <div\n class=\"grid-col\"\n [fdLayoutGridCol]=\"0\"\n [colMd]=\"layout2.colMd\"\n [colLg]=\"layout2.colLg\"\n [colXl]=\"layout2.colXl\"\n ></div>\n </div>\n</fd-layout-grid>\n\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n <ng-container *ngIf=\"workflowButtons && !isModal\">\n <div class=\"workflow-buttons\" *ngIf=\"workflowButtons.length\">\n <div style=\"flex-grow: 1\"></div>\n <bsu-layout-actions\n style=\"display: flex; column-gap: 1rem\"\n [simple]=\"true\"\n [buttons]=\"[]\"\n [workflowButtons]=\"workflowButtons\"\n (toolClick)=\"onToolbarClick($event)\"\n >\n </bsu-layout-actions>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i3.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i3.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i3.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i4.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i6.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple"], outputs: ["workflowChoiceSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
+ BarsaSimpleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", rtl: "rtl", isModal: "isModal", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", workflowButtons: "workflowButtons", layoutGridCol: "layoutGridCol", colLg: "colLg", colXl: "colXl", colMd: "colMd", formVisibilityStatus: "formVisibilityStatus" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close" }, viewQueries: [{ propertyName: "_toolbarComponent", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }, { propertyName: "closeFormTemplate", first: true, predicate: ["closeForm"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<bsu-mask *ngIf=\"mask\"> </bsu-mask>\n<fd-layout-grid>\n <div fdLayoutGridRow>\n <div\n class=\"grid-col\"\n [fdLayoutGridCol]=\"0\"\n [colMd]=\"layout1.colMd\"\n [colLg]=\"layout1.colLg\"\n [colXl]=\"layout1.colXl\"\n ></div>\n <div class=\"grid-col\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\n <ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n </div>\n <div\n class=\"grid-col\"\n [fdLayoutGridCol]=\"0\"\n [colMd]=\"layout2.colMd\"\n [colLg]=\"layout2.colLg\"\n [colXl]=\"layout2.colXl\"\n ></div>\n </div>\n</fd-layout-grid>\n\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n <ng-container *ngIf=\"workflowButtons && !isModal\">\n <div class=\"workflow-buttons\" *ngIf=\"workflowButtons.length\">\n <div style=\"flex-grow: 1\"></div>\n <bsu-layout-actions\n style=\"display: flex; column-gap: 1rem\"\n [simple]=\"true\"\n [buttons]=\"[]\"\n [workflowButtons]=\"workflowButtons\"\n (toolClick)=\"onToolbarClick($event)\"\n >\n </bsu-layout-actions>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}bsu-ly-layout-container-of-root{padding-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i3.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i3.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i3.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i4.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i6.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple"], outputs: ["workflowChoiceSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaSimpleFormComponent, decorators: [{
71
71
  type: Component,
72
- args: [{ selector: 'bsu-barsa-simple-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-mask *ngIf=\"mask\"> </bsu-mask>\n<fd-layout-grid>\n <div fdLayoutGridRow>\n <div\n class=\"grid-col\"\n [fdLayoutGridCol]=\"0\"\n [colMd]=\"layout1.colMd\"\n [colLg]=\"layout1.colLg\"\n [colXl]=\"layout1.colXl\"\n ></div>\n <div class=\"grid-col\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\n <ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n </div>\n <div\n class=\"grid-col\"\n [fdLayoutGridCol]=\"0\"\n [colMd]=\"layout2.colMd\"\n [colLg]=\"layout2.colLg\"\n [colXl]=\"layout2.colXl\"\n ></div>\n </div>\n</fd-layout-grid>\n\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n <ng-container *ngIf=\"workflowButtons && !isModal\">\n <div class=\"workflow-buttons\" *ngIf=\"workflowButtons.length\">\n <div style=\"flex-grow: 1\"></div>\n <bsu-layout-actions\n style=\"display: flex; column-gap: 1rem\"\n [simple]=\"true\"\n [buttons]=\"[]\"\n [workflowButtons]=\"workflowButtons\"\n (toolClick)=\"onToolbarClick($event)\"\n >\n </bsu-layout-actions>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"] }]
72
+ args: [{ selector: 'bsu-barsa-simple-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-mask *ngIf=\"mask\"> </bsu-mask>\n<fd-layout-grid>\n <div fdLayoutGridRow>\n <div\n class=\"grid-col\"\n [fdLayoutGridCol]=\"0\"\n [colMd]=\"layout1.colMd\"\n [colLg]=\"layout1.colLg\"\n [colXl]=\"layout1.colXl\"\n ></div>\n <div class=\"grid-col\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\n <ng-container\n *ngTemplateOutlet=\"\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\n context: {\n $implicit: parameters?.LayoutComponent,\n layout94: layout94\n }\n \"\n ></ng-container>\n </div>\n <div\n class=\"grid-col\"\n [fdLayoutGridCol]=\"0\"\n [colMd]=\"layout2.colMd\"\n [colLg]=\"layout2.colLg\"\n [colXl]=\"layout2.colXl\"\n ></div>\n </div>\n</fd-layout-grid>\n\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\n <bsu-ly-layout-container-of-root\n [config]=\"layout94\"\n [isPanel]=\"false\"\n [isRoot]=\"true\"\n ></bsu-ly-layout-container-of-root>\n <ng-container *ngIf=\"workflowButtons && !isModal\">\n <div class=\"workflow-buttons\" *ngIf=\"workflowButtons.length\">\n <div style=\"flex-grow: 1\"></div>\n <bsu-layout-actions\n style=\"display: flex; column-gap: 1rem\"\n [simple]=\"true\"\n [buttons]=\"[]\"\n [workflowButtons]=\"workflowButtons\"\n (toolClick)=\"onToolbarClick($event)\"\n >\n </bsu-layout-actions>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\n <bnrc-dynamic-form-component\n [component]=\"component\"\n [removeContentPadding]=\"removeContentPadding\"\n [breadCrumbs]=\"breadCrumbs\"\n [description]=\"description\"\n [title]=\"title\"\n [subtitle]=\"subtitle\"\n [toolbarItems]=\"toolbarItems\"\n [layoutActions]=\"layoutActions\"\n [facetList]=\"facetList\"\n [settings]=\"component.Settings\"\n [workflowPanelUi]=\"workflowPanelUi\"\n [isMobile]=\"isMobile\"\n [mo]=\"mo\"\n [layout94]=\"layout94\"\n [context]=\"context\"\n [rtl]=\"rtl\"\n [fieldDict]=\"fieldDict\"\n [mask]=\"mask\"\n [dirValue]=\"dirValue\"\n [deviceSize]=\"deviceSize\"\n [contentDensity]=\"contentDensity\"\n [modernTabs]=\"modernTabs\"\n [avatar]=\"avatar\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-form-component>\n</ng-template>\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .fd-progress-indicator__container,:host ::ng-deep .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}bsu-ly-layout-container-of-root{padding-bottom:1rem}\n"] }]
73
73
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _toolbarComponent: [{
74
74
  type: ViewChild,
75
75
  args: ['formToolbar']
@@ -37,10 +37,10 @@ export class BarsaTableRowComponent extends BaseViewItemPropsComponent {
37
37
  }
38
38
  }
39
39
  BarsaTableRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
40
- BarsaTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", columnComponents: "columnComponents" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n style=\"font-weight: bold; font-size: 1rem\"\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n class=\"secondary-row\"\n [class.no-edit-mode]=\"!inlineEditMode\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems.length ? 1 : 0) +\n (canView ? 1 : 0) +\n (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"resetWorkflowState.emit()\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "component", type: i3.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: i3.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i7.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i7.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "directive", type: i10.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i10.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i10.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i11.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.BarsaTableColumnComponent, selector: "bsu-barsa-table-column" }, { kind: "component", type: i14.BarsaColumnIndicatorComponent, selector: "bsu-barsa-column-indicator", inputs: ["backColor", "hideBorderBottom"] }, { kind: "directive", type: i15.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
+ BarsaTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", columnComponents: "columnComponents" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n style=\"font-weight: bold; font-size: 1rem\"\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"!isCheckList && onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"!isCheckList && !(inlineEditMode && allowInlineEdit) && onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n class=\"secondary-row\"\n [class.no-edit-mode]=\"!inlineEditMode\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems.length ? 1 : 0) +\n (canView ? 1 : 0) +\n (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"resetWorkflowState.emit()\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "component", type: i3.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: i3.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i7.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i7.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "directive", type: i10.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i10.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i10.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i11.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.BarsaTableColumnComponent, selector: "bsu-barsa-table-column" }, { kind: "component", type: i14.BarsaColumnIndicatorComponent, selector: "bsu-barsa-column-indicator", inputs: ["backColor", "hideBorderBottom"] }, { kind: "directive", type: i15.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableRowComponent, decorators: [{
42
42
  type: Component,
43
- args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n style=\"font-weight: bold; font-size: 1rem\"\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n class=\"secondary-row\"\n [class.no-edit-mode]=\"!inlineEditMode\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems.length ? 1 : 0) +\n (canView ? 1 : 0) +\n (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"resetWorkflowState.emit()\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"] }]
43
+ args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n style=\"font-weight: bold; font-size: 1rem\"\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"!isCheckList && onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"!isCheckList && !(inlineEditMode && allowInlineEdit) && onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n class=\"secondary-row\"\n [class.no-edit-mode]=\"!inlineEditMode\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems.length ? 1 : 0) +\n (canView ? 1 : 0) +\n (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td\n fd-table-cell\n [attr.colspan]=\"\n columns.length +\n 1 +\n (rowIndicator ? -1 : 0) +\n (contextMenuItems && contextMenuItems.length > 0 && !inlineEditMode ? 1 : 0) +\n (showViewButton ? 1 : 0) +\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\n \"\n >\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"resetWorkflowState.emit()\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"] }]
44
44
  }], propDecorators: { showDetailsInRow: [{
45
45
  type: Input
46
46
  }], detailsComponent: [{
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
55
55
  type: ViewChild,
56
56
  args: ['detailsFormItems', { static: true }]
57
57
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLXJvdy9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtcm93L2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBK0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTakgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQVB0RTs7UUFRYSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0tBZTNCO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDM0IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQzNDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxLQUFoQixJQUFJLENBQUMsV0FBVyxHQUFLLFNBQVMsRUFBQztJQUNuQyxDQUFDO0lBQ0QsWUFBWTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7O21IQXRCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwwT0FIcEIsQ0FBQyxnQkFBZ0IsQ0FBQyxxTENSakMsK3BjQTBYQTsyRkQvV2Esc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixhQUdwQixDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDMkMsZ0JBQWdCO3NCQUFoRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vRm9yUmVwb3J0TW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSwgRWpyYXlPbGdvLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1yb3cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVSb3dDb21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgc2hvd0RldGFpbHNJblJvdyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRldGFpbHNDb21wb25lbnQ/OiBFanJheU9sZ287XG4gICAgQElucHV0KCkgZGV0YWlsc0NvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBASW5wdXQoKSBkZXRhaWxzVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbHVtbkNvbXBvbmVudHM6IE1vRm9yUmVwb3J0TW9kZWwgfCBudWxsO1xuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbHNGb3JtSXRlbXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkZXRhaWxzRm9ybUl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZGV0YWlsc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgZGV0YWlsc0NvbXBvbmVudFNldHRpbmc6IGFueTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5kZXRhaWxzQ29tcG9uZW50U2V0dGluZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2V0dGluZyxcbiAgICAgICAgICAgICRkZXRhaWxzQ29sdW1uczogdGhpcy5kZXRhaWxzQ29sdW1ucyxcbiAgICAgICAgICAgICRkZXRhaWxzRm9ybUl0ZW1zOiB0aGlzLmRldGFpbHNGb3JtSXRlbXNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXRhaWxzVGV4dCB8fD0gJ0RldGFpbHMnO1xuICAgIH1cbiAgICBvblJvd0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGV0YWlsc0NvbGxhcHNlZCA9ICF0aGlzLmRldGFpbHNDb2xsYXBzZWQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHRyXG4gICAgW2NsYXNzLnJvdy1lcnJvcl09XCJoYXNFcnJvclwiXG4gICAgW2NsYXNzLnNob3dkZXRhaWxzLW9uXT1cIiFkZXRhaWxzQ29sbGFwc2VkXCJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwiKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW2FjdGl2YWJsZV09XCJmYWxzZVwiXG4gICAgW2hvdmVyYWJsZV09XCJmYWxzZVwiXG4gICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgW2hvc3RFbF09XCJ0ckVsXCJcbiAgICBbbWFpbl09XCJ0cnVlXCJcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcbiAgICBbZm9jdXNhYmxlXT1cIiFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBbY2xhc3MuYnJ1bGUtbWVzc2FnZV09XCJicnVsZUFjdGlvbk1lc3NhZ2UgfHwgd29ya2Zsb3dTdGF0ZT8uZXJyb3JUZXh0XCJcbiAgICBbY2xhc3Mud29ya2Zsb3ctcGVuZGluZ109XCJ3b3JrZmxvd1N0YXRlPy5zdGF0ZSA9PT0gJ1BlbmRpbmcnXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW8uJEdyb3VwIHx8IG1vLiRHcm91cCA9PT0gJyc7IGVsc2UgcmVuZGVyUm93XCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwicnRsID8gJ2NhbGMoIDFyZW0gKyAnICsgbGV2ZWwgKiAxMiArICdweCcgKyAnICknIDogJ2luaGVyaXQnXCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiIXJ0bCA/ICdjYWxjKCAxcmVtICsgJyArIGxldmVsICogMTIgKyAncHgnICsgJyApJyA6ICdpbmhlcml0J1wiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDFyZW1cIlxuICAgICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJcbiAgICAgICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAgICAgMSArXG4gICAgICAgICAgICAgICAgKHJvd0luZGljYXRvciA/IC0xIDogMCkgK1xuICAgICAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgICAgIChzaG93Vmlld0J1dHRvbiA/IDEgOiAwKSArXG4gICAgICAgICAgICAgICAgKHNob3dEZXRhaWxzSW5Sb3cgJiYgIWlubGluZUVkaXRNb2RlID8gMSA6IDApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJyb3ctZ3JvdXBcIlxuICAgICAgICAgICAgW2NsYXNzLm1vYmlsZS1tb2RlXT1cInNlY29uZGFyeUNvbHVtbnM/Lmxlbmd0aFwiXG4gICAgICAgICAgICBbYXR0ci5sZXZlbF09XCJsZXZlbFwiXG4gICAgICAgICAgICBbY2xhc3Mucm9vdC1ncm91cF09XCJsZXZlbCA9PT0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJleHBhbmRlZCAhPT0gZmFsc2UgPyAnbmF2aWdhdGlvbi1kb3duLWFycm93JyA6ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNlbGwtZXhwYW5kXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRDbGljaygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIHt7IG1vLiRHcm91cCB9fVxuICAgICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVuZGVyUm93PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiaXNDaGVja0xpc3RcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIndvcmtmbG93U3RhdGU/LnN0YXRlID09PSAnUGVuZGluZydcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyB0b3A6IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxic3UtbWFzayBbdG9wXT1cIicyMHB4J1wiIFtzaXplXT1cIidzJ1wiPjwvYnN1LW1hc2s+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGZkLWNoZWNrYm94IFtuYW1lXT1cIm1vLiRDYXB0aW9uXCIgW25nTW9kZWxdPVwiaXNDaGVja2VkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dDaGVjaygpXCI+PC9mZC1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdCAmJiAoaGFzRXJyb3IgfHwgc2F2aW5nIHx8IHNhdmVkKTsgZWxzZSBpY29uU3RhdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2F2ZS1lcnJvclwiIGdseXBoPVwiZXJyb3JcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPGZkLWJ1c3ktaW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2F2aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwicmVjb3JkIHNhdmluZ1wiXG4gICAgICAgICAgICAgICAgPjwvZmQtYnVzeS1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJzYXZlZFwiIGNsYXNzPVwic2F2ZS1zdWNjZXNzXCIgZ2x5cGg9XCJhY2NlcHRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvblN0YXRlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWRcIiBnbHlwaD1cImZhdm9yaXRlXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0ICYmIGlzQ2hlY2tlZFwiIGdseXBoPVwiZWRpdFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIocm93SW5kaWNhdG9yICYmIGNvbHVtbkluZGV4ID4gMCkgfHwgIXJvd0luZGljYXRvclwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgICAgICAjdGRFbFxuICAgICAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbaG9zdEVsXT1cInRkRWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIFtob3ZlcmFibGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3M9XCJjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcz8ubGVuZ3RoICYmICghaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdClcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgID48L2JzdS11bHYtY29udGV4dC1tZW51PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGRcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWRldGFpbHNcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICAgICAgW2ZpdENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEZXRhaWxzSW5Sb3cgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8IGNhcnRhYmxlUGFyYW1zPy5tb0lkXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGRldGFpbHNDb2xsYXBzZWQgPyBkZXRhaWxzVGV4dCA6ICdIaWRlJykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93RGV0YWlscygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBjbGFzcz1cImNvbC12aWV3XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZU9wZW5JY29uICYmIGNhblZpZXcgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3RyPlxuXG48dHJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwic2Vjb25kYXJ5Q29sdW1ucz8ubGVuZ3RoICYmICFtby4kR3JvdXAgJiYgKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW3NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBjbGFzcz1cInNlY29uZGFyeS1yb3dcIlxuICAgIFtjbGFzcy5uby1lZGl0LW1vZGVdPVwiIWlubGluZUVkaXRNb2RlXCJcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICBbaG9zdEVsXT1cInRyRWxcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkICYmICFpbmxpbmVFZGl0TW9kZSA/IHRydWUgOiBmYWxzZVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCIgKm5nSWY9XCIhaXNDaGVja0xpc3RcIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCI+PC90ZD5cbiAgICA8dGQgZmQtdGFibGUtY2VsbCBjb2xzcGFuPVwiMTAwJVwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAgICNwRWxcbiAgICAgICAgICAgIGZkLXRhYmxlLXRleHRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc2Vjb25kYXJ5Q29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5Q29sdW1uXCJcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJwRWxcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWw+e3sgY29sdW1uLkNhcHRpb24gfX0gOjwvbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9wPlxuICAgIDwvdGQ+XG48L3RyPlxuPHRyICpuZ0lmPVwiIWRldGFpbHNDb2xsYXBzZWQgJiYgY2FydGFibGVQYXJhbXM/Lm1vSWRcIiBmZC10YWJsZS1yb3cgY2xhc3M9XCJzaG93ZGV0YWlsc1wiIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICAoY2xpY2spPVwib25Sb3dDaGVjaygpXCJcbiAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIlxuICAgICAgICAgICAgY29sdW1ucy5sZW5ndGggK1xuICAgICAgICAgICAgMSArXG4gICAgICAgICAgICAocm93SW5kaWNhdG9yID8gLTEgOiAwKSArXG4gICAgICAgICAgICAoY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPyAxIDogMCkgK1xuICAgICAgICAgICAgKGNhblZpZXcgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dEZXRhaWxzSW5Sb3cgPyAxIDogMClcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICA8Ym5yYy1mb3JtXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIk9uQ2FydGFibGVGb3JtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJ0YWJsZS10ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3BhcmFtc109XCJjYXJ0YWJsZVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgKGZvcm1DbG9zZSk9XCJvbkNhcnRhYmxlRm9ybUNsb3NlZCgpXCJcbiAgICAgICAgICAgID48L2JucmMtZm9ybT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90ZD5cbjwvdHI+XG48dHJcbiAgICAqbmdJZj1cIiFkZXRhaWxzQ29sbGFwc2VkICYmIGRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yXCJcbiAgICBmZC10YWJsZS1yb3dcbiAgICBjbGFzcz1cInNob3dkZXRhaWxzXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzQ2hlY2tlZFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbHNDb2x1bW5zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNDb21wb25lbnQgJiYgZGV0YWlsc0NvbXBvbmVudC5TZWxlY3RvclwiPlxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgW1Vsdk1haW5DdHJscl09XCJVbHZNYWluQ3RybHJcIlxuICAgICAgICAgICAgICAgIFtzZXR0aW5nXT1cImRldGFpbHNDb21wb25lbnRTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbcGFyYW1ldGVyc109XCJkZXRhaWxzQ29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RkPlxuPC90cj5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlsc0NvbHVtbnNUZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBkZXRhaWxzRm9ybUl0ZW1zO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGV0YWlsc0NvbHVtbnMsXG4gICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JFxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RldGFpbHNGb3JtSXRlbXMgbGV0LWRldGFpbHNDb2x1bW5zIGxldC1tbz1cIm1vXCIgbGV0LWlubGluZUVkaXRNb2RlPVwiaW5saW5lRWRpdE1vZGVcIiBsZXQtbGF5b3V0JD1cImxheW91dCRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pdGVtc1wiPlxuICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbSAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGRldGFpbHNDb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgZm9yPVwiaW5wdXQtMlwiPnt7IGNvbHVtbi5DYXB0aW9uIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48dHIgKm5nSWY9XCJicnVsZUFjdGlvbk1lc3NhZ2UgJiYgaW5saW5lRWRpdE1vZGVcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXBcbiAgICAgICAgICAgICpuZ0lmPVwiYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VUeXBlID09PSAyXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlVHlwZSA9PT0gMiA/ICdlcnJvcicgOiAnaW5mb3JtYXRpb24nXCJcbiAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlRXhwcmVzc2lvbiB9fVxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XG4gICAgPC90ZD5cbjwvdHI+XG48dHIgKm5nSWY9XCJ3b3JrZmxvd1N0YXRlPy5lcnJvclRleHRcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXAgdHlwZT1cImVycm9yXCIgW2Rpc21pc3NpYmxlXT1cInRydWVcIiAob25EaXNtaXNzKT1cInJlc2V0V29ya2Zsb3dTdGF0ZS5lbWl0KClcIj5cbiAgICAgICAgICAgIHt7IHdvcmtmbG93U3RhdGUuZXJyb3JUZXh0IH19XG4gICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbiAgICA8L3RkPlxuPC90cj5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb2x1bW5UZW1wbGF0ZVxuICAgIGxldC1jb2x1bW5cbiAgICBsZXQtbW89XCJtb1wiXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiXG4+XG4gICAgPGJzdS1iYXJzYS10YWJsZS1jb2x1bW5cbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbdmFsdWVdPVwiY29sdW1uIHwgY29sdW1uVmFsdWU6IG1vXCJcbiAgICAgICAgW2ljb25dPVwiY29sdW1uIHwgY29sdW1uSWNvbjogbW9cIlxuICAgICAgICBbY3VzdG9tQ29tcG9uZW50XT1cImNvbHVtbi4kQ3VzdG9tQ29tcG9uZW50XCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbZWRpdE1vZGVdPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtsYXlvdXQ5NF09XCJsYXlvdXQ5NFwiXG4gICAgICAgIChzYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUobnVsbClcIlxuICAgICAgICAoY2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbChudWxsKVwiXG4gICAgICAgICh0YWIpPVwib25UYWJLZXlEb3duKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgKGNoYW5nZVRvRWRpdE1vZGUpPVwib25Db2x1bW5DaGFuZ2VUb0VkaXRNb2RlKCRldmVudCwgaW5kZXgpXCJcbiAgICA+XG4gICAgPC9ic3UtYmFyc2EtdGFibGUtY29sdW1uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc3RhdHVzSW5kaWNhdG9yPlxuICAgIDxic3UtYmFyc2EtY29sdW1uLWluZGljYXRvclxuICAgICAgICBbaGlkZUJvcmRlckJvdHRvbV09XCIhZGV0YWlsc0NvbGxhcHNlZFwiXG4gICAgICAgICpuZ0lmPVwicm93SW5kaWNhdG9yXCJcbiAgICAgICAgW2JhY2tDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgPlxuICAgIDwvYnN1LWJhcnNhLWNvbHVtbi1pbmRpY2F0b3I+XG48L25nLXRlbXBsYXRlPlxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLXJvdy9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtcm93L2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBK0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTakgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQVB0RTs7UUFRYSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0tBZTNCO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDM0IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQzNDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxLQUFoQixJQUFJLENBQUMsV0FBVyxHQUFLLFNBQVMsRUFBQztJQUNuQyxDQUFDO0lBQ0QsWUFBWTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7O21IQXRCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwwT0FIcEIsQ0FBQyxnQkFBZ0IsQ0FBQyxxTENSakMsdXVjQTBYQTsyRkQvV2Esc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixhQUdwQixDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDMkMsZ0JBQWdCO3NCQUFoRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vRm9yUmVwb3J0TW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSwgRWpyYXlPbGdvLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1yb3cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVSb3dDb21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgc2hvd0RldGFpbHNJblJvdyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRldGFpbHNDb21wb25lbnQ/OiBFanJheU9sZ287XG4gICAgQElucHV0KCkgZGV0YWlsc0NvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBASW5wdXQoKSBkZXRhaWxzVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbHVtbkNvbXBvbmVudHM6IE1vRm9yUmVwb3J0TW9kZWwgfCBudWxsO1xuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbHNGb3JtSXRlbXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkZXRhaWxzRm9ybUl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZGV0YWlsc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgZGV0YWlsc0NvbXBvbmVudFNldHRpbmc6IGFueTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5kZXRhaWxzQ29tcG9uZW50U2V0dGluZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2V0dGluZyxcbiAgICAgICAgICAgICRkZXRhaWxzQ29sdW1uczogdGhpcy5kZXRhaWxzQ29sdW1ucyxcbiAgICAgICAgICAgICRkZXRhaWxzRm9ybUl0ZW1zOiB0aGlzLmRldGFpbHNGb3JtSXRlbXNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXRhaWxzVGV4dCB8fD0gJ0RldGFpbHMnO1xuICAgIH1cbiAgICBvblJvd0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGV0YWlsc0NvbGxhcHNlZCA9ICF0aGlzLmRldGFpbHNDb2xsYXBzZWQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHRyXG4gICAgW2NsYXNzLnJvdy1lcnJvcl09XCJoYXNFcnJvclwiXG4gICAgW2NsYXNzLnNob3dkZXRhaWxzLW9uXT1cIiFkZXRhaWxzQ29sbGFwc2VkXCJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwiKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW2FjdGl2YWJsZV09XCJmYWxzZVwiXG4gICAgW2hvdmVyYWJsZV09XCJmYWxzZVwiXG4gICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgW2hvc3RFbF09XCJ0ckVsXCJcbiAgICBbbWFpbl09XCJ0cnVlXCJcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcbiAgICBbZm9jdXNhYmxlXT1cIiFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBbY2xhc3MuYnJ1bGUtbWVzc2FnZV09XCJicnVsZUFjdGlvbk1lc3NhZ2UgfHwgd29ya2Zsb3dTdGF0ZT8uZXJyb3JUZXh0XCJcbiAgICBbY2xhc3Mud29ya2Zsb3ctcGVuZGluZ109XCJ3b3JrZmxvd1N0YXRlPy5zdGF0ZSA9PT0gJ1BlbmRpbmcnXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW8uJEdyb3VwIHx8IG1vLiRHcm91cCA9PT0gJyc7IGVsc2UgcmVuZGVyUm93XCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwicnRsID8gJ2NhbGMoIDFyZW0gKyAnICsgbGV2ZWwgKiAxMiArICdweCcgKyAnICknIDogJ2luaGVyaXQnXCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiIXJ0bCA/ICdjYWxjKCAxcmVtICsgJyArIGxldmVsICogMTIgKyAncHgnICsgJyApJyA6ICdpbmhlcml0J1wiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDFyZW1cIlxuICAgICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJcbiAgICAgICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAgICAgMSArXG4gICAgICAgICAgICAgICAgKHJvd0luZGljYXRvciA/IC0xIDogMCkgK1xuICAgICAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgICAgIChzaG93Vmlld0J1dHRvbiA/IDEgOiAwKSArXG4gICAgICAgICAgICAgICAgKHNob3dEZXRhaWxzSW5Sb3cgJiYgIWlubGluZUVkaXRNb2RlID8gMSA6IDApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJyb3ctZ3JvdXBcIlxuICAgICAgICAgICAgW2NsYXNzLm1vYmlsZS1tb2RlXT1cInNlY29uZGFyeUNvbHVtbnM/Lmxlbmd0aFwiXG4gICAgICAgICAgICBbYXR0ci5sZXZlbF09XCJsZXZlbFwiXG4gICAgICAgICAgICBbY2xhc3Mucm9vdC1ncm91cF09XCJsZXZlbCA9PT0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJleHBhbmRlZCAhPT0gZmFsc2UgPyAnbmF2aWdhdGlvbi1kb3duLWFycm93JyA6ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNlbGwtZXhwYW5kXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRDbGljaygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIHt7IG1vLiRHcm91cCB9fVxuICAgICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVuZGVyUm93PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiaXNDaGVja0xpc3RcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIndvcmtmbG93U3RhdGU/LnN0YXRlID09PSAnUGVuZGluZydcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyB0b3A6IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxic3UtbWFzayBbdG9wXT1cIicyMHB4J1wiIFtzaXplXT1cIidzJ1wiPjwvYnN1LW1hc2s+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGZkLWNoZWNrYm94IFtuYW1lXT1cIm1vLiRDYXB0aW9uXCIgW25nTW9kZWxdPVwiaXNDaGVja2VkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dDaGVjaygpXCI+PC9mZC1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiFpc0NoZWNrTGlzdCAmJiBvblJvd0NoZWNrKClcIlxuICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXQgJiYgKGhhc0Vycm9yIHx8IHNhdmluZyB8fCBzYXZlZCk7IGVsc2UgaWNvblN0YXRlVGVtcGxhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwiaGFzRXJyb3JcIiBjbGFzcz1cInNhdmUtZXJyb3JcIiBnbHlwaD1cImVycm9yXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgIDxmZC1idXN5LWluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNhdmluZ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIncydcIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInJlY29yZCBzYXZpbmdcIlxuICAgICAgICAgICAgICAgID48L2ZkLWJ1c3ktaW5kaWNhdG9yPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwic2F2ZWRcIiBjbGFzcz1cInNhdmUtc3VjY2Vzc1wiIGdseXBoPVwiYWNjZXB0XCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25TdGF0ZVRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwibW8uJFN0YXRlID09PSAnTmV3JyAmJiAhaXNDaGVja2VkXCIgZ2x5cGg9XCJmYXZvcml0ZVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdCAmJiBpc0NoZWNrZWRcIiBnbHlwaD1cImVkaXRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKHJvd0luZGljYXRvciAmJiBjb2x1bW5JbmRleCA+IDApIHx8ICFyb3dJbmRpY2F0b3JcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRiTmFtZV09XCJjb2x1bW4uTmFtZVwiXG4gICAgICAgICAgICAgICAgI3RkRWxcbiAgICAgICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW2hvc3RFbF09XCJ0ZEVsXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgICAgICBbZm9jdXNhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiIWlzQ2hlY2tMaXN0ICYmICEoaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0KSAmJiBvblJvd0NoZWNrKClcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIFtob3ZlcmFibGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3M9XCJjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcz8ubGVuZ3RoICYmICghaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdClcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgID48L2JzdS11bHYtY29udGV4dC1tZW51PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGRcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWRldGFpbHNcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICAgICAgW2ZpdENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEZXRhaWxzSW5Sb3cgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8IGNhcnRhYmxlUGFyYW1zPy5tb0lkXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGRldGFpbHNDb2xsYXBzZWQgPyBkZXRhaWxzVGV4dCA6ICdIaWRlJykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93RGV0YWlscygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBjbGFzcz1cImNvbC12aWV3XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZU9wZW5JY29uICYmIGNhblZpZXcgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3RyPlxuXG48dHJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwic2Vjb25kYXJ5Q29sdW1ucz8ubGVuZ3RoICYmICFtby4kR3JvdXAgJiYgKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW3NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBjbGFzcz1cInNlY29uZGFyeS1yb3dcIlxuICAgIFtjbGFzcy5uby1lZGl0LW1vZGVdPVwiIWlubGluZUVkaXRNb2RlXCJcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICBbaG9zdEVsXT1cInRyRWxcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkICYmICFpbmxpbmVFZGl0TW9kZSA/IHRydWUgOiBmYWxzZVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCIgKm5nSWY9XCIhaXNDaGVja0xpc3RcIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCI+PC90ZD5cbiAgICA8dGQgZmQtdGFibGUtY2VsbCBjb2xzcGFuPVwiMTAwJVwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAgICNwRWxcbiAgICAgICAgICAgIGZkLXRhYmxlLXRleHRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc2Vjb25kYXJ5Q29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5Q29sdW1uXCJcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJwRWxcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWw+e3sgY29sdW1uLkNhcHRpb24gfX0gOjwvbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9wPlxuICAgIDwvdGQ+XG48L3RyPlxuPHRyICpuZ0lmPVwiIWRldGFpbHNDb2xsYXBzZWQgJiYgY2FydGFibGVQYXJhbXM/Lm1vSWRcIiBmZC10YWJsZS1yb3cgY2xhc3M9XCJzaG93ZGV0YWlsc1wiIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICAoY2xpY2spPVwib25Sb3dDaGVjaygpXCJcbiAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIlxuICAgICAgICAgICAgY29sdW1ucy5sZW5ndGggK1xuICAgICAgICAgICAgMSArXG4gICAgICAgICAgICAocm93SW5kaWNhdG9yID8gLTEgOiAwKSArXG4gICAgICAgICAgICAoY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPyAxIDogMCkgK1xuICAgICAgICAgICAgKGNhblZpZXcgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dEZXRhaWxzSW5Sb3cgPyAxIDogMClcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICA8Ym5yYy1mb3JtXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIk9uQ2FydGFibGVGb3JtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJ0YWJsZS10ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3BhcmFtc109XCJjYXJ0YWJsZVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgKGZvcm1DbG9zZSk9XCJvbkNhcnRhYmxlRm9ybUNsb3NlZCgpXCJcbiAgICAgICAgICAgID48L2JucmMtZm9ybT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90ZD5cbjwvdHI+XG48dHJcbiAgICAqbmdJZj1cIiFkZXRhaWxzQ29sbGFwc2VkICYmIGRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yXCJcbiAgICBmZC10YWJsZS1yb3dcbiAgICBjbGFzcz1cInNob3dkZXRhaWxzXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzQ2hlY2tlZFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbHNDb2x1bW5zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNDb21wb25lbnQgJiYgZGV0YWlsc0NvbXBvbmVudC5TZWxlY3RvclwiPlxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgW1Vsdk1haW5DdHJscl09XCJVbHZNYWluQ3RybHJcIlxuICAgICAgICAgICAgICAgIFtzZXR0aW5nXT1cImRldGFpbHNDb21wb25lbnRTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbcGFyYW1ldGVyc109XCJkZXRhaWxzQ29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW3R5cGVEZWZJZF09XCJ0eXBlRGVmSWRcIlxuICAgICAgICAgICAgPjwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RkPlxuPC90cj5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlsc0NvbHVtbnNUZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBkZXRhaWxzRm9ybUl0ZW1zO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGV0YWlsc0NvbHVtbnMsXG4gICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JFxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2RldGFpbHNGb3JtSXRlbXMgbGV0LWRldGFpbHNDb2x1bW5zIGxldC1tbz1cIm1vXCIgbGV0LWlubGluZUVkaXRNb2RlPVwiaW5saW5lRWRpdE1vZGVcIiBsZXQtbGF5b3V0JD1cImxheW91dCRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pdGVtc1wiPlxuICAgICAgICA8ZGl2IGZkLWZvcm0taXRlbSAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGRldGFpbHNDb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgZm9yPVwiaW5wdXQtMlwiPnt7IGNvbHVtbi5DYXB0aW9uIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogY29sdW1uSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmVFZGl0TW9kZTogaW5saW5lRWRpdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48dHIgKm5nSWY9XCJicnVsZUFjdGlvbk1lc3NhZ2UgJiYgaW5saW5lRWRpdE1vZGVcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXBcbiAgICAgICAgICAgICpuZ0lmPVwiYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VUeXBlID09PSAyXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlVHlwZSA9PT0gMiA/ICdlcnJvcicgOiAnaW5mb3JtYXRpb24nXCJcbiAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlRXhwcmVzc2lvbiB9fVxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XG4gICAgPC90ZD5cbjwvdHI+XG48dHIgKm5nSWY9XCJ3b3JrZmxvd1N0YXRlPy5lcnJvclRleHRcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZFxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArXG4gICAgICAgICAgICAxICtcbiAgICAgICAgICAgIChyb3dJbmRpY2F0b3IgPyAtMSA6IDApICtcbiAgICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGUgPyAxIDogMCkgK1xuICAgICAgICAgICAgKHNob3dWaWV3QnV0dG9uID8gMSA6IDApICtcbiAgICAgICAgICAgIChzaG93RGV0YWlsc0luUm93ICYmICFpbmxpbmVFZGl0TW9kZSA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXAgdHlwZT1cImVycm9yXCIgW2Rpc21pc3NpYmxlXT1cInRydWVcIiAob25EaXNtaXNzKT1cInJlc2V0V29ya2Zsb3dTdGF0ZS5lbWl0KClcIj5cbiAgICAgICAgICAgIHt7IHdvcmtmbG93U3RhdGUuZXJyb3JUZXh0IH19XG4gICAgICAgIDwvZmQtbWVzc2FnZS1zdHJpcD5cbiAgICA8L3RkPlxuPC90cj5cbjxuZy10ZW1wbGF0ZVxuICAgICNjb2x1bW5UZW1wbGF0ZVxuICAgIGxldC1jb2x1bW5cbiAgICBsZXQtbW89XCJtb1wiXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1pbmxpbmVFZGl0TW9kZT1cImlubGluZUVkaXRNb2RlXCJcbiAgICBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiXG4+XG4gICAgPGJzdS1iYXJzYS10YWJsZS1jb2x1bW5cbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbdmFsdWVdPVwiY29sdW1uIHwgY29sdW1uVmFsdWU6IG1vXCJcbiAgICAgICAgW2ljb25dPVwiY29sdW1uIHwgY29sdW1uSWNvbjogbW9cIlxuICAgICAgICBbY3VzdG9tQ29tcG9uZW50XT1cImNvbHVtbi4kQ3VzdG9tQ29tcG9uZW50XCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbZWRpdE1vZGVdPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFtpbmxpbmVFZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtsYXlvdXQ5NF09XCJsYXlvdXQ5NFwiXG4gICAgICAgIChzYXZlKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUobnVsbClcIlxuICAgICAgICAoY2FuY2VsKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbChudWxsKVwiXG4gICAgICAgICh0YWIpPVwib25UYWJLZXlEb3duKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgKGNoYW5nZVRvRWRpdE1vZGUpPVwib25Db2x1bW5DaGFuZ2VUb0VkaXRNb2RlKCRldmVudCwgaW5kZXgpXCJcbiAgICA+XG4gICAgPC9ic3UtYmFyc2EtdGFibGUtY29sdW1uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc3RhdHVzSW5kaWNhdG9yPlxuICAgIDxic3UtYmFyc2EtY29sdW1uLWluZGljYXRvclxuICAgICAgICBbaGlkZUJvcmRlckJvdHRvbV09XCIhZGV0YWlsc0NvbGxhcHNlZFwiXG4gICAgICAgICpuZ0lmPVwicm93SW5kaWNhdG9yXCJcbiAgICAgICAgW2JhY2tDb2xvcl09XCJyb3dJbmRpY2F0b3JDb2xvclwiXG4gICAgPlxuICAgIDwvYnN1LWJhcnNhLWNvbHVtbi1pbmRpY2F0b3I+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -22,8 +22,8 @@ export class FileInDialogComponent extends BaseComponent {
22
22
  data: { link: this._domSanitize.bypassSecurityTrustResourceUrl(link) },
23
23
  fullscreen: true,
24
24
  mobile: this.deviceSize === 's',
25
- width: '100vw',
26
- height: '100vh',
25
+ width: this.deviceSize === 's' ? '100%' : '100vw',
26
+ height: this.deviceSize === 's' ? '100%' : '100vh',
27
27
  resizable: false
28
28
  };
29
29
  this._dialogService.open(this.dialogTemplate, dialogConfig).afterClosed.subscribe(() => {
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
41
41
  type: ViewChild,
42
42
  args: [TemplateRef, { static: true }]
43
43
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS1pbi1kaWFsb2cvZmlsZS1pbi1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS1pbi1kaWFsb2cvZmlsZS1pbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25HLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFpQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFROUUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUFHcEQsWUFDWSxjQUE2QixFQUM3QixZQUEwQixFQUMxQixjQUE2QjtRQUVyQyxLQUFLLEVBQUUsQ0FBQztRQUpBLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBR3JDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvRCxNQUFNLFlBQVksR0FBRztnQkFDakIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RFLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsS0FBSyxHQUFHO2dCQUMvQixLQUFLLEVBQUUsT0FBTztnQkFDZCxNQUFNLEVBQUUsT0FBTztnQkFDZixTQUFTLEVBQUUsS0FBSzthQUNuQixDQUFDO1lBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDbkYsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztJQUNOLENBQUM7O2tIQTdCUSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwwR0FDbkIsV0FBVyxxRkNaMUIsdWhCQVdBOzJGREFhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTsySkFHTCxjQUFjO3NCQUF2RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBCYXJzYUFwaSwgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtZmlsZS1pbi1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtaW4tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtaW4tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZUluRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KSBkaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIGRldmljZVNpemU6IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZG9tU2FuaXRpemU6IERvbVNhbml0aXplcixcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQuc3Vic2NyaWJlKChkZXZpY2VTaXplKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGV2aWNlU2l6ZSA9IGRldmljZVNpemU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBCYXJzYUFwaS5Db21tb24uRmlsZS5PcGVuSW5EaWFsb2cgPSAobGluaywgY2xvc2VDYWxsQmFjaywgc2NvcGUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZGlhbG9nQ29uZmlnID0ge1xyXG4gICAgICAgICAgICAgICAgZGF0YTogeyBsaW5rOiB0aGlzLl9kb21TYW5pdGl6ZS5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwobGluaykgfSxcclxuICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW46IHRydWUsXHJcbiAgICAgICAgICAgICAgICBtb2JpbGU6IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDB2dycsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDB2aCcsXHJcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IGZhbHNlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ1RlbXBsYXRlLCBkaWFsb2dDb25maWcpLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjbG9zZUNhbGxCYWNrLmNhbGwoc2NvcGUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjZGlhbG9nVGVtcGxhdGU+XHJcbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cclxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygnQ2xvc2UgYnV0dG9uJylcIj48L2J1dHRvbj5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XHJcblxyXG4gICAgICAgIDxmZC1kaWFsb2ctYm9keT5cclxuICAgICAgICAgICAgPGlmcmFtZSBbc3JjXT1cImRpYWxvZ0NvbmZpZy5saW5rXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZVwiPjwvaWZyYW1lPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XHJcbiAgICA8L2ZkLWRpYWxvZz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS1pbi1kaWFsb2cvZmlsZS1pbi1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS1pbi1kaWFsb2cvZmlsZS1pbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25HLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFpQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFROUUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUFHcEQsWUFDWSxjQUE2QixFQUM3QixZQUEwQixFQUMxQixjQUE2QjtRQUVyQyxLQUFLLEVBQUUsQ0FBQztRQUpBLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBR3JDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvRCxNQUFNLFlBQVksR0FBRztnQkFDakIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RFLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsS0FBSyxHQUFHO2dCQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztnQkFDakQsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQ2xELFNBQVMsRUFBRSxLQUFLO2FBQ25CLENBQUM7WUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNuRixhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7a0hBN0JRLHFCQUFxQjtzR0FBckIscUJBQXFCLDBHQUNuQixXQUFXLHFGQ1oxQix1aEJBV0E7MkZEQWEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNJLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNOzJKQUdMLGNBQWM7c0JBQXZELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhcnNhQXBpLCBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1maWxlLWluLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtaW4tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlLWluLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVJbkRpYWxvZ0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pIGRpYWxvZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGRldmljZVNpemU6IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfZG9tU2FuaXRpemU6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnN1YnNjcmliZSgoZGV2aWNlU2l6ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXZpY2VTaXplID0gZGV2aWNlU2l6ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIEJhcnNhQXBpLkNvbW1vbi5GaWxlLk9wZW5JbkRpYWxvZyA9IChsaW5rLCBjbG9zZUNhbGxCYWNrLCBzY29wZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGlhbG9nQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIGRhdGE6IHsgbGluazogdGhpcy5fZG9tU2FuaXRpemUuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGxpbmspIH0sXG4gICAgICAgICAgICAgICAgZnVsbHNjcmVlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtb2JpbGU6IHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLmRldmljZVNpemUgPT09ICdzJyA/ICcxMDAlJyA6ICcxMDB2dycsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmRldmljZVNpemUgPT09ICdzJyA/ICcxMDAlJyA6ICcxMDB2aCcsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ1RlbXBsYXRlLCBkaWFsb2dDb25maWcpLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xvc2VDYWxsQmFjay5jYWxsKHNjb3BlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjZGlhbG9nVGVtcGxhdGU+XHJcbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cclxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJkaWFsb2cuZGlzbWlzcygnQ2xvc2UgYnV0dG9uJylcIj48L2J1dHRvbj5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XHJcblxyXG4gICAgICAgIDxmZC1kaWFsb2ctYm9keT5cclxuICAgICAgICAgICAgPGlmcmFtZSBbc3JjXT1cImRpYWxvZ0NvbmZpZy5saW5rXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZVwiPjwvaWZyYW1lPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XHJcbiAgICA8L2ZkLWRpYWxvZz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19