barsa-sap-ui 2.2.62 → 2.2.64

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.
Files changed (28) hide show
  1. package/esm2022/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +18 -3
  2. package/esm2022/lib/barsa-cartable-form/barsa-cartable-form.component.mjs +1 -1
  3. package/esm2022/lib/barsa-chat/barsa-chat.component.mjs +2 -2
  4. package/esm2022/lib/barsa-dynamic-field/barsa-dynamic-field.component.mjs +1 -1
  5. package/esm2022/lib/barsa-question-answer-form/barsa-question-answer-form.component.mjs +1 -1
  6. package/esm2022/lib/barsa-table-column/barsa-table-column.component.mjs +1 -1
  7. package/esm2022/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +1 -1
  8. package/esm2022/lib/column-renderer/column-renderer.component.mjs +5 -3
  9. package/esm2022/lib/layout-control/layout-control.component.mjs +5 -3
  10. package/esm2022/lib/list-item/list-item.component.mjs +1 -1
  11. package/esm2022/lib/ly-tab-page/ly-tab-page.component.mjs +10 -5
  12. package/esm2022/lib/models/grid-data-provider.mjs +5 -3
  13. package/esm2022/lib/sap-ui-report-base.component.mjs +2 -2
  14. package/esm2022/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +14 -4
  15. package/esm2022/lib/ui-container-with-button/ui-container-with-button.component.mjs +1 -1
  16. package/esm2022/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +2 -2
  17. package/esm2022/lib/ui-matrix-view/ui-matrix-view.component.mjs +2 -2
  18. package/esm2022/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +1 -1
  19. package/esm2022/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +3 -3
  20. package/fesm2022/barsa-sap-ui.mjs +63 -28
  21. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  22. package/lib/barsa-asp-viewer/barsa-asp-viewer.component.d.ts +3 -1
  23. package/lib/column-renderer/column-renderer.component.d.ts +2 -1
  24. package/lib/layout-control/layout-control.component.d.ts +2 -1
  25. package/lib/ly-tab-page/ly-tab-page.component.d.ts +1 -0
  26. package/lib/models/grid-data-provider.d.ts +2 -1
  27. package/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.d.ts +4 -0
  28. package/package.json +1 -1
@@ -51,17 +51,19 @@ export class ColumnRendererComponent extends BaseComponent {
51
51
  this._renderer2.setStyle(this._filePopover.nativeElement, 'max-width', `${this.containerDom?.offsetWidth}px`);
52
52
  }
