barsa-sap-ui 2.2.46 → 2.2.48

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.
@@ -103,11 +103,11 @@ export class FundamentalDynamicFormComponent extends BaseComponent {
103
103
  this.layout2 = GetFormLayoutGrid(false, this.colXl, this.colLg, this.colMd);
104
104
  }
105
105
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FundamentalDynamicFormComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-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", circleAvatar: "circleAvatar", rtl: "rtl", hideFooter: "hideFooter", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", fullscreen: "fullscreen", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", formVisibilityStatus: "formVisibilityStatus", layoutGridCol: "layoutGridCol", colLg: "colLg", colXl: "colXl", colMd: "colMd", footerDesign: "footerDesign", formContentMaxWidth: "formContentMaxWidth", workflowButtons: "workflowButtons" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close", fullscreenRequest: "fullscreenRequest" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true, static: true }, { 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: "@if (mask) {\r\n<div style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\r\n <bsu-mask size=\"m\"></bsu-mask>\r\n</div>\r\n}\r\n\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [ngClass]=\"{ 'floating-footer': footerDesign === 'floating-footer' }\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.isMobile]=\"isMobile\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n mobile\r\n formClose\r\n [isMobile]=\"isMobile\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n [class.no-toolbar-items]=\"!(toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter)?.length\"\r\n #titleRef\r\n >\r\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\r\n <fd-breadcrumb>\r\n @if (breadCrumbs && !isMobile) { @for (breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track\r\n breadCrumb.url; let i = $index; let last = $last) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n\r\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\r\n <!-- added this because in mobile landscape toolbar disapper -->\r\n @if (toolbarVisible) {\r\n <bsu-form-toolbar\r\n [deviceSize]=\"deviceSize\"\r\n [buttons]=\"toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter\"\r\n [dirValue]=\"dirValue\"\r\n [isFirefox]=\"isFirefox\"\r\n (toolbarClick)=\"toolbarClick.emit($event)\"\r\n #formToolbar\r\n ></bsu-form-toolbar>\r\n }\r\n </fd-dynamic-page-global-actions>\r\n <fd-dynamic-page-layout-actions>\r\n <!-- layout actions -->\r\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\r\n @if (!hideClose) {\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n @if (deviceSize !== 's') {\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n }\r\n <ng-container *ngTemplateOutlet=\"fullscreenForm\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"closeForm\"></ng-container>\r\n </fd-toolbar>\r\n }\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n @if (description || facetList.length > 0 || workflowInfoText || avatar) {}\r\n <fd-dynamic-page-subheader\r\n [class.header-no-description]=\"!(description || workflowInfoText)\"\r\n [class.no-pin]=\"hidePin || (!facetList?.length && !workflowInfoText)\"\r\n [collapsible]=\"true\"\r\n [pinnable]=\"false\"\r\n [collapsed]=\"!facetList?.length && !workflowInfoText\"\r\n >\r\n @if (workflowInfoText) {\r\n <fd-message-strip [type]=\"'warning'\" [dismissible]=\"false\">\r\n {{ workflowInfoText | bbbTranslate }}\r\n </fd-message-strip>\r\n }\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n @if (avatar) {\r\n <fd-facet type=\"image\">\r\n <fd-avatar\r\n title=\"avatar\"\r\n [glyph]=\"avatar\"\r\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\r\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\r\n [transparent]=\"true\"\r\n [circle]=\"circleAvatar\"\r\n ></fd-avatar>\r\n <!-- <div\r\n class=\"fd-avatar fd-avatar--circle\"\r\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\r\n >\r\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\r\n </div> -->\r\n </fd-facet>\r\n } @for (facet of facetList; track facet) {\r\n <fd-facet\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n @for (item of facet.mo.ItemList?.MoDataList; track item) {\r\n <fd-facet-content>\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\r\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\r\n </fd-facet-content>\r\n } @if ( !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector) {\r\n <span\r\n fd-object-status\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [title]=\"facet.mo.Text | facetValue\"\r\n [aria-label]=\"facet.mo.Text | facetValue\"\r\n [glyph]=\"facet.mo.Icon\"\r\n >\r\n </span>\r\n } @else {\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status fd-object-status--' + facet.mo.Status | facetValue\"\r\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\r\n [component]=\"facet.mo.Component\"\r\n [value]=\"facet.mo.Text\"\r\n ></bnrc-dynamic-component>\r\n } @if (facet.mo.IsNumber && facet.type === 'key-value') {\r\n <fd-object-number\r\n [number]=\"facet.mo.Text | facetValue\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [unit]=\"facet.mo.Unit | facetValue\"\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [decimal]=\"facet.mo.DecimalValue | facetValue\"\r\n ></fd-object-number>\r\n } @if (facet.type === 'plain-text') {\r\n <div [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\r\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\r\n </div>\r\n } @if (facet.type === 'rating-indicator') {\r\n <fd-facet-content>\r\n <fd-rating-indicator\r\n style=\"pointer-events: none\"\r\n size=\"md\"\r\n [dynamicTextIndicator]=\"facet.mo.Footer\"\r\n [displayMode]=\"true\"\r\n [value]=\"facet.mo | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n } @if (facet.type === 'progress') {\r\n <div [style.width]=\"'10rem'\">\r\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\r\n <fd-progress-indicator\r\n style=\"width: 10r em\"\r\n [state]=\"facet.mo.State\"\r\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\r\n [valueNow]=\"facet.mo | facetValue: facet.type\"\r\n [valueMax]=\"10\"\r\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\r\n ></fd-progress-indicator>\r\n <!-- <ui5-progress-indicator\r\n style=\"width: 10rem\"\r\n [valueState]=\"facet.mo.State\"\r\n [value]=\"getNumber(facet.mo.Value)\"\r\n ></ui5-progress-indicator> -->\r\n </div>\r\n } @if (facet.type === 'microcharts') {\r\n <div>\r\n <label wrap>in progress ...</label>\r\n </div>\r\n }\r\n </fd-facet>\r\n }\r\n </fd-facet-group>\r\n @if (description) {\r\n <span>{{ description }}</span>\r\n }\r\n </fd-dynamic-page-subheader>\r\n @if(!modernTabs.length && !contentIsPage){\r\n <fd-dynamic-page-content [class.limit-content-width]=\"formContentMaxWidth > 0\" cdkScrollable>\r\n <fd-layout-grid style=\"min-height: 100%\" [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div style=\"min-height: 100%\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n } @else if(modernTabs.length && !contentIsPage && !parameters?.LayoutComponent){\r\n <fdp-icon-tab-bar [stackContent]=\"false\" [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\r\n @for (tab of modernTabs; track tab.Title; let i = $index) {\r\n\r\n <fdp-icon-tab-bar-tab\r\n [id]=\"tab.id\"\r\n [label]=\"tab.Title!! | bbbTranslate\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [class.is-expanded]=\"selectedTab === tab.Title\"\r\n #tablist\r\n >\r\n <fd-dynamic-page-content [id]=\"tab.id\" [class.limit-content-width]=\"formContentMaxWidth > 0\">\r\n <fd-layout-grid [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <bsu-ly-tab-page [config]=\"tab\"></bsu-ly-tab-page>\r\n </div>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n </fdp-icon-tab-bar-tab>\r\n }\r\n </fdp-icon-tab-bar>\r\n } @if(!hideFooter && hasLayoutButtons){\r\n <fd-dynamic-page-footer>\r\n <ng-container *ngTemplateOutlet=\"layoutActionsTemplateRef\"></ng-container>\r\n </fd-dynamic-page-footer>\r\n }\r\n</fd-dynamic-page>\r\n@if (contentIsPage) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n renderLayoutComponent;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n></ng-container>\r\n}\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [layoutActionsTemplateRef]=\"layoutActionsTemplateRef\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [footerDesign]=\"footerDesign\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n<ng-template #closeForm>\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n</ng-template>\r\n<ng-template #fullscreenForm>\r\n @if (canFullscreen) {\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [attr.aria-label]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n (click)=\"fullscreenRequest.emit()\"\r\n [title]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\r\n ></button>\r\n }\r\n</ng-template>\r\n<ng-template #layoutActionsTemplateRef>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [isMobile]=\"isMobile\"\r\n [landscape]=\"landscape\"\r\n [standalone]=\"standalone\"\r\n [footerDesign]=\"footerDesign\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode || worfklowButtonsOnFooter\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"toolbarClick.emit($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;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}.no-toolbar-items ::ng-deep .fd-dynamic-page__toolbar-container{width:auto}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%;overflow:hidden}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded bsu-ly-layout-container-of-root{min-height:100%}fd-dynamic-page ::ng-deep>article>.fd-scrollbar{height:inherit}fd-dynamic-page fd-dynamic-page-content.limit-content-width{display:flex;justify-content:center}fd-facet{display:flex;flex-direction:column}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container,.no-pin ::ng-deep .fd-dynamic-page__collapsible-header{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.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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", "layoutActionsTemplateRef", "workflowButtons", "layout94", "footerDesign", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i2.BaseDynamicComponent, selector: "bnrc-dynamic-component", inputs: ["component", "value"], outputs: ["events"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i4.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i5.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i5.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i7.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i7.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i7.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i7.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i7.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i7.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i7.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i8.FacetComponent, selector: "fd-facet", inputs: ["type", "facetTitle", "subtitle", "headingLevel", "id", "alignEnd"] }, { kind: "component", type: i8.FacetGroupComponent, selector: "fd-facet-group", inputs: ["ariaLabel"] }, { kind: "component", type: i8.FacetContentComponent, selector: "fd-facet-content" }, { kind: "component", type: i9.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i11.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "component", type: i12.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i13.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i14.RatingIndicatorComponent, selector: "fd-rating-indicator", inputs: ["class", "name", "ariaLabel", "ariaLabelledBy", "disabled", "displayMode", "nonInteractive", "indicatorCapacity", "allowHalves", "value", "totalRatings", "ratingAverage", "ratings", "displayAllRatings", "ratedIcon", "unratedIcon", "size", "dynamicTextIndicator"], outputs: ["ratingChanged"] }, { kind: "component", type: i15.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i16.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i16.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: i17.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "component", type: i18.IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }, { kind: "component", type: i18.IconTabBarTabComponent, selector: "fdp-icon-tab-bar-tab", inputs: ["label", "color", "icon", "iconFont", "counter", "active", "badge", "closable", "id"] }, { kind: "component", type: i19.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i20.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i21.LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems", "tablist"] }, { kind: "component", type: i22.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "component", type: i23.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "component", type: i24.FormToolbarComponent, selector: "bsu-form-toolbar", outputs: ["toolbarClick"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.HeaderFacetValuePipe, name: "facetValue" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.FilterWorkflowInMobilePipe, name: "filterWorkflowInMobile" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-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", circleAvatar: "circleAvatar", rtl: "rtl", hideFooter: "hideFooter", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", fullscreen: "fullscreen", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", formVisibilityStatus: "formVisibilityStatus", layoutGridCol: "layoutGridCol", colLg: "colLg", colXl: "colXl", colMd: "colMd", footerDesign: "footerDesign", formContentMaxWidth: "formContentMaxWidth", workflowButtons: "workflowButtons" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close", fullscreenRequest: "fullscreenRequest" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true, static: true }, { 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: "@if (mask) {\r\n<div style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\r\n <bsu-mask size=\"m\"></bsu-mask>\r\n</div>\r\n}\r\n\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [ngClass]=\"{ 'floating-footer': footerDesign === 'floating-footer' }\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.isMobile]=\"isMobile\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n mobile\r\n formClose\r\n [isMobile]=\"isMobile\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n [class.no-toolbar-items]=\"!(toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter)?.length\"\r\n #titleRef\r\n >\r\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\r\n <fd-breadcrumb>\r\n @if (breadCrumbs && !isMobile) { @for (breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track\r\n breadCrumb.url; let i = $index; let last = $last) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n\r\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\r\n <!-- added this because in mobile landscape toolbar disapper -->\r\n @if (toolbarVisible) {\r\n <bsu-form-toolbar\r\n [deviceSize]=\"deviceSize\"\r\n [buttons]=\"toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter\"\r\n [dirValue]=\"dirValue\"\r\n [isFirefox]=\"isFirefox\"\r\n (toolbarClick)=\"toolbarClick.emit($event)\"\r\n #formToolbar\r\n ></bsu-form-toolbar>\r\n }\r\n </fd-dynamic-page-global-actions>\r\n <fd-dynamic-page-layout-actions>\r\n <!-- layout actions -->\r\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\r\n @if (!hideClose) {\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n @if (deviceSize !== 's') {\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n }\r\n <ng-container *ngTemplateOutlet=\"fullscreenForm\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"closeForm\"></ng-container>\r\n </fd-toolbar>\r\n }\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n @if (description || facetList.length > 0 || workflowInfoText || avatar) {}\r\n <fd-dynamic-page-subheader\r\n [class.header-no-description]=\"!(description || workflowInfoText)\"\r\n [class.no-pin]=\"hidePin || (!facetList?.length && !workflowInfoText)\"\r\n [collapsible]=\"true\"\r\n [pinnable]=\"false\"\r\n [collapsed]=\"!facetList?.length && !workflowInfoText\"\r\n >\r\n @if (workflowInfoText) {\r\n <fd-message-strip [type]=\"'warning'\" [dismissible]=\"false\">\r\n {{ workflowInfoText | bbbTranslate }}\r\n </fd-message-strip>\r\n }\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n @if (avatar) {\r\n <fd-facet type=\"image\">\r\n <fd-avatar\r\n title=\"avatar\"\r\n [glyph]=\"avatar\"\r\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\r\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\r\n [transparent]=\"true\"\r\n [circle]=\"circleAvatar\"\r\n ></fd-avatar>\r\n <!-- <div\r\n class=\"fd-avatar fd-avatar--circle\"\r\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\r\n >\r\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\r\n </div> -->\r\n </fd-facet>\r\n } @for (facet of facetList; track facet) {\r\n <fd-facet\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n @for (item of facet.mo.ItemList?.MoDataList; track item) {\r\n <fd-facet-content>\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\r\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\r\n </fd-facet-content>\r\n } @if ( !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector) {\r\n <span\r\n fd-object-status\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [title]=\"facet.mo.Text | facetValue\"\r\n [aria-label]=\"facet.mo.Text | facetValue\"\r\n [glyph]=\"facet.mo.Icon\"\r\n >\r\n </span>\r\n } @else {\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status fd-object-status--' + facet.mo.Status | facetValue\"\r\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\r\n [component]=\"facet.mo.Component\"\r\n [value]=\"facet.mo.Text\"\r\n ></bnrc-dynamic-component>\r\n } @if (facet.mo.IsNumber && facet.type === 'key-value') {\r\n <fd-object-number\r\n [number]=\"facet.mo.Text | facetValue\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [unit]=\"facet.mo.Unit | facetValue\"\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [decimal]=\"facet.mo.DecimalValue | facetValue\"\r\n ></fd-object-number>\r\n } @if (facet.type === 'plain-text') {\r\n <div [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\r\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\r\n </div>\r\n } @if (facet.type === 'rating-indicator') {\r\n <fd-facet-content>\r\n <fd-rating-indicator\r\n style=\"pointer-events: none\"\r\n size=\"md\"\r\n [dynamicTextIndicator]=\"facet.mo.Footer\"\r\n [displayMode]=\"true\"\r\n [value]=\"facet.mo | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n } @if (facet.type === 'progress') {\r\n <div [style.width]=\"'10rem'\">\r\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\r\n <fd-progress-indicator class=\"facet-progress\"\r\n style=\"width: 10r em\"\r\n [state]=\"facet.mo.State\"\r\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\r\n [valueNow]=\"facet.mo | facetValue: facet.type\"\r\n [valueMax]=\"10\"\r\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\r\n ></fd-progress-indicator>\r\n <!-- <ui5-progress-indicator\r\n style=\"width: 10rem\"\r\n [valueState]=\"facet.mo.State\"\r\n [value]=\"getNumber(facet.mo.Value)\"\r\n ></ui5-progress-indicator> -->\r\n </div>\r\n } @if (facet.type === 'microcharts') {\r\n <div>\r\n <label wrap>in progress ...</label>\r\n </div>\r\n }\r\n </fd-facet>\r\n }\r\n </fd-facet-group>\r\n @if (description) {\r\n <span>{{ description }}</span>\r\n }\r\n </fd-dynamic-page-subheader>\r\n @if(!modernTabs.length && !contentIsPage){\r\n <fd-dynamic-page-content [class.limit-content-width]=\"formContentMaxWidth > 0\" cdkScrollable>\r\n <fd-layout-grid style=\"min-height: 100%\" [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div style=\"min-height: 100%\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n } @else if(modernTabs.length && !contentIsPage && !parameters?.LayoutComponent){\r\n <fdp-icon-tab-bar [stackContent]=\"false\" [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\r\n @for (tab of modernTabs; track tab.Title; let i = $index) {\r\n\r\n <fdp-icon-tab-bar-tab\r\n [id]=\"tab.id\"\r\n [label]=\"tab.Title!! | bbbTranslate\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [class.is-expanded]=\"selectedTab === tab.Title\"\r\n #tablist\r\n >\r\n <fd-dynamic-page-content [id]=\"tab.id\" [class.limit-content-width]=\"formContentMaxWidth > 0\">\r\n <fd-layout-grid [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <bsu-ly-tab-page [config]=\"tab\"></bsu-ly-tab-page>\r\n </div>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n </fdp-icon-tab-bar-tab>\r\n }\r\n </fdp-icon-tab-bar>\r\n } @if(!hideFooter && hasLayoutButtons){\r\n <fd-dynamic-page-footer>\r\n <ng-container *ngTemplateOutlet=\"layoutActionsTemplateRef\"></ng-container>\r\n </fd-dynamic-page-footer>\r\n }\r\n</fd-dynamic-page>\r\n@if (contentIsPage) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n renderLayoutComponent;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n></ng-container>\r\n}\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [layoutActionsTemplateRef]=\"layoutActionsTemplateRef\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [footerDesign]=\"footerDesign\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n<ng-template #closeForm>\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n</ng-template>\r\n<ng-template #fullscreenForm>\r\n @if (canFullscreen) {\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [attr.aria-label]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n (click)=\"fullscreenRequest.emit()\"\r\n [title]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\r\n ></button>\r\n }\r\n</ng-template>\r\n<ng-template #layoutActionsTemplateRef>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [isMobile]=\"isMobile\"\r\n [landscape]=\"landscape\"\r\n [standalone]=\"standalone\"\r\n [footerDesign]=\"footerDesign\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode || worfklowButtonsOnFooter\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"toolbarClick.emit($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .facet-progress .fd-progress-indicator__container,:host ::ng-deep .facet-progress .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.no-toolbar-items ::ng-deep .fd-dynamic-page__toolbar-container{width:auto}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%;overflow:hidden}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded bsu-ly-layout-container-of-root{min-height:100%}fd-dynamic-page ::ng-deep>article>.fd-scrollbar{height:inherit}fd-dynamic-page fd-dynamic-page-content.limit-content-width{display:flex;justify-content:center}fd-facet{display:flex;flex-direction:column}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container,.no-pin ::ng-deep .fd-dynamic-page__collapsible-header{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.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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", "layoutActionsTemplateRef", "workflowButtons", "layout94", "footerDesign", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i2.BaseDynamicComponent, selector: "bnrc-dynamic-component", inputs: ["component", "value"], outputs: ["events"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i4.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i5.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i5.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i7.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i7.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i7.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i7.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i7.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i7.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i7.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i8.FacetComponent, selector: "fd-facet", inputs: ["type", "facetTitle", "subtitle", "headingLevel", "id", "alignEnd"] }, { kind: "component", type: i8.FacetGroupComponent, selector: "fd-facet-group", inputs: ["ariaLabel"] }, { kind: "component", type: i8.FacetContentComponent, selector: "fd-facet-content" }, { kind: "component", type: i9.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i11.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "component", type: i12.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i13.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i14.RatingIndicatorComponent, selector: "fd-rating-indicator", inputs: ["class", "name", "ariaLabel", "ariaLabelledBy", "disabled", "displayMode", "nonInteractive", "indicatorCapacity", "allowHalves", "value", "totalRatings", "ratingAverage", "ratings", "displayAllRatings", "ratedIcon", "unratedIcon", "size", "dynamicTextIndicator"], outputs: ["ratingChanged"] }, { kind: "component", type: i15.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i16.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i16.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: i17.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "component", type: i18.IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }, { kind: "component", type: i18.IconTabBarTabComponent, selector: "fdp-icon-tab-bar-tab", inputs: ["label", "color", "icon", "iconFont", "counter", "active", "badge", "closable", "id"] }, { kind: "component", type: i19.LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: i20.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i21.LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems", "tablist"] }, { kind: "component", type: i22.LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "component", type: i23.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "component", type: i24.FormToolbarComponent, selector: "bsu-form-toolbar", outputs: ["toolbarClick"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.HeaderFacetValuePipe, name: "facetValue" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.FilterWorkflowInMobilePipe, name: "filterWorkflowInMobile" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
107
  }
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FundamentalDynamicFormComponent, decorators: [{
109
109
  type: Component,
110
- args: [{ selector: 'bsu-fundamental-dynamic-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (mask) {\r\n<div style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\r\n <bsu-mask size=\"m\"></bsu-mask>\r\n</div>\r\n}\r\n\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [ngClass]=\"{ 'floating-footer': footerDesign === 'floating-footer' }\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.isMobile]=\"isMobile\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n mobile\r\n formClose\r\n [isMobile]=\"isMobile\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n [class.no-toolbar-items]=\"!(toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter)?.length\"\r\n #titleRef\r\n >\r\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\r\n <fd-breadcrumb>\r\n @if (breadCrumbs && !isMobile) { @for (breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track\r\n breadCrumb.url; let i = $index; let last = $last) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n\r\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\r\n <!-- added this because in mobile landscape toolbar disapper -->\r\n @if (toolbarVisible) {\r\n <bsu-form-toolbar\r\n [deviceSize]=\"deviceSize\"\r\n [buttons]=\"toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter\"\r\n [dirValue]=\"dirValue\"\r\n [isFirefox]=\"isFirefox\"\r\n (toolbarClick)=\"toolbarClick.emit($event)\"\r\n #formToolbar\r\n ></bsu-form-toolbar>\r\n }\r\n </fd-dynamic-page-global-actions>\r\n <fd-dynamic-page-layout-actions>\r\n <!-- layout actions -->\r\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\r\n @if (!hideClose) {\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n @if (deviceSize !== 's') {\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n }\r\n <ng-container *ngTemplateOutlet=\"fullscreenForm\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"closeForm\"></ng-container>\r\n </fd-toolbar>\r\n }\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n @if (description || facetList.length > 0 || workflowInfoText || avatar) {}\r\n <fd-dynamic-page-subheader\r\n [class.header-no-description]=\"!(description || workflowInfoText)\"\r\n [class.no-pin]=\"hidePin || (!facetList?.length && !workflowInfoText)\"\r\n [collapsible]=\"true\"\r\n [pinnable]=\"false\"\r\n [collapsed]=\"!facetList?.length && !workflowInfoText\"\r\n >\r\n @if (workflowInfoText) {\r\n <fd-message-strip [type]=\"'warning'\" [dismissible]=\"false\">\r\n {{ workflowInfoText | bbbTranslate }}\r\n </fd-message-strip>\r\n }\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n @if (avatar) {\r\n <fd-facet type=\"image\">\r\n <fd-avatar\r\n title=\"avatar\"\r\n [glyph]=\"avatar\"\r\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\r\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\r\n [transparent]=\"true\"\r\n [circle]=\"circleAvatar\"\r\n ></fd-avatar>\r\n <!-- <div\r\n class=\"fd-avatar fd-avatar--circle\"\r\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\r\n >\r\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\r\n </div> -->\r\n </fd-facet>\r\n } @for (facet of facetList; track facet) {\r\n <fd-facet\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n @for (item of facet.mo.ItemList?.MoDataList; track item) {\r\n <fd-facet-content>\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\r\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\r\n </fd-facet-content>\r\n } @if ( !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector) {\r\n <span\r\n fd-object-status\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [title]=\"facet.mo.Text | facetValue\"\r\n [aria-label]=\"facet.mo.Text | facetValue\"\r\n [glyph]=\"facet.mo.Icon\"\r\n >\r\n </span>\r\n } @else {\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status fd-object-status--' + facet.mo.Status | facetValue\"\r\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\r\n [component]=\"facet.mo.Component\"\r\n [value]=\"facet.mo.Text\"\r\n ></bnrc-dynamic-component>\r\n } @if (facet.mo.IsNumber && facet.type === 'key-value') {\r\n <fd-object-number\r\n [number]=\"facet.mo.Text | facetValue\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [unit]=\"facet.mo.Unit | facetValue\"\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [decimal]=\"facet.mo.DecimalValue | facetValue\"\r\n ></fd-object-number>\r\n } @if (facet.type === 'plain-text') {\r\n <div [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\r\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\r\n </div>\r\n } @if (facet.type === 'rating-indicator') {\r\n <fd-facet-content>\r\n <fd-rating-indicator\r\n style=\"pointer-events: none\"\r\n size=\"md\"\r\n [dynamicTextIndicator]=\"facet.mo.Footer\"\r\n [displayMode]=\"true\"\r\n [value]=\"facet.mo | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n } @if (facet.type === 'progress') {\r\n <div [style.width]=\"'10rem'\">\r\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\r\n <fd-progress-indicator\r\n style=\"width: 10r em\"\r\n [state]=\"facet.mo.State\"\r\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\r\n [valueNow]=\"facet.mo | facetValue: facet.type\"\r\n [valueMax]=\"10\"\r\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\r\n ></fd-progress-indicator>\r\n <!-- <ui5-progress-indicator\r\n style=\"width: 10rem\"\r\n [valueState]=\"facet.mo.State\"\r\n [value]=\"getNumber(facet.mo.Value)\"\r\n ></ui5-progress-indicator> -->\r\n </div>\r\n } @if (facet.type === 'microcharts') {\r\n <div>\r\n <label wrap>in progress ...</label>\r\n </div>\r\n }\r\n </fd-facet>\r\n }\r\n </fd-facet-group>\r\n @if (description) {\r\n <span>{{ description }}</span>\r\n }\r\n </fd-dynamic-page-subheader>\r\n @if(!modernTabs.length && !contentIsPage){\r\n <fd-dynamic-page-content [class.limit-content-width]=\"formContentMaxWidth > 0\" cdkScrollable>\r\n <fd-layout-grid style=\"min-height: 100%\" [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div style=\"min-height: 100%\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n } @else if(modernTabs.length && !contentIsPage && !parameters?.LayoutComponent){\r\n <fdp-icon-tab-bar [stackContent]=\"false\" [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\r\n @for (tab of modernTabs; track tab.Title; let i = $index) {\r\n\r\n <fdp-icon-tab-bar-tab\r\n [id]=\"tab.id\"\r\n [label]=\"tab.Title!! | bbbTranslate\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [class.is-expanded]=\"selectedTab === tab.Title\"\r\n #tablist\r\n >\r\n <fd-dynamic-page-content [id]=\"tab.id\" [class.limit-content-width]=\"formContentMaxWidth > 0\">\r\n <fd-layout-grid [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <bsu-ly-tab-page [config]=\"tab\"></bsu-ly-tab-page>\r\n </div>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n </fdp-icon-tab-bar-tab>\r\n }\r\n </fdp-icon-tab-bar>\r\n } @if(!hideFooter && hasLayoutButtons){\r\n <fd-dynamic-page-footer>\r\n <ng-container *ngTemplateOutlet=\"layoutActionsTemplateRef\"></ng-container>\r\n </fd-dynamic-page-footer>\r\n }\r\n</fd-dynamic-page>\r\n@if (contentIsPage) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n renderLayoutComponent;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n></ng-container>\r\n}\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [layoutActionsTemplateRef]=\"layoutActionsTemplateRef\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [footerDesign]=\"footerDesign\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n<ng-template #closeForm>\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n</ng-template>\r\n<ng-template #fullscreenForm>\r\n @if (canFullscreen) {\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [attr.aria-label]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n (click)=\"fullscreenRequest.emit()\"\r\n [title]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\r\n ></button>\r\n }\r\n</ng-template>\r\n<ng-template #layoutActionsTemplateRef>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [isMobile]=\"isMobile\"\r\n [landscape]=\"landscape\"\r\n [standalone]=\"standalone\"\r\n [footerDesign]=\"footerDesign\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode || worfklowButtonsOnFooter\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"toolbarClick.emit($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;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}.no-toolbar-items ::ng-deep .fd-dynamic-page__toolbar-container{width:auto}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%;overflow:hidden}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded bsu-ly-layout-container-of-root{min-height:100%}fd-dynamic-page ::ng-deep>article>.fd-scrollbar{height:inherit}fd-dynamic-page fd-dynamic-page-content.limit-content-width{display:flex;justify-content:center}fd-facet{display:flex;flex-direction:column}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container,.no-pin ::ng-deep .fd-dynamic-page__collapsible-header{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"] }]
110
+ args: [{ selector: 'bsu-fundamental-dynamic-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (mask) {\r\n<div style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\r\n <bsu-mask size=\"m\"></bsu-mask>\r\n</div>\r\n}\r\n\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [ngClass]=\"{ 'floating-footer': footerDesign === 'floating-footer' }\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.isMobile]=\"isMobile\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n mobile\r\n formClose\r\n [isMobile]=\"isMobile\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n [class.no-toolbar-items]=\"!(toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter)?.length\"\r\n #titleRef\r\n >\r\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\r\n <fd-breadcrumb>\r\n @if (breadCrumbs && !isMobile) { @for (breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track\r\n breadCrumb.url; let i = $index; let last = $last) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n\r\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\r\n <!-- added this because in mobile landscape toolbar disapper -->\r\n @if (toolbarVisible) {\r\n <bsu-form-toolbar\r\n [deviceSize]=\"deviceSize\"\r\n [buttons]=\"toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter\"\r\n [dirValue]=\"dirValue\"\r\n [isFirefox]=\"isFirefox\"\r\n (toolbarClick)=\"toolbarClick.emit($event)\"\r\n #formToolbar\r\n ></bsu-form-toolbar>\r\n }\r\n </fd-dynamic-page-global-actions>\r\n <fd-dynamic-page-layout-actions>\r\n <!-- layout actions -->\r\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\r\n @if (!hideClose) {\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n @if (deviceSize !== 's') {\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n }\r\n <ng-container *ngTemplateOutlet=\"fullscreenForm\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"closeForm\"></ng-container>\r\n </fd-toolbar>\r\n }\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n @if (description || facetList.length > 0 || workflowInfoText || avatar) {}\r\n <fd-dynamic-page-subheader\r\n [class.header-no-description]=\"!(description || workflowInfoText)\"\r\n [class.no-pin]=\"hidePin || (!facetList?.length && !workflowInfoText)\"\r\n [collapsible]=\"true\"\r\n [pinnable]=\"false\"\r\n [collapsed]=\"!facetList?.length && !workflowInfoText\"\r\n >\r\n @if (workflowInfoText) {\r\n <fd-message-strip [type]=\"'warning'\" [dismissible]=\"false\">\r\n {{ workflowInfoText | bbbTranslate }}\r\n </fd-message-strip>\r\n }\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n @if (avatar) {\r\n <fd-facet type=\"image\">\r\n <fd-avatar\r\n title=\"avatar\"\r\n [glyph]=\"avatar\"\r\n [image]=\"!avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\"\r\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\r\n [transparent]=\"true\"\r\n [circle]=\"circleAvatar\"\r\n ></fd-avatar>\r\n <!-- <div\r\n class=\"fd-avatar fd-avatar--circle\"\r\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\r\n >\r\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\r\n </div> -->\r\n </fd-facet>\r\n } @for (facet of facetList; track facet) {\r\n <fd-facet\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n @for (item of facet.mo.ItemList?.MoDataList; track item) {\r\n <fd-facet-content>\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title }}</label>\r\n <fd-text [text]=\"item.Value | facetValue\" id=\"form-value-10\"></fd-text>\r\n </fd-facet-content>\r\n } @if ( !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector) {\r\n <span\r\n fd-object-status\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue)\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [title]=\"facet.mo.Text | facetValue\"\r\n [aria-label]=\"facet.mo.Text | facetValue\"\r\n [glyph]=\"facet.mo.Icon\"\r\n >\r\n </span>\r\n } @else {\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status fd-object-status--' + facet.mo.Status | facetValue\"\r\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\r\n [component]=\"facet.mo.Component\"\r\n [value]=\"facet.mo.Text\"\r\n ></bnrc-dynamic-component>\r\n } @if (facet.mo.IsNumber && facet.type === 'key-value') {\r\n <fd-object-number\r\n [number]=\"facet.mo.Text | facetValue\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [unit]=\"facet.mo.Unit | facetValue\"\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [decimal]=\"facet.mo.DecimalValue | facetValue\"\r\n ></fd-object-number>\r\n } @if (facet.type === 'plain-text') {\r\n <div [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\r\n <fd-text [text]=\"facet.mo.Text | facetValue\" hyphenation=\"auto\"></fd-text>\r\n </div>\r\n } @if (facet.type === 'rating-indicator') {\r\n <fd-facet-content>\r\n <fd-rating-indicator\r\n style=\"pointer-events: none\"\r\n size=\"md\"\r\n [dynamicTextIndicator]=\"facet.mo.Footer\"\r\n [displayMode]=\"true\"\r\n [value]=\"facet.mo | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n } @if (facet.type === 'progress') {\r\n <div [style.width]=\"'10rem'\">\r\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\r\n <fd-progress-indicator class=\"facet-progress\"\r\n style=\"width: 10r em\"\r\n [state]=\"facet.mo.State\"\r\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647'\"\r\n [valueNow]=\"facet.mo | facetValue: facet.type\"\r\n [valueMax]=\"10\"\r\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\r\n ></fd-progress-indicator>\r\n <!-- <ui5-progress-indicator\r\n style=\"width: 10rem\"\r\n [valueState]=\"facet.mo.State\"\r\n [value]=\"getNumber(facet.mo.Value)\"\r\n ></ui5-progress-indicator> -->\r\n </div>\r\n } @if (facet.type === 'microcharts') {\r\n <div>\r\n <label wrap>in progress ...</label>\r\n </div>\r\n }\r\n </fd-facet>\r\n }\r\n </fd-facet-group>\r\n @if (description) {\r\n <span>{{ description }}</span>\r\n }\r\n </fd-dynamic-page-subheader>\r\n @if(!modernTabs.length && !contentIsPage){\r\n <fd-dynamic-page-content [class.limit-content-width]=\"formContentMaxWidth > 0\" cdkScrollable>\r\n <fd-layout-grid style=\"min-height: 100%\" [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div style=\"min-height: 100%\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n } @else if(modernTabs.length && !contentIsPage && !parameters?.LayoutComponent){\r\n <fdp-icon-tab-bar [stackContent]=\"false\" [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\r\n @for (tab of modernTabs; track tab.Title; let i = $index) {\r\n\r\n <fdp-icon-tab-bar-tab\r\n [id]=\"tab.id\"\r\n [label]=\"tab.Title!! | bbbTranslate\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [class.is-expanded]=\"selectedTab === tab.Title\"\r\n #tablist\r\n >\r\n <fd-dynamic-page-content [id]=\"tab.id\" [class.limit-content-width]=\"formContentMaxWidth > 0\">\r\n <fd-layout-grid [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <bsu-ly-tab-page [config]=\"tab\"></bsu-ly-tab-page>\r\n </div>\r\n <div\r\n style=\"padding: 0; padding-inline: 0; padding-block: 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n </fdp-icon-tab-bar-tab>\r\n }\r\n </fdp-icon-tab-bar>\r\n } @if(!hideFooter && hasLayoutButtons){\r\n <fd-dynamic-page-footer>\r\n <ng-container *ngTemplateOutlet=\"layoutActionsTemplateRef\"></ng-container>\r\n </fd-dynamic-page-footer>\r\n }\r\n</fd-dynamic-page>\r\n@if (contentIsPage) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n renderLayoutComponent;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n></ng-container>\r\n}\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [layoutActionsTemplateRef]=\"layoutActionsTemplateRef\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [footerDesign]=\"footerDesign\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n<ng-template #closeForm>\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n</ng-template>\r\n<ng-template #fullscreenForm>\r\n @if (canFullscreen) {\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [attr.aria-label]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n (click)=\"fullscreenRequest.emit()\"\r\n [title]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\r\n ></button>\r\n }\r\n</ng-template>\r\n<ng-template #layoutActionsTemplateRef>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [isMobile]=\"isMobile\"\r\n [landscape]=\"landscape\"\r\n [standalone]=\"standalone\"\r\n [footerDesign]=\"footerDesign\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode || worfklowButtonsOnFooter\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"toolbarClick.emit($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important}:host ::ng-deep .facet-progress .fd-progress-indicator__container,:host ::ng-deep .facet-progress .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.no-toolbar-items ::ng-deep .fd-dynamic-page__toolbar-container{width:auto}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%;overflow:hidden}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded bsu-ly-layout-container-of-root{min-height:100%}fd-dynamic-page ::ng-deep>article>.fd-scrollbar{height:inherit}fd-dynamic-page fd-dynamic-page-content.limit-content-width{display:flex;justify-content:center}fd-facet{display:flex;flex-direction:column}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container,.no-pin ::ng-deep .fd-dynamic-page__collapsible-header{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"] }]
111
111
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { _dynamicPageComponent: [{
112
112
  type: ViewChild,
113
113
  args: [DynamicPageComponent, { static: true }]
@@ -216,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
216
216
  }], workflowButtons: [{
217
217
  type: Input
218
218
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBaUMsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RixPQUFPLEVBQ0gsYUFBYSxFQUliLFNBQVMsRUFFWixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU2hFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxhQUFhO0lBK0Q5RCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTVEdkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEQsb0JBQW9CO1FBQ1YsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0Isc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQXNCeEMsY0FBUyxHQUFHLElBQUksQ0FBQztRQTBCMUIs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LEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUMvQixlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXJEZXNpZ25UeXBlLCBDb250ZW50RGVuc2l0eSwgRHluYW1pY1BhZ2VDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBCcmVhZENydW1iSW5mbyxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBMYXlvdXRTZXR0aW5nLFxyXG4gICAgaXNGaXJlZm94LFxyXG4gICAgRm9ybVZpc2liaWxpdHlTdGF0dXNcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Ub29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS10b29sYmFyL2Zvcm0tdG9vbGJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtTGF5b3V0Q29sLCBHZXRGb3JtTGF5b3V0R3JpZCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEljb25UYWJCYXJJdGVtIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGdW5kYW1lbnRhbER5bmFtaWNGb3JtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBWaWV3Q2hpbGQoRHluYW1pY1BhZ2VDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIF9keW5hbWljUGFnZUNvbXBvbmVudDogRHluYW1pY1BhZ2VDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdmb3JtVG9vbGJhcicpIF90b29sYmFyQ29tcG9uZW50OiBGb3JtVG9vbGJhckNvbXBvbmVudDtcclxuICAgIEBPdXRwdXQoKSB0b29sYmFyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSB3b3JrZmxvd0Nob2ljZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGZ1bGxzY3JlZW5SZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQElucHV0KCkgYnJlYWRDcnVtYnM6IEJyZWFkQ3J1bWJJbmZvW10gfCBudWxsO1xyXG4gICAgQElucHV0KCkgdG9vbGJhclZpc2libGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSB0b29sYmFySXRlbXM6IGFueVtdO1xyXG4gICAgQElucHV0KCkgbGF5b3V0QWN0aW9uczogYW55W107XHJcbiAgICBASW5wdXQoKSBsYXlvdXQ5NDtcclxuICAgIEBJbnB1dCgpIHBhcmFtZXRlcnM6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBASW5wdXQoKSB3b3JrZmxvd1BhbmVsVWk6IGFueTtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcclxuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGZhY2V0TGlzdDogYW55W107XHJcbiAgICBASW5wdXQoKSBmaWVsZERpY3Q6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XHJcbiAgICBASW5wdXQoKSByZW1vdmVIZWFkZXJCb3JkZXI6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSByZW1vdmVDb250ZW50UGFkZGluZzogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBASW5wdXQoKSBhdmF0YXI6IGFueTtcclxuICAgIEBJbnB1dCgpIGNpcmNsZUF2YXRhcjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGhpZGVGb290ZXI6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBoaWRlVGl0bGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgaGlkZUNsb3NlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaGlkZVBpbjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGZ1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBtYXNrOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY2FuU2VuZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRlbnRJc1BhZ2U6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XHJcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiAncycgfCAnbScgfCAnbCcgfCAneGwnO1xyXG4gICAgQElucHV0KCkgZGlyVmFsdWU6ICdydGwnIHwgJ2x0cic7XHJcbiAgICBASW5wdXQoKSBsYW5kc2NhcGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzdGFuZGFsb25lOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbW9kZXJuVGFiczogTGF5b3V0U2V0dGluZ1tdO1xyXG4gICAgQElucHV0KCkgZm9ybVZpc2liaWxpdHlTdGF0dXM6IEZvcm1WaXNpYmlsaXR5U3RhdHVzO1xyXG4gICAgQElucHV0KCkgbGF5b3V0R3JpZENvbDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgY29sTGc6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIGNvbFhsOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBjb2xNZDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgZm9vdGVyRGVzaWduOiBCYXJEZXNpZ25UeXBlO1xyXG4gICAgQElucHV0KCkgZm9ybUNvbnRlbnRNYXhXaWR0aDogbnVtYmVyO1xyXG4gICAgQFZpZXdDaGlsZCgndGl0bGVSZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdGl0bGVSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJBdmF0YXInKSBoZWFkZXJBdmF0YXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdjbG9zZUZvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBjbG9zZUZvcm1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBJbnB1dCgpIHdvcmtmbG93QnV0dG9uczogYW55W107XHJcbiAgICBzZWxlY3RlZFRhYjogYW55O1xyXG4gICAgY2FuRnVsbHNjcmVlbjogYm9vbGVhbjtcclxuICAgIHRvb2xiYXJTaG91bGRPdmVyZmxvdyA9IGZhbHNlO1xyXG4gICAgd29yZmtsb3dCdXR0b25zT25Gb290ZXIgPSBmYWxzZTtcclxuICAgIHdvcmtmbG93SW5mb1RleHQ6IHN0cmluZztcclxuICAgIHdvcmtmbG93QnV0dG9uc0NvbWJvTW9kZTogYm9vbGVhbjtcclxuICAgIGlzRmlyZWZveDogYm9vbGVhbjtcclxuICAgIGxheW91dDE6IEZvcm1MYXlvdXRDb2w7XHJcbiAgICBsYXlvdXQyOiBGb3JtTGF5b3V0Q29sO1xyXG4gICAgaGFzTGF5b3V0QnV0dG9ucyA9IHRydWU7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNGaXJlZm94ID0gaXNGaXJlZm94KCk7XHJcbiAgICAgICAgdGhpcy5mYWNldExpc3QgfHw9IFtdO1xyXG4gICAgICAgIGNvbnN0IHdvcmtmbG93VWlTZXR0aW5nID0gdGhpcy53b3JrZmxvd1BhbmVsVWk/LlNldHRpbmc7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0luZm9UZXh0ID0gd29ya2Zsb3dVaVNldHRpbmc/LldvcmtmbG93Py5JbmZvVGV4dDtcclxuICAgICAgICAvLyBjb25zdCB3b3JrZmxvd0J1dHRvbnMgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uYnV0dG9uTGlzdCA/PyBbXTtcclxuICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9uc0NvbWJvTW9kZSA9IHRoaXMuaXNNb2JpbGU7XHJcbiAgICAgICAgdGhpcy53b3Jma2xvd0J1dHRvbnNPbkZvb3RlciA9XHJcbiAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycz8uV29ya2Zsb3dCdXR0b25zT25Gb290ZXIgfHwgd29ya2Zsb3dVaVNldHRpbmc/LldvcmtmbG93LlNob3dJblRvb2xiYXIgPT09IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyB0aGlzLndvcmtmbG93QnV0dG9ucyA9IHdvcmtmbG93QnV0dG9ucztcclxuICAgICAgICB0aGlzLmhhc0xheW91dEJ1dHRvbnMgPVxyXG4gICAgICAgICAgICB0aGlzLmxheW91dEFjdGlvbnMubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgICAgICAodGhpcy53b3JrZmxvd0J1dHRvbnMubGVuZ3RoID4gMCAmJiAodGhpcy53b3JrZmxvd0J1dHRvbnNDb21ib01vZGUgfHwgdGhpcy53b3Jma2xvd0J1dHRvbnNPbkZvb3RlcikpO1xyXG4gICAgICAgIHRoaXMuY2FuRnVsbHNjcmVlbiA9IHRoaXMucGFyYW1ldGVycz8uQ2FuRnVsbHNjcmVlbiA9PT0gdHJ1ZTtcclxuICAgICAgICBjb25zdCB0b29sYmFyQnV0dG9uc0NvdW50ID0gdGhpcy50b29sYmFySXRlbXMuZmlsdGVyKChjKSA9PiB0eXBlb2YgYyAhPT0gJ3N0cmluZycgJiYgYy50ZXh0ICE9PSAnLScpLmxlbmd0aDtcclxuICAgICAgICBpZiAodGhpcy5kZXZpY2VTaXplID09PSAncycgJiYgdG9vbGJhckJ1dHRvbnNDb3VudCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy50b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0b29sYmFyQnV0dG9uc0NvdW50ID4gNSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2hhbmxkZUxheW91dCgpO1xyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgICB0aGlzLl90YWJMaXN0Q29tcG9uZW50Ll9kaXNhYmxlU2Nyb2xsU3B5ID0gdHJ1ZTtcclxuICAgICAgICAvLyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeyBmb3JtVmlzaWJpbGl0eVN0YXR1cyB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGZvcm1WaXNpYmlsaXR5U3RhdHVzICYmXHJcbiAgICAgICAgICAgICFmb3JtVmlzaWJpbGl0eVN0YXR1cy5maXJzdENoYW5nZSAmJlxyXG4gICAgICAgICAgICBmb3JtVmlzaWJpbGl0eVN0YXR1cy5jdXJyZW50VmFsdWUgPT09ICdWaXNpYmxlJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLl9keW5hbWljUGFnZUNvbXBvbmVudD8ucmVmcmVzaFNpemUoKTtcclxuICAgICAgICAgICAgdGhpcy5fdG9vbGJhckNvbXBvbmVudD8udXBkYXRlQ29sbGFwc2libGVJdGVtcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbldmQ2hvaWNlU2VsZWN0KHdmQ2hvaWNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0Nob2ljZUNsaWNrLmVtaXQod2ZDaG9pY2UpO1xyXG4gICAgfVxyXG4gICAgb25UYWJDaGFuZ2VkKHRhYjogSWNvblRhYkJhckl0ZW0pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGFiLmxhYmVsO1xyXG4gICAgfVxyXG4gICAgZ2V0TnVtYmVyKHZhbCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWwpO1xyXG4gICAgfVxyXG4gICAgb25EeW5hbWljQ29tcG9uZW50RXZlbnRzKGUpIHtcclxuICAgICAgICBzd2l0Y2ggKGUudGl0bGUpIHtcclxuICAgICAgICAgICAgY2FzZSAndG9vbGJhckNsaWNrJzpcclxuICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNsaWNrLmVtaXQoZS5kYXRhKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd3b3JrZmxvd0Nob2ljZVNlbGVjdCc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uV2ZDaG9pY2VTZWxlY3QoZS5kYXRhKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIF9oYW5sZGVMYXlvdXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5sYXlvdXQxID0gR2V0Rm9ybUxheW91dEdyaWQodHJ1ZSwgdGhpcy5jb2xYbCwgdGhpcy5jb2xMZywgdGhpcy5jb2xNZCk7XHJcbiAgICAgICAgdGhpcy5sYXlvdXQyID0gR2V0Rm9ybUxheW91dEdyaWQoZmFsc2UsIHRoaXMuY29sWGwsIHRoaXMuY29sTGcsIHRoaXMuY29sTWQpO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAobWFzaykge1xyXG48ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCVcIj5cclxuICAgIDxic3UtbWFzayBzaXplPVwibVwiPjwvYnN1LW1hc2s+XHJcbjwvZGl2PlxyXG59XHJcblxyXG48ZmQtZHluYW1pYy1wYWdlXHJcbiAgICBbc2l6ZV09XCJpc01vYmlsZSA/ICdzbWFsbCcgOiAnbGFyZ2UnXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2Zsb2F0aW5nLWZvb3Rlcic6IGZvb3RlckRlc2lnbiA9PT0gJ2Zsb2F0aW5nLWZvb3RlcicgfVwiXHJcbiAgICBbY2xhc3MuaGVhZGVyLWJvcmRlcl09XCIhcmVtb3ZlSGVhZGVyQm9yZGVyXCJcclxuICAgIFthdHRyLmlzTW9iaWxlXT1cImlzTW9iaWxlXCJcclxuICAgIFthdHRyLmNvbnRlbnRJc1BhZ2VdPVwiY29udGVudElzUGFnZVwiXHJcbiAgICBtb2JpbGVcclxuICAgIGZvcm1DbG9zZVxyXG4gICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcclxuPlxyXG4gICAgPGZkLWR5bmFtaWMtcGFnZS1oZWFkZXJcclxuICAgICAgICBbY2xhc3Muc2ltcGxlLXRpdGxlXT1cIiFkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgW3RpdGxlXT1cIihoaWRlVGl0bGUgPT09IHRydWUgPyAnJyA6IHRpdGxlKSB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2NsYXNzLnAtYjBdPVwicmVtb3ZlQ29udGVudFBhZGRpbmdcIlxyXG4gICAgICAgIFtjbGFzcy5oaWRlLXRpdGxlXT1cImhpZGVUaXRsZSA9PT0gdHJ1ZSAmJiBoaWRlQ2xvc2UgPT09IHRydWVcIlxyXG4gICAgICAgIFtjbGFzcy5uby10b29sYmFyLWl0ZW1zXT1cIiEodG9vbGJhckl0ZW1zIHwgZmlsdGVyV29ya2Zsb3dJbk1vYmlsZTogd29yZmtsb3dCdXR0b25zT25Gb290ZXIpPy5sZW5ndGhcIlxyXG4gICAgICAgICN0aXRsZVJlZlxyXG4gICAgPlxyXG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtYnJlYWRjcnVtYiBbY2xhc3MuaGlkZV09XCJpc01vYmlsZVwiPlxyXG4gICAgICAgICAgICA8ZmQtYnJlYWRjcnVtYj5cclxuICAgICAgICAgICAgICAgIEBpZiAoYnJlYWRDcnVtYnMgJiYgIWlzTW9iaWxlKSB7IEBmb3IgKGJyZWFkQ3J1bWIgb2YgYnJlYWRDcnVtYnMgfCBzbGljZTogMDpicmVhZENydW1icy5sZW5ndGg7IHRyYWNrXHJcbiAgICAgICAgICAgICAgICBicmVhZENydW1iLnVybDsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHtcclxuICAgICAgICAgICAgICAgIDxmZC1icmVhZGNydW1iLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1icmVhZGNydW1iXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzTGFzdF09XCJsYXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2JyZWFkQ3J1bWJdPVwiYnJlYWRDcnVtYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYnJlYWRjcnVtYj5cclxuICAgICAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgfSB9XHJcbiAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYj5cclxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1icmVhZGNydW1iPlxyXG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnM+XHJcbiAgICAgICAgICAgIDwhLS0gZ2xvYmFsIGFjdGlvbnMgLS0+XHJcblxyXG4gICAgICAgICAgICA8ZmQtdG9vbGJhciBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiIFN0eWxlPVwiZGlzcGxheTpub25lXCI+IDwvZmQtdG9vbGJhcj5cclxuICAgICAgICAgICAgPCEtLSBhZGRlZCB0aGlzIGJlY2F1c2UgaW4gbW9iaWxlIGxhbmRzY2FwZSB0b29sYmFyIGRpc2FwcGVyIC0tPlxyXG4gICAgICAgICAgICBAaWYgKHRvb2xiYXJWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIDxic3UtZm9ybS10b29sYmFyXHJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgIFtidXR0b25zXT1cInRvb2xiYXJJdGVtcyB8IGZpbHRlcldvcmtmbG93SW5Nb2JpbGU6IHdvcmZrbG93QnV0dG9uc09uRm9vdGVyXCJcclxuICAgICAgICAgICAgICAgIFtkaXJWYWx1ZV09XCJkaXJWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbaXNGaXJlZm94XT1cImlzRmlyZWZveFwiXHJcbiAgICAgICAgICAgICAgICAodG9vbGJhckNsaWNrKT1cInRvb2xiYXJDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgI2Zvcm1Ub29sYmFyXHJcbiAgICAgICAgICAgID48L2JzdS1mb3JtLXRvb2xiYXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1nbG9iYWwtYWN0aW9ucz5cclxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxyXG4gICAgICAgICAgICA8IS0tIGxheW91dCBhY3Rpb25zIC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgW2Zvcm1BY3Rpb25zXT1cInRoaXMudG9vbGJhclwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgQGlmICghaGlkZUNsb3NlKSB7XHJcbiAgICAgICAgICAgIDxmZC10b29sYmFyIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2NsZWFyQm9yZGVyXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAoZGV2aWNlU2l6ZSAhPT0gJ3MnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3I+PC9mZC10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmdWxsc2NyZWVuRm9ybVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3NlRm9ybVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucz5cclxuICAgIDwvZmQtZHluYW1pYy1wYWdlLWhlYWRlcj5cclxuICAgIEBpZiAoZGVzY3JpcHRpb24gfHwgZmFjZXRMaXN0Lmxlbmd0aCA+IDAgfHwgd29ya2Zsb3dJbmZvVGV4dCB8fCBhdmF0YXIpIHt9XHJcbiAgICA8ZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlclxyXG4gICAgICAgIFtjbGFzcy5oZWFkZXItbm8tZGVzY3JpcHRpb25dPVwiIShkZXNjcmlwdGlvbiB8fCB3b3JrZmxvd0luZm9UZXh0KVwiXHJcbiAgICAgICAgW2NsYXNzLm5vLXBpbl09XCJoaWRlUGluIHx8ICghZmFjZXRMaXN0Py5sZW5ndGggJiYgIXdvcmtmbG93SW5mb1RleHQpXCJcclxuICAgICAgICBbY29sbGFwc2libGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Bpbm5hYmxlXT1cImZhbHNlXCJcclxuICAgICAgICBbY29sbGFwc2VkXT1cIiFmYWNldExpc3Q/Lmxlbmd0aCAmJiAhd29ya2Zsb3dJbmZvVGV4dFwiXHJcbiAgICA+XHJcbiAgICAgICAgQGlmICh3b3JrZmxvd0luZm9UZXh0KSB7XHJcbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXAgW3R5cGVdPVwiJ3dhcm5pbmcnXCIgW2Rpc21pc3NpYmxlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIHt7IHdvcmtmbG93SW5mb1RleHQgfCBiYmJUcmFuc2xhdGUgfX1cclxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxmZC1mYWNldC1ncm91cCBhcmlhTGFiZWw9XCJGYWNldCBHcm91cFwiPlxyXG4gICAgICAgICAgICBAaWYgKGF2YXRhcikge1xyXG4gICAgICAgICAgICA8ZmQtZmFjZXQgdHlwZT1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJhdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJhdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCIhYXZhdGFyPy5GaWxlSWQgPyBudWxsIDogKGF2YXRhcj8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6bnVsbClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImRldmljZVNpemUgPT09ICd4bCcgPyAnbCcgOiBkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJjaXJjbGVBdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYXZhdGFyIGZkLWF2YXRhci0tY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidmZC1hdmF0YXItLScgKyAoZGV2aWNlU2l6ZSA9PT0gJ3hsJyA/ICdsJyA6IGRldmljZVNpemUpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImF2YXRhclwiIGNsYXNzPVwiZmQtYXZhdGFyX19pY29uXCIgW2NsYXNzXT1cImF2YXRhciB8IHNhcEZvbnRDbGFzc1wiIHJvbGU9XCJwcmVzZW50YXRpb25cIj4gPC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8L2ZkLWZhY2V0PlxyXG4gICAgICAgICAgICB9IEBmb3IgKGZhY2V0IG9mIGZhY2V0TGlzdDsgdHJhY2sgZmFjZXQpIHtcclxuICAgICAgICAgICAgPGZkLWZhY2V0XHJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJmYWNldC50eXBlXCJcclxuICAgICAgICAgICAgICAgIFtmYWNldFRpdGxlXT1cImZhY2V0Lm1vLlRpdGxlIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCJmYWNldC5tby5TdWJUaXRsZSB8IGZhY2V0VmFsdWUgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGZhY2V0Lm1vLkl0ZW1MaXN0Py5Nb0RhdGFMaXN0OyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtZmFjZXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBbY29sb25dPVwidHJ1ZVwiIGZvcj1cImZvcm0tdmFsdWUtMTBcIj57eyBpdGVtLlRpdGxlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtdGV4dCBbdGV4dF09XCJpdGVtLlZhbHVlIHwgZmFjZXRWYWx1ZVwiIGlkPVwiZm9ybS12YWx1ZS0xMFwiPjwvZmQtdGV4dD5cclxuICAgICAgICAgICAgICAgIDwvZmQtZmFjZXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIH0gQGlmICggIWZhY2V0Lm1vLklzTnVtYmVyICYmIGZhY2V0LnR5cGUgPT09ICdrZXktdmFsdWUnICYmICFmYWNldC5tby5Db21wb25lbnQ/LlNlbGVjdG9yKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcclxuICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cImZhY2V0Lm1vLlN0YXR1cyB8IGZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmYWNldC5tby5Db21wb25lbnQ/LlNlbGVjdG9yID8gJycgOiAoZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFyZ2VdPVwiZmFjZXQubW8uSXNMYXJnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImZhY2V0Lm1vLlRleHQgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCJmYWNldC5tby5UZXh0IHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImZhY2V0Lm1vLkljb25cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8Ym5yYy1keW5hbWljLWNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInZmQtb2JqZWN0LXN0YXR1cyBmZC1vYmplY3Qtc3RhdHVzLS0nICsgZmFjZXQubW8uU3RhdHVzIHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLW9iamVjdC1zdGF0dXMtLWxhcmdlXT1cImZhY2V0Lm1vLklzTGFyZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZmFjZXQubW8uQ29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFjZXQubW8uVGV4dFwiXHJcbiAgICAgICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtY29tcG9uZW50PlxyXG4gICAgICAgICAgICAgICAgfSBAaWYgKGZhY2V0Lm1vLklzTnVtYmVyICYmIGZhY2V0LnR5cGUgPT09ICdrZXktdmFsdWUnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtb2JqZWN0LW51bWJlclxyXG4gICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYXJnZV09XCJmYWNldC5tby5Jc0xhcmdlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdW5pdF09XCJmYWNldC5tby5Vbml0IHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJmYWNldC5tby5TdGF0dXMgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGVjaW1hbF09XCJmYWNldC5tby5EZWNpbWFsVmFsdWUgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLW9iamVjdC1udW1iZXI+XHJcbiAgICAgICAgICAgICAgICB9IEBpZiAoZmFjZXQudHlwZSA9PT0gJ3BsYWluLXRleHQnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtzdHlsZS53aWR0aC5weF09XCJmYWNldC5tby5XaWR0aFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vcm1hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC10ZXh0IFt0ZXh0XT1cImZhY2V0Lm1vLlRleHQgfCBmYWNldFZhbHVlXCIgaHlwaGVuYXRpb249XCJhdXRvXCI+PC9mZC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9IEBpZiAoZmFjZXQudHlwZSA9PT0gJ3JhdGluZy1pbmRpY2F0b3InKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtZmFjZXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtcmF0aW5nLWluZGljYXRvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBvaW50ZXItZXZlbnRzOiBub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2R5bmFtaWNUZXh0SW5kaWNhdG9yXT1cImZhY2V0Lm1vLkZvb3RlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5TW9kZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhY2V0Lm1vIHwgZmFjZXRWYWx1ZTogZmFjZXQudHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtcmF0aW5nLWluZGljYXRvcj5cclxuICAgICAgICAgICAgICAgIDwvZmQtZmFjZXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIH0gQGlmIChmYWNldC50eXBlID09PSAncHJvZ3Jlc3MnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtzdHlsZS53aWR0aF09XCInMTByZW0nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBmZC1mb3JtLWxhYmVsPnt7IGZhY2V0Lm1vLlN1YnRpdGxlIHwgZmFjZXRWYWx1ZSB9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLXByb2dyZXNzLWluZGljYXRvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMHIgZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiZmFjZXQubW8uU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVUZXh0XT1cIihmYWNldC5tbyB8IGZhY2V0VmFsdWU6IGZhY2V0LnR5cGUpICsgJyDYp9iyIDEwINmF2LHYrdmE2YcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlTm93XT1cImZhY2V0Lm1vIHwgZmFjZXRWYWx1ZTogZmFjZXQudHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZU1heF09XCIxMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt1bml0XT1cIifZhdix2K3ZhNmHJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtcHJvZ3Jlc3MtaW5kaWNhdG9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHVpNS1wcm9ncmVzcy1pbmRpY2F0b3JcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMHJlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlU3RhdGVdPVwiZmFjZXQubW8uU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJnZXROdW1iZXIoZmFjZXQubW8uVmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgPjwvdWk1LXByb2dyZXNzLWluZGljYXRvcj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH0gQGlmIChmYWNldC50eXBlID09PSAnbWljcm9jaGFydHMnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCB3cmFwPmluIHByb2dyZXNzIC4uLjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9mZC1mYWNldD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZmQtZmFjZXQtZ3JvdXA+XHJcbiAgICAgICAgQGlmIChkZXNjcmlwdGlvbikge1xyXG4gICAgICAgIDxzcGFuPnt7IGRlc2NyaXB0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgIDwvZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlcj5cclxuICAgIEBpZighbW9kZXJuVGFicy5sZW5ndGggJiYgIWNvbnRlbnRJc1BhZ2Upe1xyXG4gICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IFtjbGFzcy5saW1pdC1jb250ZW50LXdpZHRoXT1cImZvcm1Db250ZW50TWF4V2lkdGggPiAwXCIgY2RrU2Nyb2xsYWJsZT5cclxuICAgICAgICA8ZmQtbGF5b3V0LWdyaWQgc3R5bGU9XCJtaW4taGVpZ2h0OiAxMDAlXCIgW3N0eWxlLm1heC13aWR0aC5weF09XCJmb3JtQ29udGVudE1heFdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxkaXYgZmRMYXlvdXRHcmlkUm93PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMDsgcGFkZGluZy1pbmxpbmU6IDA7IHBhZGRpbmctYmxvY2s6IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRlXT1cImxheW91dDIuY29sWGwgPT09IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmZExheW91dEdyaWRDb2xdPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbE1kXT1cImxheW91dDEuY29sTWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xMZ109XCJsYXlvdXQxLmNvbExnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29sWGxdPVwibGF5b3V0MS5jb2xYbFwiXHJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWluLWhlaWdodDogMTAwJVwiIFtmZExheW91dEdyaWRDb2xdPVwiMTJcIiBbY29sTWRdPVwiY29sTWRcIiBbY29sTGddPVwiY29sTGdcIiBbY29sWGxdPVwiY29sWGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzPy5MYXlvdXRDb21wb25lbnQgPyByZW5kZXJMYXlvdXRDb21wb25lbnQgOiByZW5kZXJEZWZhdWx0TGF5b3V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQ5NFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMDsgcGFkZGluZy1pbmxpbmU6IDA7IHBhZGRpbmctYmxvY2s6IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRlXT1cImxheW91dDIuY29sWGwgPT09IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmZExheW91dEdyaWRDb2xdPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbE1kXT1cImxheW91dDIuY29sTWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xMZ109XCJsYXlvdXQyLmNvbExnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29sWGxdPVwibGF5b3V0Mi5jb2xYbFwiXHJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZmQtbGF5b3V0LWdyaWQ+XHJcbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1jb250ZW50PlxyXG4gICAgfSBAZWxzZSBpZihtb2Rlcm5UYWJzLmxlbmd0aCAmJiAhY29udGVudElzUGFnZSAmJiAhcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50KXtcclxuICAgIDxmZHAtaWNvbi10YWItYmFyIFtzdGFja0NvbnRlbnRdPVwiZmFsc2VcIiBbY29sbGFwc2VPdmVyZmxvd109XCJ0cnVlXCIgW2V4cGFuZE92ZXJmbG93VGV4dF09XCInTW9yZScgfCBiYmJUcmFuc2xhdGVcIj5cclxuICAgICAgICBAZm9yICh0YWIgb2YgbW9kZXJuVGFiczsgdHJhY2sgdGFiLlRpdGxlOyBsZXQgaSA9ICRpbmRleCkge1xyXG5cclxuICAgICAgICA8ZmRwLWljb24tdGFiLWJhci10YWJcclxuICAgICAgICAgICAgW2lkXT1cInRhYi5pZFwiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJ0YWIuVGl0bGUhISB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCJ0YWIuVGl0bGUhISB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1leHBhbmRlZF09XCJzZWxlY3RlZFRhYiA9PT0gdGFiLlRpdGxlXCJcclxuICAgICAgICAgICAgI3RhYmxpc3RcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxmZC1keW5hbWljLXBhZ2UtY29udGVudCBbaWRdPVwidGFiLmlkXCIgW2NsYXNzLmxpbWl0LWNvbnRlbnQtd2lkdGhdPVwiZm9ybUNvbnRlbnRNYXhXaWR0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxmZC1sYXlvdXQtZ3JpZCBbc3R5bGUubWF4LXdpZHRoLnB4XT1cImZvcm1Db250ZW50TWF4V2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiAwOyBwYWRkaW5nLWlubGluZTogMDsgcGFkZGluZy1ibG9jazogMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRMYXlvdXRHcmlkQ29sXT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbE1kXT1cImxheW91dDEuY29sTWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbExnXT1cImxheW91dDEuY29sTGdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbFhsXT1cImxheW91dDEuY29sWGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2ZkTGF5b3V0R3JpZENvbF09XCIxMlwiIFtjb2xNZF09XCJjb2xNZFwiIFtjb2xMZ109XCJjb2xMZ1wiIFtjb2xYbF09XCJjb2xYbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJzdS1seS10YWItcGFnZSBbY29uZmlnXT1cInRhYlwiPjwvYnN1LWx5LXRhYi1wYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiAwOyBwYWRkaW5nLWlubGluZTogMDsgcGFkZGluZy1ibG9jazogMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRMYXlvdXRHcmlkQ29sXT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbE1kXT1cImxheW91dDIuY29sTWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbExnXT1cImxheW91dDIuY29sTGdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbFhsXT1cImxheW91dDIuY29sWGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2ZkLWxheW91dC1ncmlkPlxyXG4gICAgICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1jb250ZW50PlxyXG4gICAgICAgIDwvZmRwLWljb24tdGFiLWJhci10YWI+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZHAtaWNvbi10YWItYmFyPlxyXG4gICAgfSBAaWYoIWhpZGVGb290ZXIgJiYgaGFzTGF5b3V0QnV0dG9ucyl7XHJcbiAgICA8ZmQtZHluYW1pYy1wYWdlLWZvb3Rlcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGF5b3V0QWN0aW9uc1RlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1mb290ZXI+XHJcbiAgICB9XHJcbjwvZmQtZHluYW1pYy1wYWdlPlxyXG5AaWYgKGNvbnRlbnRJc1BhZ2UpIHtcclxuPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuICAgICAgICByZW5kZXJMYXlvdXRDb21wb25lbnQ7XHJcbiAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudCxcclxuICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dDk0XHJcbiAgICAgICAgfVxyXG4gICAgXCJcclxuPjwvbmctY29udGFpbmVyPlxyXG59XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyRGVmYXVsdExheW91dCBsZXQtbGF5b3V0OTQ9XCJsYXlvdXQ5NFwiPlxyXG4gICAgPGJzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3RcclxuICAgICAgICBbY29uZmlnXT1cImxheW91dDk0XCJcclxuICAgICAgICBbaXNQYW5lbF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2lzUm9vdF09XCJ0cnVlXCJcclxuICAgID48L2JzdS1seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3Q+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyTGF5b3V0Q29tcG9uZW50IGxldC1jb21wb25lbnQgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIj5cclxuICAgIDxibnJjLWR5bmFtaWMtZm9ybS1jb21wb25lbnRcclxuICAgICAgICBbY29tcG9uZW50XT1cImNvbXBvbmVudFwiXHJcbiAgICAgICAgW2xheW91dEFjdGlvbnNUZW1wbGF0ZVJlZl09XCJsYXlvdXRBY3Rpb25zVGVtcGxhdGVSZWZcIlxyXG4gICAgICAgIFtyZW1vdmVDb250ZW50UGFkZGluZ109XCJyZW1vdmVDb250ZW50UGFkZGluZ1wiXHJcbiAgICAgICAgW2JyZWFkQ3J1bWJzXT1cImJyZWFkQ3J1bWJzXCJcclxuICAgICAgICBbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXHJcbiAgICAgICAgW3N1YnRpdGxlXT1cInN1YnRpdGxlXCJcclxuICAgICAgICBbdG9vbGJhckl0ZW1zXT1cInRvb2xiYXJJdGVtc1wiXHJcbiAgICAgICAgW2xheW91dEFjdGlvbnNdPVwibGF5b3V0QWN0aW9uc1wiXHJcbiAgICAgICAgW2Zvb3RlckRlc2lnbl09XCJmb290ZXJEZXNpZ25cIlxyXG4gICAgICAgIFtmYWNldExpc3RdPVwiZmFjZXRMaXN0XCJcclxuICAgICAgICBbc2V0dGluZ3NdPVwiY29tcG9uZW50LlNldHRpbmdzXCJcclxuICAgICAgICBbd29ya2Zsb3dCdXR0b25zXT1cIndvcmtmbG93QnV0dG9uc1wiXHJcbiAgICAgICAgW3dvcmtmbG93UGFuZWxVaV09XCJ3b3JrZmxvd1BhbmVsVWlcIlxyXG4gICAgICAgIFtpc01vYmlsZV09XCJpc01vYmlsZVwiXHJcbiAgICAgICAgW21vXT1cIm1vXCJcclxuICAgICAgICBbbGF5b3V0OTRdPVwibGF5b3V0OTRcIlxyXG4gICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxyXG4gICAgICAgIFtydGxdPVwicnRsXCJcclxuICAgICAgICBbZmllbGREaWN0XT1cImZpZWxkRGljdFwiXHJcbiAgICAgICAgW21hc2tdPVwibWFza1wiXHJcbiAgICAgICAgW2RpclZhbHVlXT1cImRpclZhbHVlXCJcclxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICBbY29udGVudERlbnNpdHldPVwiY29udGVudERlbnNpdHlcIlxyXG4gICAgICAgIFttb2Rlcm5UYWJzXT1cIm1vZGVyblRhYnNcIlxyXG4gICAgICAgIFthdmF0YXJdPVwiYXZhdGFyXCJcclxuICAgICAgICAoZXZlbnRzKT1cIm9uRHluYW1pY0NvbXBvbmVudEV2ZW50cygkZXZlbnQpXCJcclxuICAgID48L2JucmMtZHluYW1pYy1mb3JtLWNvbXBvbmVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNjbG9zZUZvcm0+XHJcbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZS5lbWl0KClcIiB0aXRsZT1cIkNsb3NlXCI+XHJcbiAgICAgICAgPGkgW2NsYXNzXT1cIidzYXAtaWNvbi0tJyArIChpc01vYmlsZSA/IChydGwgPyAnYXJyb3ctcmlnaHQnIDogJ2Fycm93LWxlZnQnKSA6ICdkZWNsaW5lJylcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNmdWxsc2NyZWVuRm9ybT5cclxuICAgIEBpZiAoY2FuRnVsbHNjcmVlbikge1xyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZ1bGxzY3JlZW4gPyAnZXhpdCBmdWxsc2NyZWVuJyA6ICdmdWxsc2NyZWVuJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImZ1bGxzY3JlZW5SZXF1ZXN0LmVtaXQoKVwiXHJcbiAgICAgICAgW3RpdGxlXT1cImZ1bGxzY3JlZW4gPyAnZXhpdCBmdWxsc2NyZWVuJyA6ICdmdWxsc2NyZWVuJ1wiXHJcbiAgICAgICAgW2dseXBoXT1cImZ1bGxzY3JlZW4gPyAnZXhpdGZ1bGxzY3JlZW4nIDogJ3Jlc2l6ZSdcIlxyXG4gICAgPjwvYnV0dG9uPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2xheW91dEFjdGlvbnNUZW1wbGF0ZVJlZj5cclxuICAgIDxic3UtbGF5b3V0LWFjdGlvbnNcclxuICAgICAgICBbY2FuU2VuZF09XCJjYW5TZW5kXCJcclxuICAgICAgICBbYnV0dG9uc109XCJsYXlvdXRBY3Rpb25zXCJcclxuICAgICAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxyXG4gICAgICAgIFtsYW5kc2NhcGVdPVwibGFuZHNjYXBlXCJcclxuICAgICAgICBbc3RhbmRhbG9uZV09XCJzdGFuZGFsb25lXCJcclxuICAgICAgICBbZm9vdGVyRGVzaWduXT1cImZvb3RlckRlc2lnblwiXHJcbiAgICAgICAgW3dvcmtmbG93QnV0dG9uc109XCJ3b3JrZmxvd0J1dHRvbnNcIlxyXG4gICAgICAgIFt3b3JrZmxvd0J1dHRvbnNDb21ib01vZGVdPVwid29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlIHx8IHdvcmZrbG93QnV0dG9uc09uRm9vdGVyXCJcclxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgKHRvb2xDbGljayk9XCJ0b29sYmFyQ2xpY2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAod29ya2Zsb3dDaG9pY2VTZWxlY3QpPVwib25XZkNob2ljZVNlbGVjdCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvYnN1LWxheW91dC1hY3Rpb25zPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBaUMsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RixPQUFPLEVBQ0gsYUFBYSxFQUliLFNBQVMsRUFFWixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU2hFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxhQUFhO0lBK0Q5RCxZQUFtQixFQUFjO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBRE8sT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQTVEdkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEQsb0JBQW9CO1FBQ1YsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0Isc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQXNCeEMsY0FBUyxHQUFHLElBQUksQ0FBQztRQTBCMUIs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LEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUMvQixlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXJEZXNpZ25UeXBlLCBDb250ZW50RGVuc2l0eSwgRHluYW1pY1BhZ2VDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBCcmVhZENydW1iSW5mbyxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBMYXlvdXRTZXR0aW5nLFxyXG4gICAgaXNGaXJlZm94LFxyXG4gICAgRm9ybVZpc2liaWxpdHlTdGF0dXNcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Ub29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS10b29sYmFyL2Zvcm0tdG9vbGJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtTGF5b3V0Q29sLCBHZXRGb3JtTGF5b3V0R3JpZCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEljb25UYWJCYXJJdGVtIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGdW5kYW1lbnRhbER5bmFtaWNGb3JtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBWaWV3Q2hpbGQoRHluYW1pY1BhZ2VDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIF9keW5hbWljUGFnZUNvbXBvbmVudDogRHluYW1pY1BhZ2VDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdmb3JtVG9vbGJhcicpIF90b29sYmFyQ29tcG9uZW50OiBGb3JtVG9vbGJhckNvbXBvbmVudDtcclxuICAgIEBPdXRwdXQoKSB0b29sYmFyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSB3b3JrZmxvd0Nob2ljZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGZ1bGxzY3JlZW5SZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQElucHV0KCkgYnJlYWRDcnVtYnM6IEJyZWFkQ3J1bWJJbmZvW10gfCBudWxsO1xyXG4gICAgQElucHV0KCkgdG9vbGJhclZpc2libGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSB0b29sYmFySXRlbXM6IGFueVtdO1xyXG4gICAgQElucHV0KCkgbGF5b3V0QWN0aW9uczogYW55W107XHJcbiAgICBASW5wdXQoKSBsYXlvdXQ5NDtcclxuICAgIEBJbnB1dCgpIHBhcmFtZXRlcnM6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBASW5wdXQoKSB3b3JrZmxvd1BhbmVsVWk6IGFueTtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcclxuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGZhY2V0TGlzdDogYW55W107XHJcbiAgICBASW5wdXQoKSBmaWVsZERpY3Q6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XHJcbiAgICBASW5wdXQoKSByZW1vdmVIZWFkZXJCb3JkZXI6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSByZW1vdmVDb250ZW50UGFkZGluZzogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBASW5wdXQoKSBhdmF0YXI6IGFueTtcclxuICAgIEBJbnB1dCgpIGNpcmNsZUF2YXRhcjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGhpZGVGb290ZXI6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBoaWRlVGl0bGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgaGlkZUNsb3NlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaGlkZVBpbjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGZ1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBtYXNrOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY2FuU2VuZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRlbnRJc1BhZ2U6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XHJcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiAncycgfCAnbScgfCAnbCcgfCAneGwnO1xyXG4gICAgQElucHV0KCkgZGlyVmFsdWU6ICdydGwnIHwgJ2x0cic7XHJcbiAgICBASW5wdXQoKSBsYW5kc2NhcGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzdGFuZGFsb25lOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbW9kZXJuVGFiczogTGF5b3V0U2V0dGluZ1tdO1xyXG4gICAgQElucHV0KCkgZm9ybVZpc2liaWxpdHlTdGF0dXM6IEZvcm1WaXNpYmlsaXR5U3RhdHVzO1xyXG4gICAgQElucHV0KCkgbGF5b3V0R3JpZENvbDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgY29sTGc6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIGNvbFhsOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBjb2xNZDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgZm9vdGVyRGVzaWduOiBCYXJEZXNpZ25UeXBlO1xyXG4gICAgQElucHV0KCkgZm9ybUNvbnRlbnRNYXhXaWR0aDogbnVtYmVyO1xyXG4gICAgQFZpZXdDaGlsZCgndGl0bGVSZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdGl0bGVSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJBdmF0YXInKSBoZWFkZXJBdmF0YXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdjbG9zZUZvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBjbG9zZUZvcm1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBJbnB1dCgpIHdvcmtmbG93QnV0dG9uczogYW55W107XHJcbiAgICBzZWxlY3RlZFRhYjogYW55O1xyXG4gICAgY2FuRnVsbHNjcmVlbjogYm9vbGVhbjtcclxuICAgIHRvb2xiYXJTaG91bGRPdmVyZmxvdyA9IGZhbHNlO1xyXG4gICAgd29yZmtsb3dCdXR0b25zT25Gb290ZXIgPSBmYWxzZTtcclxuICAgIHdvcmtmbG93SW5mb1RleHQ6IHN0cmluZztcclxuICAgIHdvcmtmbG93QnV0dG9uc0NvbWJvTW9kZTogYm9vbGVhbjtcclxuICAgIGlzRmlyZWZveDogYm9vbGVhbjtcclxuICAgIGxheW91dDE6IEZvcm1MYXlvdXRDb2w7XHJcbiAgICBsYXlvdXQyOiBGb3JtTGF5b3V0Q29sO1xyXG4gICAgaGFzTGF5b3V0QnV0dG9ucyA9IHRydWU7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNGaXJlZm94ID0gaXNGaXJlZm94KCk7XHJcbiAgICAgICAgdGhpcy5mYWNldExpc3QgfHw9IFtdO1xyXG4gICAgICAgIGNvbnN0IHdvcmtmbG93VWlTZXR0aW5nID0gdGhpcy53b3JrZmxvd1BhbmVsVWk/LlNldHRpbmc7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0luZm9UZXh0ID0gd29ya2Zsb3dVaVNldHRpbmc/LldvcmtmbG93Py5JbmZvVGV4dDtcclxuICAgICAgICAvLyBjb25zdCB3b3JrZmxvd0J1dHRvbnMgPSB0aGlzLndvcmtmbG93UGFuZWxVaT8uYnV0dG9uTGlzdCA/PyBbXTtcclxuICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9uc0NvbWJvTW9kZSA9IHRoaXMuaXNNb2JpbGU7XHJcbiAgICAgICAgdGhpcy53b3Jma2xvd0J1dHRvbnNPbkZvb3RlciA9XHJcbiAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycz8uV29ya2Zsb3dCdXR0b25zT25Gb290ZXIgfHwgd29ya2Zsb3dVaVNldHRpbmc/LldvcmtmbG93LlNob3dJblRvb2xiYXIgPT09IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyB0aGlzLndvcmtmbG93QnV0dG9ucyA9IHdvcmtmbG93QnV0dG9ucztcclxuICAgICAgICB0aGlzLmhhc0xheW91dEJ1dHRvbnMgPVxyXG4gICAgICAgICAgICB0aGlzLmxheW91dEFjdGlvbnMubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgICAgICAodGhpcy53b3JrZmxvd0J1dHRvbnMubGVuZ3RoID4gMCAmJiAodGhpcy53b3JrZmxvd0J1dHRvbnNDb21ib01vZGUgfHwgdGhpcy53b3Jma2xvd0J1dHRvbnNPbkZvb3RlcikpO1xyXG4gICAgICAgIHRoaXMuY2FuRnVsbHNjcmVlbiA9IHRoaXMucGFyYW1ldGVycz8uQ2FuRnVsbHNjcmVlbiA9PT0gdHJ1ZTtcclxuICAgICAgICBjb25zdCB0b29sYmFyQnV0dG9uc0NvdW50ID0gdGhpcy50b29sYmFySXRlbXMuZmlsdGVyKChjKSA9PiB0eXBlb2YgYyAhPT0gJ3N0cmluZycgJiYgYy50ZXh0ICE9PSAnLScpLmxlbmd0aDtcclxuICAgICAgICBpZiAodGhpcy5kZXZpY2VTaXplID09PSAncycgJiYgdG9vbGJhckJ1dHRvbnNDb3VudCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy50b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0b29sYmFyQnV0dG9uc0NvdW50ID4gNSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b29sYmFyU2hvdWxkT3ZlcmZsb3cgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2hhbmxkZUxheW91dCgpO1xyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgICB0aGlzLl90YWJMaXN0Q29tcG9uZW50Ll9kaXNhYmxlU2Nyb2xsU3B5ID0gdHJ1ZTtcclxuICAgICAgICAvLyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeyBmb3JtVmlzaWJpbGl0eVN0YXR1cyB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGZvcm1WaXNpYmlsaXR5U3RhdHVzICYmXHJcbiAgICAgICAgICAgICFmb3JtVmlzaWJpbGl0eVN0YXR1cy5maXJzdENoYW5nZSAmJlxyXG4gICAgICAgICAgICBmb3JtVmlzaWJpbGl0eVN0YXR1cy5jdXJyZW50VmFsdWUgPT09ICdWaXNpYmxlJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLl9keW5hbWljUGFnZUNvbXBvbmVudD8ucmVmcmVzaFNpemUoKTtcclxuICAgICAgICAgICAgdGhpcy5fdG9vbGJhckNvbXBvbmVudD8udXBkYXRlQ29sbGFwc2libGVJdGVtcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbldmQ2hvaWNlU2VsZWN0KHdmQ2hvaWNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0Nob2ljZUNsaWNrLmVtaXQod2ZDaG9pY2UpO1xyXG4gICAgfVxyXG4gICAgb25UYWJDaGFuZ2VkKHRhYjogSWNvblRhYkJhckl0ZW0pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGFiLmxhYmVsO1xyXG4gICAgfVxyXG4gICAgZ2V0TnVtYmVyKHZhbCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWwpO1xyXG4gICAgfVxyXG4gICAgb25EeW5hbWljQ29tcG9uZW50RXZlbnRzKGUpIHtcclxuICAgICAgICBzd2l0Y2ggKGUudGl0bGUpIHtcclxuICAgICAgICAgICAgY2FzZSAndG9vbGJhckNsaWNrJzpcclxuICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNsaWNrLmVtaXQoZS5kYXRhKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd3b3JrZmxvd0Nob2ljZVNlbGVjdCc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uV2ZDaG9pY2VTZWxlY3QoZS5kYXRhKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIF9oYW5sZGVMYXlvdXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5sYXlvdXQxID0gR2V0Rm9ybUxheW91dEdyaWQodHJ1ZSwgdGhpcy5jb2xYbCwgdGhpcy5jb2xMZywgdGhpcy5jb2xNZCk7XHJcbiAgICAgICAgdGhpcy5sYXlvdXQyID0gR2V0Rm9ybUxheW91dEdyaWQoZmFsc2UsIHRoaXMuY29sWGwsIHRoaXMuY29sTGcsIHRoaXMuY29sTWQpO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAobWFzaykge1xyXG48ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCVcIj5cclxuICAgIDxic3UtbWFzayBzaXplPVwibVwiPjwvYnN1LW1hc2s+XHJcbjwvZGl2PlxyXG59XHJcblxyXG48ZmQtZHluYW1pYy1wYWdlXHJcbiAgICBbc2l6ZV09XCJpc01vYmlsZSA/ICdzbWFsbCcgOiAnbGFyZ2UnXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2Zsb2F0aW5nLWZvb3Rlcic6IGZvb3RlckRlc2lnbiA9PT0gJ2Zsb2F0aW5nLWZvb3RlcicgfVwiXHJcbiAgICBbY2xhc3MuaGVhZGVyLWJvcmRlcl09XCIhcmVtb3ZlSGVhZGVyQm9yZGVyXCJcclxuICAgIFthdHRyLmlzTW9iaWxlXT1cImlzTW9iaWxlXCJcclxuICAgIFthdHRyLmNvbnRlbnRJc1BhZ2VdPVwiY29udGVudElzUGFnZVwiXHJcbiAgICBtb2JpbGVcclxuICAgIGZvcm1DbG9zZVxyXG4gICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcclxuPlxyXG4gICAgPGZkLWR5bmFtaWMtcGFnZS1oZWFkZXJcclxuICAgICAgICBbY2xhc3Muc2ltcGxlLXRpdGxlXT1cIiFkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgW3RpdGxlXT1cIihoaWRlVGl0bGUgPT09IHRydWUgPyAnJyA6IHRpdGxlKSB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2NsYXNzLnAtYjBdPVwicmVtb3ZlQ29udGVudFBhZGRpbmdcIlxyXG4gICAgICAgIFtjbGFzcy5oaWRlLXRpdGxlXT1cImhpZGVUaXRsZSA9PT0gdHJ1ZSAmJiBoaWRlQ2xvc2UgPT09IHRydWVcIlxyXG4gICAgICAgIFtjbGFzcy5uby10b29sYmFyLWl0ZW1zXT1cIiEodG9vbGJhckl0ZW1zIHwgZmlsdGVyV29ya2Zsb3dJbk1vYmlsZTogd29yZmtsb3dCdXR0b25zT25Gb290ZXIpPy5sZW5ndGhcIlxyXG4gICAgICAgICN0aXRsZVJlZlxyXG4gICAgPlxyXG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtYnJlYWRjcnVtYiBbY2xhc3MuaGlkZV09XCJpc01vYmlsZVwiPlxyXG4gICAgICAgICAgICA8ZmQtYnJlYWRjcnVtYj5cclxuICAgICAgICAgICAgICAgIEBpZiAoYnJlYWRDcnVtYnMgJiYgIWlzTW9iaWxlKSB7IEBmb3IgKGJyZWFkQ3J1bWIgb2YgYnJlYWRDcnVtYnMgfCBzbGljZTogMDpicmVhZENydW1icy5sZW5ndGg7IHRyYWNrXHJcbiAgICAgICAgICAgICAgICBicmVhZENydW1iLnVybDsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHtcclxuICAgICAgICAgICAgICAgIDxmZC1icmVhZGNydW1iLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1icmVhZGNydW1iXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzTGFzdF09XCJsYXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2JyZWFkQ3J1bWJdPVwiYnJlYWRDcnVtYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9ic3UtYnJlYWRjcnVtYj5cclxuICAgICAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgfSB9XHJcbiAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYj5cclxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1icmVhZGNydW1iPlxyXG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnM+XHJcbiAgICAgICAgICAgIDwhLS0gZ2xvYmFsIGFjdGlvbnMgLS0+XHJcblxyXG4gICAgICAgICAgICA8ZmQtdG9vbGJhciBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiIFN0eWxlPVwiZGlzcGxheTpub25lXCI+IDwvZmQtdG9vbGJhcj5cclxuICAgICAgICAgICAgPCEtLSBhZGRlZCB0aGlzIGJlY2F1c2UgaW4gbW9iaWxlIGxhbmRzY2FwZSB0b29sYmFyIGRpc2FwcGVyIC0tPlxyXG4gICAgICAgICAgICBAaWYgKHRvb2xiYXJWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIDxic3UtZm9ybS10b29sYmFyXHJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgIFtidXR0b25zXT1cInRvb2xiYXJJdGVtcyB8IGZpbHRlcldvcmtmbG93SW5Nb2JpbGU6IHdvcmZrbG93QnV0dG9uc09uRm9vdGVyXCJcclxuICAgICAgICAgICAgICAgIFtkaXJWYWx1ZV09XCJkaXJWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbaXNGaXJlZm94XT1cImlzRmlyZWZveFwiXHJcbiAgICAgICAgICAgICAgICAodG9vbGJhckNsaWNrKT1cInRvb2xiYXJDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgI2Zvcm1Ub29sYmFyXHJcbiAgICAgICAgICAgID48L2JzdS1mb3JtLXRvb2xiYXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1nbG9iYWwtYWN0aW9ucz5cclxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxyXG4gICAgICAgICAgICA8IS0tIGxheW91dCBhY3Rpb25zIC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgW2Zvcm1BY3Rpb25zXT1cInRoaXMudG9vbGJhclwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgQGlmICghaGlkZUNsb3NlKSB7XHJcbiAgICAgICAgICAgIDxmZC10b29sYmFyIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2NsZWFyQm9yZGVyXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAoZGV2aWNlU2l6ZSAhPT0gJ3MnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3I+PC9mZC10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmdWxsc2NyZWVuRm9ybVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3NlRm9ybVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucz5cclxuICAgIDwvZmQtZHluYW1pYy1wYWdlLWhlYWRlcj5cclxuICAgIEBpZiAoZGVzY3JpcHRpb24gfHwgZmFjZXRMaXN0Lmxlbmd0aCA+IDAgfHwgd29ya2Zsb3dJbmZvVGV4dCB8fCBhdmF0YXIpIHt9XHJcbiAgICA8ZmQtZHluYW1pYy1wYWdlLXN1YmhlYWRlclxyXG4gICAgICAgIFtjbGFzcy5oZWFkZXItbm8tZGVzY3JpcHRpb25dPVwiIShkZXNjcmlwdGlvbiB8fCB3b3JrZmxvd0luZm9UZXh0KVwiXHJcbiAgICAgICAgW2NsYXNzLm5vLXBpbl09XCJoaWRlUGluIHx8ICghZmFjZXRMaXN0Py5sZW5ndGggJiYgIXdvcmtmbG93SW5mb1RleHQpXCJcclxuICAgICAgICBbY29sbGFwc2libGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Bpbm5hYmxlXT1cImZhbHNlXCJcclxuICAgICAgICBbY29sbGFwc2VkXT1cIiFmYWNldExpc3Q/Lmxlbmd0aCAmJiAhd29ya2Zsb3dJbmZvVGV4dFwiXHJcbiAgICA+XHJcbiAgICAgICAgQGlmICh3b3JrZmxvd0luZm9UZXh0KSB7XHJcbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXAgW3R5cGVdPVwiJ3dhcm5pbmcnXCIgW2Rpc21pc3NpYmxlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIHt7IHdvcmtmbG93SW5mb1RleHQgfCBiYmJUcmFuc2xhdGUgfX1cclxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxmZC1mYWNldC1ncm91cCBhcmlhTGFiZWw9XCJGYWNldCBHcm91cFwiPlxyXG4gICAgICAgICAgICBAaWYgKGF2YXRhcikge1xyXG4gICAgICAgICAgICA8ZmQtZmFjZXQgdHlwZT1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJhdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJhdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCIhYXZhdGFyPy5GaWxlSWQgPyBudWxsIDogKGF2YXRhcj8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6bnVsbClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImRldmljZVNpemUgPT09ICd4bCcgPyAnbCcgOiBkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJjaXJjbGVBdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYXZhdGFyIGZkLWF2YXRhci0tY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidmZC1hdmF0YXItLScgKyAoZGV2aWNlU2l6ZSA9PT0gJ3hsJyA/ICdsJyA6IGRldmljZVNpemUpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImF2YXRhclwiIGNsYXNzPVwiZmQtYXZhdGFyX19pY29uXCIgW2NsYXNzXT1cImF2YXRhciB8IHNhcEZvbnRDbGFzc1wiIHJvbGU9XCJwcmVzZW50YXRpb25cIj4gPC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8L2ZkLWZhY2V0PlxyXG4gICAgICAgICAgICB9IEBmb3IgKGZhY2V0IG9mIGZhY2V0TGlzdDsgdHJhY2sgZmFjZXQpIHtcclxuICAgICAgICAgICAgPGZkLWZhY2V0XHJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJmYWNldC50eXBlXCJcclxuICAgICAgICAgICAgICAgIFtmYWNldFRpdGxlXT1cImZhY2V0Lm1vLlRpdGxlIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCJmYWNldC5tby5TdWJUaXRsZSB8IGZhY2V0VmFsdWUgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGZhY2V0Lm1vLkl0ZW1MaXN0Py5Nb0RhdGFMaXN0OyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtZmFjZXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBbY29sb25dPVwidHJ1ZVwiIGZvcj1cImZvcm0tdmFsdWUtMTBcIj57eyBpdGVtLlRpdGxlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtdGV4dCBbdGV4dF09XCJpdGVtLlZhbHVlIHwgZmFjZXRWYWx1ZVwiIGlkPVwiZm9ybS12YWx1ZS0xMFwiPjwvZmQtdGV4dD5cclxuICAgICAgICAgICAgICAgIDwvZmQtZmFjZXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIH0gQGlmICggIWZhY2V0Lm1vLklzTnVtYmVyICYmIGZhY2V0LnR5cGUgPT09ICdrZXktdmFsdWUnICYmICFmYWNldC5tby5Db21wb25lbnQ/LlNlbGVjdG9yKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcclxuICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cImZhY2V0Lm1vLlN0YXR1cyB8IGZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmYWNldC5tby5Db21wb25lbnQ/LlNlbGVjdG9yID8gJycgOiAoZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFyZ2VdPVwiZmFjZXQubW8uSXNMYXJnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImZhY2V0Lm1vLlRleHQgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCJmYWNldC5tby5UZXh0IHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImZhY2V0Lm1vLkljb25cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8Ym5yYy1keW5hbWljLWNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInZmQtb2JqZWN0LXN0YXR1cyBmZC1vYmplY3Qtc3RhdHVzLS0nICsgZmFjZXQubW8uU3RhdHVzIHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLW9iamVjdC1zdGF0dXMtLWxhcmdlXT1cImZhY2V0Lm1vLklzTGFyZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZmFjZXQubW8uQ29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFjZXQubW8uVGV4dFwiXHJcbiAgICAgICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtY29tcG9uZW50PlxyXG4gICAgICAgICAgICAgICAgfSBAaWYgKGZhY2V0Lm1vLklzTnVtYmVyICYmIGZhY2V0LnR5cGUgPT09ICdrZXktdmFsdWUnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtb2JqZWN0LW51bWJlclxyXG4gICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwiZmFjZXQubW8uVGV4dCB8IGZhY2V0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYXJnZV09XCJmYWNldC5tby5Jc0xhcmdlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdW5pdF09XCJmYWNldC5tby5Vbml0IHwgZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJmYWNldC5tby5TdGF0dXMgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGVjaW1hbF09XCJmYWNldC5tby5EZWNpbWFsVmFsdWUgfCBmYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLW9iamVjdC1udW1iZXI+XHJcbiAgICAgICAgICAgICAgICB9IEBpZiAoZmFjZXQudHlwZSA9PT0gJ3BsYWluLXRleHQnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtzdHlsZS53aWR0aC5weF09XCJmYWNldC5tby5XaWR0aFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vcm1hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC10ZXh0IFt0ZXh0XT1cImZhY2V0Lm1vLlRleHQgfCBmYWNldFZhbHVlXCIgaHlwaGVuYXRpb249XCJhdXRvXCI+PC9mZC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9IEBpZiAoZmFjZXQudHlwZSA9PT0gJ3JhdGluZy1pbmRpY2F0b3InKSB7XHJcbiAgICAgICAgICAgICAgICA8ZmQtZmFjZXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtcmF0aW5nLWluZGljYXRvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBvaW50ZXItZXZlbnRzOiBub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2R5bmFtaWNUZXh0SW5kaWNhdG9yXT1cImZhY2V0Lm1vLkZvb3RlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5TW9kZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhY2V0Lm1vIHwgZmFjZXRWYWx1ZTogZmFjZXQudHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtcmF0aW5nLWluZGljYXRvcj5cclxuICAgICAgICAgICAgICAgIDwvZmQtZmFjZXQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIH0gQGlmIChmYWNldC50eXBlID09PSAncHJvZ3Jlc3MnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtzdHlsZS53aWR0aF09XCInMTByZW0nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBmZC1mb3JtLWxhYmVsPnt7IGZhY2V0Lm1vLlN1YnRpdGxlIHwgZmFjZXRWYWx1ZSB9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLXByb2dyZXNzLWluZGljYXRvciBjbGFzcz1cImZhY2V0LXByb2dyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTByIGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cImZhY2V0Lm1vLlN0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlVGV4dF09XCIoZmFjZXQubW8gfCBmYWNldFZhbHVlOiBmYWNldC50eXBlKSArICcg2KfYsiAxMCDZhdix2K3ZhNmHJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZU5vd109XCJmYWNldC5tbyB8IGZhY2V0VmFsdWU6IGZhY2V0LnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVNYXhdPVwiMTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdW5pdF09XCIn2YXYsdit2YTZhydcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLXByb2dyZXNzLWluZGljYXRvcj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDx1aTUtcHJvZ3Jlc3MtaW5kaWNhdG9yXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTByZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZVN0YXRlXT1cImZhY2V0Lm1vLlN0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0TnVtYmVyKGZhY2V0Lm1vLlZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgID48L3VpNS1wcm9ncmVzcy1pbmRpY2F0b3I+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9IEBpZiAoZmFjZXQudHlwZSA9PT0gJ21pY3JvY2hhcnRzJykge1xyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgd3JhcD5pbiBwcm9ncmVzcyAuLi48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZmQtZmFjZXQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLWZhY2V0LWdyb3VwPlxyXG4gICAgICAgIEBpZiAoZGVzY3JpcHRpb24pIHtcclxuICAgICAgICA8c3Bhbj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1zdWJoZWFkZXI+XHJcbiAgICBAaWYoIW1vZGVyblRhYnMubGVuZ3RoICYmICFjb250ZW50SXNQYWdlKXtcclxuICAgIDxmZC1keW5hbWljLXBhZ2UtY29udGVudCBbY2xhc3MubGltaXQtY29udGVudC13aWR0aF09XCJmb3JtQ29udGVudE1heFdpZHRoID4gMFwiIGNka1Njcm9sbGFibGU+XHJcbiAgICAgICAgPGZkLWxheW91dC1ncmlkIHN0eWxlPVwibWluLWhlaWdodDogMTAwJVwiIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwiZm9ybUNvbnRlbnRNYXhXaWR0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDA7IHBhZGRpbmctaW5saW5lOiAwOyBwYWRkaW5nLWJsb2NrOiAwXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlkZV09XCJsYXlvdXQyLmNvbFhsID09PSAwXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmRMYXlvdXRHcmlkQ29sXT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xNZF09XCJsYXlvdXQxLmNvbE1kXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29sTGddPVwibGF5b3V0MS5jb2xMZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbFhsXT1cImxheW91dDEuY29sWGxcIlxyXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMCVcIiBbZmRMYXlvdXRHcmlkQ29sXT1cIjEyXCIgW2NvbE1kXT1cImNvbE1kXCIgW2NvbExnXT1cImNvbExnXCIgW2NvbFhsXT1cImNvbFhsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycz8uTGF5b3V0Q29tcG9uZW50ID8gcmVuZGVyTGF5b3V0Q29tcG9uZW50IDogcmVuZGVyRGVmYXVsdExheW91dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0OTRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDA7IHBhZGRpbmctaW5saW5lOiAwOyBwYWRkaW5nLWJsb2NrOiAwXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlkZV09XCJsYXlvdXQyLmNvbFhsID09PSAwXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmRMYXlvdXRHcmlkQ29sXT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xNZF09XCJsYXlvdXQyLmNvbE1kXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29sTGddPVwibGF5b3V0Mi5jb2xMZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbFhsXT1cImxheW91dDIuY29sWGxcIlxyXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2ZkLWxheW91dC1ncmlkPlxyXG4gICAgPC9mZC1keW5hbWljLXBhZ2UtY29udGVudD5cclxuICAgIH0gQGVsc2UgaWYobW9kZXJuVGFicy5sZW5ndGggJiYgIWNvbnRlbnRJc1BhZ2UgJiYgIXBhcmFtZXRlcnM/LkxheW91dENvbXBvbmVudCl7XHJcbiAgICA8ZmRwLWljb24tdGFiLWJhciBbc3RhY2tDb250ZW50XT1cImZhbHNlXCIgW2NvbGxhcHNlT3ZlcmZsb3ddPVwidHJ1ZVwiIFtleHBhbmRPdmVyZmxvd1RleHRdPVwiJ01vcmUnIHwgYmJiVHJhbnNsYXRlXCI+XHJcbiAgICAgICAgQGZvciAodGFiIG9mIG1vZGVyblRhYnM7IHRyYWNrIHRhYi5UaXRsZTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuXHJcbiAgICAgICAgPGZkcC1pY29uLXRhYi1iYXItdGFiXHJcbiAgICAgICAgICAgIFtpZF09XCJ0YWIuaWRcIlxyXG4gICAgICAgICAgICBbbGFiZWxdPVwidGFiLlRpdGxlISEgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICBbdGl0bGVdPVwidGFiLlRpdGxlISEgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICBbY2xhc3MuaXMtZXhwYW5kZWRdPVwic2VsZWN0ZWRUYWIgPT09IHRhYi5UaXRsZVwiXHJcbiAgICAgICAgICAgICN0YWJsaXN0XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWNvbnRlbnQgW2lkXT1cInRhYi5pZFwiIFtjbGFzcy5saW1pdC1jb250ZW50LXdpZHRoXT1cImZvcm1Db250ZW50TWF4V2lkdGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtbGF5b3V0LWdyaWQgW3N0eWxlLm1heC13aWR0aC5weF09XCJmb3JtQ29udGVudE1heFdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRSb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMDsgcGFkZGluZy1pbmxpbmU6IDA7IHBhZGRpbmctYmxvY2s6IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkTGF5b3V0R3JpZENvbF09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xNZF09XCJsYXlvdXQxLmNvbE1kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xMZ109XCJsYXlvdXQxLmNvbExnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xYbF09XCJsYXlvdXQxLmNvbFhsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMTJcIiBbY29sTWRdPVwiY29sTWRcIiBbY29sTGddPVwiY29sTGdcIiBbY29sWGxdPVwiY29sWGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxic3UtbHktdGFiLXBhZ2UgW2NvbmZpZ109XCJ0YWJcIj48L2JzdS1seS10YWItcGFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMDsgcGFkZGluZy1pbmxpbmU6IDA7IHBhZGRpbmctYmxvY2s6IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkTGF5b3V0R3JpZENvbF09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xNZF09XCJsYXlvdXQyLmNvbE1kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xMZ109XCJsYXlvdXQyLmNvbExnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xYbF09XCJsYXlvdXQyLmNvbFhsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mZC1sYXlvdXQtZ3JpZD5cclxuICAgICAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtY29udGVudD5cclxuICAgICAgICA8L2ZkcC1pY29uLXRhYi1iYXItdGFiPlxyXG4gICAgICAgIH1cclxuICAgIDwvZmRwLWljb24tdGFiLWJhcj5cclxuICAgIH0gQGlmKCFoaWRlRm9vdGVyICYmIGhhc0xheW91dEJ1dHRvbnMpe1xyXG4gICAgPGZkLWR5bmFtaWMtcGFnZS1mb290ZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxheW91dEFjdGlvbnNUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9mZC1keW5hbWljLXBhZ2UtZm9vdGVyPlxyXG4gICAgfVxyXG48L2ZkLWR5bmFtaWMtcGFnZT5cclxuQGlmIChjb250ZW50SXNQYWdlKSB7XHJcbjxuZy1jb250YWluZXJcclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgcmVuZGVyTGF5b3V0Q29tcG9uZW50O1xyXG4gICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgJGltcGxpY2l0OiBwYXJhbWV0ZXJzPy5MYXlvdXRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQ5NFxyXG4gICAgICAgIH1cclxuICAgIFwiXHJcbj48L25nLWNvbnRhaW5lcj5cclxufVxyXG48bmctdGVtcGxhdGUgI3JlbmRlckRlZmF1bHRMYXlvdXQgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIj5cclxuICAgIDxic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290XHJcbiAgICAgICAgW2NvbmZpZ109XCJsYXlvdXQ5NFwiXHJcbiAgICAgICAgW2lzUGFuZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtpc1Jvb3RdPVwidHJ1ZVwiXHJcbiAgICA+PC9ic3UtbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckxheW91dENvbXBvbmVudCBsZXQtY29tcG9uZW50IGxldC1sYXlvdXQ5ND1cImxheW91dDk0XCI+XHJcbiAgICA8Ym5yYy1keW5hbWljLWZvcm0tY29tcG9uZW50XHJcbiAgICAgICAgW2NvbXBvbmVudF09XCJjb21wb25lbnRcIlxyXG4gICAgICAgIFtsYXlvdXRBY3Rpb25zVGVtcGxhdGVSZWZdPVwibGF5b3V0QWN0aW9uc1RlbXBsYXRlUmVmXCJcclxuICAgICAgICBbcmVtb3ZlQ29udGVudFBhZGRpbmddPVwicmVtb3ZlQ29udGVudFBhZGRpbmdcIlxyXG4gICAgICAgIFticmVhZENydW1ic109XCJicmVhZENydW1ic1wiXHJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cImRlc2NyaXB0aW9uXCJcclxuICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICAgIFtzdWJ0aXRsZV09XCJzdWJ0aXRsZVwiXHJcbiAgICAgICAgW3Rvb2xiYXJJdGVtc109XCJ0b29sYmFySXRlbXNcIlxyXG4gICAgICAgIFtsYXlvdXRBY3Rpb25zXT1cImxheW91dEFjdGlvbnNcIlxyXG4gICAgICAgIFtmb290ZXJEZXNpZ25dPVwiZm9vdGVyRGVzaWduXCJcclxuICAgICAgICBbZmFjZXRMaXN0XT1cImZhY2V0TGlzdFwiXHJcbiAgICAgICAgW3NldHRpbmdzXT1cImNvbXBvbmVudC5TZXR0aW5nc1wiXHJcbiAgICAgICAgW3dvcmtmbG93QnV0dG9uc109XCJ3b3JrZmxvd0J1dHRvbnNcIlxyXG4gICAgICAgIFt3b3JrZmxvd1BhbmVsVWldPVwid29ya2Zsb3dQYW5lbFVpXCJcclxuICAgICAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxyXG4gICAgICAgIFttb109XCJtb1wiXHJcbiAgICAgICAgW2xheW91dDk0XT1cImxheW91dDk0XCJcclxuICAgICAgICBbY29udGV4dF09XCJjb250ZXh0XCJcclxuICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgW2ZpZWxkRGljdF09XCJmaWVsZERpY3RcIlxyXG4gICAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICAgIFtkaXJWYWx1ZV09XCJkaXJWYWx1ZVwiXHJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cImNvbnRlbnREZW5zaXR5XCJcclxuICAgICAgICBbbW9kZXJuVGFic109XCJtb2Rlcm5UYWJzXCJcclxuICAgICAgICBbYXZhdGFyXT1cImF2YXRhclwiXHJcbiAgICAgICAgKGV2ZW50cyk9XCJvbkR5bmFtaWNDb21wb25lbnRFdmVudHMoJGV2ZW50KVwiXHJcbiAgICA+PC9ibnJjLWR5bmFtaWMtZm9ybS1jb21wb25lbnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjY2xvc2VGb3JtPlxyXG4gICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwiY2xvc2UuZW1pdCgpXCIgdGl0bGU9XCJDbG9zZVwiPlxyXG4gICAgICAgIDxpIFtjbGFzc109XCInc2FwLWljb24tLScgKyAoaXNNb2JpbGUgPyAocnRsID8gJ2Fycm93LXJpZ2h0JyA6ICdhcnJvdy1sZWZ0JykgOiAnZGVjbGluZScpXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjZnVsbHNjcmVlbkZvcm0+XHJcbiAgICBAaWYgKGNhbkZ1bGxzY3JlZW4pIHtcclxuICAgIDxidXR0b25cclxuICAgICAgICBmZC1idXR0b25cclxuICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJmdWxsc2NyZWVuID8gJ2V4aXQgZnVsbHNjcmVlbicgOiAnZnVsbHNjcmVlbidcIlxyXG4gICAgICAgIChjbGljayk9XCJmdWxsc2NyZWVuUmVxdWVzdC5lbWl0KClcIlxyXG4gICAgICAgIFt0aXRsZV09XCJmdWxsc2NyZWVuID8gJ2V4aXQgZnVsbHNjcmVlbicgOiAnZnVsbHNjcmVlbidcIlxyXG4gICAgICAgIFtnbHlwaF09XCJmdWxsc2NyZWVuID8gJ2V4aXRmdWxsc2NyZWVuJyA6ICdyZXNpemUnXCJcclxuICAgID48L2J1dHRvbj5cclxuICAgIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNsYXlvdXRBY3Rpb25zVGVtcGxhdGVSZWY+XHJcbiAgICA8YnN1LWxheW91dC1hY3Rpb25zXHJcbiAgICAgICAgW2NhblNlbmRdPVwiY2FuU2VuZFwiXHJcbiAgICAgICAgW2J1dHRvbnNdPVwibGF5b3V0QWN0aW9uc1wiXHJcbiAgICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCJcclxuICAgICAgICBbbGFuZHNjYXBlXT1cImxhbmRzY2FwZVwiXHJcbiAgICAgICAgW3N0YW5kYWxvbmVdPVwic3RhbmRhbG9uZVwiXHJcbiAgICAgICAgW2Zvb3RlckRlc2lnbl09XCJmb290ZXJEZXNpZ25cIlxyXG4gICAgICAgIFt3b3JrZmxvd0J1dHRvbnNdPVwid29ya2Zsb3dCdXR0b25zXCJcclxuICAgICAgICBbd29ya2Zsb3dCdXR0b25zQ29tYm9Nb2RlXT1cIndvcmtmbG93QnV0dG9uc0NvbWJvTW9kZSB8fCB3b3Jma2xvd0J1dHRvbnNPbkZvb3RlclwiXHJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgW3J0bF09XCJydGxcIlxyXG4gICAgICAgICh0b29sQ2xpY2spPVwidG9vbGJhckNsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHdvcmtmbG93Q2hvaWNlU2VsZWN0KT1cIm9uV2ZDaG9pY2VTZWxlY3QoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICA8L2JzdS1sYXlvdXQtYWN0aW9ucz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,9 +1,8 @@
1
1
  import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
2
  import { BaseComponent } from 'barsa-novin-ray-core';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@fundamental-ngx/core/title";
5
- import * as i2 from "@fundamental-ngx/core/illustrated-message";
6
- import * as i3 from "barsa-novin-ray-core";
4
+ import * as i1 from "@fundamental-ngx/core/illustrated-message";
5
+ import * as i2 from "barsa-novin-ray-core";
7
6
  export class NoDataComponent extends BaseComponent {
8
7
  constructor() {
9
8
  super(...arguments);
@@ -17,15 +16,15 @@ export class NoDataComponent extends BaseComponent {
17
16
  this._alingItems = this.simple;
18
17
  }
19
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoDataComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NoDataComponent, selector: "bsu-no-data", inputs: { simple: "simple" }, host: { properties: { "class.a-center": "this._alingItems" } }, usesInheritance: true, ngImport: i0, template: "@if (!simple) {\r\n<tr style=\"text-align: center\">\r\n <td colspan=\"75%\" style=\"padding: 10px\">\r\n <!-- <span>{{ 'NoData' | bbbTranslate }}</span> -->\r\n <figure fd-illustrated-message [svgConfig]=\"sceneConfig\">\r\n <figcaption fd-illustrated-message-figcaption>\r\n <h3 fd-illustrated-message-title>{{ 'NoData' | bbbTranslate }}</h3>\r\n <p fd-illustrated-message-text>{{ 'NoDataAtThisTime' | bbbTranslate }}</p>\r\n </figcaption>\r\n <!-- <fd-illustrated-message-actions>\r\n <button fd-button label=\"Action One\"></button>\r\n <button fd-button label=\"Action Two\"></button>\r\n </fd-illustrated-message-actions> -->\r\n </figure>\r\n </td>\r\n</tr>\r\n} @else {\r\n<h4 fd-title class=\"!tw-py-4\">{{ 'NoData' | bbbTranslate }}</h4>\r\n}\r\n", styles: [":host{width:100%;display:flex;justify-content:center}:host.no-topborder{border-top:none}:host.no-btborder{border-bottom:none}:host.a-center{align-items:center}figure{max-height:140px;margin-top:0}\n"], dependencies: [{ kind: "component", type: i1.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i2.IllustratedMessageComponent, selector: "[fd-illustrated-message]", inputs: ["type", "svgConfig", "svgAriaLabel", "noSvg", "id", "class"] }, { kind: "component", type: i2.IllustratedMessageFigcaptionComponent, selector: "[fd-illustrated-message-figcaption]" }, { kind: "directive", type: i2.IllustratedMessageTextDirective, selector: "[fd-illustrated-message-text]" }, { kind: "directive", type: i2.IllustratedMessageTitleDirective, selector: "[fd-illustrated-message-title]" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NoDataComponent, selector: "bsu-no-data", inputs: { simple: "simple" }, host: { properties: { "class.a-center": "this._alingItems" } }, usesInheritance: true, ngImport: i0, template: "@if (!simple) {\r\n<tr style=\"text-align: center\">\r\n <td colspan=\"75%\" style=\"padding: 10px\">\r\n <!-- <span>{{ 'NoData' | bbbTranslate }}</span> -->\r\n <figure fd-illustrated-message [svgConfig]=\"sceneConfig\">\r\n <figcaption fd-illustrated-message-figcaption>\r\n <h3 fd-illustrated-message-title>{{ 'NoData' | bbbTranslate }}</h3>\r\n <p fd-illustrated-message-text>{{ 'NoDataAtThisTime' | bbbTranslate }}</p>\r\n </figcaption>\r\n <!-- <fd-illustrated-message-actions>\r\n <button fd-button label=\"Action One\"></button>\r\n <button fd-button label=\"Action Two\"></button>\r\n </fd-illustrated-message-actions> -->\r\n </figure>\r\n </td>\r\n</tr>\r\n} @else {\r\n<span class=\"!tw-py-4\">({{ 'NoData' | bbbTranslate }})</span>\r\n}\r\n", styles: [":host{width:100%;display:flex;justify-content:center}:host.no-topborder{border-top:none}:host.no-btborder{border-bottom:none}:host.a-center{align-items:center}figure{max-height:140px;margin-top:0}\n"], dependencies: [{ kind: "component", type: i1.IllustratedMessageComponent, selector: "[fd-illustrated-message]", inputs: ["type", "svgConfig", "svgAriaLabel", "noSvg", "id", "class"] }, { kind: "component", type: i1.IllustratedMessageFigcaptionComponent, selector: "[fd-illustrated-message-figcaption]" }, { kind: "directive", type: i1.IllustratedMessageTextDirective, selector: "[fd-illustrated-message-text]" }, { kind: "directive", type: i1.IllustratedMessageTitleDirective, selector: "[fd-illustrated-message-title]" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
20
  }
22
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoDataComponent, decorators: [{
23
22
  type: Component,
24
- args: [{ selector: 'bsu-no-data', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (!simple) {\r\n<tr style=\"text-align: center\">\r\n <td colspan=\"75%\" style=\"padding: 10px\">\r\n <!-- <span>{{ 'NoData' | bbbTranslate }}</span> -->\r\n <figure fd-illustrated-message [svgConfig]=\"sceneConfig\">\r\n <figcaption fd-illustrated-message-figcaption>\r\n <h3 fd-illustrated-message-title>{{ 'NoData' | bbbTranslate }}</h3>\r\n <p fd-illustrated-message-text>{{ 'NoDataAtThisTime' | bbbTranslate }}</p>\r\n </figcaption>\r\n <!-- <fd-illustrated-message-actions>\r\n <button fd-button label=\"Action One\"></button>\r\n <button fd-button label=\"Action Two\"></button>\r\n </fd-illustrated-message-actions> -->\r\n </figure>\r\n </td>\r\n</tr>\r\n} @else {\r\n<h4 fd-title class=\"!tw-py-4\">{{ 'NoData' | bbbTranslate }}</h4>\r\n}\r\n", styles: [":host{width:100%;display:flex;justify-content:center}:host.no-topborder{border-top:none}:host.no-btborder{border-bottom:none}:host.a-center{align-items:center}figure{max-height:140px;margin-top:0}\n"] }]
23
+ args: [{ selector: 'bsu-no-data', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (!simple) {\r\n<tr style=\"text-align: center\">\r\n <td colspan=\"75%\" style=\"padding: 10px\">\r\n <!-- <span>{{ 'NoData' | bbbTranslate }}</span> -->\r\n <figure fd-illustrated-message [svgConfig]=\"sceneConfig\">\r\n <figcaption fd-illustrated-message-figcaption>\r\n <h3 fd-illustrated-message-title>{{ 'NoData' | bbbTranslate }}</h3>\r\n <p fd-illustrated-message-text>{{ 'NoDataAtThisTime' | bbbTranslate }}</p>\r\n </figcaption>\r\n <!-- <fd-illustrated-message-actions>\r\n <button fd-button label=\"Action One\"></button>\r\n <button fd-button label=\"Action Two\"></button>\r\n </fd-illustrated-message-actions> -->\r\n </figure>\r\n </td>\r\n</tr>\r\n} @else {\r\n<span class=\"!tw-py-4\">({{ 'NoData' | bbbTranslate }})</span>\r\n}\r\n", styles: [":host{width:100%;display:flex;justify-content:center}:host.no-topborder{border-top:none}:host.no-btborder{border-bottom:none}:host.a-center{align-items:center}figure{max-height:140px;margin-top:0}\n"] }]
25
24
  }], propDecorators: { simple: [{
26
25
  type: Input
27
26
  }], _alingItems: [{
28
27
  type: HostBinding,
29
28
  args: ['class.a-center']
30
29
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZGF0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9uby1kYXRhL25vLWRhdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBU3JELE1BQU0sT0FBTyxlQUFnQixTQUFRLGFBQWE7SUFQbEQ7O1FBU21DLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ25ELGdCQUFXLEdBQWM7WUFDckIsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLDBCQUEwQixFQUFFLEVBQUUsRUFBRSx5QkFBeUIsRUFBRTtTQUM1RSxDQUFDO0tBS0w7SUFKRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNuQyxDQUFDOytHQVRRLGVBQWU7bUdBQWYsZUFBZSx3S0NaNUIsbTJCQW1CQTs7NEZEUGEsZUFBZTtrQkFQM0IsU0FBUzsrQkFDSSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFHUixNQUFNO3NCQUFkLEtBQUs7Z0JBQ3lCLFdBQVc7c0JBQXpDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN2Z0NvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS1uby1kYXRhJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9uby1kYXRhLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25vLWRhdGEuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vRGF0YUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgc2ltcGxlOiBib29sZWFuO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hLWNlbnRlcicpIF9hbGluZ0l0ZW1zID0gZmFsc2U7XHJcbiAgICBzY2VuZUNvbmZpZzogU3ZnQ29uZmlnID0ge1xyXG4gICAgICAgIHNjZW5lOiB7IHVybDogJ2Fzc2V0cy9zdmcvZW1wdHktYm94LnN2ZycsIGlkOiAnc2FwSWxsdXMtU2NlbmUtTm9NYWlsLTEnIH1cclxuICAgIH07XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX2FsaW5nSXRlbXMgPSB0aGlzLnNpbXBsZTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKCFzaW1wbGUpIHtcclxuPHRyIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+XHJcbiAgICA8dGQgY29sc3Bhbj1cIjc1JVwiIHN0eWxlPVwicGFkZGluZzogMTBweFwiPlxyXG4gICAgICAgIDwhLS0gPHNwYW4+e3sgJ05vRGF0YScgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+IC0tPlxyXG4gICAgICAgIDxmaWd1cmUgZmQtaWxsdXN0cmF0ZWQtbWVzc2FnZSBbc3ZnQ29uZmlnXT1cInNjZW5lQ29uZmlnXCI+XHJcbiAgICAgICAgICAgIDxmaWdjYXB0aW9uIGZkLWlsbHVzdHJhdGVkLW1lc3NhZ2UtZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgICAgIDxoMyBmZC1pbGx1c3RyYXRlZC1tZXNzYWdlLXRpdGxlPnt7ICdOb0RhdGEnIHwgYmJiVHJhbnNsYXRlIH19PC9oMz5cclxuICAgICAgICAgICAgICAgIDxwIGZkLWlsbHVzdHJhdGVkLW1lc3NhZ2UtdGV4dD57eyAnTm9EYXRhQXRUaGlzVGltZScgfCBiYmJUcmFuc2xhdGUgfX08L3A+XHJcbiAgICAgICAgICAgIDwvZmlnY2FwdGlvbj5cclxuICAgICAgICAgICAgPCEtLSA8ZmQtaWxsdXN0cmF0ZWQtbWVzc2FnZS1hY3Rpb25zPlxyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGxhYmVsPVwiQWN0aW9uIE9uZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGxhYmVsPVwiQWN0aW9uIFR3b1wiPjwvYnV0dG9uPlxyXG4gICAgICA8L2ZkLWlsbHVzdHJhdGVkLW1lc3NhZ2UtYWN0aW9ucz4gLS0+XHJcbiAgICAgICAgPC9maWd1cmU+XHJcbiAgICA8L3RkPlxyXG48L3RyPlxyXG59IEBlbHNlIHtcclxuPGg0IGZkLXRpdGxlIGNsYXNzPVwiIXR3LXB5LTRcIj57eyAnTm9EYXRhJyB8IGJiYlRyYW5zbGF0ZSB9fTwvaDQ+XHJcbn1cclxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZGF0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9uby1kYXRhL25vLWRhdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFTckQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQVBsRDs7UUFTbUMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDbkQsZ0JBQVcsR0FBYztZQUNyQixLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLHlCQUF5QixFQUFFO1NBQzVFLENBQUM7S0FLTDtJQUpHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ25DLENBQUM7K0dBVFEsZUFBZTttR0FBZixlQUFlLHdLQ1o1QixnMkJBbUJBOzs0RkRQYSxlQUFlO2tCQVAzQixTQUFTOytCQUNJLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUdSLE1BQU07c0JBQWQsS0FBSztnQkFDeUIsV0FBVztzQkFBekMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ZnQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LW5vLWRhdGEnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25vLWRhdGEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbm8tZGF0YS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm9EYXRhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBzaW1wbGU6IGJvb2xlYW47XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmEtY2VudGVyJykgX2FsaW5nSXRlbXMgPSBmYWxzZTtcclxuICAgIHNjZW5lQ29uZmlnOiBTdmdDb25maWcgPSB7XHJcbiAgICAgICAgc2NlbmU6IHsgdXJsOiAnYXNzZXRzL3N2Zy9lbXB0eS1ib3guc3ZnJywgaWQ6ICdzYXBJbGx1cy1TY2VuZS1Ob01haWwtMScgfVxyXG4gICAgfTtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5fYWxpbmdJdGVtcyA9IHRoaXMuc2ltcGxlO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAoIXNpbXBsZSkge1xyXG48dHIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cclxuICAgIDx0ZCBjb2xzcGFuPVwiNzUlXCIgc3R5bGU9XCJwYWRkaW5nOiAxMHB4XCI+XHJcbiAgICAgICAgPCEtLSA8c3Bhbj57eyAnTm9EYXRhJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgPGZpZ3VyZSBmZC1pbGx1c3RyYXRlZC1tZXNzYWdlIFtzdmdDb25maWddPVwic2NlbmVDb25maWdcIj5cclxuICAgICAgICAgICAgPGZpZ2NhcHRpb24gZmQtaWxsdXN0cmF0ZWQtbWVzc2FnZS1maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGgzIGZkLWlsbHVzdHJhdGVkLW1lc3NhZ2UtdGl0bGU+e3sgJ05vRGF0YScgfCBiYmJUcmFuc2xhdGUgfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgPHAgZmQtaWxsdXN0cmF0ZWQtbWVzc2FnZS10ZXh0Pnt7ICdOb0RhdGFBdFRoaXNUaW1lJyB8IGJiYlRyYW5zbGF0ZSB9fTwvcD5cclxuICAgICAgICAgICAgPC9maWdjYXB0aW9uPlxyXG4gICAgICAgICAgICA8IS0tIDxmZC1pbGx1c3RyYXRlZC1tZXNzYWdlLWFjdGlvbnM+XHJcbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gbGFiZWw9XCJBY3Rpb24gT25lXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gbGFiZWw9XCJBY3Rpb24gVHdvXCI+PC9idXR0b24+XHJcbiAgICAgIDwvZmQtaWxsdXN0cmF0ZWQtbWVzc2FnZS1hY3Rpb25zPiAtLT5cclxuICAgICAgICA8L2ZpZ3VyZT5cclxuICAgIDwvdGQ+XHJcbjwvdHI+XHJcbn0gQGVsc2Uge1xyXG48c3BhbiBjbGFzcz1cIiF0dy1weS00XCI+KHt7ICdOb0RhdGEnIHwgYmJiVHJhbnNsYXRlIH19KTwvc3Bhbj5cclxufVxyXG4iXX0=
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { FieldBaseComponent } from 'barsa-novin-ray-core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@fundamental-ngx/core/button";
5
- import * as i2 from "@fundamental-ngx/core/text";
5
+ import * as i2 from "@fundamental-ngx/core/form";
6
6
  import * as i3 from "@angular/common";
7
7
  import * as i4 from "barsa-novin-ray-core";
8
8
  export class UiMoInfoComboViewerComponent extends FieldBaseComponent {
@@ -10,10 +10,10 @@ export class UiMoInfoComboViewerComponent extends FieldBaseComponent {
10
10
  this.context.fireEvent('ButtonClick', this.context);
11
11
  }
12
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMoInfoComboViewerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiMoInfoComboViewerComponent, selector: "bsu-ui-mo-info-combo-viewer", usesInheritance: true, ngImport: i0, template: "<fd-text class=\"bold\" [text]=\"value | bbbTranslate\" hyphenation=\"auto\"></fd-text>\r\n@if ((disableOrReadonly$ | async) !== true && !Setting.IsReadOnly && Setting.ViewRelatedFormType !== 'Hide') {\r\n<button fd-button [glyph]=\"'edit'\" [fdType]=\"'transparent'\" (click)=\"onBtnClick()\"></button>\r\n}\r\n", styles: [":host{display:flex;min-height:var(--sapElement_Height);height:auto;align-items:center}h5{align-self:center}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiMoInfoComboViewerComponent, selector: "bsu-ui-mo-info-combo-viewer", usesInheritance: true, ngImport: i0, template: "<input\r\n fd-form-control\r\n [placeholder]=\"Setting.NullText || ''\"\r\n [attr.readonly]=\"true\"\r\n [type]=\"'text'\"\r\n [value]=\"value | bbbTranslate\"\r\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\r\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\r\n/>\r\n@if ((disableOrReadonly$ | async) !== true && !Setting.IsReadOnly && Setting.ViewRelatedFormType !== 'Hide') {\r\n<button fd-button [glyph]=\"'edit'\" [fdType]=\"'transparent'\" (click)=\"onBtnClick()\"></button>\r\n}\r\n", styles: [":host{display:flex;min-height:var(--sapElement_Height);height:auto;align-items:center}h5{align-self:center}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiMoInfoComboViewerComponent, decorators: [{
16
16
  type: Component,
17
- args: [{ selector: 'bsu-ui-mo-info-combo-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-text class=\"bold\" [text]=\"value | bbbTranslate\" hyphenation=\"auto\"></fd-text>\r\n@if ((disableOrReadonly$ | async) !== true && !Setting.IsReadOnly && Setting.ViewRelatedFormType !== 'Hide') {\r\n<button fd-button [glyph]=\"'edit'\" [fdType]=\"'transparent'\" (click)=\"onBtnClick()\"></button>\r\n}\r\n", styles: [":host{display:flex;min-height:var(--sapElement_Height);height:auto;align-items:center}h5{align-self:center}\n"] }]
17
+ args: [{ selector: 'bsu-ui-mo-info-combo-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<input\r\n fd-form-control\r\n [placeholder]=\"Setting.NullText || ''\"\r\n [attr.readonly]=\"true\"\r\n [type]=\"'text'\"\r\n [value]=\"value | bbbTranslate\"\r\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\r\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\r\n/>\r\n@if ((disableOrReadonly$ | async) !== true && !Setting.IsReadOnly && Setting.ViewRelatedFormType !== 'Hide') {\r\n<button fd-button [glyph]=\"'edit'\" [fdType]=\"'transparent'\" (click)=\"onBtnClick()\"></button>\r\n}\r\n", styles: [":host{display:flex;min-height:var(--sapElement_Height);height:auto;align-items:center}h5{align-self:center}\n"] }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1jb21iby12aWV3ZXIvdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1jb21iby12aWV3ZXIvdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBUTFELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFDaEUsVUFBVTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0FIUSw0QkFBNEI7bUdBQTVCLDRCQUE0QiwwRkNWekMsMFRBSUE7OzRGRE1hLDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDSSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1tby1pbmZvLWNvbWJvLXZpZXdlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpTW9JbmZvQ29tYm9WaWV3ZXJDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQge1xyXG4gICAgb25CdG5DbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdCdXR0b25DbGljaycsIHRoaXMuY29udGV4dCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZkLXRleHQgY2xhc3M9XCJib2xkXCIgW3RleHRdPVwidmFsdWUgfCBiYmJUcmFuc2xhdGVcIiBoeXBoZW5hdGlvbj1cImF1dG9cIj48L2ZkLXRleHQ+XHJcbkBpZiAoKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSAhPT0gdHJ1ZSAmJiAhU2V0dGluZy5Jc1JlYWRPbmx5ICYmIFNldHRpbmcuVmlld1JlbGF0ZWRGb3JtVHlwZSAhPT0gJ0hpZGUnKSB7XHJcbjxidXR0b24gZmQtYnV0dG9uIFtnbHlwaF09XCInZWRpdCdcIiBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIiAoY2xpY2spPVwib25CdG5DbGljaygpXCI+PC9idXR0b24+XHJcbn1cclxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1jb21iby12aWV3ZXIvdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1jb21iby12aWV3ZXIvdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBUTFELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFDaEUsVUFBVTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0FIUSw0QkFBNEI7bUdBQTVCLDRCQUE0QiwwRkNWekMsK2hCQVlBOzs0RkRGYSw0QkFBNEI7a0JBUHhDLFNBQVM7K0JBQ0ksNkJBQTZCLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktbW8taW5mby1jb21iby12aWV3ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLW1vLWluZm8tY29tYm8tdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLW1vLWluZm8tY29tYm8tdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaU1vSW5mb0NvbWJvVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IHtcclxuICAgIG9uQnRuQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnQnV0dG9uQ2xpY2snLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxpbnB1dFxyXG4gICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwiU2V0dGluZy5OdWxsVGV4dCB8fCAnJ1wiXHJcbiAgICBbYXR0ci5yZWFkb25seV09XCJ0cnVlXCJcclxuICAgIFt0eXBlXT1cIid0ZXh0J1wiXHJcbiAgICBbdmFsdWVdPVwidmFsdWUgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgW3N0eWxlLmRpcmVjdGlvbl09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gJ2x0cicgOiBudWxsXCJcclxuICAgIFtzdHlsZS50ZXh0LWFsaWduXT1cIlNldHRpbmcuSXNMdHIgPT09IHRydWUgPyAnbGVmdCcgOiBudWxsXCJcclxuLz5cclxuQGlmICgoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpICE9PSB0cnVlICYmICFTZXR0aW5nLklzUmVhZE9ubHkgJiYgU2V0dGluZy5WaWV3UmVsYXRlZEZvcm1UeXBlICE9PSAnSGlkZScpIHtcclxuPGJ1dHRvbiBmZC1idXR0b24gW2dseXBoXT1cIidlZGl0J1wiIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIChjbGljayk9XCJvbkJ0bkNsaWNrKClcIj48L2J1dHRvbj5cclxufVxyXG4iXX0=