barsa-sap-ui 2.0.91 → 2.0.93
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +3 -3
- package/esm2022/lib/barsa-column-rownumber/barsa-column-rownumber.component.mjs +3 -4
- package/esm2022/lib/barsa-form-side-content/barsa-form-side-content.component.mjs +3 -3
- package/esm2022/lib/barsa-table-header/barsa-table-header.component.mjs +5 -2
- package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
- package/esm2022/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +10 -6
- package/esm2022/lib/card-item/card-item.component.mjs +3 -4
- package/esm2022/lib/card-view-content/card-view-content.component.mjs +2 -2
- package/esm2022/lib/report-view-renderer.directive.mjs +6 -4
- package/esm2022/lib/sap-ui-report-base.component.mjs +9 -4
- package/esm2022/lib/ui-card-view/ui-card-view.component.mjs +5 -7
- package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +3 -3
- package/esm2022/lib/ui-table-view/ui-table-view.component.mjs +44 -37
- package/esm2022/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +10 -3
- package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +3 -3
- package/fesm2022/barsa-sap-ui.mjs +133 -106
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/lib/barsa-column-rownumber/barsa-column-rownumber.component.d.ts +1 -1
- package/lib/barsa-sap-ui.module.d.ts +1 -1
- package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +4 -2
- package/lib/index.d.ts +1 -1
- package/lib/report-view-renderer.directive.d.ts +3 -2
- package/lib/ui-table-view/ui-table-view.component.d.ts +10 -9
- package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -15,7 +15,6 @@ import * as i11 from "@fundamental-ngx/core/quick-view";
|
|
|
15
15
|
import * as i12 from "../ulv-context-menu/ulv-context-menu.component";
|
|
16
16
|
import * as i13 from "../column-renderer/column-renderer.component";
|
|
17
17
|
import * as i14 from "../apply-conditional-formmatings.directive";
|
|
18
|
-
import * as i15 from "../avatar-size.pipe";
|
|
19
18
|
export class CardItemComponent extends BaseViewItemPropsComponent {
|
|
20
19
|
ngOnInit() {
|
|
21
20
|
super.ngOnInit();
|
|
@@ -43,11 +42,11 @@ export class CardItemComponent extends BaseViewItemPropsComponent {
|
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: CardItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: CardItemComponent, selector: "bsu-card-item", inputs: { setting: "setting" }, providers: [FormPanelService], viewQueries: [{ propertyName: "_quickViewTemplate", first: true, predicate: ["quickViewTemplate"], descendants: true, static: true }, { propertyName: "_contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-card\n [cardType]=\"setting.CardType$Caption\"\n class=\"docs-flex-item-margin\"\n [class.openOnClick]=\"setting.openOnClick\"\n [style.width]=\"cardWidth\"\n [style.min-width]=\"minWidth\"\n [style.max-width]=\"maxWidth\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n\n @if (!noContent || contextMenuItems) {\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify>\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\n <ng-container\n *ngTemplateOutlet=\"\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n </div>\n @if (contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [footerMode]=\"true\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n }\n </fd-card-content>\n }\n</fd-card>\n\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\"\n >@if (column) {\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [isChecked]=\"isChecked\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n }\n</ng-template>\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\n @if (!noContent) {\n <fd-quick-view [id]=\"'id'\">\n <fd-quick-view-group>\n @if (setting.Avatar || setting.AvatarField || setting.TitleField || setting.SubtitleField) {\n <fd-quick-view-subheader>\n @if (setting.AvatarField || setting.Avatar) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"setting.CircleAvatar\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l'\n ? setting.AvatarSizeDesktop$Caption\n : setting.AvatarSize$Caption\n \"\n [glyph]=\"\n setting.Avatar ||\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n } @if (setting.TitleField) {\n <fd-quick-view-subheader-title>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </fd-quick-view-subheader-title>\n } @if (setting.SubtitleField) {\n <fd-quick-view-subheader-subtitle>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </fd-quick-view-subheader-subtitle>\n }\n </fd-quick-view-subheader>\n } @for (column of setting.FieldListMapped; track column) {\n <fd-quick-view-group-item>\n @if (column) {\n <fd-quick-view-group-item-label>\n {{ column.Caption | bbbTranslate }}\n </fd-quick-view-group-item-label>\n <fd-quick-view-group-item-content>\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n }\n </fd-quick-view-group-item>\n } @if (setting.DescriptionField) {\n <fd-quick-view-group-item>\n <fd-quick-view-group-item-content>\n @if (inlineEditMode && allowInlineEdit) {\n <fd-quick-view-group-item-label>\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </fd-quick-view-group-item-label>\n }\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n @if (setting.ActionFieldNameField) {\n <fd-quick-view-group-item-content\n class=\"action\"\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\n >\n <a fd-link>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.ActionFieldNameField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </a>\n </fd-quick-view-group-item-content>\n }\n </fd-quick-view-group-item>\n }\n </fd-quick-view-group>\n </fd-quick-view>\n }\n</ng-template>\n<ng-template #contentTemplate let-mo let-index=\"index\">\n <fd-layout-grid>\n <div fdLayoutGridRow style=\"align-items: center\">\n <div [fdLayoutGridCol]=\"deviceSize | avatarGridCol\">\n <ng-container\n *ngTemplateOutlet=\"\n avatar;\n context: {\n $implicit: setting.Avatar,\n visible: setting.AvatarField || setting.Avatar,\n circle: setting.CircleAvatar,\n avatarField: setting.AvatarField\n }\n \"\n ></ng-container>\n </div>\n\n <div [fdLayoutGridCol]=\"deviceSize | avatarGridCol: false\">\n @if (setting.TitleField) {\n <span style=\"font-weight: bold\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </span>\n } @if (setting.SubtitleField) {\n <span>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </span>\n }\n </div>\n\n <div [fdLayoutGridCol]=\"12\">\n @for (column of setting.FieldListMapped; track column) {\n <div style=\"display: flex\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-11\">{{ column.Caption | bbbTranslate }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n @if (setting.DescriptionField) {\n <div [fdLayoutGridCol]=\"12\">\n @if (inlineEditMode && allowInlineEdit) {\n <label>\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </label>\n }\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n </fd-layout-grid>\n</ng-template>\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\n @if (visible) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"circle\"\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l' ? setting.AvatarSizeDesktop$Caption : setting.AvatarSize$Caption\n \"\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\n >\n </fd-avatar>\n }\n</ng-template>\n\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.ContentComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.ContentComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n\n<ng-template #renderHeader let-mo let-index=\"index\">\n @if ( (isCheckList || deviceName !== 'desktop' || (contextMenuItems && contextMenuItems.length > 0 &&\n !contextMenuInFooter)) && !(!isCheckList && openOnClick && !contextMenuItems?.length) ) {\n <fd-card-header>\n <fd-card-main-header>\n <div\n fd-card-title\n [style.justify-content]=\"!isCheckList && canView && deviceName !== 'desktop' ? 'left' : 'space-between'\"\n >\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\n @if (isCheckList) {\n <fd-checkbox\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (ngModelChange)=\"onRowCheck()\"\n ></fd-checkbox>\n } @if (!contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n }\n </div>\n @if (canView) {\n <button\n fd-button\n class=\"view-btn\"\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n }\n </div>\n </fd-card-main-header>\n </fd-card-header>\n }\n</ng-template>\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.HeaderComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.HeaderComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card fd-card-content{padding:0!important}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i3.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { 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", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i5.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i7.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i7.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i7.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i7.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "component", type: i8.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i9.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "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.QuickViewComponent, selector: "fd-quick-view", inputs: ["id"] }, { kind: "component", type: i11.QuickViewSubheaderComponent, selector: "fd-quick-view-subheader" }, { kind: "component", type: i11.QuickViewSubheaderTitleComponent, selector: "fd-quick-view-subheader-title" }, { kind: "component", type: i11.QuickViewSubheaderSubtitleComponent, selector: "fd-quick-view-subheader-subtitle" }, { kind: "component", type: i11.QuickViewGroupComponent, selector: "fd-quick-view-group" }, { kind: "component", type: i11.QuickViewGroupItemComponent, selector: "fd-quick-view-group-item", inputs: ["id"] }, { kind: "component", type: i11.QuickViewGroupItemLabelComponent, selector: "fd-quick-view-group-item-label" }, { kind: "component", type: i11.QuickViewGroupItemContentComponent, selector: "fd-quick-view-group-item-content" }, { kind: "directive", type: i11.QuickViewGroupItemContentElementDirective, selector: "[fd-quick-view-group-item-content-element]" }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i14.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }, { kind: "pipe", type: i15.AvatarGridColPipe, name: "avatarGridCol" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: CardItemComponent, selector: "bsu-card-item", inputs: { setting: "setting" }, providers: [FormPanelService], viewQueries: [{ propertyName: "_quickViewTemplate", first: true, predicate: ["quickViewTemplate"], descendants: true, static: true }, { propertyName: "_contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-card\n [cardType]=\"setting.CardType$Caption\"\n class=\"docs-flex-item-margin\"\n [class.openOnClick]=\"setting.openOnClick\"\n [style.width]=\"cardWidth\"\n [style.min-width]=\"minWidth\"\n [style.max-width]=\"maxWidth\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n\n @if (!noContent || contextMenuItems) {\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify>\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\n <ng-container\n *ngTemplateOutlet=\"\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n </div>\n </fd-card-content>\n @if ((contextMenuInFooter || deviceName!=='desktop' || openOnClick) && (contextMenuItems && contextMenuItems.length\n > 0) ) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [footerMode]=\"true\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n } }\n</fd-card>\n\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\"\n >@if (column) {\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [isChecked]=\"isChecked\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n }\n</ng-template>\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\n @if (!noContent) {\n <fd-quick-view [id]=\"'id'\">\n <fd-quick-view-group>\n @if (setting.Avatar || setting.AvatarField || setting.TitleField || setting.SubtitleField) {\n <fd-quick-view-subheader> </fd-quick-view-subheader>\n } @for (column of setting.FieldListMapped; track column) {\n <fd-quick-view-group-item>\n @if (column) {\n <fd-quick-view-group-item-label>\n {{ column.Caption | bbbTranslate }}\n </fd-quick-view-group-item-label>\n <fd-quick-view-group-item-content>\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n }\n </fd-quick-view-group-item>\n } @if (setting.DescriptionField) {\n <fd-quick-view-group-item>\n <fd-quick-view-group-item-content>\n @if (inlineEditMode && allowInlineEdit) {\n <fd-quick-view-group-item-label>\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </fd-quick-view-group-item-label>\n }\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n @if (setting.ActionFieldNameField) {\n <fd-quick-view-group-item-content\n class=\"action\"\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\n >\n <a fd-link>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.ActionFieldNameField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </a>\n </fd-quick-view-group-item-content>\n }\n </fd-quick-view-group-item>\n }\n </fd-quick-view-group>\n </fd-quick-view>\n }\n</ng-template>\n<ng-template #contentTemplate let-mo let-index=\"index\">\n <fd-layout-grid>\n <div fdLayoutGridRow style=\"align-items: center\">\n <div [fdLayoutGridCol]=\"12\">\n @for (column of setting.FieldListMapped; track column) {\n <div style=\"display: flex\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-11\">{{ column.Caption | bbbTranslate }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n @if (setting.DescriptionField) {\n <div [fdLayoutGridCol]=\"12\">\n @if (inlineEditMode && allowInlineEdit) {\n <label>\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </label>\n }\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n </fd-layout-grid>\n</ng-template>\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\n @if (visible) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"circle\"\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l' ? setting.AvatarSizeDesktop$Caption : setting.AvatarSize$Caption\n \"\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\n >\n </fd-avatar>\n }\n</ng-template>\n\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.ContentComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.ContentComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n\n<ng-template #renderHeader let-mo let-index=\"index\">\n @if(openOnClick || (canView && deviceName !== 'desktop')){\n <ng-container\n *ngTemplateOutlet=\"\n renderHeaderMobileCanView;\n context: {\n $implicit: mo,\n index: index\n }\n \"\n ></ng-container>\n }@else{\n <ng-container\n *ngTemplateOutlet=\"\n renderHeaderDesktop;\n context: {\n $implicit: mo,\n index: index\n }\n \"\n ></ng-container>\n }\n</ng-template>\n<ng-template #renderHeaderDesktop let-mo let-index=\"index\">\n <fd-card-header>\n <div>\n @if(isCheckList){\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n }\n </div>\n <fd-card-main-header>\n @if (setting.AvatarField || setting.Avatar) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"setting.CircleAvatar\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l'\n ? setting.AvatarSizeDesktop$Caption\n : setting.AvatarSize$Caption\n \"\n [glyph]=\"\n setting.Avatar ||\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n ></fd-avatar>\n }\n <h2 fd-card-title>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </h2>\n <h3 fd-card-subtitle>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </h3>\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [footerMode]=\"false\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n }\n </fd-card-main-header>\n </fd-card-header>\n</ng-template>\n<ng-template #renderHeaderMobileCanView let-mo let-index=\"index\">\n <fd-card-header>\n <div>\n @if(isCheckList){\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n }\n </div>\n <fd-card-main-header>\n @if (setting.AvatarField || setting.Avatar) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"setting.CircleAvatar\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l'\n ? setting.AvatarSizeDesktop$Caption\n : setting.AvatarSize$Caption\n \"\n [glyph]=\"\n setting.Avatar ||\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n ></fd-avatar>\n }\n <h2 fd-card-title>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </h2>\n <h3 fd-card-subtitle>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </h3>\n <button\n fd-card-header-action\n fd-button\n class=\"view-btn\"\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n </fd-card-main-header>\n </fd-card-header>\n</ng-template>\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.HeaderComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.HeaderComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card div[ulvcontextmenu] ::ng-deep .fd-bar{background-color:transparent}fd-card fd-card-content{padding:0!important}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i3.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { 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", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i5.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange"] }, { kind: "component", type: i7.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i7.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "directive", type: i7.CardHeaderActionDirective, selector: "[fd-card-header-action]" }, { kind: "component", type: i7.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i7.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i7.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "component", type: i8.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i9.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "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.QuickViewComponent, selector: "fd-quick-view", inputs: ["id"] }, { kind: "component", type: i11.QuickViewSubheaderComponent, selector: "fd-quick-view-subheader" }, { kind: "component", type: i11.QuickViewGroupComponent, selector: "fd-quick-view-group" }, { kind: "component", type: i11.QuickViewGroupItemComponent, selector: "fd-quick-view-group-item", inputs: ["id"] }, { kind: "component", type: i11.QuickViewGroupItemLabelComponent, selector: "fd-quick-view-group-item-label" }, { kind: "component", type: i11.QuickViewGroupItemContentComponent, selector: "fd-quick-view-group-item-content" }, { kind: "directive", type: i11.QuickViewGroupItemContentElementDirective, selector: "[fd-quick-view-group-item-content-element]" }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i14.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
47
46
|
}
|
|
48
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: CardItemComponent, decorators: [{
|
|
49
48
|
type: Component,
|
|
50
|
-
args: [{ selector: 'bsu-card-item', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-card\n [cardType]=\"setting.CardType$Caption\"\n class=\"docs-flex-item-margin\"\n [class.openOnClick]=\"setting.openOnClick\"\n [style.width]=\"cardWidth\"\n [style.min-width]=\"minWidth\"\n [style.max-width]=\"maxWidth\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n\n @if (!noContent || contextMenuItems) {\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify>\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\n <ng-container\n *ngTemplateOutlet=\"\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n </div>\n @if (contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [footerMode]=\"true\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n }\n </fd-card-content>\n }\n</fd-card>\n\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\"\n >@if (column) {\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [isChecked]=\"isChecked\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n }\n</ng-template>\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\n @if (!noContent) {\n <fd-quick-view [id]=\"'id'\">\n <fd-quick-view-group>\n @if (setting.Avatar || setting.AvatarField || setting.TitleField || setting.SubtitleField) {\n <fd-quick-view-subheader>\n @if (setting.AvatarField || setting.Avatar) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"setting.CircleAvatar\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l'\n ? setting.AvatarSizeDesktop$Caption\n : setting.AvatarSize$Caption\n \"\n [glyph]=\"\n setting.Avatar ||\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n } @if (setting.TitleField) {\n <fd-quick-view-subheader-title>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </fd-quick-view-subheader-title>\n } @if (setting.SubtitleField) {\n <fd-quick-view-subheader-subtitle>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </fd-quick-view-subheader-subtitle>\n }\n </fd-quick-view-subheader>\n } @for (column of setting.FieldListMapped; track column) {\n <fd-quick-view-group-item>\n @if (column) {\n <fd-quick-view-group-item-label>\n {{ column.Caption | bbbTranslate }}\n </fd-quick-view-group-item-label>\n <fd-quick-view-group-item-content>\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n }\n </fd-quick-view-group-item>\n } @if (setting.DescriptionField) {\n <fd-quick-view-group-item>\n <fd-quick-view-group-item-content>\n @if (inlineEditMode && allowInlineEdit) {\n <fd-quick-view-group-item-label>\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </fd-quick-view-group-item-label>\n }\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n @if (setting.ActionFieldNameField) {\n <fd-quick-view-group-item-content\n class=\"action\"\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\n >\n <a fd-link>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.ActionFieldNameField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </a>\n </fd-quick-view-group-item-content>\n }\n </fd-quick-view-group-item>\n }\n </fd-quick-view-group>\n </fd-quick-view>\n }\n</ng-template>\n<ng-template #contentTemplate let-mo let-index=\"index\">\n <fd-layout-grid>\n <div fdLayoutGridRow style=\"align-items: center\">\n <div [fdLayoutGridCol]=\"deviceSize | avatarGridCol\">\n <ng-container\n *ngTemplateOutlet=\"\n avatar;\n context: {\n $implicit: setting.Avatar,\n visible: setting.AvatarField || setting.Avatar,\n circle: setting.CircleAvatar,\n avatarField: setting.AvatarField\n }\n \"\n ></ng-container>\n </div>\n\n <div [fdLayoutGridCol]=\"deviceSize | avatarGridCol: false\">\n @if (setting.TitleField) {\n <span style=\"font-weight: bold\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </span>\n } @if (setting.SubtitleField) {\n <span>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </span>\n }\n </div>\n\n <div [fdLayoutGridCol]=\"12\">\n @for (column of setting.FieldListMapped; track column) {\n <div style=\"display: flex\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-11\">{{ column.Caption | bbbTranslate }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n @if (setting.DescriptionField) {\n <div [fdLayoutGridCol]=\"12\">\n @if (inlineEditMode && allowInlineEdit) {\n <label>\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </label>\n }\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n </fd-layout-grid>\n</ng-template>\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\n @if (visible) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"circle\"\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l' ? setting.AvatarSizeDesktop$Caption : setting.AvatarSize$Caption\n \"\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\n >\n </fd-avatar>\n }\n</ng-template>\n\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.ContentComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.ContentComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n\n<ng-template #renderHeader let-mo let-index=\"index\">\n @if ( (isCheckList || deviceName !== 'desktop' || (contextMenuItems && contextMenuItems.length > 0 &&\n !contextMenuInFooter)) && !(!isCheckList && openOnClick && !contextMenuItems?.length) ) {\n <fd-card-header>\n <fd-card-main-header>\n <div\n fd-card-title\n [style.justify-content]=\"!isCheckList && canView && deviceName !== 'desktop' ? 'left' : 'space-between'\"\n >\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\n @if (isCheckList) {\n <fd-checkbox\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (ngModelChange)=\"onRowCheck()\"\n ></fd-checkbox>\n } @if (!contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n }\n </div>\n @if (canView) {\n <button\n fd-button\n class=\"view-btn\"\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n }\n </div>\n </fd-card-main-header>\n </fd-card-header>\n }\n</ng-template>\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.HeaderComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.HeaderComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card fd-card-content{padding:0!important}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\n"] }]
|
|
49
|
+
args: [{ selector: 'bsu-card-item', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-card\n [cardType]=\"setting.CardType$Caption\"\n class=\"docs-flex-item-margin\"\n [class.openOnClick]=\"setting.openOnClick\"\n [style.width]=\"cardWidth\"\n [style.min-width]=\"minWidth\"\n [style.max-width]=\"maxWidth\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n\n @if (!noContent || contextMenuItems) {\n <fd-card-content (click)=\"onRowCheck()\" (dblclick)=\"onRowClick()\" ellipsify>\n <div #divEl [applyConditionalFormats]=\"conditionalFormats\" [styleIndex]=\"styleIndex\" [hostEl]=\"divEl\">\n <ng-container\n *ngTemplateOutlet=\"\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\n context: {\n $implicit: mo,\n index: this.index\n }\n \"\n ></ng-container>\n </div>\n </fd-card-content>\n @if ((contextMenuInFooter || deviceName!=='desktop' || openOnClick) && (contextMenuItems && contextMenuItems.length\n > 0) ) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [footerMode]=\"true\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n } }\n</fd-card>\n\n<ng-template #columnTemplate let-column let-mo=\"mo\" let-index=\"index\" let-layout94=\"layout94\"\n >@if (column) {\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo | bbbTranslate\"\n [icon]=\"column | columnIcon: mo\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [isChecked]=\"isChecked\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n }\n</ng-template>\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\n @if (!noContent) {\n <fd-quick-view [id]=\"'id'\">\n <fd-quick-view-group>\n @if (setting.Avatar || setting.AvatarField || setting.TitleField || setting.SubtitleField) {\n <fd-quick-view-subheader> </fd-quick-view-subheader>\n } @for (column of setting.FieldListMapped; track column) {\n <fd-quick-view-group-item>\n @if (column) {\n <fd-quick-view-group-item-label>\n {{ column.Caption | bbbTranslate }}\n </fd-quick-view-group-item-label>\n <fd-quick-view-group-item-content>\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n }\n </fd-quick-view-group-item>\n } @if (setting.DescriptionField) {\n <fd-quick-view-group-item>\n <fd-quick-view-group-item-content>\n @if (inlineEditMode && allowInlineEdit) {\n <fd-quick-view-group-item-label>\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </fd-quick-view-group-item-label>\n }\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n </fd-quick-view-group-item-content>\n @if (setting.ActionFieldNameField) {\n <fd-quick-view-group-item-content\n class=\"action\"\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\n >\n <a fd-link>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.ActionFieldNameField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </a>\n </fd-quick-view-group-item-content>\n }\n </fd-quick-view-group-item>\n }\n </fd-quick-view-group>\n </fd-quick-view>\n }\n</ng-template>\n<ng-template #contentTemplate let-mo let-index=\"index\">\n <fd-layout-grid>\n <div fdLayoutGridRow style=\"align-items: center\">\n <div [fdLayoutGridCol]=\"12\">\n @for (column of setting.FieldListMapped; track column) {\n <div style=\"display: flex\">\n <label fd-form-label [colon]=\"true\" for=\"form-value-11\">{{ column.Caption | bbbTranslate }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n @if (setting.DescriptionField) {\n <div [fdLayoutGridCol]=\"12\">\n @if (inlineEditMode && allowInlineEdit) {\n <label>\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\n </label>\n }\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.DescriptionField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n </fd-layout-grid>\n</ng-template>\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\n @if (visible) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"circle\"\n [image]=\"avatarField ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId) : ''\"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l' ? setting.AvatarSizeDesktop$Caption : setting.AvatarSize$Caption\n \"\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\n >\n </fd-avatar>\n }\n</ng-template>\n\n<ng-template #contentTemplateComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.ContentComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.ContentComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n\n<ng-template #renderHeader let-mo let-index=\"index\">\n @if(openOnClick || (canView && deviceName !== 'desktop')){\n <ng-container\n *ngTemplateOutlet=\"\n renderHeaderMobileCanView;\n context: {\n $implicit: mo,\n index: index\n }\n \"\n ></ng-container>\n }@else{\n <ng-container\n *ngTemplateOutlet=\"\n renderHeaderDesktop;\n context: {\n $implicit: mo,\n index: index\n }\n \"\n ></ng-container>\n }\n</ng-template>\n<ng-template #renderHeaderDesktop let-mo let-index=\"index\">\n <fd-card-header>\n <div>\n @if(isCheckList){\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n }\n </div>\n <fd-card-main-header>\n @if (setting.AvatarField || setting.Avatar) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"setting.CircleAvatar\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l'\n ? setting.AvatarSizeDesktop$Caption\n : setting.AvatarSize$Caption\n \"\n [glyph]=\"\n setting.Avatar ||\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n ></fd-avatar>\n }\n <h2 fd-card-title>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </h2>\n <h3 fd-card-subtitle>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </h3>\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [footerMode]=\"false\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"styleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></div>\n }\n </fd-card-main-header>\n </fd-card-header>\n</ng-template>\n<ng-template #renderHeaderMobileCanView let-mo let-index=\"index\">\n <fd-card-header>\n <div>\n @if(isCheckList){\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n }\n </div>\n <fd-card-main-header>\n @if (setting.AvatarField || setting.Avatar) {\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [circle]=\"setting.CircleAvatar\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"\n deviceSize === 'xl' || deviceSize === 'l'\n ? setting.AvatarSizeDesktop$Caption\n : setting.AvatarSize$Caption\n \"\n [glyph]=\"\n setting.Avatar ||\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n ></fd-avatar>\n }\n <h2 fd-card-title>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </h2>\n <h3 fd-card-subtitle>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n </h3>\n <button\n fd-card-header-action\n fd-button\n class=\"view-btn\"\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n </fd-card-main-header>\n </fd-card-header>\n</ng-template>\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\n <bnrc-dynamic-item-component\n [component]=\"setting.HeaderComponent\"\n [mo]=\"mo\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isChecked]=\"isChecked\"\n [setting]=\"setting\"\n [parameters]=\"setting.HeaderComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (events)=\"onDynamicComponentEvents($event)\"\n ></bnrc-dynamic-item-component>\n</ng-template>\n", styles: ["fd-card:hover{box-shadow:0 0 0 .0625rem #2235487a,0 .625rem 1.875rem #22354840}fd-card div[ulvcontextmenu] ::ng-deep .fd-bar{background-color:transparent}fd-card fd-card-content{padding:0!important}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-card fd-card-header:hover{background:inherit}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\n"] }]
|
|
51
50
|
}], propDecorators: { setting: [{
|
|
52
51
|
type: Input
|
|
53
52
|
}], _quickViewTemplate: [{
|
|
@@ -57,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
57
56
|
type: ViewChild,
|
|
58
57
|
args: ['contentTemplate', { static: true }]
|
|
59
58
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NhcmQtaXRlbS9jYXJkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FyZC1pdGVtL2NhcmQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVXBGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSwwQkFBMEI7SUFVN0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQXVCLEVBQUUsQ0FBQztZQUMzQyxLQUFLLGVBQWU7Z0JBQ2hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2hELE1BQU07WUFDVjtnQkFDSSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRCxNQUFNO1FBQ2QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUNJLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDcEIsQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUNuQixDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQ3RCLENBQUMsT0FBTyxDQUFDLFNBQVM7WUFDbEIsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQzNCLENBQUM7WUFDQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN2RSxDQUFDO0lBQ0wsQ0FBQzs4R0FwQ1EsaUJBQWlCO2tHQUFqQixpQkFBaUIsd0VBSGYsQ0FBQyxnQkFBZ0IsQ0FBQyw0U0NSakMsNGlnQkF3WUE7OzJGRDdYYSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0ksZUFBZSxhQUdkLENBQUMsZ0JBQWdCLENBQUMsbUJBQ1osdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUM0QyxrQkFBa0I7c0JBQW5FLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNBLGdCQUFnQjtzQkFBL0QsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpQ2FyZExpc3RWaWV3U2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9ncmlkLXZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1jYXJkLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhcmQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENhcmRJdGVtQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHNldHRpbmc6IFVpQ2FyZExpc3RWaWV3U2V0dGluZztcbiAgICBAVmlld0NoaWxkKCdxdWlja1ZpZXdUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pIF9xdWlja1ZpZXdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdjb250ZW50VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIG5vQ29udGVudDogYm9vbGVhbjtcbiAgICBjYXJkV2lkdGg6IHN0cmluZztcbiAgICBtYXhXaWR0aDogc3RyaW5nO1xuICAgIG1pbldpZHRoOiBzdHJpbmc7XG4gICAgY29udGV4dE1lbnVJbkZvb3RlcjogYm9vbGVhbjtcbiAgICBjb250ZW50VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zZXR0aW5nLkNhcmRUeXBlJENhcHRpb24gYXMgYW55KSB7XG4gICAgICAgICAgICBjYXNlICdpbmxpbmUtZmllbGRzJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZVJlZiA9IHRoaXMuX2NvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGVSZWYgPSB0aGlzLl9xdWlja1ZpZXdUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXR0aW5nID0gdGhpcy5zZXR0aW5nO1xuICAgICAgICBpZiAoc2V0dGluZy5Db250ZXh0TWVudUluRm9vdGVyKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRNZW51SW5Gb290ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFzZXR0aW5nLkF2YXRhckZpZWxkICYmXG4gICAgICAgICAgICAhc2V0dGluZy5UaXRsZUZpZWxkICYmXG4gICAgICAgICAgICAhc2V0dGluZy5TdWJ0aXRsZUZpZWxkICYmXG4gICAgICAgICAgICAhc2V0dGluZy5GaWVsZExpc3QgJiZcbiAgICAgICAgICAgICFzZXR0aW5nLkNvbnRlbnRDb21wb25lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm5vQ29udGVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNldHRpbmcuQ2FyZFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gdGhpcy5tYXhXaWR0aCA9IHRoaXMuY2FyZFdpZHRoID0gc2V0dGluZy5DYXJkV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZmQtY2FyZFxuICAgIFtjYXJkVHlwZV09XCJzZXR0aW5nLkNhcmRUeXBlJENhcHRpb25cIlxuICAgIGNsYXNzPVwiZG9jcy1mbGV4LWl0ZW0tbWFyZ2luXCJcbiAgICBbY2xhc3Mub3Blbk9uQ2xpY2tdPVwic2V0dGluZy5vcGVuT25DbGlja1wiXG4gICAgW3N0eWxlLndpZHRoXT1cImNhcmRXaWR0aFwiXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJtaW5XaWR0aFwiXG4gICAgW3N0eWxlLm1heC13aWR0aF09XCJtYXhXaWR0aFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgc2V0dGluZy5IZWFkZXJDb21wb25lbnQgPyByZW5kZXJIZWFkZXJDb21wb25lbnQgOiByZW5kZXJIZWFkZXI7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtbyxcbiAgICAgICAgICAgICAgICBpbmRleDogdGhpcy5pbmRleFxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIEBpZiAoIW5vQ29udGVudCB8fCBjb250ZXh0TWVudUl0ZW1zKSB7XG4gICAgPGZkLWNhcmQtY29udGVudCAoY2xpY2spPVwib25Sb3dDaGVjaygpXCIgKGRibGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiIGVsbGlwc2lmeT5cbiAgICAgICAgPGRpdiAjZGl2RWwgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIiBbaG9zdEVsXT1cImRpdkVsXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5Db250ZW50Q29tcG9uZW50ID8gY29udGVudFRlbXBsYXRlQ29tcG9uZW50IDogY29udGVudFRlbXBsYXRlUmVmO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKGNvbnRleHRNZW51SW5Gb290ZXIgJiYgY29udGV4dE1lbnVJdGVtcyAmJiBjb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgdWx2Q29udGV4dE1lbnVcbiAgICAgICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICAgICAgW2Zvb3Rlck1vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2ZkLWNhcmQtY29udGVudD5cbiAgICB9XG48L2ZkLWNhcmQ+XG5cbjxuZy10ZW1wbGF0ZSAjY29sdW1uVGVtcGxhdGUgbGV0LWNvbHVtbiBsZXQtbW89XCJtb1wiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIlxuICAgID5AaWYgKGNvbHVtbikge1xuICAgIDxkaXZcbiAgICAgICAgI2RpdkVsXG4gICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgW2hvc3RFbF09XCJkaXZFbFwiXG4gICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgID5cbiAgICAgICAgPGJzdS1jb2x1bW4tcmVuZGVyZXJcbiAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiY29sdW1uIHwgY29sdW1uVmFsdWU6IG1vIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtpY29uXT1cImNvbHVtbiB8IGNvbHVtbkljb246IG1vXCJcbiAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpc0NoZWNrZWQgJiYgaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgW2NvbnRyb2xVaV09XCJjb2x1bW4uQ2FwdGlvbiB8IGNvbnRyb2xVaTogbGF5b3V0OTQ6Y29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXl1cC5lc2MpPVwib25FZGl0Rm9ybVBhbmVsQ2FuY2VsKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24uVGFiKT1cIm9uVGFiS2V5RG93bigkZXZlbnQsIGluZGV4KVwiXG4gICAgICAgICAgICBbZm9ybUxheW91dFNob3dMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgPjwvYnN1LWNvbHVtbi1yZW5kZXJlcj5cbiAgICA8L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNxdWlja1ZpZXdUZW1wbGF0ZSBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICBAaWYgKCFub0NvbnRlbnQpIHtcbiAgICA8ZmQtcXVpY2stdmlldyBbaWRdPVwiJ2lkJ1wiPlxuICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cD5cbiAgICAgICAgICAgIEBpZiAoc2V0dGluZy5BdmF0YXIgfHwgc2V0dGluZy5BdmF0YXJGaWVsZCB8fCBzZXR0aW5nLlRpdGxlRmllbGQgfHwgc2V0dGluZy5TdWJ0aXRsZUZpZWxkKSB7XG4gICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1zdWJoZWFkZXI+XG4gICAgICAgICAgICAgICAgQGlmIChzZXR0aW5nLkF2YXRhckZpZWxkIHx8IHNldHRpbmcuQXZhdGFyKSB7XG4gICAgICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgICAgICBhbHRlckljb249XCJhbHR8Y29udGVudHxiYWNrdXB8ZGVmYXVsdC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2NpcmNsZV09XCJzZXR0aW5nLkNpcmNsZUF2YXRhclwiXG4gICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcuQXZhdGFyRmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChtb1tzZXR0aW5nLkF2YXRhckZpZWxkLk5hbWVdPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpzZXR0aW5nLkF2YXRhckZpZWxkLkZpZWxkRGVmSWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZVNpemUgPT09ICd4bCcgfHwgZGV2aWNlU2l6ZSA9PT0gJ2wnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzZXR0aW5nLkF2YXRhclNpemVEZXNrdG9wJENhcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNldHRpbmcuQXZhdGFyU2l6ZSRDYXB0aW9uXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcuQXZhdGFyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAobW8uJFN0YXRlID09PSAnTmV3JyAmJiAhaXNDaGVja2VkID8gJ2Zhdm9yaXRlJyA6IGlubGluZUVkaXRNb2RlICYmIGlzQ2hlY2tlZCA/ICdlZGl0JyA6ICcnKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2ZkLWF2YXRhcj5cbiAgICAgICAgICAgICAgICB9IEBpZiAoc2V0dGluZy5UaXRsZUZpZWxkKSB7XG4gICAgICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctc3ViaGVhZGVyLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1zdWJoZWFkZXItdGl0bGU+XG4gICAgICAgICAgICAgICAgfSBAaWYgKHNldHRpbmcuU3VidGl0bGVGaWVsZCkge1xuICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LXN1YmhlYWRlci1zdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5TdWJ0aXRsZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctc3ViaGVhZGVyLXN1YnRpdGxlPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1zdWJoZWFkZXI+XG4gICAgICAgICAgICB9IEBmb3IgKGNvbHVtbiBvZiBzZXR0aW5nLkZpZWxkTGlzdE1hcHBlZDsgdHJhY2sgY29sdW1uKSB7XG4gICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtPlxuICAgICAgICAgICAgICAgIEBpZiAoY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge3sgY29sdW1uLkNhcHRpb24gfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1sYWJlbD5cbiAgICAgICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQtZWxlbWVudCBjbGFzcz1cImdyb3VwLWl0ZW0tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0+XG4gICAgICAgICAgICB9IEBpZiAoc2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkKSB7XG4gICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtPlxuICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZD8uQWxpYXMgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudC1lbGVtZW50IGNsYXNzPVwiZ3JvdXAtaXRlbS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tY29udGVudD5cbiAgICAgICAgICAgICAgICBAaWYgKHNldHRpbmcuQWN0aW9uRmllbGROYW1lRmllbGQpIHtcbiAgICAgICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb24oc2V0dGluZy5BY3Rpb25GaWVsZENvbW1hbmRGaWVsZCB8fCAnJylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLkFjdGlvbkZpZWxkTmFtZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cD5cbiAgICA8L2ZkLXF1aWNrLXZpZXc+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlIGxldC1tbyBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxmZC1sYXlvdXQtZ3JpZD5cbiAgICAgICAgPGRpdiBmZExheW91dEdyaWRSb3cgc3R5bGU9XCJhbGlnbi1pdGVtczogY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiZGV2aWNlU2l6ZSB8IGF2YXRhckdyaWRDb2xcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLkF2YXRhcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiBzZXR0aW5nLkF2YXRhckZpZWxkIHx8IHNldHRpbmcuQXZhdGFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcmNsZTogc2V0dGluZy5DaXJjbGVBdmF0YXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyRmllbGQ6IHNldHRpbmcuQXZhdGFyRmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cImRldmljZVNpemUgfCBhdmF0YXJHcmlkQ29sOiBmYWxzZVwiPlxuICAgICAgICAgICAgICAgIEBpZiAoc2V0dGluZy5UaXRsZUZpZWxkKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9IEBpZiAoc2V0dGluZy5TdWJ0aXRsZUZpZWxkKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuU3VidGl0bGVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMTJcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChjb2x1bW4gb2Ygc2V0dGluZy5GaWVsZExpc3RNYXBwZWQ7IHRyYWNrIGNvbHVtbikge1xuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmZC1mb3JtLWxhYmVsIFtjb2xvbl09XCJ0cnVlXCIgZm9yPVwiZm9ybS12YWx1ZS0xMVwiPnt7IGNvbHVtbi5DYXB0aW9uIHwgYmJiVHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoc2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkKSB7XG4gICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiMTJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdCkge1xuICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge3sgc2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkPy5BbGlhcyB8IGJiYlRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5EZXNjcmlwdGlvbkZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ZkLWxheW91dC1ncmlkPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYXZhdGFyIGxldC1hdmF0YXIgbGV0LXZpc2libGU9XCJ2aXNpYmxlXCIgbGV0LWNpcmNsZT1cImNpcmNsZVwiIGxldC1hdmF0YXJGaWVsZD1cImF2YXRhckZpZWxkXCI+XG4gICAgQGlmICh2aXNpYmxlKSB7XG4gICAgPGZkLWF2YXRhclxuICAgICAgICBhbHRlckljb249XCJhbHR8Y29udGVudHxiYWNrdXB8ZGVmYXVsdC1pY29uXCJcbiAgICAgICAgW2NpcmNsZV09XCJjaXJjbGVcIlxuICAgICAgICBbaW1hZ2VdPVwiYXZhdGFyRmllbGQgPyAobW9bYXZhdGFyRmllbGQuTmFtZV0/LkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOmF2YXRhckZpZWxkLkZpZWxkRGVmSWQpIDogJydcIlxuICAgICAgICBbc2l6ZV09XCJcbiAgICAgICAgICAgIGRldmljZVNpemUgPT09ICd4bCcgfHwgZGV2aWNlU2l6ZSA9PT0gJ2wnID8gc2V0dGluZy5BdmF0YXJTaXplRGVza3RvcCRDYXB0aW9uIDogc2V0dGluZy5BdmF0YXJTaXplJENhcHRpb25cbiAgICAgICAgXCJcbiAgICAgICAgW2dseXBoXT1cImF2YXRhciB8fCAobW8uJFN0YXRlID09PSAnTmV3JyAmJiAhaXNDaGVja2VkID8gJ2Zhdm9yaXRlJyA6IGlubGluZUVkaXRNb2RlICYmIGlzQ2hlY2tlZCA/ICdlZGl0JyA6ICcnKVwiXG4gICAgPlxuICAgIDwvZmQtYXZhdGFyPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlQ29tcG9uZW50IGxldC1tbyBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJzZXR0aW5nLkNvbnRlbnRDb21wb25lbnRcIlxuICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgW3NldHRpbmddPVwic2V0dGluZ1wiXG4gICAgICAgIFtwYXJhbWV0ZXJzXT1cInNldHRpbmcuQ29udGVudENvbXBvbmVudC5TZXR0aW5nc1wiXG4gICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3JlbmRlckhlYWRlciBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICBAaWYgKCAoaXNDaGVja0xpc3QgfHwgZGV2aWNlTmFtZSAhPT0gJ2Rlc2t0b3AnIHx8IChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJlxuICAgICFjb250ZXh0TWVudUluRm9vdGVyKSkgJiYgISghaXNDaGVja0xpc3QgJiYgb3Blbk9uQ2xpY2sgJiYgIWNvbnRleHRNZW51SXRlbXM/Lmxlbmd0aCkgKSB7XG4gICAgPGZkLWNhcmQtaGVhZGVyPlxuICAgICAgICA8ZmQtY2FyZC1tYWluLWhlYWRlcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBmZC1jYXJkLXRpdGxlXG4gICAgICAgICAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCIhaXNDaGVja0xpc3QgJiYgY2FuVmlldyAmJiBkZXZpY2VOYW1lICE9PSAnZGVza3RvcCcgPyAnbGVmdCcgOiAnc3BhY2UtYmV0d2VlbidcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OyBmbGV4LWdyb3c6IDFcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpc0NoZWNrTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm1vLiRDYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgfSBAaWYgKCFjb250ZXh0TWVudUluRm9vdGVyICYmIGNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHVsdkNvbnRleHRNZW51XG4gICAgICAgICAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoY2FuVmlldykge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlldy1idG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmQtY2FyZC1tYWluLWhlYWRlcj5cbiAgICA8L2ZkLWNhcmQtaGVhZGVyPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlbmRlckhlYWRlckNvbXBvbmVudCBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICA8Ym5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50XG4gICAgICAgIFtjb21wb25lbnRdPVwic2V0dGluZy5IZWFkZXJDb21wb25lbnRcIlxuICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJtby4kU3R5bGVJbmRleFwiXG4gICAgICAgIFtpc0NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgW3NldHRpbmddPVwic2V0dGluZ1wiXG4gICAgICAgIFtwYXJhbWV0ZXJzXT1cInNldHRpbmcuSGVhZGVyQ29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW2NhblZpZXddPVwiY2FuVmlld1wiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW25hdmlnYXRpb25BcnJvd109XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICBbaXNDaGVja0xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICAoZXZlbnRzKT1cIm9uRHluYW1pY0NvbXBvbmVudEV2ZW50cygkZXZlbnQpXCJcbiAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NhcmQtaXRlbS9jYXJkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FyZC1pdGVtL2NhcmQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVcEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDBCQUEwQjtJQVU3RCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBdUIsRUFBRSxDQUFDO1lBQzNDLEtBQUssZUFBZTtnQkFDaEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDaEQsTUFBTTtZQUNWO2dCQUNJLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2xELE1BQU07UUFDZCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQ0ksQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNwQixDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ25CLENBQUMsT0FBTyxDQUFDLGFBQWE7WUFDdEIsQ0FBQyxPQUFPLENBQUMsU0FBUztZQUNsQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFDM0IsQ0FBQztZQUNDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3ZFLENBQUM7SUFDTCxDQUFDOzhHQXBDUSxpQkFBaUI7a0dBQWpCLGlCQUFpQix3RUFIZixDQUFDLGdCQUFnQixDQUFDLDRTQ1JqQyx5OWZBMlpBOzsyRkRoWmEsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNJLGVBQWUsYUFHZCxDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDNEMsa0JBQWtCO3NCQUFuRSxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQSxnQkFBZ0I7c0JBQS9ELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQsIEZvcm1QYW5lbFNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBVaUNhcmRMaXN0Vmlld1NldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC12aWV3JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtY2FyZC1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYXJkLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtGb3JtUGFuZWxTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkSXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBzZXR0aW5nOiBVaUNhcmRMaXN0Vmlld1NldHRpbmc7XG4gICAgQFZpZXdDaGlsZCgncXVpY2tWaWV3VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfcXVpY2tWaWV3VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnY29udGVudFRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgX2NvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBub0NvbnRlbnQ6IGJvb2xlYW47XG4gICAgY2FyZFdpZHRoOiBzdHJpbmc7XG4gICAgbWF4V2lkdGg6IHN0cmluZztcbiAgICBtaW5XaWR0aDogc3RyaW5nO1xuICAgIGNvbnRleHRNZW51SW5Gb290ZXI6IGJvb2xlYW47XG4gICAgY29udGVudFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc2V0dGluZy5DYXJkVHlwZSRDYXB0aW9uIGFzIGFueSkge1xuICAgICAgICAgICAgY2FzZSAnaW5saW5lLWZpZWxkcyc6XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGVSZWYgPSB0aGlzLl9jb250ZW50VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRlbXBsYXRlUmVmID0gdGhpcy5fcXVpY2tWaWV3VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2V0dGluZyA9IHRoaXMuc2V0dGluZztcbiAgICAgICAgaWYgKHNldHRpbmcuQ29udGV4dE1lbnVJbkZvb3Rlcikge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0TWVudUluRm9vdGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhc2V0dGluZy5BdmF0YXJGaWVsZCAmJlxuICAgICAgICAgICAgIXNldHRpbmcuVGl0bGVGaWVsZCAmJlxuICAgICAgICAgICAgIXNldHRpbmcuU3VidGl0bGVGaWVsZCAmJlxuICAgICAgICAgICAgIXNldHRpbmcuRmllbGRMaXN0ICYmXG4gICAgICAgICAgICAhc2V0dGluZy5Db250ZW50Q29tcG9uZW50XG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5ub0NvbnRlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXR0aW5nLkNhcmRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5taW5XaWR0aCA9IHRoaXMubWF4V2lkdGggPSB0aGlzLmNhcmRXaWR0aCA9IHNldHRpbmcuQ2FyZFdpZHRoO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZkLWNhcmRcbiAgICBbY2FyZFR5cGVdPVwic2V0dGluZy5DYXJkVHlwZSRDYXB0aW9uXCJcbiAgICBjbGFzcz1cImRvY3MtZmxleC1pdGVtLW1hcmdpblwiXG4gICAgW2NsYXNzLm9wZW5PbkNsaWNrXT1cInNldHRpbmcub3Blbk9uQ2xpY2tcIlxuICAgIFtzdHlsZS53aWR0aF09XCJjYXJkV2lkdGhcIlxuICAgIFtzdHlsZS5taW4td2lkdGhdPVwibWluV2lkdGhcIlxuICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwibWF4V2lkdGhcIlxuPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHNldHRpbmcuSGVhZGVyQ29tcG9uZW50ID8gcmVuZGVySGVhZGVyQ29tcG9uZW50IDogcmVuZGVySGVhZGVyO1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogbW8sXG4gICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuaW5kZXhcbiAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICBAaWYgKCFub0NvbnRlbnQgfHwgY29udGV4dE1lbnVJdGVtcykge1xuICAgIDxmZC1jYXJkLWNvbnRlbnQgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIiBlbGxpcHNpZnk+XG4gICAgICAgIDxkaXYgI2RpdkVsIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIiBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCIgW2hvc3RFbF09XCJkaXZFbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmcuQ29udGVudENvbXBvbmVudCA/IGNvbnRlbnRUZW1wbGF0ZUNvbXBvbmVudCA6IGNvbnRlbnRUZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiB0aGlzLmluZGV4XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ZkLWNhcmQtY29udGVudD5cbiAgICBAaWYgKChjb250ZXh0TWVudUluRm9vdGVyIHx8IGRldmljZU5hbWUhPT0nZGVza3RvcCcgfHwgb3Blbk9uQ2xpY2spICYmIChjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoXG4gICAgPiAwKSApIHtcbiAgICA8ZGl2XG4gICAgICAgIHVsdkNvbnRleHRNZW51XG4gICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICBbZm9vdGVyTW9kZV09XCJ0cnVlXCJcbiAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgPjwvZGl2PlxuICAgIH0gfVxuPC9mZC1jYXJkPlxuXG48bmctdGVtcGxhdGUgI2NvbHVtblRlbXBsYXRlIGxldC1jb2x1bW4gbGV0LW1vPVwibW9cIiBsZXQtaW5kZXg9XCJpbmRleFwiIGxldC1sYXlvdXQ5ND1cImxheW91dDk0XCJcbiAgICA+QGlmIChjb2x1bW4pIHtcbiAgICA8ZGl2XG4gICAgICAgICNkaXZFbFxuICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgIFtob3N0RWxdPVwiZGl2RWxcIlxuICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICA+XG4gICAgICAgIDxic3UtY29sdW1uLXJlbmRlcmVyXG4gICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImNvbHVtbiB8IGNvbHVtblZhbHVlOiBtbyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbaWNvbl09XCJjb2x1bW4gfCBjb2x1bW5JY29uOiBtb1wiXG4gICAgICAgICAgICBbZWRpdE1vZGVdPVwiaXNDaGVja2VkICYmIGlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgIFtjb250cm9sVWldPVwiY29sdW1uLkNhcHRpb24gfCBjb250cm9sVWk6IGxheW91dDk0OmNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgIChrZXl1cC5jb250cm9sLmVudGVyKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5dXAuZXNjKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duLlRhYik9XCJvblRhYktleURvd24oJGV2ZW50LCBpbmRleClcIlxuICAgICAgICAgICAgW2Zvcm1MYXlvdXRTaG93TGFiZWxdPVwidHJ1ZVwiXG4gICAgICAgID48L2JzdS1jb2x1bW4tcmVuZGVyZXI+XG4gICAgPC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcXVpY2tWaWV3VGVtcGxhdGUgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgQGlmICghbm9Db250ZW50KSB7XG4gICAgPGZkLXF1aWNrLXZpZXcgW2lkXT1cIidpZCdcIj5cbiAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXA+XG4gICAgICAgICAgICBAaWYgKHNldHRpbmcuQXZhdGFyIHx8IHNldHRpbmcuQXZhdGFyRmllbGQgfHwgc2V0dGluZy5UaXRsZUZpZWxkIHx8IHNldHRpbmcuU3VidGl0bGVGaWVsZCkge1xuICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctc3ViaGVhZGVyPiA8L2ZkLXF1aWNrLXZpZXctc3ViaGVhZGVyPlxuICAgICAgICAgICAgfSBAZm9yIChjb2x1bW4gb2Ygc2V0dGluZy5GaWVsZExpc3RNYXBwZWQ7IHRyYWNrIGNvbHVtbikge1xuICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbT5cbiAgICAgICAgICAgICAgICBAaWYgKGNvbHVtbikge1xuICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHt7IGNvbHVtbi5DYXB0aW9uIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9mZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tbGFiZWw+XG4gICAgICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50LWVsZW1lbnQgY2xhc3M9XCJncm91cC1pdGVtLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtPlxuICAgICAgICAgICAgfSBAaWYgKHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZCkge1xuICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbT5cbiAgICAgICAgICAgICAgICA8ZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0KSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1xdWljay12aWV3LWdyb3VwLWl0ZW0tbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBzZXR0aW5nLkRlc2NyaXB0aW9uRmllbGQ/LkFsaWFzIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQtZWxlbWVudCBjbGFzcz1cImdyb3VwLWl0ZW0tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgQGlmIChzZXR0aW5nLkFjdGlvbkZpZWxkTmFtZUZpZWxkKSB7XG4gICAgICAgICAgICAgICAgPGZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uKHNldHRpbmcuQWN0aW9uRmllbGRDb21tYW5kRmllbGQgfHwgJycpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5BY3Rpb25GaWVsZE5hbWVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXAtaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZmQtcXVpY2stdmlldy1ncm91cC1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLXF1aWNrLXZpZXctZ3JvdXA+XG4gICAgPC9mZC1xdWljay12aWV3PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZSBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICA8ZmQtbGF5b3V0LWdyaWQ+XG4gICAgICAgIDxkaXYgZmRMYXlvdXRHcmlkUm93IHN0eWxlPVwiYWxpZ24taXRlbXM6IGNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjEyXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIHNldHRpbmcuRmllbGRMaXN0TWFwcGVkOyB0cmFjayBjb2x1bW4pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBbY29sb25dPVwidHJ1ZVwiIGZvcj1cImZvcm0tdmFsdWUtMTFcIj57eyBjb2x1bW4uQ2FwdGlvbiB8IGJiYlRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZCkge1xuICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjEyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXQpIHtcbiAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHt7IHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZD8uQWxpYXMgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuRGVzY3JpcHRpb25GaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mZC1sYXlvdXQtZ3JpZD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2F2YXRhciBsZXQtYXZhdGFyIGxldC12aXNpYmxlPVwidmlzaWJsZVwiIGxldC1jaXJjbGU9XCJjaXJjbGVcIiBsZXQtYXZhdGFyRmllbGQ9XCJhdmF0YXJGaWVsZFwiPlxuICAgIEBpZiAodmlzaWJsZSkge1xuICAgIDxmZC1hdmF0YXJcbiAgICAgICAgYWx0ZXJJY29uPVwiYWx0fGNvbnRlbnR8YmFja3VwfGRlZmF1bHQtaWNvblwiXG4gICAgICAgIFtjaXJjbGVdPVwiY2lyY2xlXCJcbiAgICAgICAgW2ltYWdlXT1cImF2YXRhckZpZWxkID8gKG1vW2F2YXRhckZpZWxkLk5hbWVdPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzphdmF0YXJGaWVsZC5GaWVsZERlZklkKSA6ICcnXCJcbiAgICAgICAgW3NpemVdPVwiXG4gICAgICAgICAgICBkZXZpY2VTaXplID09PSAneGwnIHx8IGRldmljZVNpemUgPT09ICdsJyA/IHNldHRpbmcuQXZhdGFyU2l6ZURlc2t0b3AkQ2FwdGlvbiA6IHNldHRpbmcuQXZhdGFyU2l6ZSRDYXB0aW9uXG4gICAgICAgIFwiXG4gICAgICAgIFtnbHlwaF09XCJhdmF0YXIgfHwgKG1vLiRTdGF0ZSA9PT0gJ05ldycgJiYgIWlzQ2hlY2tlZCA/ICdmYXZvcml0ZScgOiBpbmxpbmVFZGl0TW9kZSAmJiBpc0NoZWNrZWQgPyAnZWRpdCcgOiAnJylcIlxuICAgID5cbiAgICA8L2ZkLWF2YXRhcj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZUNvbXBvbmVudCBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICA8Ym5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50XG4gICAgICAgIFtjb21wb25lbnRdPVwic2V0dGluZy5Db250ZW50Q29tcG9uZW50XCJcbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIFtzZXR0aW5nXT1cInNldHRpbmdcIlxuICAgICAgICBbcGFyYW1ldGVyc109XCJzZXR0aW5nLkNvbnRlbnRDb21wb25lbnQuU2V0dGluZ3NcIlxuICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgPjwvYm5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyZW5kZXJIZWFkZXIgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgQGlmKG9wZW5PbkNsaWNrIHx8IChjYW5WaWV3ICYmIGRldmljZU5hbWUgIT09ICdkZXNrdG9wJykpe1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHJlbmRlckhlYWRlck1vYmlsZUNhblZpZXc7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtbyxcbiAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgfUBlbHNle1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHJlbmRlckhlYWRlckRlc2t0b3A7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBtbyxcbiAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVySGVhZGVyRGVza3RvcCBsZXQtbW8gbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICA8ZmQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICBAaWYoaXNDaGVja0xpc3Qpe1xuICAgICAgICAgICAgPGZkLWNoZWNrYm94IFtuYW1lXT1cIm1vLiRDYXB0aW9uXCIgW25nTW9kZWxdPVwiaXNDaGVja2VkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dDaGVjaygpXCI+PC9mZC1jaGVja2JveD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxmZC1jYXJkLW1haW4taGVhZGVyPlxuICAgICAgICAgICAgQGlmIChzZXR0aW5nLkF2YXRhckZpZWxkIHx8IHNldHRpbmcuQXZhdGFyKSB7XG4gICAgICAgICAgICA8ZmQtYXZhdGFyXG4gICAgICAgICAgICAgICAgYWx0ZXJJY29uPVwiYWx0fGNvbnRlbnR8YmFja3VwfGRlZmF1bHQtaWNvblwiXG4gICAgICAgICAgICAgICAgW2NpcmNsZV09XCJzZXR0aW5nLkNpcmNsZUF2YXRhclwiXG4gICAgICAgICAgICAgICAgW2ltYWdlXT1cIlxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nLkF2YXRhckZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChtb1tzZXR0aW5nLkF2YXRhckZpZWxkLk5hbWVdPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpzZXR0aW5nLkF2YXRhckZpZWxkLkZpZWxkRGVmSWQpXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJcbiAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2l6ZSA9PT0gJ3hsJyB8fCBkZXZpY2VTaXplID09PSAnbCdcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2V0dGluZy5BdmF0YXJTaXplRGVza3RvcCRDYXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNldHRpbmcuQXZhdGFyU2l6ZSRDYXB0aW9uXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmcuQXZhdGFyIHx8XG4gICAgICAgICAgICAgICAgICAgIChtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWQgPyAnZmF2b3JpdGUnIDogaW5saW5lRWRpdE1vZGUgJiYgaXNDaGVja2VkID8gJ2VkaXQnIDogJycpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2ZkLWF2YXRhcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxoMiBmZC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5UaXRsZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8aDMgZmQtY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuU3VidGl0bGVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgQGlmICghY29udGV4dE1lbnVJbkZvb3RlciAmJiAoY29udGV4dE1lbnVJdGVtcyAmJiBjb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA+IDApKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgdWx2Q29udGV4dE1lbnVcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICBbZm9vdGVyTW9kZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLWNhcmQtbWFpbi1oZWFkZXI+XG4gICAgPC9mZC1jYXJkLWhlYWRlcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3JlbmRlckhlYWRlck1vYmlsZUNhblZpZXcgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgPGZkLWNhcmQtaGVhZGVyPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgQGlmKGlzQ2hlY2tMaXN0KXtcbiAgICAgICAgICAgIDxmZC1jaGVja2JveCBbbmFtZV09XCJtby4kQ2FwdGlvblwiIFtuZ01vZGVsXT1cImlzQ2hlY2tlZFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUm93Q2hlY2soKVwiPjwvZmQtY2hlY2tib3g+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZmQtY2FyZC1tYWluLWhlYWRlcj5cbiAgICAgICAgICAgIEBpZiAoc2V0dGluZy5BdmF0YXJGaWVsZCB8fCBzZXR0aW5nLkF2YXRhcikge1xuICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgIGFsdGVySWNvbj1cImFsdHxjb250ZW50fGJhY2t1cHxkZWZhdWx0LWljb25cIlxuICAgICAgICAgICAgICAgIFtjaXJjbGVdPVwic2V0dGluZy5DaXJjbGVBdmF0YXJcIlxuICAgICAgICAgICAgICAgIFtpbWFnZV09XCJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5BdmF0YXJGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAobW9bc2V0dGluZy5BdmF0YXJGaWVsZC5OYW1lXT8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6c2V0dGluZy5BdmF0YXJGaWVsZC5GaWVsZERlZklkKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiXG4gICAgICAgICAgICAgICAgICAgIGRldmljZVNpemUgPT09ICd4bCcgfHwgZGV2aWNlU2l6ZSA9PT0gJ2wnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNldHRpbmcuQXZhdGFyU2l6ZURlc2t0b3AkQ2FwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZXR0aW5nLkF2YXRhclNpemUkQ2FwdGlvblxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cIlxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nLkF2YXRhciB8fFxuICAgICAgICAgICAgICAgICAgICAobW8uJFN0YXRlID09PSAnTmV3JyAmJiAhaXNDaGVja2VkID8gJ2Zhdm9yaXRlJyA6IGlubGluZUVkaXRNb2RlICYmIGlzQ2hlY2tlZCA/ICdlZGl0JyA6ICcnKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9mZC1hdmF0YXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8aDIgZmQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuVGl0bGVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgPGgzIGZkLWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlN1YnRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1jYXJkLWhlYWRlci1hY3Rpb25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInZpZXctYnRuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGljaygpXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZmQtY2FyZC1tYWluLWhlYWRlcj5cbiAgICA8L2ZkLWNhcmQtaGVhZGVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcmVuZGVySGVhZGVyQ29tcG9uZW50IGxldC1tbyBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnRcbiAgICAgICAgW2NvbXBvbmVudF09XCJzZXR0aW5nLkhlYWRlckNvbXBvbmVudFwiXG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFtzdHlsZUluZGV4XT1cIm1vLiRTdHlsZUluZGV4XCJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICBbc2V0dGluZ109XCJzZXR0aW5nXCJcbiAgICAgICAgW3BhcmFtZXRlcnNdPVwic2V0dGluZy5IZWFkZXJDb21wb25lbnQuU2V0dGluZ3NcIlxuICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgIFtjb250ZXh0TWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICBbY2FuVmlld109XCJjYW5WaWV3XCJcbiAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgIChldmVudHMpPVwib25EeW5hbWljQ29tcG9uZW50RXZlbnRzKCRldmVudClcIlxuICAgID48L2JucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -37,10 +37,10 @@ export class CardViewContentComponent extends BaseViewContentPropsComponent {
|
|
|
37
37
|
this.expandClick.emit(mo);
|
|
38
38
|
}
|
|
39
39
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: CardViewContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: CardViewContentComponent, selector: "bsu-card-view-content", usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"setting.CardWidth ? flexTemplate : gridTemplate\"></ng-container>\n<ng-template #gridTemplate>\n @if (moDataList && moDataList.length > 0) {\n <fd-layout-grid class=\"card-list\">\n <ng-container *ngTemplateOutlet=\"containerTemplate; context: { $implicit: true }\"></ng-container>\n </fd-layout-grid>\n } @else {\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\n }\n</ng-template>\n<ng-template #flexTemplate>\n <div class=\"card-view-flex-container\">\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\n </div>\n</ng-template>\n<ng-template #containerTemplate let-isGrid>\n @for ( mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index; let last =\n $last; let first = $first) { @if (!mo.$Parent || mo.$Parent?.$Expanded) {\n <ng-container\n *ngTemplateOutlet=\"\n mo.$Group || mo.$Group === '' ? group : isGrid ? cardTemplateGrid : cardTemplate;\n context: { $implicit: mo, index: this.index }\n \"\n ></ng-container>\n <ng-template #group>\n <div\n class=\"group-label row-group\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.$Level * 12 + 'px' + ' )'\"\n [attr.level]=\"mo.$Level\"\n [class.root-group]=\"mo.$Level === 0\"\n ellipsify\n >\n <fd-icon\n [glyph]=\"mo.$Expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick(mo)\"\n ></fd-icon>\n <span fd-list-title>{{ mo.$Group }}</span>\n </div>\n </ng-template>\n } @if (setting.contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"mo.$StyleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"ulvCommand.emit({mo,index})\"\n ></div>\n } }\n</ng-template>\n<ng-template #cardTemplate let-mo let-index=\"index\">\n <bsu-card-item\n [mo]=\"mo\"\n [openOnClick]=\"openOnClick\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [index]=\"index\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [setting]=\"setting\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (rowCheck)=\"rowCheck.emit($event)\"\n (rowClick)=\"rowClick.emit($event)\"\n (ulvCommand)=\"ulvCommand.emit($event)\"\n (editFormPanelSave)=\"editFormPanelSave.emit($event)\"\n (editFormPanelCancel)=\"editFormPanelCancel.emit($event)\"\n (action)=\"action.emit($event)\"\n >\n </bsu-card-item>\n</ng-template>\n<ng-template #cardTemplateGrid let-mo let-index=\"index\">\n <div\n [fdLayoutGridCol]=\"sizeS\"\n [colMd]=\"sizeM\"\n [colLg]=\"sizeL\"\n [colXl]=\"sizeXl\"\n [class.selected]=\"mo.$IsChecked ? true : false\"\n class=\"card-container\"\n >\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: { $implicit: mo, index: index }\"></ng-container>\n </div>\n</ng-template>\n", styles: [".card-list{flex-wrap:wrap;padding-bottom:2rem;margin-left:0;row-gap:.25rem}.card-list .group-label{width:100%;display:flex;align-items:center;border-right:none;padding-top:.25rem;padding-bottom:.25rem;column-gap:10px}::ng-deep .card-list .unread .fd-form-item,::ng-deep .card-list .unread .fd-title,::ng-deep .card-list .unread .fd-quick-view__subtitle{font-weight:700}::ng-deep .card-list .group-item-content{background-color:transparent}::ng-deep .card-list .selected fd-card{
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: CardViewContentComponent, selector: "bsu-card-view-content", usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"setting.CardWidth ? flexTemplate : gridTemplate\"></ng-container>\n<ng-template #gridTemplate>\n @if (moDataList && moDataList.length > 0) {\n <fd-layout-grid class=\"card-list\">\n <ng-container *ngTemplateOutlet=\"containerTemplate; context: { $implicit: true }\"></ng-container>\n </fd-layout-grid>\n } @else {\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\n }\n</ng-template>\n<ng-template #flexTemplate>\n <div class=\"card-view-flex-container\">\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\n </div>\n</ng-template>\n<ng-template #containerTemplate let-isGrid>\n @for ( mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index; let last =\n $last; let first = $first) { @if (!mo.$Parent || mo.$Parent?.$Expanded) {\n <ng-container\n *ngTemplateOutlet=\"\n mo.$Group || mo.$Group === '' ? group : isGrid ? cardTemplateGrid : cardTemplate;\n context: { $implicit: mo, index: this.index }\n \"\n ></ng-container>\n <ng-template #group>\n <div\n class=\"group-label row-group\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.$Level * 12 + 'px' + ' )'\"\n [attr.level]=\"mo.$Level\"\n [class.root-group]=\"mo.$Level === 0\"\n ellipsify\n >\n <fd-icon\n [glyph]=\"mo.$Expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick(mo)\"\n ></fd-icon>\n <span fd-list-title>{{ mo.$Group }}</span>\n </div>\n </ng-template>\n } @if (setting.contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"mo.$StyleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"ulvCommand.emit({mo,index})\"\n ></div>\n } }\n</ng-template>\n<ng-template #cardTemplate let-mo let-index=\"index\">\n <bsu-card-item\n [mo]=\"mo\"\n [openOnClick]=\"openOnClick\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [index]=\"index\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [setting]=\"setting\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (rowCheck)=\"rowCheck.emit($event)\"\n (rowClick)=\"rowClick.emit($event)\"\n (ulvCommand)=\"ulvCommand.emit($event)\"\n (editFormPanelSave)=\"editFormPanelSave.emit($event)\"\n (editFormPanelCancel)=\"editFormPanelCancel.emit($event)\"\n (action)=\"action.emit($event)\"\n >\n </bsu-card-item>\n</ng-template>\n<ng-template #cardTemplateGrid let-mo let-index=\"index\">\n <div\n [fdLayoutGridCol]=\"sizeS\"\n [colMd]=\"sizeM\"\n [colLg]=\"sizeL\"\n [colXl]=\"sizeXl\"\n [class.selected]=\"mo.$IsChecked ? true : false\"\n class=\"card-container\"\n >\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: { $implicit: mo, index: index }\"></ng-container>\n </div>\n</ng-template>\n", styles: [".card-list{flex-wrap:wrap;padding-bottom:2rem;margin-left:0;row-gap:.25rem}.card-list .group-label{width:100%;display:flex;align-items:center;border-right:none;padding-top:.25rem;padding-bottom:.25rem;column-gap:10px}::ng-deep .card-list .unread .fd-form-item,::ng-deep .card-list .unread .fd-title,::ng-deep .card-list .unread .fd-quick-view__subtitle{font-weight:700}::ng-deep .card-list .group-item-content{background-color:transparent}::ng-deep .card-list .selected fd-card{border-color:var(--sapList_SelectionBorderColor, #0854a0);border-style:solid;border-width:thin}::ng-deep .card-list fd-card fd-icon .avatar{font-size:.75rem!important}::ng-deep .card-list fd-card .fd-quick-view__content{height:100%}::ng-deep .card-list fd-card fd-icon .avatar{font-size:1rem!important}.card-view-flex-container{width:100%;display:flex;flex-wrap:wrap;row-gap:10px;column-gap:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i4.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i4.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i6.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i7.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: i8.CardItemComponent, selector: "bsu-card-item", inputs: ["setting"] }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
41
41
|
}
|
|
42
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: CardViewContentComponent, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
|
-
args: [{ selector: 'bsu-card-view-content', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngTemplateOutlet=\"setting.CardWidth ? flexTemplate : gridTemplate\"></ng-container>\n<ng-template #gridTemplate>\n @if (moDataList && moDataList.length > 0) {\n <fd-layout-grid class=\"card-list\">\n <ng-container *ngTemplateOutlet=\"containerTemplate; context: { $implicit: true }\"></ng-container>\n </fd-layout-grid>\n } @else {\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\n }\n</ng-template>\n<ng-template #flexTemplate>\n <div class=\"card-view-flex-container\">\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\n </div>\n</ng-template>\n<ng-template #containerTemplate let-isGrid>\n @for ( mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index; let last =\n $last; let first = $first) { @if (!mo.$Parent || mo.$Parent?.$Expanded) {\n <ng-container\n *ngTemplateOutlet=\"\n mo.$Group || mo.$Group === '' ? group : isGrid ? cardTemplateGrid : cardTemplate;\n context: { $implicit: mo, index: this.index }\n \"\n ></ng-container>\n <ng-template #group>\n <div\n class=\"group-label row-group\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.$Level * 12 + 'px' + ' )'\"\n [attr.level]=\"mo.$Level\"\n [class.root-group]=\"mo.$Level === 0\"\n ellipsify\n >\n <fd-icon\n [glyph]=\"mo.$Expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick(mo)\"\n ></fd-icon>\n <span fd-list-title>{{ mo.$Group }}</span>\n </div>\n </ng-template>\n } @if (setting.contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"mo.$StyleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"ulvCommand.emit({mo,index})\"\n ></div>\n } }\n</ng-template>\n<ng-template #cardTemplate let-mo let-index=\"index\">\n <bsu-card-item\n [mo]=\"mo\"\n [openOnClick]=\"openOnClick\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [index]=\"index\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [setting]=\"setting\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (rowCheck)=\"rowCheck.emit($event)\"\n (rowClick)=\"rowClick.emit($event)\"\n (ulvCommand)=\"ulvCommand.emit($event)\"\n (editFormPanelSave)=\"editFormPanelSave.emit($event)\"\n (editFormPanelCancel)=\"editFormPanelCancel.emit($event)\"\n (action)=\"action.emit($event)\"\n >\n </bsu-card-item>\n</ng-template>\n<ng-template #cardTemplateGrid let-mo let-index=\"index\">\n <div\n [fdLayoutGridCol]=\"sizeS\"\n [colMd]=\"sizeM\"\n [colLg]=\"sizeL\"\n [colXl]=\"sizeXl\"\n [class.selected]=\"mo.$IsChecked ? true : false\"\n class=\"card-container\"\n >\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: { $implicit: mo, index: index }\"></ng-container>\n </div>\n</ng-template>\n", styles: [".card-list{flex-wrap:wrap;padding-bottom:2rem;margin-left:0;row-gap:.25rem}.card-list .group-label{width:100%;display:flex;align-items:center;border-right:none;padding-top:.25rem;padding-bottom:.25rem;column-gap:10px}::ng-deep .card-list .unread .fd-form-item,::ng-deep .card-list .unread .fd-title,::ng-deep .card-list .unread .fd-quick-view__subtitle{font-weight:700}::ng-deep .card-list .group-item-content{background-color:transparent}::ng-deep .card-list .selected fd-card{
|
|
44
|
+
args: [{ selector: 'bsu-card-view-content', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngTemplateOutlet=\"setting.CardWidth ? flexTemplate : gridTemplate\"></ng-container>\n<ng-template #gridTemplate>\n @if (moDataList && moDataList.length > 0) {\n <fd-layout-grid class=\"card-list\">\n <ng-container *ngTemplateOutlet=\"containerTemplate; context: { $implicit: true }\"></ng-container>\n </fd-layout-grid>\n } @else {\n <bsu-no-data [simple]=\"true\"></bsu-no-data>\n }\n</ng-template>\n<ng-template #flexTemplate>\n <div class=\"card-view-flex-container\">\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\n </div>\n</ng-template>\n<ng-template #containerTemplate let-isGrid>\n @for ( mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index; let last =\n $last; let first = $first) { @if (!mo.$Parent || mo.$Parent?.$Expanded) {\n <ng-container\n *ngTemplateOutlet=\"\n mo.$Group || mo.$Group === '' ? group : isGrid ? cardTemplateGrid : cardTemplate;\n context: { $implicit: mo, index: this.index }\n \"\n ></ng-container>\n <ng-template #group>\n <div\n class=\"group-label row-group\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.$Level * 12 + 'px' + ' )'\"\n [attr.level]=\"mo.$Level\"\n [class.root-group]=\"mo.$Level === 0\"\n ellipsify\n >\n <fd-icon\n [glyph]=\"mo.$Expanded ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n (click)=\"onExpandClick(mo)\"\n ></fd-icon>\n <span fd-list-title>{{ mo.$Group }}</span>\n </div>\n </ng-template>\n } @if (setting.contextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\n <div\n ulvContextMenu\n [allColumns]=\"allColumns\"\n [menuItems]=\"contextMenuItems\"\n [styleIndex]=\"mo.$StyleIndex\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"ulvCommand.emit({mo,index})\"\n ></div>\n } }\n</ng-template>\n<ng-template #cardTemplate let-mo let-index=\"index\">\n <bsu-card-item\n [mo]=\"mo\"\n [openOnClick]=\"openOnClick\"\n [styleIndex]=\"mo.$StyleIndex\"\n [isNewInlineMo]=\"mo.$NewInlineMo\"\n [index]=\"index\"\n [isChecked]=\"mo.$IsChecked\"\n [visibility]=\"mo.$Visibility\"\n [expanded]=\"mo.$Expanded\"\n [level]=\"mo.$Level\"\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\n [setting]=\"setting\"\n [inlineEditMode]=\"inlineEditMode\"\n [allowInlineEdit]=\"allowInlineEdit\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [contextMenuItems]=\"contextMenuItems\"\n [canView]=\"canView\"\n [conditionalFormats]=\"conditionalFormats\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [navigationArrow]=\"navigationArrow\"\n [isCheckList]=\"isCheckList\"\n (rowCheck)=\"rowCheck.emit($event)\"\n (rowClick)=\"rowClick.emit($event)\"\n (ulvCommand)=\"ulvCommand.emit($event)\"\n (editFormPanelSave)=\"editFormPanelSave.emit($event)\"\n (editFormPanelCancel)=\"editFormPanelCancel.emit($event)\"\n (action)=\"action.emit($event)\"\n >\n </bsu-card-item>\n</ng-template>\n<ng-template #cardTemplateGrid let-mo let-index=\"index\">\n <div\n [fdLayoutGridCol]=\"sizeS\"\n [colMd]=\"sizeM\"\n [colLg]=\"sizeL\"\n [colXl]=\"sizeXl\"\n [class.selected]=\"mo.$IsChecked ? true : false\"\n class=\"card-container\"\n >\n <ng-container *ngTemplateOutlet=\"cardTemplate; context: { $implicit: mo, index: index }\"></ng-container>\n </div>\n</ng-template>\n", styles: [".card-list{flex-wrap:wrap;padding-bottom:2rem;margin-left:0;row-gap:.25rem}.card-list .group-label{width:100%;display:flex;align-items:center;border-right:none;padding-top:.25rem;padding-bottom:.25rem;column-gap:10px}::ng-deep .card-list .unread .fd-form-item,::ng-deep .card-list .unread .fd-title,::ng-deep .card-list .unread .fd-quick-view__subtitle{font-weight:700}::ng-deep .card-list .group-item-content{background-color:transparent}::ng-deep .card-list .selected fd-card{border-color:var(--sapList_SelectionBorderColor, #0854a0);border-style:solid;border-width:thin}::ng-deep .card-list fd-card fd-icon .avatar{font-size:.75rem!important}::ng-deep .card-list fd-card .fd-quick-view__content{height:100%}::ng-deep .card-list fd-card fd-icon .avatar{font-size:1rem!important}.card-view-flex-container{width:100%;display:flex;flex-wrap:wrap;row-gap:10px;column-gap:10px}\n"] }]
|
|
45
45
|
}] });
|
|
46
46
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC12aWV3LWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FyZC12aWV3LWNvbnRlbnQvY2FyZC12aWV3LWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY2FyZC12aWV3LWNvbnRlbnQvY2FyZC12aWV3LWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVNyRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsNkJBQW9EO0lBTmxHOztRQU9JLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxFQUFFLENBQUM7S0FvQmQ7SUFuQkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEVBQUU7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQXZCUSx3QkFBd0I7a0dBQXhCLHdCQUF3QixvRkNWckMsNDlIQXFHQTs7MkZEM0ZhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDSSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VWaWV3Q29udGVudFByb3BzQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgVWlDYXJkTGlzdFZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWNhcmQtdmlldy1jb250ZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC12aWV3LWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhcmQtdmlldy1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZFZpZXdDb250ZW50Q29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdDb250ZW50UHJvcHNDb21wb25lbnQ8VWlDYXJkTGlzdFZpZXdTZXR0aW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc2l6ZVhsID0gMztcbiAgICBzaXplTCA9IDQ7XG4gICAgc2l6ZU0gPSA2O1xuICAgIHNpemVTID0gMTI7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IHsgU2l6ZVhMLCBTaXplTCwgU2l6ZU0sIFNpemVTIH0gPSB0aGlzLnNldHRpbmc7XG4gICAgICAgIGlmIChTaXplWEwpIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZVhsID0gMTIgLyBTaXplWEw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFNpemVMKSB7XG4gICAgICAgICAgICB0aGlzLnNpemVMID0gMTIgLyBTaXplTDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoU2l6ZU0pIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZU0gPSAxMiAvIFNpemVNO1xuICAgICAgICB9XG4gICAgICAgIGlmIChTaXplUykge1xuICAgICAgICAgICAgdGhpcy5zaXplUyA9IDEyIC8gU2l6ZVM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25FeHBhbmRDbGljayhtbyk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4cGFuZENsaWNrLmVtaXQobW8pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZXR0aW5nLkNhcmRXaWR0aCA/IGZsZXhUZW1wbGF0ZSA6IGdyaWRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNncmlkVGVtcGxhdGU+XG4gICAgQGlmIChtb0RhdGFMaXN0ICYmIG1vRGF0YUxpc3QubGVuZ3RoID4gMCkge1xuICAgIDxmZC1sYXlvdXQtZ3JpZCBjbGFzcz1cImNhcmQtbGlzdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGFpbmVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB0cnVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2ZkLWxheW91dC1ncmlkPlxuICAgIH0gQGVsc2Uge1xuICAgIDxic3Utbm8tZGF0YSBbc2ltcGxlXT1cInRydWVcIj48L2JzdS1uby1kYXRhPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2ZsZXhUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3LWZsZXgtY29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250YWluZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjY29udGFpbmVyVGVtcGxhdGUgbGV0LWlzR3JpZD5cbiAgICBAZm9yICggbW8gb2YgbW9EYXRhTGlzdCB8IG11bHRpcGxlR3JvdXBCeTogZ3JvdXBieTsgdHJhY2sgX3RyYWNrQnlSb3coaW5kZXgsIG1vKTsgbGV0IGluZGV4ID0gJGluZGV4OyBsZXQgbGFzdCA9XG4gICAgJGxhc3Q7IGxldCBmaXJzdCA9ICRmaXJzdCkgeyBAaWYgKCFtby4kUGFyZW50IHx8IG1vLiRQYXJlbnQ/LiRFeHBhbmRlZCkge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIG1vLiRHcm91cCB8fCBtby4kR3JvdXAgPT09ICcnID8gZ3JvdXAgOiBpc0dyaWQgPyBjYXJkVGVtcGxhdGVHcmlkIDogY2FyZFRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IG1vLCBpbmRleDogdGhpcy5pbmRleCB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZ3JvdXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZ3JvdXAtbGFiZWwgcm93LWdyb3VwXCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0XT1cIidjYWxjKCAxcmVtICsgJyArIG1vLiRMZXZlbCAqIDEyICsgJ3B4JyArICcgKSdcIlxuICAgICAgICAgICAgW2F0dHIubGV2ZWxdPVwibW8uJExldmVsXCJcbiAgICAgICAgICAgIFtjbGFzcy5yb290LWdyb3VwXT1cIm1vLiRMZXZlbCA9PT0gMFwiXG4gICAgICAgICAgICBlbGxpcHNpZnlcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkLWljb25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibW8uJEV4cGFuZGVkID8gJ25hdmlnYXRpb24tZG93bi1hcnJvdycgOiAnbmF2aWdhdGlvbi1sZWZ0LWFycm93J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsLWV4cGFuZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRXhwYW5kQ2xpY2sobW8pXCJcbiAgICAgICAgICAgID48L2ZkLWljb24+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IG1vLiRHcm91cCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9IEBpZiAoc2V0dGluZy5jb250ZXh0TWVudUluRm9vdGVyICYmIGNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgPGRpdlxuICAgICAgICB1bHZDb250ZXh0TWVudVxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIChjb21tYW5kQ2xpY2spPVwidWx2Q29tbWFuZC5lbWl0KHttbyxpbmRleH0pXCJcbiAgICA+PC9kaXY+XG4gICAgfSB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNjYXJkVGVtcGxhdGUgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgPGJzdS1jYXJkLWl0ZW1cbiAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgW29wZW5PbkNsaWNrXT1cIm9wZW5PbkNsaWNrXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwibW8uJFN0eWxlSW5kZXhcIlxuICAgICAgICBbaXNOZXdJbmxpbmVNb109XCJtby4kTmV3SW5saW5lTW9cIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbaXNDaGVja2VkXT1cIm1vLiRJc0NoZWNrZWRcIlxuICAgICAgICBbdmlzaWJpbGl0eV09XCJtby4kVmlzaWJpbGl0eVwiXG4gICAgICAgIFtleHBhbmRlZF09XCJtby4kRXhwYW5kZWRcIlxuICAgICAgICBbbGV2ZWxdPVwibW8uJExldmVsXCJcbiAgICAgICAgW3BhcmVudEV4cGFuZGVkXT1cIm1vLiRQYXJlbnQ/LiRFeHBhbmRlZFwiXG4gICAgICAgIFtzZXR0aW5nXT1cInNldHRpbmdcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbYWxsb3dJbmxpbmVFZGl0XT1cImFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgIFtjYW5WaWV3XT1cImNhblZpZXdcIlxuICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgKHJvd0NoZWNrKT1cInJvd0NoZWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChyb3dDbGljayk9XCJyb3dDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAodWx2Q29tbWFuZCk9XCJ1bHZDb21tYW5kLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChlZGl0Rm9ybVBhbmVsU2F2ZSk9XCJlZGl0Rm9ybVBhbmVsU2F2ZS5lbWl0KCRldmVudClcIlxuICAgICAgICAoZWRpdEZvcm1QYW5lbENhbmNlbCk9XCJlZGl0Rm9ybVBhbmVsQ2FuY2VsLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChhY3Rpb24pPVwiYWN0aW9uLmVtaXQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYnN1LWNhcmQtaXRlbT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2NhcmRUZW1wbGF0ZUdyaWQgbGV0LW1vIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgPGRpdlxuICAgICAgICBbZmRMYXlvdXRHcmlkQ29sXT1cInNpemVTXCJcbiAgICAgICAgW2NvbE1kXT1cInNpemVNXCJcbiAgICAgICAgW2NvbExnXT1cInNpemVMXCJcbiAgICAgICAgW2NvbFhsXT1cInNpemVYbFwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJtby4kSXNDaGVja2VkID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgY2xhc3M9XCJjYXJkLWNvbnRhaW5lclwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbW8sIGluZGV4OiBpbmRleCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|