53
53
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnRendererComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: { column: "column", allColumns: "allColumns", mo: "mo", index: "index", editMode: "editMode", attachmentViewType: "attachmentViewType", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isNewInlineMo: "isNewInlineMo", containerDom: "containerDom", disableEllapsis: "disableEllapsis", rtl: "rtl", isMobile: "isMobile", fdTextMode: "fdTextMode", deviceName: "deviceName", deviceSize: "deviceSize", value: "value", icon: "icon" }, host: { properties: { "class.isMobile": "this._isSmall" } }, viewQueries: [{ propertyName: "_filePopover", first: true, predicate: ["fileviewerPopover"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize", "disableEllapsis"], outputs: ["ellapsised"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[stopPropagation]" }, { kind: "directive", type: i2.PreventDefaultDirective, selector: "[preventDefault]" }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i6.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i7.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: i8.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: { cellEdit: "cellEdit", column: "column", allColumns: "allColumns", mo: "mo", index: "index", editMode: "editMode", attachmentViewType: "attachmentViewType", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isNewInlineMo: "isNewInlineMo", containerDom: "containerDom", disableEllapsis: "disableEllapsis", rtl: "rtl", isMobile: "isMobile", fdTextMode: "fdTextMode", deviceName: "deviceName", deviceSize: "deviceSize", value: "value", icon: "icon" }, host: { properties: { "class.isMobile": "this._isSmall" } }, viewQueries: [{ propertyName: "_filePopover", first: true, predicate: ["fileviewerPopover"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize", "disableEllapsis"], outputs: ["ellapsised"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[stopPropagation]" }, { kind: "directive", type: i2.PreventDefaultDirective, selector: "[preventDefault]" }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i6.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: i7.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: i8.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnRendererComponent, decorators: [{
57
57
  type: Component,
58
- args: [{ selector: 'bsu-column-renderer,[colRenderer]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"] }]
58
+ args: [{ selector: 'bsu-column-renderer,[colRenderer]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\" [attr.title]=\"value\">\r\n @if (icon) {\r\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\" \r\n (ellapsised)=\"onElapsised($event)\"\r\n >\r\n {{ value }}\r\n </div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') {\r\n {{ value }}\r\n } @if (column.Extra?.TrueImage !== '') {\r\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"] }]
59
59
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { _filePopover: [{
60
60
  type: ViewChild,
61
61
  args: ['fileviewerPopover', { static: false, read: ElementRef }]
62
62
  }], _isSmall: [{
63
63
  type: HostBinding,
64
64
  args: ['class.isMobile']
65
+ }], cellEdit: [{
66
+ type: Input
65
67
  }], column: [{
66
68
  type: Input
67
69
  }], allColumns: [{
@@ -103,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
103
105
  }], icon: [{
104
106
  type: Input
105
107
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NvbHVtbi1yZW5kZXJlci9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29sdW1uLXJlbmRlcmVyL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQU1MLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILGFBQWEsRUFJaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVM5QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWdDdEQsWUFBc0IsSUFBdUI7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQTlCZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBMEJoRDs7V0FFRztRQUNPLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFHekMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDMUIsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2xILENBQUM7K0dBbEVRLHVCQUF1QjttR0FBdkIsdUJBQXVCLHN1QkFDdUIsVUFBVSx5RUNqQ3JFLCtxTEFrSkE7OzRGRGxIYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0ksbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7c0ZBR29ELFlBQVk7c0JBQWhGLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3BDLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNwQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIE9uSW5pdCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBXcml0YWJsZVNpZ25hbCxcclxuICAgIHNpZ25hbCxcclxuICAgIGluamVjdCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBMYXlvdXRTZXR0aW5nLFxyXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcclxuICAgIFJlcG9ydFZpZXdDb2x1bW5cclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWNvbHVtbi1yZW5kZXJlcixbY29sUmVuZGVyZXJdJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5SZW5kZXJlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdmaWxldmlld2VyUG9wb3ZlcicsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KSBfZmlsZVBvcG92ZXI6IEVsZW1lbnRSZWY7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzTW9iaWxlJykgX2lzU21hbGwgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbjtcclxuICAgIEBJbnB1dCgpIGFsbENvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgaW5kZXg6IGFueTtcclxuICAgIEBJbnB1dCgpIGVkaXRNb2RlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgYXR0YWNobWVudFZpZXdUeXBlOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBjdXN0b21Sb3dIZWlnaHQ6IGFueTtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2xVaTogTGF5b3V0U2V0dGluZyB8IG51bGw7XHJcbiAgICBASW5wdXQoKSBmb3JtTGF5b3V0U2hvd0xhYmVsOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNDaGVja2VkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNOZXdJbmxpbmVNbzogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRhaW5lckRvbTogSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgQElucHV0KCkgZGlzYWJsZUVsbGFwc2lzOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBmZFRleHRNb2RlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xyXG4gICAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICAgIEBJbnB1dCgpIGljb246IGFueTtcclxuXHJcbiAgICBzaG93TW9yZTogYm9vbGVhbjtcclxuICAgIGZpZWxkVHlwZUlkOiBudW1iZXI7XHJcbiAgICBzaWduYWxWYWx1ZTogV3JpdGFibGVTaWduYWw8YW55PjtcclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9yZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNpZ25hbFZhbHVlID0gc2lnbmFsKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5maWVsZFR5cGVJZCA9IE51bWJlcih0aGlzLmNvbHVtbi5GaWVsZFR5cGVJZCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzU21hbGwgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBjaGFuZ2VzO1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiAhdmFsdWUuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5zaWduYWxWYWx1ZS5zZXQodmFsdWUuY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5GaWVsZFR5cGVJZC50b1N0cmluZygpID09PSAnMzEnKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25FbGFwc2lzZWQodmFsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZUVsbGFwc2lzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zaG93TW9yZSA9IHZhbDtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgb25TZXRNYXhXaWR0aCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5fZmlsZVBvcG92ZXIubmF0aXZlRWxlbWVudCwgJ21heC13aWR0aCcsIGAke3RoaXMuY29udGFpbmVyRG9tPy5vZmZzZXRXaWR0aH1weGApO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAoY29sdW1uKSB7XHJcbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0TW9kZSA/IGZvcm1Db250cm9sVGVtcGxhdGUgOiByZW5kZXJDZWxsVGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XHJcbn1cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJDZWxsVGVtcGxhdGU+XHJcbiAgICBAc3dpdGNoIChjb2x1bW4uRmllbGRUeXBlSWQpIHsgQGNhc2UgKDQyKSB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEltYWdlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBjYXNlICgzMykge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlckNlbGxGaWxlSW5mb1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAY2FzZSAoMzEpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJDZWxsRmlsZUxpc3RLaGF0aVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAY2FzZSAoMTEpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJDZWxsTGlzdFRhc2F2aXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGNhc2UgKDUpIHtcclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5FeHRyYT8uU2hvd0NoZWNrSW5HcmlkID8gcmVuZGVyQ2VsbENoZWNib3ggOiByZW5kZXJDaGVjYm94SW1hZ2VcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAZGVmYXVsdCB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyR2VuZXJhbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyR2VuZXJhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJyZW5kZXJHZW5lcmFsXCIgW2NsYXNzLm9ubHlJY29uXT1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJ1wiIFtzdHlsZS53aWR0aF09XCJcIiAgICAgW2F0dHIudGl0bGVdPVwidmFsdWVcIj5cclxuICAgICAgICBAaWYgKGljb24pIHtcclxuICAgICAgICA8aW1nIFthdHRyLnJ0bF09XCJydGxcIiBbc3JjXT1cImljb25cIiAvPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIDxmZC10ZXh0XHJcbiAgICAjZmRUZXh0XHJcbiAgICAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiXHJcbiAgICBbbWF4TGluZXNdPVwiMVwiXHJcbiAgICBbdGV4dF09XCJ2YWx1ZVwiXHJcbiAgICBbZmQtaW5saW5lLWhlbHBdPVwidmFsdWVcIlxyXG4gICAgW2Rpc2FibGVkXT1cIiFmZFRleHQuX2hhc01vcmVcIlxyXG4gID48L2ZkLXRleHQ+IC0tPlxyXG5cclxuICAgICAgICA8IS0tIDxic3UtYmFyc2EtdGV4dC1lbGxpcHNpc1xyXG4gIFtzdHlsZS53aWR0aF09XCJjb2x1bW4uJFdpZHRoXCJcclxuICAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiXHJcbiAgW3RleHRdPVwidmFsdWVcIlxyXG4+PC9ic3UtYmFyc2EtdGV4dC1lbGxpcHNpcz4gLS0+XHJcbiAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiY29sdW1uLkV4dHJhPy5JY29uRGlzcGxheVR5cGVFbnVtICE9PSAnSW1hZ2UnXCIgc3R5bGU9XCJ3b3JkLWJyZWFrOmJyZWFrLXdvcmRcIj5cclxue3sgdmFsdWUgfX1cclxuPC9kaXY+IC0tPlxyXG4gICAgICAgIEBpZiAoY29sdW1uLkV4dHJhPy5JY29uRGlzcGxheVR5cGVFbnVtICE9PSAnSW1hZ2UnKSB7IEBpZighaXNNb2JpbGUgJiYgIWZkVGV4dE1vZGUpe1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgW2VsbGFwc2lzVGV4dF09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlRWxsYXBzaXNdPVwiZWRpdE1vZGVcIlxyXG4gICAgICAgICAgICBbY2xhc3MuZWxsYXBzaXNdPVwiIWRpc2FibGVFbGxhcHNpc1wiICAgICAgICBcclxuICAgICAgICAgICAgKGVsbGFwc2lzZWQpPVwib25FbGFwc2lzZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2V7XHJcbiAgICAgICAgPGZkLXRleHQgW2F0dHIudGl0bGVdPVwidmFsdWVcIiBjbGFzcz1cImNvbC12YWx1ZVwiIFt0ZXh0XT1cInZhbHVlXCIgW21heExpbmVzXT1cIjJcIj48L2ZkLXRleHQ+XHJcbiAgICAgICAgfSB9XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNmb3JtQ29udHJvbFRlbXBsYXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgICAgICAgICFjb250cm9sVWkgfHwgY29udHJvbFVpLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLlJlYWRPbmx5RmllbGQnXHJcbiAgICAgICAgICAgICAgICA/IHJlbmRlckNlbGxUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgOiBsYXlvdXRDb250cm9sVGVtcGxhdGVcclxuICAgICAgICBcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI2xheW91dENvbnRyb2xUZW1wbGF0ZT5cclxuICAgIEBpZiAoY29udHJvbFVpKSB7XHJcbiAgICA8YnN1LWxheW91dC1jb250cm9sXHJcbiAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2NhcHRpb25dPVwiY29sdW1uLkNhcHRpb25cIlxyXG4gICAgICAgIFtjb25maWddPVwiY29udHJvbFVpXCJcclxuICAgICAgICBbZm9jdXNDb250cm9sXT1cImluZGV4ID09PSAwICYmIChpc0NoZWNrZWQgfHwgaXNOZXdJbmxpbmVNbylcIlxyXG4gICAgICAgIFtzaG93TGFiZWxdPVwiZm9ybUxheW91dFNob3dMYWJlbFwiXHJcbiAgICA+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbExpc3RUYXNhdmlyPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0gJiYgbW9bY29sdW1uLk5hbWVdLkltYWdlcykge1xyXG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAwLjE1cmVtXCI+XHJcbiAgICAgICAgQGZvciAocGljIG9mIG1vW2NvbHVtbi5OYW1lXS5JbWFnZXM7IHRyYWNrIHBpYykge1xyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICAgZnVsbHNjcmVlblxyXG4gICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcclxuICAgICAgICAgICAgW2ZpbGVzXT1cIm1vW2NvbHVtbi5OYW1lXS5JbWFnZXNcIlxyXG4gICAgICAgICAgICBbaXNJbWFnZUdhbGxlcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICBbc3JjXT1cInBpYy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0JhcnNhUGljdHVyZS5UaHVtYm5haWwnOm51bGw6Jyc6MzI6MzJcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGk+XHJcbiAgICBAaWYgKG1vW2NvbHVtbi5OYW1lXSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImZpbGUtdmlld2VyLWF0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiBtb1tjb2x1bW4uTmFtZV0uRmlsZXM7IHRyYWNrIGZpbGUpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8YnN1LWZpbGUtdmlld2VyLXBvcG92ZXJcclxuICAgICAgICAgICAgI2ZpbGV2aWV3ZXJQb3BvdmVyXHJcbiAgICAgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICAgICAgICAgIFtpbnRlcnNlY3Rpb25UaHJlc2hvbGRdPVwiMC4xXCJcclxuICAgICAgICAgICAgKHZpc2liaWxpdHlDaGFuZ2UpPVwiJGV2ZW50ID09PSAnVmlzaWJsZScgJiYgb25TZXRNYXhXaWR0aCgpXCJcclxuICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXHJcbiAgICAgICAgICAgIFthdHRhY2htZW50Vmlld1R5cGVdPVwiK2F0dGFjaG1lbnRWaWV3VHlwZVwiXHJcbiAgICAgICAgICAgIFtmaWxlc109XCJtb1tjb2x1bW4uTmFtZV0uRmlsZXNcIlxyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZVJlbW92ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcclxuICAgICAgICAgICAgcHJldmVudERlZmF1bHRcclxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uXHJcbiAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gPGZkLXRva2VuICpuZ0lmPVwiIWZpbGUuSXNEZWxldGVkXCIgW3JlYWRPbmx5XT1cInRydWVcIj57eyBmaWxlLkZpbGVOYW1lIH19PC9mZC10b2tlbj4gLS0+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVJbmZvPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NpemVdPVwiY29sdW1uLkZpZWxkVHlwZUlkID09PSAnNDInIHx8IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNDIgPyAneHMnIDogZGV2aWNlU2l6ZSA9PT0gJ3MnID8gJ3MnIDogJ20nXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdIHwgcGljRmllbGRTcmM6ICdQaWN0dXJlRmlsZUluZm8nOm51bGw6Y29sdW1uLkZpZWxkRGVmSWRcIlxyXG4gICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxDaGVjYm94PlxyXG4gICAgPGZkLWljb24gW2dseXBoXT1cIm1vW2NvbHVtbi5OYW1lXSA9PT0gdHJ1ZSA/ICdhY2NlcHQnIDogJ2xlc3MnXCI+PC9mZC1pY29uPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNoZWNib3hJbWFnZT5cclxuICAgIEBpZiAoY29sdW1uLkV4dHJhPy5UcnVlSW1hZ2UgPT09ICcnKSB7XHJcbiAgICB7eyB2YWx1ZSB9fVxyXG4gICAgfSBAaWYgKGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlICE9PSAnJykge1xyXG4gICAgPGltZyBbc3JjXT1cIm1vW2NvbHVtbi5OYW1lXSA/IGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlIDogY29sdW1uLkV4dHJhPy5GYWxzZUltYWdlXCIgYWxpbmc9XCJtaWRkbGVcIiAvPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxJbWFnZT5cclxuICAgIEBpZiAobW9bY29sdW1uLk5hbWVdICYmIG1vW2NvbHVtbi5OYW1lXVsnVXJsJ10pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbc2l6ZV09XCJjb2x1bW4uRmllbGRUeXBlSWQgPT09ICc0MicgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA0MiA/ICd4cycgOiBkZXZpY2VTaXplID09PSAncycgPyAncycgOiAnbSdcIlxyXG4gICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdWydVcmwnXVwiXHJcbiAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2NvbHVtbi1yZW5kZXJlci9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvY29sdW1uLXJlbmRlcmVyL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQU1MLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILGFBQWEsRUFJaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVM5QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQWlDdEQsWUFBc0IsSUFBdUI7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQS9CZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBMkJoRDs7V0FFRztRQUNPLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFHekMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDMUIsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2xILENBQUM7K0dBbkVRLHVCQUF1QjttR0FBdkIsdUJBQXVCLDR2QkFDdUIsVUFBVSx5RUNqQ3JFLGt0TEFtSkE7OzRGRG5IYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0ksbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7c0ZBR29ELFlBQVk7c0JBQWhGLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3BDLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNwQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFdyaXRhYmxlU2lnbmFsLFxyXG4gICAgc2lnbmFsLFxyXG4gICAgaW5qZWN0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIExheW91dFNldHRpbmcsXHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgUmVwb3J0Vmlld0NvbHVtblxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtY29sdW1uLXJlbmRlcmVyLFtjb2xSZW5kZXJlcl0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbHVtblJlbmRlcmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2ZpbGV2aWV3ZXJQb3BvdmVyJywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pIF9maWxlUG9wb3ZlcjogRWxlbWVudFJlZjtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXNNb2JpbGUnKSBfaXNTbWFsbCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgY2VsbEVkaXQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47XHJcbiAgICBASW5wdXQoKSBhbGxDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XHJcbiAgICBASW5wdXQoKSBtbzogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIEBJbnB1dCgpIGluZGV4OiBhbnk7XHJcbiAgICBASW5wdXQoKSBlZGl0TW9kZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGF0dGFjaG1lbnRWaWV3VHlwZTogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgY3VzdG9tUm93SGVpZ2h0OiBhbnk7XHJcbiAgICBASW5wdXQoKSBjb250cm9sVWk6IExheW91dFNldHRpbmcgfCBudWxsO1xyXG4gICAgQElucHV0KCkgZm9ybUxheW91dFNob3dMYWJlbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzQ2hlY2tlZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTmV3SW5saW5lTW86IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250YWluZXJEb206IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIEBJbnB1dCgpIGRpc2FibGVFbGxhcHNpczogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJ0bDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZmRUZXh0TW9kZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRldmljZU5hbWU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgICBASW5wdXQoKSBpY29uOiBhbnk7XHJcblxyXG4gICAgc2hvd01vcmU6IGJvb2xlYW47XHJcbiAgICBmaWVsZFR5cGVJZDogbnVtYmVyO1xyXG4gICAgc2lnbmFsVmFsdWU6IFdyaXRhYmxlU2lnbmFsPGFueT47XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfcmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaWduYWxWYWx1ZSA9IHNpZ25hbCh0aGlzLnZhbHVlKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuZmllbGRUeXBlSWQgPSBOdW1iZXIodGhpcy5jb2x1bW4uRmllbGRUeXBlSWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmRldmljZVNpemUgPT09ICdzJykge1xyXG4gICAgICAgICAgICB0aGlzLl9pc1NtYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAodmFsdWUgJiYgIXZhbHVlLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2lnbmFsVmFsdWUuc2V0KHZhbHVlLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb2x1bW4uRmllbGRUeXBlSWQudG9TdHJpbmcoKSA9PT0gJzMxJykge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uRWxhcHNpc2VkKHZhbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVFbGxhcHNpcykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2hvd01vcmUgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIG9uU2V0TWF4V2lkdGgoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuX2ZpbGVQb3BvdmVyLm5hdGl2ZUVsZW1lbnQsICdtYXgtd2lkdGgnLCBgJHt0aGlzLmNvbnRhaW5lckRvbT8ub2Zmc2V0V2lkdGh9cHhgKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKGNvbHVtbikge1xyXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdE1vZGUgPyBmb3JtQ29udHJvbFRlbXBsYXRlIDogcmVuZGVyQ2VsbFRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxyXG59XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbFRlbXBsYXRlPlxyXG4gICAgQHN3aXRjaCAoY29sdW1uLkZpZWxkVHlwZUlkKSB7IEBjYXNlICg0Mikge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlckNlbGxJbWFnZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAY2FzZSAoMzMpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJDZWxsRmlsZUluZm9cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGNhc2UgKDMxKSB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGlcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGNhc2UgKDExKSB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyQ2VsbExpc3RUYXNhdmlyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBjYXNlICg1KSB7XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uRXh0cmE/LlNob3dDaGVja0luR3JpZCA/IHJlbmRlckNlbGxDaGVjYm94IDogcmVuZGVyQ2hlY2JveEltYWdlXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gQGRlZmF1bHQge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlckdlbmVyYWxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH0gfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckdlbmVyYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmVuZGVyR2VuZXJhbFwiIFtjbGFzcy5vbmx5SWNvbl09XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gPT09ICdJbWFnZSdcIiBbc3R5bGUud2lkdGhdPVwiXCIgICAgIFthdHRyLnRpdGxlXT1cInZhbHVlXCI+XHJcbiAgICAgICAgQGlmIChpY29uKSB7XHJcbiAgICAgICAgPGltZyBbYXR0ci5ydGxdPVwicnRsXCIgW3NyY109XCJpY29uXCIgLz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPCEtLSA8ZmQtdGV4dFxyXG4gICAgI2ZkVGV4dFxyXG4gICAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIlxyXG4gICAgW21heExpbmVzXT1cIjFcIlxyXG4gICAgW3RleHRdPVwidmFsdWVcIlxyXG4gICAgW2ZkLWlubGluZS1oZWxwXT1cInZhbHVlXCJcclxuICAgIFtkaXNhYmxlZF09XCIhZmRUZXh0Ll9oYXNNb3JlXCJcclxuICA+PC9mZC10ZXh0PiAtLT5cclxuXHJcbiAgICAgICAgPCEtLSA8YnN1LWJhcnNhLXRleHQtZWxsaXBzaXNcclxuICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLiRXaWR0aFwiXHJcbiAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZSdcIlxyXG4gIFt0ZXh0XT1cInZhbHVlXCJcclxuPjwvYnN1LWJhcnNhLXRleHQtZWxsaXBzaXM+IC0tPlxyXG4gICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJ1wiIHN0eWxlPVwid29yZC1icmVhazpicmVhay13b3JkXCI+XHJcbnt7IHZhbHVlIH19XHJcbjwvZGl2PiAtLT5cclxuICAgICAgICBAaWYgKGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJykgeyBAaWYoIWlzTW9iaWxlICYmICFmZFRleHRNb2RlKXtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIFtlbGxhcHNpc1RleHRdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZUVsbGFwc2lzXT1cImVkaXRNb2RlXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVsbGFwc2lzXT1cIiFkaXNhYmxlRWxsYXBzaXNcIiAgICAgICAgXHJcbiAgICAgICAgICAgIChlbGxhcHNpc2VkKT1cIm9uRWxhcHNpc2VkKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAge3sgdmFsdWUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBlbHNle1xyXG4gICAgICAgIDxmZC10ZXh0IFthdHRyLnRpdGxlXT1cInZhbHVlXCIgY2xhc3M9XCJjb2wtdmFsdWVcIiBbdGV4dF09XCJ2YWx1ZVwiIFttYXhMaW5lc109XCIyXCI+PC9mZC10ZXh0PlxyXG4gICAgICAgIH0gfVxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjZm9ybUNvbnRyb2xUZW1wbGF0ZT5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICAhY29udHJvbFVpIHx8IGNvbnRyb2xVaS5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5SZWFkT25seUZpZWxkJ1xyXG4gICAgICAgICAgICAgICAgPyByZW5kZXJDZWxsVGVtcGxhdGVcclxuICAgICAgICAgICAgICAgIDogbGF5b3V0Q29udHJvbFRlbXBsYXRlXHJcbiAgICAgICAgXCJcclxuICAgID48L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNsYXlvdXRDb250cm9sVGVtcGxhdGU+XHJcbiAgICBAaWYgKGNvbnRyb2xVaSkge1xyXG4gICAgPGJzdS1sYXlvdXQtY29udHJvbFxyXG4gICAgICAgIFtpbmxpbmVFZGl0XT1cInRydWVcIlxyXG4gICAgICAgIFtjYXB0aW9uXT1cImNvbHVtbi5DYXB0aW9uXCJcclxuICAgICAgICBbY2VsbEVkaXRdPVwiY2VsbEVkaXRcIlxyXG4gICAgICAgIFtjb25maWddPVwiY29udHJvbFVpXCJcclxuICAgICAgICBbZm9jdXNDb250cm9sXT1cImluZGV4ID09PSAwICYmIChpc0NoZWNrZWQgfHwgaXNOZXdJbmxpbmVNbylcIlxyXG4gICAgICAgIFtzaG93TGFiZWxdPVwiZm9ybUxheW91dFNob3dMYWJlbFwiXHJcbiAgICA+PC9ic3UtbGF5b3V0LWNvbnRyb2w+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbExpc3RUYXNhdmlyPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0gJiYgbW9bY29sdW1uLk5hbWVdLkltYWdlcykge1xyXG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAwLjE1cmVtXCI+XHJcbiAgICAgICAgQGZvciAocGljIG9mIG1vW2NvbHVtbi5OYW1lXS5JbWFnZXM7IHRyYWNrIHBpYykge1xyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICAgZnVsbHNjcmVlblxyXG4gICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcclxuICAgICAgICAgICAgW2ZpbGVzXT1cIm1vW2NvbHVtbi5OYW1lXS5JbWFnZXNcIlxyXG4gICAgICAgICAgICBbaXNJbWFnZUdhbGxlcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICBbc3JjXT1cInBpYy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0JhcnNhUGljdHVyZS5UaHVtYm5haWwnOm51bGw6Jyc6MzI6MzJcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVMaXN0S2hhdGk+XHJcbiAgICBAaWYgKG1vW2NvbHVtbi5OYW1lXSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImZpbGUtdmlld2VyLWF0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiBtb1tjb2x1bW4uTmFtZV0uRmlsZXM7IHRyYWNrIGZpbGUpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8YnN1LWZpbGUtdmlld2VyLXBvcG92ZXJcclxuICAgICAgICAgICAgI2ZpbGV2aWV3ZXJQb3BvdmVyXHJcbiAgICAgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyXHJcbiAgICAgICAgICAgIFtpbnRlcnNlY3Rpb25UaHJlc2hvbGRdPVwiMC4xXCJcclxuICAgICAgICAgICAgKHZpc2liaWxpdHlDaGFuZ2UpPVwiJGV2ZW50ID09PSAnVmlzaWJsZScgJiYgb25TZXRNYXhXaWR0aCgpXCJcclxuICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXHJcbiAgICAgICAgICAgIFthdHRhY2htZW50Vmlld1R5cGVdPVwiK2F0dGFjaG1lbnRWaWV3VHlwZVwiXHJcbiAgICAgICAgICAgIFtmaWxlc109XCJtb1tjb2x1bW4uTmFtZV0uRmlsZXNcIlxyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgW2NhbkRvd25sb2FkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZVJlbW92ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcclxuICAgICAgICAgICAgcHJldmVudERlZmF1bHRcclxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uXHJcbiAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLXBvcG92ZXI+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gPGZkLXRva2VuICpuZ0lmPVwiIWZpbGUuSXNEZWxldGVkXCIgW3JlYWRPbmx5XT1cInRydWVcIj57eyBmaWxlLkZpbGVOYW1lIH19PC9mZC10b2tlbj4gLS0+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyQ2VsbEZpbGVJbmZvPlxyXG4gICAgQGlmIChtb1tjb2x1bW4uTmFtZV0pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NpemVdPVwiY29sdW1uLkZpZWxkVHlwZUlkID09PSAnNDInIHx8IGNvbHVtbi5GaWVsZFR5cGVJZCA9PT0gNDIgPyAneHMnIDogZGV2aWNlU2l6ZSA9PT0gJ3MnID8gJ3MnIDogJ20nXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdIHwgcGljRmllbGRTcmM6ICdQaWN0dXJlRmlsZUluZm8nOm51bGw6Y29sdW1uLkZpZWxkRGVmSWRcIlxyXG4gICAgPjwvZmQtYXZhdGFyPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxDaGVjYm94PlxyXG4gICAgPGZkLWljb24gW2dseXBoXT1cIm1vW2NvbHVtbi5OYW1lXSA9PT0gdHJ1ZSA/ICdhY2NlcHQnIDogJ2xlc3MnXCI+PC9mZC1pY29uPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNoZWNib3hJbWFnZT5cclxuICAgIEBpZiAoY29sdW1uLkV4dHJhPy5UcnVlSW1hZ2UgPT09ICcnKSB7XHJcbiAgICB7eyB2YWx1ZSB9fVxyXG4gICAgfSBAaWYgKGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlICE9PSAnJykge1xyXG4gICAgPGltZyBbc3JjXT1cIm1vW2NvbHVtbi5OYW1lXSA/IGNvbHVtbi5FeHRyYT8uVHJ1ZUltYWdlIDogY29sdW1uLkV4dHJhPy5GYWxzZUltYWdlXCIgYWxpbmc9XCJtaWRkbGVcIiAvPlxyXG4gICAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3JlbmRlckNlbGxJbWFnZT5cclxuICAgIEBpZiAobW9bY29sdW1uLk5hbWVdICYmIG1vW2NvbHVtbi5OYW1lXVsnVXJsJ10pIHtcclxuICAgIDxmZC1hdmF0YXJcclxuICAgICAgICBbc2l6ZV09XCJjb2x1bW4uRmllbGRUeXBlSWQgPT09ICc0MicgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA0MiA/ICd4cycgOiBkZXZpY2VTaXplID09PSAncycgPyAncycgOiAnbSdcIlxyXG4gICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcclxuICAgICAgICBbaW1hZ2VdPVwibW9bY29sdW1uLk5hbWVdWydVcmwnXVwiXHJcbiAgICA+PC9mZC1hdmF0YXI+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -222,11 +222,11 @@ export class LayoutControlComponent extends LayoutItemBaseComponent {
222
222
  }
223
223
  }
224
224
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutControlComponent, deps: [{ token: i1.FormPanelService }, { token: i0.ElementRef }, { token: i2.ContentDensityService }, { token: i3.DomSanitizer }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.BbbTranslatePipe }, { token: i1.LayoutService, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
225
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", flex: "flex", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, outputs: { events: "events" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "class.readonlyiswraped": "this.readonlyiswraped", "class.labelnotinrow": "this._labelNotInRow", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.isCheckbox": "this.isCheckbox", "attr.controlIsReadonly": "this.controlIsReadonly", "attr.isButton": "this.isButton", "attr.issinglepicture": "this.isSinglePicture", "attr.minWidth": "this.attrMinWidth", "attr.ismobile": "this.isMobile", "attr.controlId": "this.attrControlId", "attr.caption": "this.attrCaption" } }, providers: [LayoutService], viewQueries: [{ propertyName: "tempLabelRef", first: true, predicate: ["tempLabelRef"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!hide) { @if (labelVisible) {\r\n<bsu-ly-label\r\n [attr.labelWidth]=\"labelWidth\"\r\n [attrRtl]\r\n #tempLabelRef\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [config]=\"config\"\r\n [caption]=\"labelCaption\"\r\n [translateCaption]=\"translateCaption\"\r\n [originalWidth]=\"labelWidth\"\r\n [style.min-width]=\"\r\n isCheckbox\r\n ? checkboxWidth\r\n : (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && controlIsReadonly)\r\n ? 'fit-content'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [style.width]=\"\r\n (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && (isCheckbox || controlIsReadonly))\r\n ? 'auto'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [isMandatory]=\"isMandatory\"\r\n [fieldIcon]=\"fieldIcon\"\r\n [attr.autosize]=\"config.CaptionSetting?.AlignMode ? true:null\"\r\n [helpDescription]=\"helpDescription\"\r\n [originalXtype]=\"originalXtype\"\r\n [textVisible]=\"textVisible\"\r\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\r\n></bsu-ly-label>\r\n}\r\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\r\n<bnrc-field-ui\r\n [attr.xtype]=\"config.FieldUi.originalXtype\"\r\n [attr.fieldWidth]=\"layoutControlWidth\"\r\n [attr.isCheckbox]=\"isCheckbox\"\r\n [attr.isbutton]=\"isButton\"\r\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [customField]=\"config.FieldUi\"\r\n [layoutInfo]=\"config\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [formHeight]=\"(formHeight$ | async)!!\"\r\n [focusControl]=\"focusControl\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n [style.height]=\"isUlv ? '100%' : 'auto'\"\r\n [attr.isulv]=\"isUlv\"\r\n></bnrc-field-ui>\r\n}\r\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bsu-ly-label[autosize=true]{margin:inherit}:host[ismobile=true] bsu-ly-label{margin:inherit}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true]){height:auto!important}}\n"], dependencies: [{ kind: "component", type: i1.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "componentUi", "layoutInfo", "inlineEdit", "focusControl", "formHeight"] }, { kind: "directive", type: i1.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "component", type: i4.LyLabelComponent, selector: "bsu-ly-label", inputs: ["originalWidth", "minWidth", "translateCaption", "caption", "captionIcon", "helpDescription", "isColumn", "isMandatory", "fieldIcon", "originalXtype", "textVisible"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
225
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", cellEdit: "cellEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", flex: "flex", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, outputs: { events: "events" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "class.readonlyiswraped": "this.readonlyiswraped", "class.labelnotinrow": "this._labelNotInRow", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.isCheckbox": "this.isCheckbox", "attr.controlIsReadonly": "this.controlIsReadonly", "attr.isButton": "this.isButton", "attr.issinglepicture": "this.isSinglePicture", "attr.minWidth": "this.attrMinWidth", "attr.ismobile": "this.isMobile", "attr.controlId": "this.attrControlId", "attr.caption": "this.attrCaption" } }, providers: [LayoutService], viewQueries: [{ propertyName: "tempLabelRef", first: true, predicate: ["tempLabelRef"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!hide) { @if (labelVisible) {\r\n<bsu-ly-label\r\n [attr.labelWidth]=\"labelWidth\"\r\n [attrRtl]\r\n #tempLabelRef\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [config]=\"config\"\r\n [caption]=\"labelCaption\"\r\n [translateCaption]=\"translateCaption\"\r\n [originalWidth]=\"labelWidth\"\r\n [style.min-width]=\"\r\n isCheckbox\r\n ? checkboxWidth\r\n : (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && controlIsReadonly)\r\n ? 'fit-content'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [style.width]=\"\r\n (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && (isCheckbox || controlIsReadonly))\r\n ? 'auto'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [isMandatory]=\"isMandatory\"\r\n [fieldIcon]=\"fieldIcon\"\r\n [attr.autosize]=\"config.CaptionSetting?.AlignMode ? true:null\"\r\n [helpDescription]=\"helpDescription\"\r\n [originalXtype]=\"originalXtype\"\r\n [textVisible]=\"textVisible\"\r\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\r\n></bsu-ly-label>\r\n}\r\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\r\n<bnrc-field-ui\r\n [attr.xtype]=\"config.FieldUi.originalXtype\"\r\n [attr.fieldWidth]=\"layoutControlWidth\"\r\n [attr.isCheckbox]=\"isCheckbox\"\r\n [attr.isbutton]=\"isButton\"\r\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [customField]=\"config.FieldUi\"\r\n [layoutInfo]=\"config\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [cellEdit]=\"cellEdit\"\r\n [formHeight]=\"(formHeight$ | async)!!\"\r\n [focusControl]=\"focusControl\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n [style.height]=\"isUlv ? '100%' : 'auto'\"\r\n [attr.isulv]=\"isUlv\"\r\n></bnrc-field-ui>\r\n}\r\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bsu-ly-label[autosize=true]{margin:inherit}:host[ismobile=true] bsu-ly-label{margin:inherit}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true]){height:auto!important}}\n"], dependencies: [{ kind: "component", type: i1.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "componentUi", "layoutInfo", "inlineEdit", "focusControl", "cellEdit", "formHeight"] }, { kind: "directive", type: i1.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "component", type: i4.LyLabelComponent, selector: "bsu-ly-label", inputs: ["originalWidth", "minWidth", "translateCaption", "caption", "captionIcon", "helpDescription", "isColumn", "isMandatory", "fieldIcon", "originalXtype", "textVisible"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
226
226
  }
227
227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutControlComponent, decorators: [{
228
228
  type: Component,
229
- args: [{ selector: 'bsu-layout-control', providers: [LayoutService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (!hide) { @if (labelVisible) {\r\n<bsu-ly-label\r\n [attr.labelWidth]=\"labelWidth\"\r\n [attrRtl]\r\n #tempLabelRef\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [config]=\"config\"\r\n [caption]=\"labelCaption\"\r\n [translateCaption]=\"translateCaption\"\r\n [originalWidth]=\"labelWidth\"\r\n [style.min-width]=\"\r\n isCheckbox\r\n ? checkboxWidth\r\n : (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && controlIsReadonly)\r\n ? 'fit-content'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [style.width]=\"\r\n (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && (isCheckbox || controlIsReadonly))\r\n ? 'auto'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [isMandatory]=\"isMandatory\"\r\n [fieldIcon]=\"fieldIcon\"\r\n [attr.autosize]=\"config.CaptionSetting?.AlignMode ? true:null\"\r\n [helpDescription]=\"helpDescription\"\r\n [originalXtype]=\"originalXtype\"\r\n [textVisible]=\"textVisible\"\r\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\r\n></bsu-ly-label>\r\n}\r\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\r\n<bnrc-field-ui\r\n [attr.xtype]=\"config.FieldUi.originalXtype\"\r\n [attr.fieldWidth]=\"layoutControlWidth\"\r\n [attr.isCheckbox]=\"isCheckbox\"\r\n [attr.isbutton]=\"isButton\"\r\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [customField]=\"config.FieldUi\"\r\n [layoutInfo]=\"config\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [formHeight]=\"(formHeight$ | async)!!\"\r\n [focusControl]=\"focusControl\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n [style.height]=\"isUlv ? '100%' : 'auto'\"\r\n [attr.isulv]=\"isUlv\"\r\n></bnrc-field-ui>\r\n}\r\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bsu-ly-label[autosize=true]{margin:inherit}:host[ismobile=true] bsu-ly-label{margin:inherit}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true]){height:auto!important}}\n"] }]
229
+ args: [{ selector: 'bsu-layout-control', providers: [LayoutService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (!hide) { @if (labelVisible) {\r\n<bsu-ly-label\r\n [attr.labelWidth]=\"labelWidth\"\r\n [attrRtl]\r\n #tempLabelRef\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [config]=\"config\"\r\n [caption]=\"labelCaption\"\r\n [translateCaption]=\"translateCaption\"\r\n [originalWidth]=\"labelWidth\"\r\n [style.min-width]=\"\r\n isCheckbox\r\n ? checkboxWidth\r\n : (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && controlIsReadonly)\r\n ? 'fit-content'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [style.width]=\"\r\n (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && (isCheckbox || controlIsReadonly))\r\n ? 'auto'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [isMandatory]=\"isMandatory\"\r\n [fieldIcon]=\"fieldIcon\"\r\n [attr.autosize]=\"config.CaptionSetting?.AlignMode ? true:null\"\r\n [helpDescription]=\"helpDescription\"\r\n [originalXtype]=\"originalXtype\"\r\n [textVisible]=\"textVisible\"\r\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\r\n></bsu-ly-label>\r\n}\r\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\r\n<bnrc-field-ui\r\n [attr.xtype]=\"config.FieldUi.originalXtype\"\r\n [attr.fieldWidth]=\"layoutControlWidth\"\r\n [attr.isCheckbox]=\"isCheckbox\"\r\n [attr.isbutton]=\"isButton\"\r\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [customField]=\"config.FieldUi\"\r\n [layoutInfo]=\"config\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [cellEdit]=\"cellEdit\"\r\n [formHeight]=\"(formHeight$ | async)!!\"\r\n [focusControl]=\"focusControl\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n [style.height]=\"isUlv ? '100%' : 'auto'\"\r\n [attr.isulv]=\"isUlv\"\r\n></bnrc-field-ui>\r\n}\r\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bsu-ly-label[autosize=true]{margin:inherit}:host[ismobile=true] bsu-ly-label{margin:inherit}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width: 599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true]){height:auto!important}}\n"] }]
230
230
  }], ctorParameters: () => [{ type: i1.FormPanelService }, { type: i0.ElementRef }, { type: i2.ContentDensityService }, { type: i3.DomSanitizer }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.BbbTranslatePipe }, { type: i1.LayoutService, decorators: [{
231
231
  type: SkipSelf
232
232
  }] }], propDecorators: { tempLabelRef: [{
@@ -294,6 +294,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
294
294
  args: ['attr.caption']
295
295
  }], inlineEdit: [{
296
296
  type: Input
297
+ }], cellEdit: [{
298
+ type: Input
297
299
  }], caption: [{
298
300
  type: Input
299
301
  }], focusControl: [{
@@ -315,4 +317,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
315
317
  }], SetVisible: [{
316
318
  type: Input
317
319
  }] } });
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBTXZCLFFBQVEsRUFDUixNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFDSCxRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFFYixpQkFBaUIsRUFFakIsV0FBVyxFQUNYLGFBQWEsRUFDaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVU5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0lBc0QvRCxZQUNjLGdCQUFrQyxFQUNyQyxFQUFjLEVBQ3JCLHNCQUE2QyxFQUNuQyxZQUEwQixFQUMxQixJQUF1QixFQUN2QixPQUFlLEVBQ2YsVUFBcUIsRUFDckIsYUFBK0IsRUFDbkIsb0JBQW1DO1FBRXpELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQVZwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3JDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFWCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDbkIs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O3VCQUFDLGNBQWM7Z0JBQ0ssVUFBVTtzQkFBekMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ1MsaUJBQWlCO3NCQUF2RCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDUCxRQUFRO3NCQUFyQyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ1MsZUFBZTtzQkFBbkQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBQ0wsWUFBWTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQUNFLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFDRyxhQUFhO3NCQUEzQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDQSxXQUFXO3NCQUF2QyxXQUFXO3VCQUFDLGNBQWM7Z0JBQ2xCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU07Z0JBeU5FLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbnB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBPbkluaXQsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgU2tpcFNlbGYsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBFdmVudEVtaXR0ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIENvbnRlbnREZW5zaXR5U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgQmFyc2FBcGksXHJcbiAgICBMYXlvdXRJdGVtQmFzZUNvbXBvbmVudCxcclxuICAgIExheW91dFNlcnZpY2UsXHJcbiAgICBGb3JtUGFuZWxTZXJ2aWNlLFxyXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXHJcbiAgICBCYmJUcmFuc2xhdGVQaXBlLFxyXG4gICAgbWVhc3VyZVRleHQsXHJcbiAgICBnZXRMYWJlbFdpZHRoXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS1sYXlvdXQtY29udHJvbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW0xheW91dFNlcnZpY2VdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGF5b3V0Q29udHJvbENvbXBvbmVudCBleHRlbmRzIExheW91dEl0ZW1CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBMYWJlbFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxyXG4gICAgdGVtcExhYmVsUmVmOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubGF5b3V0LWNvbnRyb2wnKSBsYXlvdXRDb250cm9sQ2xhc3MgPSB0cnVlO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb3ctZGlyZWN0aW9uJykgaXNSb3dEaXJlY3Rpb247XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJvdy1yZXZlcnNlLWRpcmVjdGlvbicpIGlzUm93UmV2ZXJzZURpcmVjdGlvbjtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29sdW1uLWRpcmVjdGlvbicpIGlzQ29sdW1uRGlyZWN0aW9uO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb2x1bW4tcmV2ZXJzZS1kaXJlY3Rpb24nKSBpc0NvbHVtblJldmVyc2VEaXJlY3Rpb247XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbnRhaW5lci1maWVsZCcpIGlzQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MucmVhZG9ubHlpc3dyYXBlZCcpIHJlYWRvbmx5aXN3cmFwZWQgPSBmYWxzZTtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubGFiZWxub3RpbnJvdycpIF9sYWJlbE5vdEluUm93ID0gZmFsc2U7XHJcbiAgICAvLyBASG9zdEJpbmRpbmcoJ3N0eWxlLnZpc2liaWxpdHknKSB2aXNpYmlsaXR5OiBzdHJpbmc7XHJcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC13aWR0aCcpIG1heFdpZHRoO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgnKSBtaW5XaWR0aDtcclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWluLWhlaWdodCcpIG1pbkhlaWdodCA9ICcyLjI1cmVtJztcclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JykgaGVpZ2h0O1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzQ2hlY2tib3gnKSBpc0NoZWNrYm94O1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmNvbnRyb2xJc1JlYWRvbmx5JykgY29udHJvbElzUmVhZG9ubHkgPSBmYWxzZTtcclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc0J1dHRvbicpIGlzQnV0dG9uO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzc2luZ2xlcGljdHVyZScpIGlzU2luZ2xlUGljdHVyZTtcclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5taW5XaWR0aCcpIGF0dHJNaW5XaWR0aDtcclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pc21vYmlsZScpIGlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5jb250cm9sSWQnKSBhdHRyQ29udHJvbElkO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmNhcHRpb24nKSBhdHRyQ2FwdGlvbjtcclxuICAgIEBJbnB1dCgpIGlubGluZUVkaXQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjYXB0aW9uOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBmb2N1c0NvbnRyb2w6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzaG93TGFiZWw6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBtYXhMYWJlbFdpZHRoOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBoYXNIb3Jpem9udGFsVGV4dDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcclxuICAgIEBJbnB1dCgpIGZsZXg6IHN0cmluZztcclxuICAgIEBPdXRwdXQoKSBldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGl0bGU6IHN0cmluZzsgZGF0YT86IGFueSB9PigpO1xyXG5cclxuICAgIGhpZGUgPSB0cnVlO1xyXG4gICAgbGF5b3V0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgICB3cmFwQ29udGVudDogYm9vbGVhbjtcclxuICAgIGxhYmVsV2lkdGg6IG51bWJlcjtcclxuICAgIGxhYmVsQ2FwdGlvbjogc3RyaW5nIHwgU2FmZUh0bWw7XHJcbiAgICBsYWJlbFZpc2libGU/OiBib29sZWFuO1xyXG4gICAgbGF5b3V0U2V0U2l6ZTogYm9vbGVhbjtcclxuICAgIHJ0bCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBpc1VsdjogYm9vbGVhbjtcclxuICAgIGlzTWFuZGF0b3J5OiBib29sZWFuO1xyXG4gICAgZmllbGRJY29uOiBzdHJpbmc7XHJcbiAgICBvcmlnaW5hbFh0eXBlOiBzdHJpbmc7XHJcbiAgICB0cmFuc2xhdGVDYXB0aW9uOiBzdHJpbmc7XHJcbiAgICB0ZXh0VmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICAgIGVtcHR5VGV4dCA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKCcmIzgyMDM7Jyk7XHJcbiAgICBsYXlvdXRDb250cm9sV2lkdGg6IG51bWJlcjtcclxuICAgIGZvcm1IZWlnaHQkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICBjaGVja2JveFdpZHRoID0gJ2ZpdC1jb250ZW50JztcclxuICAgIGhlbHBEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIGZvcm1QYW5lbFNlcnZpY2U6IEZvcm1QYW5lbFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByb3RlY3RlZCBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcm90ZWN0ZWQgX2JiYlRyYW5zbGF0ZTogQmJiVHJhbnNsYXRlUGlwZSxcclxuICAgICAgICBAU2tpcFNlbGYoKSBwcm90ZWN0ZWQgX3BhcmVudExheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGZvcm1QYW5lbFNlcnZpY2UsIF9jZHIpO1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnREZW5zaXR5ID09PSAnY29tcGFjdCcpIHtcclxuICAgICAgICAgICAgdGhpcy5taW5IZWlnaHQgPSAnMnJlbSc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gICAgICAgIGNvbnN0IHsgZmxleCwgbWF4TGFiZWxXaWR0aCB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAoZmxleCkge1xyXG4gICAgICAgICAgICB0aGlzLl9zZXRGbGV4KGZsZXguY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1heExhYmVsV2lkdGggJiYgIW1heExhYmVsV2lkdGguZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2V0TGFiZWxXaWR0aChtYXhMYWJlbFdpZHRoLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmZvcm1IZWlnaHQkID0gdGhpcy5mb3JtUGFuZWxTZXJ2aWNlLmZvcm1IZWlnaHQkO1xyXG4gICAgICAgIHRoaXMuX3NldEZsZXgodGhpcy5mbGV4KTtcclxuXHJcbiAgICAgICAgdGhpcy5sYXlvdXRDb250cm9sV2lkdGggPSAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGllbnRXaWR0aDtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcclxuICAgICAgICBjb25zdCBtaW5IZWlnaHRBdXRvID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgICAgIGNvbmZpZyxcclxuICAgICAgICAgICAgJ0ZpZWxkVWkuU2V0dGluZy5DdXN0b21VaS5QYXJhbWV0ZXJzLk1pbkhlaWdodEF1dG8nLFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5saW5lRWRpdCB8fCBtaW5IZWlnaHRBdXRvIHx8IHRoaXMuaXNNb2JpbGUpIHtcclxuICAgICAgICAgICAgdGhpcy5taW5IZWlnaHQgPSAnYXV0byc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlID09PSAnVWkuVWx2TWFpblVpJykge1xyXG4gICAgICAgICAgICB0aGlzLmlzVWx2ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2lzVWx2Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXR0ckNhcHRpb24gPSBjb25maWcuQ2FwdGlvbi5yZXBsYWNlKCc6JywgJycpO1xyXG4gICAgICAgIHRoaXMuYXR0ckNvbnRyb2xJZCA9IGNvbmZpZy5Db250cm9sSWQ7XHJcbiAgICAgICAgdGhpcy5pc0J1dHRvbiA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5CdXR0b24nO1xyXG4gICAgICAgIHRoaXMuX3JlZnJlc2hMYWJlbCgpO1xyXG5cclxuICAgICAgICB0aGlzLmlzUm93RGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ1JpZ2h0JyB8fCBjb25maWcuVGV4dExvY2F0aW9uID09PSAnRGVmYXVsdCc7XHJcbiAgICAgICAgdGhpcy5pc1Jvd1JldmVyc2VEaXJlY3Rpb24gPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnTGVmdCc7XHJcbiAgICAgICAgdGhpcy5pc0NvbHVtbkRpcmVjdGlvbiA9IGNvbmZpZy5UZXh0TG9jYXRpb24gPT09ICdUb3AnIHx8IHRoaXMuaXNTZWFyY2hQYW5lbDtcclxuICAgICAgICB0aGlzLmlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvbiA9IGNvbmZpZy5UZXh0TG9jYXRpb24gPT09ICdCb3R0b20nO1xyXG4gICAgICAgIHRoaXMuX2xhYmVsTm90SW5Sb3cgPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnVG9wJyB8fCBjb25maWcuVGV4dExvY2F0aW9uID09PSAnQm90dG9tJztcclxuXHJcbiAgICAgICAgY29uZmlnLkZpZWxkVWkuTGF5b3V0Q29udHJvbCA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5oZWxwRGVzY3JpcHRpb24gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShjb25maWcuRmllbGRVaSwgJ1NldHRpbmcuSGVscERlc2NyaXB0aW9uJywgJycpO1xyXG5cclxuICAgICAgICB0aGlzLmZpZWxkSWNvbiA9IGNvbmZpZy5GaWVsZFVpLlNldHRpbmcuRmllbGRJY29uO1xyXG4gICAgICAgIHRoaXMuY29udHJvbElzUmVhZG9ubHkgPSBjb25maWcuRmllbGRVaS5TZXR0aW5nLkNvbnRyb2xJc1JlYWRPbmx5O1xyXG4gICAgICAgIHRoaXMuY29udHJvbElzUmVhZG9ubHkgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xJc1JlYWRvbmx5IHx8XHJcbiAgICAgICAgICAgIGNvbmZpZy5GaWVsZFVpLlNldHRpbmcuSW5uZXJDdHJscj8uSXNSZWFkT25seSB8fFxyXG4gICAgICAgICAgICBjb25maWcuRmllbGRVaS5TZXR0aW5nLklubmVyQ3RybHI/Lnh0eXBlID09PSAnVWwuUmVhZE9ubHlGaWVsZEN0cmxyJztcclxuICAgICAgICB0aGlzLm9yaWdpbmFsWHR5cGUgPSBjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlO1xyXG4gICAgICAgIHRoaXMudGV4dFZpc2libGUgPSBjb25maWcuVGV4dFZpc2libGU7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbElzUmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgY29uc3QgeCA9IG1lYXN1cmVUZXh0KGNvbmZpZy5GaWVsZFVpLnZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKHggPiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggJiYgdGhpcy5pc01vYmlsZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkb25seWlzd3JhcGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLlNlYXJjaENvbW1hbmRJbmZvVWknKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxDYXB0aW9uID0gJyYjODIwMzsnO1xyXG4gICAgICAgICAgICB0aGlzLmxhYmVsVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dFZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnByZXBhcmVNaW5BbmRNYXhTaXplKCk7XHJcbiAgICAgICAgdGhpcy5fc2V0TGFiZWxXaWR0aCh0aGlzLm1heExhYmVsV2lkdGgpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcmVmcmVzaExhYmVsKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xyXG4gICAgICAgIGNvbnN0IGxhYmVsQ2FwdGlvbiA9IGNvbmZpZy5DYXB0aW9uO1xyXG4gICAgICAgIC8vIGlmIChjb25maWcuRmllbGRVaS5TZXR0aW5nPy5Jc01hbmRhdG9yeSkge1xyXG4gICAgICAgIC8vICAgICBpZiAobGFiZWxDYXB0aW9uLmluZGV4T2YoJyonKSA8IDApIHtcclxuICAgICAgICAvLyAgICAgICAgIGxhYmVsQ2FwdGlvbiA9IGxhYmVsQ2FwdGlvbiArICcgKic7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICBsYWJlbENhcHRpb24gPSBsYWJlbENhcHRpb24ucmVwbGFjZSgnKicsICcnKTtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIHRoaXMuaXNDaGVja2JveCA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5DaGVja0JveCc7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNDaGVja2JveCkge1xyXG4gICAgICAgICAgICBjb25zdCB4ID0gbWVhc3VyZVRleHQobGFiZWxDYXB0aW9uKTtcclxuICAgICAgICAgICAgaWYgKHggPCB0aGlzLm1heExhYmVsV2lkdGggJiYgIXRoaXMuaXNNb2JpbGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hXaWR0aCA9IGAke3RoaXMubWF4TGFiZWxXaWR0aH1weGA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaXNTaW5nbGVQaWN0dXJlID0gY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLlNpbmdsZVBpY3R1cmUnO1xyXG4gICAgICAgIGNvbnN0IGNvbG9uTGFiZWwgPSB0aGlzLmZvcm1QYW5lbFNlcnZpY2UuQ29sb25JbkxhYmVsID8gJzonIDogJyc7XHJcbiAgICAgICAgbGV0IHRyYW5zbGF0ZUNhcHRpb24gPSBgJHt0aGlzLl9iYmJUcmFuc2xhdGUudHJhbnNmb3JtKGxhYmVsQ2FwdGlvbil9JHtcclxuICAgICAgICAgICAgdGhpcy5pc1NlYXJjaFBhbmVsIHx8IGxhYmVsQ2FwdGlvbiA9PT0gJyZ6d25qOycgPyAnJyA6IGNvbG9uTGFiZWxcclxuICAgICAgICB9YDtcclxuICAgICAgICB0aGlzLmlzTWFuZGF0b3J5ID0gY29uZmlnLkZpZWxkVWkuU2V0dGluZz8uSXNNYW5kYXRvcnk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNNYW5kYXRvcnkpIHtcclxuICAgICAgICAgICAgdHJhbnNsYXRlQ2FwdGlvbiA9IHRyYW5zbGF0ZUNhcHRpb24ucmVwbGFjZSgnKicsICcnKTtcclxuICAgICAgICAgICAgdHJhbnNsYXRlQ2FwdGlvbiArPSBgPHN0cm9uZyBjbGFzcz1cImZpZWxkLW1hbmRhdG9yeVwiPio8L3N0cm9uZz5gO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZUNhcHRpb24gPSB0cmFuc2xhdGVDYXB0aW9uO1xyXG4gICAgICAgIHRoaXMubGFiZWxDYXB0aW9uID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodHJhbnNsYXRlQ2FwdGlvbik7XHJcbiAgICAgICAgdGhpcy5sYWJlbFZpc2libGUgPSBjb25maWcuVGV4dFZpc2libGUgJiYgdGhpcy5zaG93TGFiZWwgIT09IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xXaWR0aCA9IGdldExhYmVsV2lkdGgodGhpcy5jb25maWcpO1xyXG4gICAgICAgIGlmIChjb250cm9sV2lkdGggJiYgY29udHJvbFdpZHRoID4gdGhpcy5tYXhMYWJlbFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudExheW91dFNlcnZpY2Uuc2V0TWF4V2lkdGgoY29udHJvbFdpZHRoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fc2V0SGlkZShjb25maWcuRmllbGRVaS5TZXR0aW5nLklzVmlzaWJsZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgX3NldExhYmVsV2lkdGgobWF4TGFiZWxXaWR0aDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnRlbXBMYWJlbFJlZikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHZhbCA9XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLkNhcHRpb25TZXR0aW5nPy5BbGlnbk1vZGUgPT09ICdBdXRvU2l6ZScgfHxcclxuICAgICAgICAgICAgKHRoaXMuaXNNb2JpbGUgJiYgKHRoaXMuaXNDaGVja2JveCB8fCB0aGlzLmNvbnRyb2xJc1JlYWRvbmx5KSlcclxuICAgICAgICAgICAgICAgID8gJ2F1dG8nXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuaXNDb2x1bW5EaXJlY3Rpb24gfHwgdGhpcy5pc0NvbHVtblJldmVyc2VEaXJlY3Rpb25cclxuICAgICAgICAgICAgICAgID8gJzEwMCUnXHJcbiAgICAgICAgICAgICAgICA6IG1heExhYmVsV2lkdGggKyAncHgnO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLnRlbXBMYWJlbFJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB2YWwpO1xyXG5cclxuICAgICAgICBjb25zdCBtaW5XaWR0aCA9IHRoaXMuaXNDaGVja2JveFxyXG4gICAgICAgICAgICA/IHRoaXMuY2hlY2tib3hXaWR0aFxyXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlnLkNhcHRpb25TZXR0aW5nPy5BbGlnbk1vZGUgPT09ICdBdXRvU2l6ZScgfHwgKHRoaXMuaXNNb2JpbGUgJiYgdGhpcy5jb250cm9sSXNSZWFkb25seSlcclxuICAgICAgICAgICAgPyAnZml0LWNvbnRlbnQnXHJcbiAgICAgICAgICAgIDogdGhpcy5pc0NvbHVtbkRpcmVjdGlvbiB8fCB0aGlzLmlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvblxyXG4gICAgICAgICAgICA/ICcxMDAlJ1xyXG4gICAgICAgICAgICA6IG1heExhYmVsV2lkdGggKyAncHgnO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLnRlbXBMYWJlbFJlZi5uYXRpdmVFbGVtZW50LCAnbWluLXdpZHRoJywgbWluV2lkdGgpO1xyXG4gICAgfVxyXG4gICAgX3Jlc2l6ZVVsdkJ5RGV2aWNlKGRldmljZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1Vsdikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkZXZpY2VIZWlnaHQgPSAnRGVza3RvcEhlaWdodCc7XHJcbiAgICAgICAgc3dpdGNoIChkZXZpY2UpIHtcclxuICAgICAgICAgICAgY2FzZSAncyc6XHJcbiAgICAgICAgICAgICAgICBkZXZpY2VIZWlnaHQgPSAnTW9iaWxlSGVpZ2h0JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdtJzpcclxuICAgICAgICAgICAgICAgIGRldmljZUhlaWdodCA9ICdUYWJsZXRIZWlnaHQnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAnRmllbGRVaS5TZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycy4nICsgZGV2aWNlSGVpZ2h0LFxyXG4gICAgICAgICAgICAnYXV0bydcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICBwcmVwYXJlTWluQW5kTWF4U2l6ZSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcclxuICAgICAgICBjb25zdCBsYXlvdXRJbmZvID0gY29uZmlnO1xyXG4gICAgICAgIGNvbnN0IGlzQnV0dG9uID0gdGhpcy5pc0J1dHRvbjtcclxuICAgICAgICBjb25zdCBpc1NpbmdsZVBpY3R1cmUgPSB0aGlzLmlzU2luZ2xlUGljdHVyZTtcclxuICAgICAgICBjb25zdCBpc0NoZWNrYm94ID0gdGhpcy5pc0NoZWNrYm94O1xyXG4gICAgICAgIGlmICghdGhpcy5pbmxpbmVFZGl0ICYmIGxheW91dEluZm8gJiYgKGlzQnV0dG9uIHx8IGlzQ2hlY2tib3ggfHwgaXNTaW5nbGVQaWN0dXJlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmF0dHJNaW5XaWR0aCA9IGNvbmZpZy5Cb3VuZHMud2lkdGg7XHJcbiAgICAgICAgICAgIGxldCBleHRyYVZhbCA9IDA7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICgoaXNCdXR0b24gfHwgaXNDaGVja2JveCkgJiYgbGF5b3V0SW5mby5GaWVsZFVpLlNldHRpbmc/LkZpZWxkSWNvbikgfHxcclxuICAgICAgICAgICAgICAgIGxheW91dEluZm8uRmllbGRVaS5TZXR0aW5nLkpzb25FeHRyYVByb3A/LkdseXBoXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgZXh0cmFWYWwgPSAxODtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB7IE1heFNpemUsIE1pblNpemUgfSA9IGxheW91dEluZm87XHJcbiAgICAgICAgICAgIGlmIChNYXhTaXplPy53aWR0aCA+IDAgJiYgIXRoaXMuaXNDaGVja2JveCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9IE1heFNpemUud2lkdGggKyBleHRyYVZhbCArICdweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKE1pblNpemU/LndpZHRoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5taW5XaWR0aCA9IE1pblNpemUud2lkdGggKyBleHRyYVZhbCArICdweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaXNTZWFyY2hQYW5lbCkge1xyXG4gICAgICAgICAgICB0aGlzLmF0dHJNaW5XaWR0aCA9IHRoaXMubWF4TGFiZWxXaWR0aCArIDIwMDtcclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1NlYXJjUGFuZWxJblNpZGVDb250ZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1heFdpZHRoID0gJzMyMHB4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xyXG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgUmVmcmVzaExhYmVsID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlZnJlc2hMYWJlbCgpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoeyB0aXRsZTogJ3JlZnJlc2hMYWJlbCcsIGRhdGE6IHRoaXMuY29uZmlnIH0pO1xyXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH07XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgU2V0VmlzaWJsZSA9ICh2aXNpYmxlLCByZWZyZXNoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLkZpZWxkVWkuU2V0dGluZy5Jc1Zpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgICAgICAgICB0aGlzLl9zZXRIaWRlKCF2aXNpYmxlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5jb25maWcuRmllbGRVaS5TZXR0aW5nLiRCUnVsZUhpZGUgPSAhdmlzaWJsZTtcclxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICBwcml2YXRlIF9zZXRIaWRlKGhpZGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBoaWRlID0gdGhpcy5jb25maWcuRmllbGRVaS5TZXR0aW5nLkhpZGVTZWFyY2hDb21tYW5kSW5mb1VpID09PSB0cnVlID8gdHJ1ZSA6IGhpZGU7IC8vIGhpZGUgZGVmYXVsdCBidXR0b25zIG9mIHNlYXJjaCBwYW5lbFxyXG4gICAgICAgIHRoaXMuaGlkZSA9IGhpZGU7XHJcbiAgICAgICAgaWYgKGhpZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2hpZGUtZm9ybS1pdGVtJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2hpZGUtZm9ybS1pdGVtJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc2V0RmxleChmbGV4OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAodHlwZW9mIGZsZXggIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vYmlsZSB8fCB0aGlzLmNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgIT09ICdVaS5UZXh0QXJlYScpXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZmxleCcsIGZsZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCJAaWYgKCFoaWRlKSB7IEBpZiAobGFiZWxWaXNpYmxlKSB7XHJcbjxic3UtbHktbGFiZWxcclxuICAgIFthdHRyLmxhYmVsV2lkdGhdPVwibGFiZWxXaWR0aFwiXHJcbiAgICBbYXR0clJ0bF1cclxuICAgICN0ZW1wTGFiZWxSZWZcclxuICAgIFtjbGFzcy5uby1wYWRkaW5nXT1cImNvbmZpZy5QYWRkaW5nWzBdID09PSAwXCJcclxuICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgIFtjYXB0aW9uXT1cImxhYmVsQ2FwdGlvblwiXHJcbiAgICBbdHJhbnNsYXRlQ2FwdGlvbl09XCJ0cmFuc2xhdGVDYXB0aW9uXCJcclxuICAgIFtvcmlnaW5hbFdpZHRoXT1cImxhYmVsV2lkdGhcIlxyXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJcclxuICAgICAgICBpc0NoZWNrYm94XHJcbiAgICAgICAgICAgID8gY2hlY2tib3hXaWR0aFxyXG4gICAgICAgICAgICA6IChjb25maWcuQ2FwdGlvblNldHRpbmc/LkFsaWduTW9kZSA9PT0gJ0F1dG9TaXplJyAmJiAhaXNNb2JpbGUpIHx8IChpc01vYmlsZSAmJiBjb250cm9sSXNSZWFkb25seSlcclxuICAgICAgICAgICAgPyAnZml0LWNvbnRlbnQnXHJcbiAgICAgICAgICAgIDogaXNDb2x1bW5EaXJlY3Rpb24gfHwgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uXHJcbiAgICAgICAgICAgID8gJzEwMCUnXHJcbiAgICAgICAgICAgIDogbWF4TGFiZWxXaWR0aCArICdweCdcclxuICAgIFwiXHJcbiAgICBbc3R5bGUud2lkdGhdPVwiXHJcbiAgICAgICAgKGNvbmZpZy5DYXB0aW9uU2V0dGluZz8uQWxpZ25Nb2RlID09PSAnQXV0b1NpemUnICYmICFpc01vYmlsZSkgfHwgKGlzTW9iaWxlICYmIChpc0NoZWNrYm94IHx8IGNvbnRyb2xJc1JlYWRvbmx5KSlcclxuICAgICAgICAgICAgPyAnYXV0bydcclxuICAgICAgICAgICAgOiBpc0NvbHVtbkRpcmVjdGlvbiB8fCBpc0NvbHVtblJldmVyc2VEaXJlY3Rpb25cclxuICAgICAgICAgICAgPyAnMTAwJSdcclxuICAgICAgICAgICAgOiBtYXhMYWJlbFdpZHRoICsgJ3B4J1xyXG4gICAgXCJcclxuICAgIFtpc01hbmRhdG9yeV09XCJpc01hbmRhdG9yeVwiXHJcbiAgICBbZmllbGRJY29uXT1cImZpZWxkSWNvblwiXHJcbiAgICBbYXR0ci5hdXRvc2l6ZV09XCJjb25maWcuQ2FwdGlvblNldHRpbmc/LkFsaWduTW9kZSA/IHRydWU6bnVsbFwiXHJcbiAgICBbaGVscERlc2NyaXB0aW9uXT1cImhlbHBEZXNjcmlwdGlvblwiXHJcbiAgICBbb3JpZ2luYWxYdHlwZV09XCJvcmlnaW5hbFh0eXBlXCJcclxuICAgIFt0ZXh0VmlzaWJsZV09XCJ0ZXh0VmlzaWJsZVwiXHJcbiAgICBbaXNDb2x1bW5dPVwiaXNDb2x1bW5EaXJlY3Rpb24gfHwgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uXCJcclxuPjwvYnN1LWx5LWxhYmVsPlxyXG59XHJcbjxsYWJlbCBbYXR0ci52aXNpYmxlXT1cImxhYmVsVmlzaWJsZVwiIGNsYXNzPVwiaG9yaXpvbnRhbC1sYWJlbFwiIFtpbm5lckh0bWxdPVwiZW1wdHlUZXh0XCI+PC9sYWJlbD5cclxuPGJucmMtZmllbGQtdWlcclxuICAgIFthdHRyLnh0eXBlXT1cImNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGVcIlxyXG4gICAgW2F0dHIuZmllbGRXaWR0aF09XCJsYXlvdXRDb250cm9sV2lkdGhcIlxyXG4gICAgW2F0dHIuaXNDaGVja2JveF09XCJpc0NoZWNrYm94XCJcclxuICAgIFthdHRyLmlzYnV0dG9uXT1cImlzQnV0dG9uXCJcclxuICAgIFtzdHlsZS5mbGV4LWdyb3ddPVwiaXNDaGVja2JveCA/IDEgOiAwXCJcclxuICAgIFtjbGFzcy5uby1wYWRkaW5nXT1cImNvbmZpZy5QYWRkaW5nWzBdID09PSAwXCJcclxuICAgIFtjdXN0b21GaWVsZF09XCJjb25maWcuRmllbGRVaVwiXHJcbiAgICBbbGF5b3V0SW5mb109XCJjb25maWdcIlxyXG4gICAgW2lubGluZUVkaXRdPVwiaW5saW5lRWRpdFwiXHJcbiAgICBbZm9ybUhlaWdodF09XCIoZm9ybUhlaWdodCQgfCBhc3luYykhIVwiXHJcbiAgICBbZm9jdXNDb250cm9sXT1cImZvY3VzQ29udHJvbFwiXHJcbiAgICBbaXNTZWFyY2hQYW5lbF09XCJpc1NlYXJjaFBhbmVsXCJcclxuICAgIFtzdHlsZS5oZWlnaHRdPVwiaXNVbHYgPyAnMTAwJScgOiAnYXV0bydcIlxyXG4gICAgW2F0dHIuaXN1bHZdPVwiaXNVbHZcIlxyXG4+PC9ibnJjLWZpZWxkLXVpPlxyXG59XHJcbiJdfQ==
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGF5b3V0LWNvbnRyb2wvbGF5b3V0LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBTXZCLFFBQVEsRUFDUixNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFDSCxRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFFYixpQkFBaUIsRUFFakIsV0FBVyxFQUNYLGFBQWEsRUFDaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVU5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0lBdUQvRCxZQUNjLGdCQUFrQyxFQUNyQyxFQUFjLEVBQ3JCLHNCQUE2QyxFQUNuQyxZQUEwQixFQUMxQixJQUF1QixFQUN2QixPQUFlLEVBQ2YsVUFBcUIsRUFDckIsYUFBK0IsRUFDbkIsb0JBQW1DO1FBRXpELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQVZwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3JDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFWCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDbkIs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O3VCQUFDLGNBQWM7Z0JBQ0ssVUFBVTtzQkFBekMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ1MsaUJBQWlCO3NCQUF2RCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDUCxRQUFRO3NCQUFyQyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ1MsZUFBZTtzQkFBbkQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBQ0wsWUFBWTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQUNFLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFDRyxhQUFhO3NCQUEzQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDQSxXQUFXO3NCQUF2QyxXQUFXO3VCQUFDLGNBQWM7Z0JBQ2xCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkF5TkUsWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIE5nWm9uZSxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIE9uSW5pdCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBTa2lwU2VsZixcclxuICAgIE91dHB1dCxcclxuICAgIEV2ZW50RW1pdHRlclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgQ29udGVudERlbnNpdHlTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBCYXJzYUFwaSxcclxuICAgIExheW91dEl0ZW1CYXNlQ29tcG9uZW50LFxyXG4gICAgTGF5b3V0U2VydmljZSxcclxuICAgIEZvcm1QYW5lbFNlcnZpY2UsXHJcbiAgICBnZXREZXZpY2VJc01vYmlsZSxcclxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXHJcbiAgICBtZWFzdXJlVGV4dCxcclxuICAgIGdldExhYmVsV2lkdGhcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWxheW91dC1jb250cm9sJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9sYXlvdXQtY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbTGF5b3V0U2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb250cm9sQ29tcG9uZW50IGV4dGVuZHMgTGF5b3V0SXRlbUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgndGVtcExhYmVsUmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXHJcbiAgICB0ZW1wTGFiZWxSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sYXlvdXQtY29udHJvbCcpIGxheW91dENvbnRyb2xDbGFzcyA9IHRydWU7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJvdy1kaXJlY3Rpb24nKSBpc1Jvd0RpcmVjdGlvbjtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucm93LXJldmVyc2UtZGlyZWN0aW9uJykgaXNSb3dSZXZlcnNlRGlyZWN0aW9uO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb2x1bW4tZGlyZWN0aW9uJykgaXNDb2x1bW5EaXJlY3Rpb247XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbHVtbi1yZXZlcnNlLWRpcmVjdGlvbicpIGlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvbjtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udGFpbmVyLWZpZWxkJykgaXNDb250YWluZXIgPSB0cnVlO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZWFkb25seWlzd3JhcGVkJykgcmVhZG9ubHlpc3dyYXBlZCA9IGZhbHNlO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sYWJlbG5vdGlucm93JykgX2xhYmVsTm90SW5Sb3cgPSBmYWxzZTtcclxuICAgIC8vIEBIb3N0QmluZGluZygnc3R5bGUudmlzaWJpbGl0eScpIHZpc2liaWxpdHk6IHN0cmluZztcclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWF4LXdpZHRoJykgbWF4V2lkdGg7XHJcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi13aWR0aCcpIG1pbldpZHRoO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4taGVpZ2h0JykgbWluSGVpZ2h0ID0gJzIuMjVyZW0nO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKSBoZWlnaHQ7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaXNDaGVja2JveCcpIGlzQ2hlY2tib3g7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY29udHJvbElzUmVhZG9ubHknKSBjb250cm9sSXNSZWFkb25seSA9IGZhbHNlO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzQnV0dG9uJykgaXNCdXR0b247XHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaXNzaW5nbGVwaWN0dXJlJykgaXNTaW5nbGVQaWN0dXJlO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLm1pbldpZHRoJykgYXR0ck1pbldpZHRoO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzbW9iaWxlJykgaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmNvbnRyb2xJZCcpIGF0dHJDb250cm9sSWQ7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY2FwdGlvbicpIGF0dHJDYXB0aW9uO1xyXG4gICAgQElucHV0KCkgaW5saW5lRWRpdDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNlbGxFZGl0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY2FwdGlvbjogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZm9jdXNDb250cm9sOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbWF4TGFiZWxXaWR0aDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgaGFzSG9yaXpvbnRhbFRleHQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XHJcbiAgICBASW5wdXQoKSBmbGV4OiBzdHJpbmc7XHJcbiAgICBAT3V0cHV0KCkgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRpdGxlOiBzdHJpbmc7IGRhdGE/OiBhbnkgfT4oKTtcclxuXHJcbiAgICBoaWRlID0gdHJ1ZTtcclxuICAgIGxheW91dFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICAgd3JhcENvbnRlbnQ6IGJvb2xlYW47XHJcbiAgICBsYWJlbFdpZHRoOiBudW1iZXI7XHJcbiAgICBsYWJlbENhcHRpb246IHN0cmluZyB8IFNhZmVIdG1sO1xyXG4gICAgbGFiZWxWaXNpYmxlPzogYm9vbGVhbjtcclxuICAgIGxheW91dFNldFNpemU6IGJvb2xlYW47XHJcbiAgICBydGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgaXNVbHY6IGJvb2xlYW47XHJcbiAgICBpc01hbmRhdG9yeTogYm9vbGVhbjtcclxuICAgIGZpZWxkSWNvbjogc3RyaW5nO1xyXG4gICAgb3JpZ2luYWxYdHlwZTogc3RyaW5nO1xyXG4gICAgdHJhbnNsYXRlQ2FwdGlvbjogc3RyaW5nO1xyXG4gICAgdGV4dFZpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICBlbXB0eVRleHQgPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCgnJiM4MjAzOycpO1xyXG4gICAgbGF5b3V0Q29udHJvbFdpZHRoOiBudW1iZXI7XHJcbiAgICBmb3JtSGVpZ2h0JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xyXG4gICAgY2hlY2tib3hXaWR0aCA9ICdmaXQtY29udGVudCc7XHJcbiAgICBoZWxwRGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBmb3JtUGFuZWxTZXJ2aWNlOiBGb3JtUGFuZWxTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcclxuICAgICAgICBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgX25nWm9uZTogTmdab25lLFxyXG4gICAgICAgIHByb3RlY3RlZCBfcmVuZGVyZXIyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9iYmJUcmFuc2xhdGU6IEJiYlRyYW5zbGF0ZVBpcGUsXHJcbiAgICAgICAgQFNraXBTZWxmKCkgcHJvdGVjdGVkIF9wYXJlbnRMYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihmb3JtUGFuZWxTZXJ2aWNlLCBfY2RyKTtcclxuICAgICAgICBpZiAodGhpcy5jb250ZW50RGVuc2l0eSA9PT0gJ2NvbXBhY3QnKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWluSGVpZ2h0ID0gJzJyZW0nO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBjb25zdCB7IGZsZXgsIG1heExhYmVsV2lkdGggfSA9IGNoYW5nZXM7XHJcbiAgICAgICAgaWYgKGZsZXgpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2V0RmxleChmbGV4LmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtYXhMYWJlbFdpZHRoICYmICFtYXhMYWJlbFdpZHRoLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldExhYmVsV2lkdGgobWF4TGFiZWxXaWR0aC5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5mb3JtSGVpZ2h0JCA9IHRoaXMuZm9ybVBhbmVsU2VydmljZS5mb3JtSGVpZ2h0JDtcclxuICAgICAgICB0aGlzLl9zZXRGbGV4KHRoaXMuZmxleCk7XHJcblxyXG4gICAgICAgIHRoaXMubGF5b3V0Q29udHJvbFdpZHRoID0gKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY2xpZW50V2lkdGg7XHJcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XHJcbiAgICAgICAgY29uc3QgbWluSGVpZ2h0QXV0byA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICBjb25maWcsXHJcbiAgICAgICAgICAgICdGaWVsZFVpLlNldHRpbmcuQ3VzdG9tVWkuUGFyYW1ldGVycy5NaW5IZWlnaHRBdXRvJyxcclxuICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmlubGluZUVkaXQgfHwgbWluSGVpZ2h0QXV0byB8fCB0aGlzLmlzTW9iaWxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWluSGVpZ2h0ID0gJ2F1dG8nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLlVsdk1haW5VaScpIHtcclxuICAgICAgICAgICAgdGhpcy5pc1VsdiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdpc1VsdicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmF0dHJDYXB0aW9uID0gY29uZmlnLkNhcHRpb24ucmVwbGFjZSgnOicsICcnKTtcclxuICAgICAgICB0aGlzLmF0dHJDb250cm9sSWQgPSBjb25maWcuQ29udHJvbElkO1xyXG4gICAgICAgIHRoaXMuaXNCdXR0b24gPSBjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlID09PSAnVWkuQnV0dG9uJztcclxuICAgICAgICB0aGlzLl9yZWZyZXNoTGFiZWwoKTtcclxuXHJcbiAgICAgICAgdGhpcy5pc1Jvd0RpcmVjdGlvbiA9IGNvbmZpZy5UZXh0TG9jYXRpb24gPT09ICdSaWdodCcgfHwgY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ0RlZmF1bHQnO1xyXG4gICAgICAgIHRoaXMuaXNSb3dSZXZlcnNlRGlyZWN0aW9uID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ0xlZnQnO1xyXG4gICAgICAgIHRoaXMuaXNDb2x1bW5EaXJlY3Rpb24gPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnVG9wJyB8fCB0aGlzLmlzU2VhcmNoUGFuZWw7XHJcbiAgICAgICAgdGhpcy5pc0NvbHVtblJldmVyc2VEaXJlY3Rpb24gPSBjb25maWcuVGV4dExvY2F0aW9uID09PSAnQm90dG9tJztcclxuICAgICAgICB0aGlzLl9sYWJlbE5vdEluUm93ID0gY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ1RvcCcgfHwgY29uZmlnLlRleHRMb2NhdGlvbiA9PT0gJ0JvdHRvbSc7XHJcblxyXG4gICAgICAgIGNvbmZpZy5GaWVsZFVpLkxheW91dENvbnRyb2wgPSB0aGlzO1xyXG4gICAgICAgIHRoaXMuaGVscERlc2NyaXB0aW9uID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoY29uZmlnLkZpZWxkVWksICdTZXR0aW5nLkhlbHBEZXNjcmlwdGlvbicsICcnKTtcclxuXHJcbiAgICAgICAgdGhpcy5maWVsZEljb24gPSBjb25maWcuRmllbGRVaS5TZXR0aW5nLkZpZWxkSWNvbjtcclxuICAgICAgICB0aGlzLmNvbnRyb2xJc1JlYWRvbmx5ID0gY29uZmlnLkZpZWxkVWkuU2V0dGluZy5Db250cm9sSXNSZWFkT25seTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xJc1JlYWRvbmx5ID1cclxuICAgICAgICAgICAgdGhpcy5jb250cm9sSXNSZWFkb25seSB8fFxyXG4gICAgICAgICAgICBjb25maWcuRmllbGRVaS5TZXR0aW5nLklubmVyQ3RybHI/LklzUmVhZE9ubHkgfHxcclxuICAgICAgICAgICAgY29uZmlnLkZpZWxkVWkuU2V0dGluZy5Jbm5lckN0cmxyPy54dHlwZSA9PT0gJ1VsLlJlYWRPbmx5RmllbGRDdHJscic7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbFh0eXBlID0gY29uZmlnLkZpZWxkVWkub3JpZ2luYWxYdHlwZTtcclxuICAgICAgICB0aGlzLnRleHRWaXNpYmxlID0gY29uZmlnLlRleHRWaXNpYmxlO1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2xJc1JlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHggPSBtZWFzdXJlVGV4dChjb25maWcuRmllbGRVaS52YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmICh4ID4gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICYmIHRoaXMuaXNNb2JpbGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVhZG9ubHlpc3dyYXBlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TZWFyY2hDb21tYW5kSW5mb1VpJykge1xyXG4gICAgICAgICAgICB0aGlzLmxhYmVsQ2FwdGlvbiA9ICcmIzgyMDM7JztcclxuICAgICAgICAgICAgdGhpcy5sYWJlbFZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnRleHRWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wcmVwYXJlTWluQW5kTWF4U2l6ZSgpO1xyXG4gICAgICAgIHRoaXMuX3NldExhYmVsV2lkdGgodGhpcy5tYXhMYWJlbFdpZHRoKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3JlZnJlc2hMYWJlbCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcclxuICAgICAgICBjb25zdCBsYWJlbENhcHRpb24gPSBjb25maWcuQ2FwdGlvbjtcclxuICAgICAgICAvLyBpZiAoY29uZmlnLkZpZWxkVWkuU2V0dGluZz8uSXNNYW5kYXRvcnkpIHtcclxuICAgICAgICAvLyAgICAgaWYgKGxhYmVsQ2FwdGlvbi5pbmRleE9mKCcqJykgPCAwKSB7XHJcbiAgICAgICAgLy8gICAgICAgICBsYWJlbENhcHRpb24gPSBsYWJlbENhcHRpb24gKyAnIConO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAvLyAgICAgbGFiZWxDYXB0aW9uID0gbGFiZWxDYXB0aW9uLnJlcGxhY2UoJyonLCAnJyk7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICB0aGlzLmlzQ2hlY2tib3ggPSBjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlID09PSAnVWkuQ2hlY2tCb3gnO1xyXG4gICAgICAgIGlmICh0aGlzLmlzQ2hlY2tib3gpIHtcclxuICAgICAgICAgICAgY29uc3QgeCA9IG1lYXN1cmVUZXh0KGxhYmVsQ2FwdGlvbik7XHJcbiAgICAgICAgICAgIGlmICh4IDwgdGhpcy5tYXhMYWJlbFdpZHRoICYmICF0aGlzLmlzTW9iaWxlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrYm94V2lkdGggPSBgJHt0aGlzLm1heExhYmVsV2lkdGh9cHhgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzU2luZ2xlUGljdHVyZSA9IGNvbmZpZy5GaWVsZFVpLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TaW5nbGVQaWN0dXJlJztcclxuICAgICAgICBjb25zdCBjb2xvbkxhYmVsID0gdGhpcy5mb3JtUGFuZWxTZXJ2aWNlLkNvbG9uSW5MYWJlbCA/ICc6JyA6ICcnO1xyXG4gICAgICAgIGxldCB0cmFuc2xhdGVDYXB0aW9uID0gYCR7dGhpcy5fYmJiVHJhbnNsYXRlLnRyYW5zZm9ybShsYWJlbENhcHRpb24pfSR7XHJcbiAgICAgICAgICAgIHRoaXMuaXNTZWFyY2hQYW5lbCB8fCBsYWJlbENhcHRpb24gPT09ICcmenduajsnID8gJycgOiBjb2xvbkxhYmVsXHJcbiAgICAgICAgfWA7XHJcbiAgICAgICAgdGhpcy5pc01hbmRhdG9yeSA9IGNvbmZpZy5GaWVsZFVpLlNldHRpbmc/LklzTWFuZGF0b3J5O1xyXG4gICAgICAgIGlmICh0aGlzLmlzTWFuZGF0b3J5KSB7XHJcbiAgICAgICAgICAgIHRyYW5zbGF0ZUNhcHRpb24gPSB0cmFuc2xhdGVDYXB0aW9uLnJlcGxhY2UoJyonLCAnJyk7XHJcbiAgICAgICAgICAgIHRyYW5zbGF0ZUNhcHRpb24gKz0gYDxzdHJvbmcgY2xhc3M9XCJmaWVsZC1tYW5kYXRvcnlcIj4qPC9zdHJvbmc+YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGVDYXB0aW9uID0gdHJhbnNsYXRlQ2FwdGlvbjtcclxuICAgICAgICB0aGlzLmxhYmVsQ2FwdGlvbiA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRyYW5zbGF0ZUNhcHRpb24pO1xyXG4gICAgICAgIHRoaXMubGFiZWxWaXNpYmxlID0gY29uZmlnLlRleHRWaXNpYmxlICYmIHRoaXMuc2hvd0xhYmVsICE9PSBmYWxzZTtcclxuICAgICAgICBjb25zdCBjb250cm9sV2lkdGggPSBnZXRMYWJlbFdpZHRoKHRoaXMuY29uZmlnKTtcclxuICAgICAgICBpZiAoY29udHJvbFdpZHRoICYmIGNvbnRyb2xXaWR0aCA+IHRoaXMubWF4TGFiZWxXaWR0aCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wYXJlbnRMYXlvdXRTZXJ2aWNlLnNldE1heFdpZHRoKGNvbnRyb2xXaWR0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3NldEhpZGUoY29uZmlnLkZpZWxkVWkuU2V0dGluZy5Jc1Zpc2libGUgPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlKTtcclxuICAgIH1cclxuICAgIF9zZXRMYWJlbFdpZHRoKG1heExhYmVsV2lkdGg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy50ZW1wTGFiZWxSZWYpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB2YWwgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5DYXB0aW9uU2V0dGluZz8uQWxpZ25Nb2RlID09PSAnQXV0b1NpemUnIHx8XHJcbiAgICAgICAgICAgICh0aGlzLmlzTW9iaWxlICYmICh0aGlzLmlzQ2hlY2tib3ggfHwgdGhpcy5jb250cm9sSXNSZWFkb25seSkpXHJcbiAgICAgICAgICAgICAgICA/ICdhdXRvJ1xyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmlzQ29sdW1uRGlyZWN0aW9uIHx8IHRoaXMuaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uXHJcbiAgICAgICAgICAgICAgICA/ICcxMDAlJ1xyXG4gICAgICAgICAgICAgICAgOiBtYXhMYWJlbFdpZHRoICsgJ3B4JztcclxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy50ZW1wTGFiZWxSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgdmFsKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWluV2lkdGggPSB0aGlzLmlzQ2hlY2tib3hcclxuICAgICAgICAgICAgPyB0aGlzLmNoZWNrYm94V2lkdGhcclxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5DYXB0aW9uU2V0dGluZz8uQWxpZ25Nb2RlID09PSAnQXV0b1NpemUnIHx8ICh0aGlzLmlzTW9iaWxlICYmIHRoaXMuY29udHJvbElzUmVhZG9ubHkpXHJcbiAgICAgICAgICAgID8gJ2ZpdC1jb250ZW50J1xyXG4gICAgICAgICAgICA6IHRoaXMuaXNDb2x1bW5EaXJlY3Rpb24gfHwgdGhpcy5pc0NvbHVtblJldmVyc2VEaXJlY3Rpb25cclxuICAgICAgICAgICAgPyAnMTAwJSdcclxuICAgICAgICAgICAgOiBtYXhMYWJlbFdpZHRoICsgJ3B4JztcclxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy50ZW1wTGFiZWxSZWYubmF0aXZlRWxlbWVudCwgJ21pbi13aWR0aCcsIG1pbldpZHRoKTtcclxuICAgIH1cclxuICAgIF9yZXNpemVVbHZCeURldmljZShkZXZpY2UpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNVbHYpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZGV2aWNlSGVpZ2h0ID0gJ0Rlc2t0b3BIZWlnaHQnO1xyXG4gICAgICAgIHN3aXRjaCAoZGV2aWNlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxyXG4gICAgICAgICAgICAgICAgZGV2aWNlSGVpZ2h0ID0gJ01vYmlsZUhlaWdodCc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbSc6XHJcbiAgICAgICAgICAgICAgICBkZXZpY2VIZWlnaHQgPSAnVGFibGV0SGVpZ2h0JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhlaWdodCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyxcclxuICAgICAgICAgICAgJ0ZpZWxkVWkuU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMuJyArIGRldmljZUhlaWdodCxcclxuICAgICAgICAgICAgJ2F1dG8nXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgcHJlcGFyZU1pbkFuZE1heFNpemUoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XHJcbiAgICAgICAgY29uc3QgbGF5b3V0SW5mbyA9IGNvbmZpZztcclxuICAgICAgICBjb25zdCBpc0J1dHRvbiA9IHRoaXMuaXNCdXR0b247XHJcbiAgICAgICAgY29uc3QgaXNTaW5nbGVQaWN0dXJlID0gdGhpcy5pc1NpbmdsZVBpY3R1cmU7XHJcbiAgICAgICAgY29uc3QgaXNDaGVja2JveCA9IHRoaXMuaXNDaGVja2JveDtcclxuICAgICAgICBpZiAoIXRoaXMuaW5saW5lRWRpdCAmJiBsYXlvdXRJbmZvICYmIChpc0J1dHRvbiB8fCBpc0NoZWNrYm94IHx8IGlzU2luZ2xlUGljdHVyZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5hdHRyTWluV2lkdGggPSBjb25maWcuQm91bmRzLndpZHRoO1xyXG4gICAgICAgICAgICBsZXQgZXh0cmFWYWwgPSAwO1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAoKGlzQnV0dG9uIHx8IGlzQ2hlY2tib3gpICYmIGxheW91dEluZm8uRmllbGRVaS5TZXR0aW5nPy5GaWVsZEljb24pIHx8XHJcbiAgICAgICAgICAgICAgICBsYXlvdXRJbmZvLkZpZWxkVWkuU2V0dGluZy5Kc29uRXh0cmFQcm9wPy5HbHlwaFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGV4dHJhVmFsID0gMTg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgeyBNYXhTaXplLCBNaW5TaXplIH0gPSBsYXlvdXRJbmZvO1xyXG4gICAgICAgICAgICBpZiAoTWF4U2l6ZT8ud2lkdGggPiAwICYmICF0aGlzLmlzQ2hlY2tib3gpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF4V2lkdGggPSBNYXhTaXplLndpZHRoICsgZXh0cmFWYWwgKyAncHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChNaW5TaXplPy53aWR0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWluV2lkdGggPSBNaW5TaXplLndpZHRoICsgZXh0cmFWYWwgKyAncHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmlzU2VhcmNoUGFuZWwpIHtcclxuICAgICAgICAgICAgdGhpcy5hdHRyTWluV2lkdGggPSB0aGlzLm1heExhYmVsV2lkdGggKyAyMDA7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9ICczMjBweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcclxuICAgICAgICAgICAgdGhpcy5taW5XaWR0aCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBJbnB1dCgpIFJlZnJlc2hMYWJlbCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9yZWZyZXNoTGFiZWwoKTtcclxuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KHsgdGl0bGU6ICdyZWZyZXNoTGFiZWwnLCBkYXRhOiB0aGlzLmNvbmZpZyB9KTtcclxuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9O1xyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBJbnB1dCgpIFNldFZpc2libGUgPSAodmlzaWJsZSwgcmVmcmVzaCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5GaWVsZFVpLlNldHRpbmcuSXNWaXNpYmxlID0gdmlzaWJsZTtcclxuICAgICAgICAgICAgdGhpcy5fc2V0SGlkZSghdmlzaWJsZSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuY29uZmlnLkZpZWxkVWkuU2V0dGluZy4kQlJ1bGVIaWRlID0gIXZpc2libGU7XHJcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcHJpdmF0ZSBfc2V0SGlkZShoaWRlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaGlkZSA9IHRoaXMuY29uZmlnLkZpZWxkVWkuU2V0dGluZy5IaWRlU2VhcmNoQ29tbWFuZEluZm9VaSA9PT0gdHJ1ZSA/IHRydWUgOiBoaWRlOyAvLyBoaWRlIGRlZmF1bHQgYnV0dG9ucyBvZiBzZWFyY2ggcGFuZWxcclxuICAgICAgICB0aGlzLmhpZGUgPSBoaWRlO1xyXG4gICAgICAgIGlmIChoaWRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdoaWRlLWZvcm0taXRlbScpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdoaWRlLWZvcm0taXRlbScpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX3NldEZsZXgoZmxleDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBmbGV4ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUgfHwgdGhpcy5jb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlICE9PSAnVWkuVGV4dEFyZWEnKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2ZsZXgnLCBmbGV4KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiQGlmICghaGlkZSkgeyBAaWYgKGxhYmVsVmlzaWJsZSkge1xyXG48YnN1LWx5LWxhYmVsXHJcbiAgICBbYXR0ci5sYWJlbFdpZHRoXT1cImxhYmVsV2lkdGhcIlxyXG4gICAgW2F0dHJSdGxdXHJcbiAgICAjdGVtcExhYmVsUmVmXHJcbiAgICBbY2xhc3Mubm8tcGFkZGluZ109XCJjb25maWcuUGFkZGluZ1swXSA9PT0gMFwiXHJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICBbY2FwdGlvbl09XCJsYWJlbENhcHRpb25cIlxyXG4gICAgW3RyYW5zbGF0ZUNhcHRpb25dPVwidHJhbnNsYXRlQ2FwdGlvblwiXHJcbiAgICBbb3JpZ2luYWxXaWR0aF09XCJsYWJlbFdpZHRoXCJcclxuICAgIFtzdHlsZS5taW4td2lkdGhdPVwiXHJcbiAgICAgICAgaXNDaGVja2JveFxyXG4gICAgICAgICAgICA/IGNoZWNrYm94V2lkdGhcclxuICAgICAgICAgICAgOiAoY29uZmlnLkNhcHRpb25TZXR0aW5nPy5BbGlnbk1vZGUgPT09ICdBdXRvU2l6ZScgJiYgIWlzTW9iaWxlKSB8fCAoaXNNb2JpbGUgJiYgY29udHJvbElzUmVhZG9ubHkpXHJcbiAgICAgICAgICAgID8gJ2ZpdC1jb250ZW50J1xyXG4gICAgICAgICAgICA6IGlzQ29sdW1uRGlyZWN0aW9uIHx8IGlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvblxyXG4gICAgICAgICAgICA/ICcxMDAlJ1xyXG4gICAgICAgICAgICA6IG1heExhYmVsV2lkdGggKyAncHgnXHJcbiAgICBcIlxyXG4gICAgW3N0eWxlLndpZHRoXT1cIlxyXG4gICAgICAgIChjb25maWcuQ2FwdGlvblNldHRpbmc/LkFsaWduTW9kZSA9PT0gJ0F1dG9TaXplJyAmJiAhaXNNb2JpbGUpIHx8IChpc01vYmlsZSAmJiAoaXNDaGVja2JveCB8fCBjb250cm9sSXNSZWFkb25seSkpXHJcbiAgICAgICAgICAgID8gJ2F1dG8nXHJcbiAgICAgICAgICAgIDogaXNDb2x1bW5EaXJlY3Rpb24gfHwgaXNDb2x1bW5SZXZlcnNlRGlyZWN0aW9uXHJcbiAgICAgICAgICAgID8gJzEwMCUnXHJcbiAgICAgICAgICAgIDogbWF4TGFiZWxXaWR0aCArICdweCdcclxuICAgIFwiXHJcbiAgICBbaXNNYW5kYXRvcnldPVwiaXNNYW5kYXRvcnlcIlxyXG4gICAgW2ZpZWxkSWNvbl09XCJmaWVsZEljb25cIlxyXG4gICAgW2F0dHIuYXV0b3NpemVdPVwiY29uZmlnLkNhcHRpb25TZXR0aW5nPy5BbGlnbk1vZGUgPyB0cnVlOm51bGxcIlxyXG4gICAgW2hlbHBEZXNjcmlwdGlvbl09XCJoZWxwRGVzY3JpcHRpb25cIlxyXG4gICAgW29yaWdpbmFsWHR5cGVdPVwib3JpZ2luYWxYdHlwZVwiXHJcbiAgICBbdGV4dFZpc2libGVdPVwidGV4dFZpc2libGVcIlxyXG4gICAgW2lzQ29sdW1uXT1cImlzQ29sdW1uRGlyZWN0aW9uIHx8IGlzQ29sdW1uUmV2ZXJzZURpcmVjdGlvblwiXHJcbj48L2JzdS1seS1sYWJlbD5cclxufVxyXG48bGFiZWwgW2F0dHIudmlzaWJsZV09XCJsYWJlbFZpc2libGVcIiBjbGFzcz1cImhvcml6b250YWwtbGFiZWxcIiBbaW5uZXJIdG1sXT1cImVtcHR5VGV4dFwiPjwvbGFiZWw+XHJcbjxibnJjLWZpZWxkLXVpXHJcbiAgICBbYXR0ci54dHlwZV09XCJjb25maWcuRmllbGRVaS5vcmlnaW5hbFh0eXBlXCJcclxuICAgIFthdHRyLmZpZWxkV2lkdGhdPVwibGF5b3V0Q29udHJvbFdpZHRoXCJcclxuICAgIFthdHRyLmlzQ2hlY2tib3hdPVwiaXNDaGVja2JveFwiXHJcbiAgICBbYXR0ci5pc2J1dHRvbl09XCJpc0J1dHRvblwiXHJcbiAgICBbc3R5bGUuZmxleC1ncm93XT1cImlzQ2hlY2tib3ggPyAxIDogMFwiXHJcbiAgICBbY2xhc3Mubm8tcGFkZGluZ109XCJjb25maWcuUGFkZGluZ1swXSA9PT0gMFwiXHJcbiAgICBbY3VzdG9tRmllbGRdPVwiY29uZmlnLkZpZWxkVWlcIlxyXG4gICAgW2xheW91dEluZm9dPVwiY29uZmlnXCJcclxuICAgIFtpbmxpbmVFZGl0XT1cImlubGluZUVkaXRcIlxyXG4gICAgW2NlbGxFZGl0XT1cImNlbGxFZGl0XCJcclxuICAgIFtmb3JtSGVpZ2h0XT1cIihmb3JtSGVpZ2h0JCB8IGFzeW5jKSEhXCJcclxuICAgIFtmb2N1c0NvbnRyb2xdPVwiZm9jdXNDb250cm9sXCJcclxuICAgIFtpc1NlYXJjaFBhbmVsXT1cImlzU2VhcmNoUGFuZWxcIlxyXG4gICAgW3N0eWxlLmhlaWdodF09XCJpc1VsdiA/ICcxMDAlJyA6ICdhdXRvJ1wiXHJcbiAgICBbYXR0ci5pc3Vsdl09XCJpc1VsdlwiXHJcbj48L2JucmMtZmllbGQtdWk+XHJcbn1cclxuIl19
@@ -21,7 +21,7 @@ export class ListItemComponent extends BaseViewItemPropsComponent {
21
21
  PreventDefaulEvent(e);
22
22
  }
23
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ListItemComponent, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\r\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\r\n></ng-container>\r\n<ng-template #standardTemplate let-mo>\r\n <li\r\n fd-list-item\r\n class=\"standard-list-row\"\r\n [ngClass]=\"deviceSize\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\r\n [class.selected]=\"isChecked === true\"\r\n [selected]=\"isChecked === true\"\r\n (dblclick)=\"onRowClick()\"\r\n (click)=\"onRowCheck()\"\r\n >\r\n <a\r\n fd-list-link\r\n [attr.rtl]=\"rtl\"\r\n class=\"li-link\"\r\n [class.checklist]=\"isCheckList\"\r\n #aEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"aEl\"\r\n >\r\n @if (isCheckList) {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\r\n } @if (setting.IconFont || setting.AvatarField) {\r\n <span fd-list-thumbnail>\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\r\n [circle]=\"true\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"avatarSize\"\r\n [transparent]=\"true\"\r\n [glyph]=\"\r\n setting.IconFont ??\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n >\r\n </fd-avatar>\r\n </span>\r\n }\r\n <div fd-list-content>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats,\r\n index: 0\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.StatusField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div fd-list-byline>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n @if (contextMenuItems.length) {\r\n <bsu-ulv-context-menu\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></bsu-ulv-context-menu>\r\n } @if (canView && !hideOpenIcon) {\r\n <button (click)=\"onRowClick()\" fdType=\"transparent\" [glyph]=\"navigationArrow\" fd-button></button>\r\n }\r\n </a>\r\n </li>\r\n</ng-template>\r\n<ng-template #displayTemplate let-mo>\r\n @if (!mo.parent || mo.parent?.expanded) {\r\n <li\r\n class=\"display\"\r\n [ngClass]=\"deviceSize\"\r\n fd-list-item\r\n [interactive]=\"false\"\r\n (dblclick)=\"onRowClick()\"\r\n (click)=\"onRowCheck()\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\r\n >\r\n <a\r\n fd-list-link\r\n [attr.rtl]=\"rtl\"\r\n class=\"li-link\"\r\n style=\"cursor: default\"\r\n [class.checklist]=\"isCheckList\"\r\n #aEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"aEl\"\r\n style=\"column-gap: 3px\"\r\n >\r\n @if (setting.AvatarField) {\r\n <img\r\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\r\n style=\"width: 24px; height: 24px\"\r\n />\r\n } @if (setting.IconFont) {\r\n <i fd-list-icon [glyph]=\"setting.IconFont\" [style.color]=\"setting.IconColor ? setting.IconColor : null\">\r\n </i>\r\n } @if (!setting.IconFont && mo.$State === 'New' && !isChecked) {\r\n <i fd-list-icon glyph=\"favorite\"></i>\r\n } @if (!setting.IconFont && inlineEditMode && isChecked) {\r\n <i fd-list-icon glyph=\"edit\"></i>\r\n } @if (isCheckList) {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\r\n }\r\n <span fd-list-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.TitleField,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: 0\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.CounterField,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n @if (canView && !hideOpenIcon) {\r\n <button fd-button (click)=\"onRowClick()\" [glyph]=\"navigationArrow\" fdType=\"transparent\"></button>\r\n } @if (contextMenuItems.length) {\r\n <bsu-ulv-context-menu\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></bsu-ulv-context-menu>\r\n }\r\n </span>\r\n </a>\r\n </li>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #renderColumn\r\n let-column\r\n let-mo=\"mo\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-index=\"index\"\r\n let-layout94=\"layout94\"\r\n>\r\n @if (column) {\r\n <div\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"true\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"inlineEditMode && allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\r\n [formLayoutShowLabel]=\"true\"\r\n ></bsu-column-renderer>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host li.s{height:auto}:host .flex1{flex:1;display:flex;justify-content:start;flex-direction:row-reverse}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id", "preventClick"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i6.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i6.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i6.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "directive", type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i8.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "contextMenuOverflowText", "appendTo"], outputs: ["commandClick"] }, { kind: "component", type: i9.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "allColumns", "mo", "index", "editMode", "attachmentViewType", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "fdTextMode", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i10.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i11.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i11.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i11.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i11.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ListItemComponent, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\r\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\r\n></ng-container>\r\n<ng-template #standardTemplate let-mo>\r\n <li\r\n fd-list-item\r\n class=\"standard-list-row\"\r\n [ngClass]=\"deviceSize\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\r\n [class.selected]=\"isChecked === true\"\r\n [selected]=\"isChecked === true\"\r\n (dblclick)=\"onRowClick()\"\r\n (click)=\"onRowCheck()\"\r\n >\r\n <a\r\n fd-list-link\r\n [attr.rtl]=\"rtl\"\r\n class=\"li-link\"\r\n [class.checklist]=\"isCheckList\"\r\n #aEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"aEl\"\r\n >\r\n @if (isCheckList) {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\r\n } @if (setting.IconFont || setting.AvatarField) {\r\n <span fd-list-thumbnail>\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\r\n [circle]=\"true\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"avatarSize\"\r\n [transparent]=\"true\"\r\n [glyph]=\"\r\n setting.IconFont ??\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n >\r\n </fd-avatar>\r\n </span>\r\n }\r\n <div fd-list-content>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats,\r\n index: 0\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.StatusField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div fd-list-byline>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n @if (contextMenuItems.length) {\r\n <bsu-ulv-context-menu\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></bsu-ulv-context-menu>\r\n } @if (canView && !hideOpenIcon) {\r\n <button (click)=\"onRowClick()\" fdType=\"transparent\" [glyph]=\"navigationArrow\" fd-button></button>\r\n }\r\n </a>\r\n </li>\r\n</ng-template>\r\n<ng-template #displayTemplate let-mo>\r\n @if (!mo.parent || mo.parent?.expanded) {\r\n <li\r\n class=\"display\"\r\n [ngClass]=\"deviceSize\"\r\n fd-list-item\r\n [interactive]=\"false\"\r\n (dblclick)=\"onRowClick()\"\r\n (click)=\"onRowCheck()\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\r\n >\r\n <a\r\n fd-list-link\r\n [attr.rtl]=\"rtl\"\r\n class=\"li-link\"\r\n style=\"cursor: default\"\r\n [class.checklist]=\"isCheckList\"\r\n #aEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"aEl\"\r\n style=\"column-gap: 3px\"\r\n >\r\n @if (setting.AvatarField) {\r\n <img\r\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\r\n style=\"width: 24px; height: 24px\"\r\n />\r\n } @if (setting.IconFont) {\r\n <i fd-list-icon [glyph]=\"setting.IconFont\" [style.color]=\"setting.IconColor ? setting.IconColor : null\">\r\n </i>\r\n } @if (!setting.IconFont && mo.$State === 'New' && !isChecked) {\r\n <i fd-list-icon glyph=\"favorite\"></i>\r\n } @if (!setting.IconFont && inlineEditMode && isChecked) {\r\n <i fd-list-icon glyph=\"edit\"></i>\r\n } @if (isCheckList) {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\r\n }\r\n <span fd-list-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.TitleField,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: 0\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.CounterField,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n @if (canView && !hideOpenIcon) {\r\n <button fd-button (click)=\"onRowClick()\" [glyph]=\"navigationArrow\" fdType=\"transparent\"></button>\r\n } @if (contextMenuItems.length) {\r\n <bsu-ulv-context-menu\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n ></bsu-ulv-context-menu>\r\n }\r\n </span>\r\n </a>\r\n </li>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #renderColumn\r\n let-column\r\n let-mo=\"mo\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-index=\"index\"\r\n let-layout94=\"layout94\"\r\n>\r\n @if (column) {\r\n <div\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n [dbName]=\"column.Name\"\r\n >\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"true\"\r\n [value]=\"column | columnValue: mo | bbbTranslate\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [editMode]=\"inlineEditMode && allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\r\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\r\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\r\n [formLayoutShowLabel]=\"true\"\r\n ></bsu-column-renderer>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host li.s{height:auto}:host .flex1{flex:1;display:flex;justify-content:start;flex-direction:row-reverse}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id", "preventClick"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i6.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i6.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i6.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i6.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "directive", type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i8.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "contextMenuOverflowText", "appendTo"], outputs: ["commandClick"] }, { kind: "component", type: i9.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["cellEdit", "column", "allColumns", "mo", "index", "editMode", "attachmentViewType", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "containerDom", "disableEllapsis", "rtl", "isMobile", "fdTextMode", "deviceName", "deviceSize", "value", "icon"] }, { kind: "directive", type: i10.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i11.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i11.ControlUiPipe, name: "controlUi" }, { kind: "pipe", type: i11.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i11.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
25
  }
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ListItemComponent, decorators: [{
27
27
  type: Component,