barsa-sap-ui 2.0.105 → 2.0.107

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 (38) hide show
  1. package/esm2022/lib/barsa-card-row-payam/barsa-card-row-payam.component.mjs +1 -1
  2. package/esm2022/lib/barsa-horizontal-flex-panel/barsa-horizontal-flex-panel.component.mjs +2 -2
  3. package/esm2022/lib/barsa-sap-ui.module.mjs +216 -215
  4. package/esm2022/lib/barsa-search-form/barsa-search-form.component.mjs +1 -1
  5. package/esm2022/lib/barsa-table-row/barsa-table-row.component.mjs +1 -1
  6. package/esm2022/lib/barsa-tree-item/barsa-tree-item.component.mjs +2 -2
  7. package/esm2022/lib/card-item/card-item.component.mjs +1 -1
  8. package/esm2022/lib/card-view-content/card-view-content.component.mjs +1 -1
  9. package/esm2022/lib/constants.mjs +2 -2
  10. package/esm2022/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +8 -6
  11. package/esm2022/lib/index.mjs +3 -1
  12. package/esm2022/lib/layout-actions/layout-actions.component.mjs +3 -3
  13. package/esm2022/lib/layout-control/layout-control.component.mjs +4 -4
  14. package/esm2022/lib/list-item/list-item.component.mjs +1 -1
  15. package/esm2022/lib/ly-simple-label/ly-simple-label.component.mjs +2 -2
  16. package/esm2022/lib/ui-button/ui-button.component.mjs +3 -3
  17. package/esm2022/lib/ui-check-box/ui-check-box.component.mjs +8 -3
  18. package/esm2022/lib/ui-date-time/ui-date-time.component.mjs +6 -5
  19. package/esm2022/lib/ui-form-panel/ui-form-panel.component.mjs +3 -3
  20. package/esm2022/lib/ui-map/ui-map.component.mjs +52 -0
  21. package/esm2022/lib/ui-read-only-field/ui-read-only-field.component.mjs +2 -2
  22. package/esm2022/lib/ui-report-container/ui-report-container.component.mjs +3 -3
  23. package/esm2022/lib/ui-simple-combo/ui-simple-combo.component.mjs +3 -3
  24. package/esm2022/lib/ui-tinymce/ui-tinymce.component.mjs +3 -3
  25. package/esm2022/lib/ulv-context-menu/ulv-context-menu.component.mjs +32 -5
  26. package/esm2022/lib/ulv-toolbar/ulv-toolbar.component.mjs +29 -6
  27. package/esm2022/public-api.mjs +2 -1
  28. package/fesm2022/barsa-sap-ui.mjs +306 -205
  29. package/fesm2022/barsa-sap-ui.mjs.map +1 -1
  30. package/lib/barsa-sap-ui.module.d.ts +228 -227
  31. package/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.d.ts +1 -1
  32. package/lib/index.d.ts +1 -1
  33. package/lib/ui-check-box/ui-check-box.component.d.ts +1 -0
  34. package/lib/ui-map/ui-map.component.d.ts +18 -0
  35. package/lib/ulv-context-menu/ulv-context-menu.component.d.ts +8 -1
  36. package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +6 -2
  37. package/package.json +1 -1
  38. package/public-api.d.ts +1 -0
@@ -41,15 +41,15 @@ export class UiSimpleComboComponent extends FieldBaseComponent {
41
41
  this.fireContextEvent('select', this.value);
42
42
  }
43
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiSimpleComboComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiSimpleComboComponent, selector: "bsu-ui-simple-combo", inputs: { MinSize: "MinSize" }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (Setting.IconDisplayType !== 'Image' && !popupMode) {\n<!-- <fd-select\n style=\"width: 100%\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [value]=\"value\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [mobileConfig]=\"mobileConfig\"\n (valueChange)=\"onValueChange($event)\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\n [readonly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n>\n @for (item of context.store.data[context.store.root]; track item) {\n <fd-option\n [value]=\"item.id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [class.control-disabled]=\"item.IsEmpty\"\n [class.list-empty-item]=\"item.IsEmpty\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, popupMode: true }\"></ng-container>\n </fd-option>\n }\n</fd-select> -->\n<fd-combobox\n [inputId]=\"id\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [displayFn]=\"displayFn\"\n [mobileConfig]=\"mobileConfig\"\n [(ngModel)]=\"tvalue\"\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n [fillOnSelect]=\"true\"\n [dropdownValues]=\"context.store.data[context.store.root]\"\n (itemClicked)=\"onItemClick($event)\"\n (change)=\"onChange($event)\"\n>\n <ng-container *fdComboboxItem=\"let item; use: rowDataOption; inputText as search\">\n <!-- Note that in this case you are responsible for highlighting. -->\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img fd-list-icon [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n <span fd-list-title [innerHTML]=\"item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate)\"></span>\n }\n </ng-container>\n</fd-combobox>\n} @if (Setting.IconDisplayType === 'Image' || popupMode) {\n<fd-popover #popover [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\n @if (value && value !== '0') {\n <img [src]=\"value | comboRowImg: context.store.data.Rows\" />\n }\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"combo-popupmode\">\n @for (item of context.store.data[context.store.root]; track item) {\n <button fd-button fdType=\"transparent\" [title]=\"item.txt\" (click)=\"popover.close(); onValueChange(item.id)\">\n @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n }\n </button>\n }\n </fd-popover-body>\n</fd-popover>\n}\n<ng-template #itemTemplate let-item let-popupMode=\"popupMode\">\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n {{ item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate) }}\n }\n</ng-template>\n", styles: [":host{display:flex;align-self:center;align-items:center;width:100%;height:100%}:host ::ng-deep fd-select fd-popover{width:100%}:host fd-combobox{width:100%}:host fd-combobox ::ng-deep fd-popover{width:100%}:host ::ng-deep .fd-popover-custom{width:100%}:host ::ng-deep fd-combobox-mobile fd-dialog-footer{position:absolute;bottom:0;width:100%}:host ::ng-deep fd-combobox-mobile .fd-dialog__content.fd-dialog__content--mobile{width:80svw;height:60svh}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}fd-popover{margin:.25rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.ComboboxComponent, selector: "fd-combobox", inputs: ["comboboxId", "inputId", "ariaLabel", "ariaLabelledBy", "required", "dropdownValues", "filterFn", "disabled", "placeholder", "isSearch", "glyph", "glyphFont", "showClearButton", "triggers", "closeOnOutsideClick", "openOnKeyboardEvent", "state", "itemTemplate", "groupFn", "maxHeight", "searchFn", "highlighting", "closeOnSelect", "fillOnSelect", "autoComplete", "fillControlMode", "communicateByObject", "displayFn", "buttonFocusable", "clearButtonFocusable", "readOnly", "mobile", "mobileConfig", "showDropdownButton", "includes", "title", "byline", "tabOutStrategy"], outputs: ["itemClicked", "openChange", "inputTextChange"] }, { kind: "directive", type: i4.ComboboxItemDirective, selector: "[fdComboboxItem]", inputs: ["fdComboboxItemUse"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ComboRowImagePipe, name: "comboRowImg" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiSimpleComboComponent, selector: "bsu-ui-simple-combo", inputs: { MinSize: "MinSize" }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (Setting.IconDisplayType !== 'Image' && !popupMode) {\r\n<!-- <fd-select\r\n style=\"width: 100%\"\r\n [placeholder]=\"'Select' | bbbTranslate\"\r\n [value]=\"value\"\r\n [mobile]=\"(deviceSize$ | async) === 's'\"\r\n [mobileConfig]=\"mobileConfig\"\r\n (valueChange)=\"onValueChange($event)\"\r\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\r\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\r\n [readonly]=\"(readonly$ | async) === true ? true : false\"\r\n [disabled]=\"(disable$ | async) === true ? true : false\"\r\n>\r\n @for (item of context.store.data[context.store.root]; track item) {\r\n <fd-option\r\n [value]=\"item.id\"\r\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\r\n [class.control-disabled]=\"item.IsEmpty\"\r\n [class.list-empty-item]=\"item.IsEmpty\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, popupMode: true }\"></ng-container>\r\n </fd-option>\r\n }\r\n</fd-select> -->\r\n<fd-combobox\r\n [inputId]=\"id\"\r\n [mobile]=\"(deviceSize$ | async) === 's'\"\r\n [placeholder]=\"'Select' | bbbTranslate\"\r\n [displayFn]=\"displayFn\"\r\n [mobileConfig]=\"mobileConfig\"\r\n [(ngModel)]=\"tvalue\"\r\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\r\n [disabled]=\"(disable$ | async) === true ? true : false\"\r\n [fillOnSelect]=\"true\"\r\n [dropdownValues]=\"context.store.data[context.store.root]\"\r\n (itemClicked)=\"onItemClick($event)\"\r\n (change)=\"onChange($event)\"\r\n>\r\n <ng-container *fdComboboxItem=\"let item; use: rowDataOption; inputText as search\">\r\n <!-- Note that in this case you are responsible for highlighting. -->\r\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\r\n <img fd-list-icon [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\r\n } } @if (Setting.IconDisplayType !== 'Image') {\r\n <span fd-list-title [innerHTML]=\"item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate)\"></span>\r\n }\r\n </ng-container>\r\n</fd-combobox>\r\n} @if (Setting.IconDisplayType === 'Image' || popupMode) {\r\n<fd-popover #popover [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\r\n @if (value && value !== '0') {\r\n <img [src]=\"value | comboRowImg: context.store.data.Rows\" />\r\n }\r\n </button>\r\n </fd-popover-control>\r\n <fd-popover-body class=\"combo-popupmode\">\r\n @for (item of context.store.data[context.store.root]; track item) {\r\n <button fd-button fdType=\"transparent\" [title]=\"item.txt\" (click)=\"popover.close(); onValueChange(item.id)\">\r\n @if (item.url) {\r\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\r\n }\r\n </button>\r\n }\r\n </fd-popover-body>\r\n</fd-popover>\r\n}\r\n<ng-template #itemTemplate let-item let-popupMode=\"popupMode\">\r\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\r\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\r\n } } @if (Setting.IconDisplayType !== 'Image') {\r\n {{ item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate) }}\r\n }\r\n</ng-template>\r\n", styles: [":host{display:flex;align-self:center;align-items:center;width:100%;height:100%}:host ::ng-deep fd-select fd-popover{width:100%}:host fd-combobox{width:100%}:host fd-combobox ::ng-deep fd-popover{width:100%}:host ::ng-deep .fd-popover-custom{width:100%}:host ::ng-deep fd-combobox-mobile fd-dialog-footer{position:absolute;bottom:0;width:100%}:host ::ng-deep fd-combobox-mobile .fd-dialog__content.fd-dialog__content--mobile{width:80svw;height:60svh}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}fd-popover{margin:.25rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.ComboboxComponent, selector: "fd-combobox", inputs: ["comboboxId", "inputId", "ariaLabel", "ariaLabelledBy", "required", "dropdownValues", "filterFn", "disabled", "placeholder", "isSearch", "glyph", "glyphFont", "showClearButton", "triggers", "closeOnOutsideClick", "openOnKeyboardEvent", "state", "itemTemplate", "groupFn", "maxHeight", "searchFn", "highlighting", "closeOnSelect", "fillOnSelect", "autoComplete", "fillControlMode", "communicateByObject", "displayFn", "buttonFocusable", "clearButtonFocusable", "readOnly", "mobile", "mobileConfig", "showDropdownButton", "includes", "title", "byline", "tabOutStrategy"], outputs: ["itemClicked", "openChange", "inputTextChange"] }, { kind: "directive", type: i4.ComboboxItemDirective, selector: "[fdComboboxItem]", inputs: ["fdComboboxItemUse"] }, { kind: "directive", type: i5.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i5.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ComboRowImagePipe, name: "comboRowImg" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
45
  }
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiSimpleComboComponent, decorators: [{
47
47
  type: Component,
48
- args: [{ selector: 'bsu-ui-simple-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (Setting.IconDisplayType !== 'Image' && !popupMode) {\n<!-- <fd-select\n style=\"width: 100%\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [value]=\"value\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [mobileConfig]=\"mobileConfig\"\n (valueChange)=\"onValueChange($event)\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\n [readonly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n>\n @for (item of context.store.data[context.store.root]; track item) {\n <fd-option\n [value]=\"item.id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n [class.control-disabled]=\"item.IsEmpty\"\n [class.list-empty-item]=\"item.IsEmpty\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, popupMode: true }\"></ng-container>\n </fd-option>\n }\n</fd-select> -->\n<fd-combobox\n [inputId]=\"id\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [placeholder]=\"'Select' | bbbTranslate\"\n [displayFn]=\"displayFn\"\n [mobileConfig]=\"mobileConfig\"\n [(ngModel)]=\"tvalue\"\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n [fillOnSelect]=\"true\"\n [dropdownValues]=\"context.store.data[context.store.root]\"\n (itemClicked)=\"onItemClick($event)\"\n (change)=\"onChange($event)\"\n>\n <ng-container *fdComboboxItem=\"let item; use: rowDataOption; inputText as search\">\n <!-- Note that in this case you are responsible for highlighting. -->\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img fd-list-icon [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n <span fd-list-title [innerHTML]=\"item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate)\"></span>\n }\n </ng-container>\n</fd-combobox>\n} @if (Setting.IconDisplayType === 'Image' || popupMode) {\n<fd-popover #popover [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\n <fd-popover-control>\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\n @if (value && value !== '0') {\n <img [src]=\"value | comboRowImg: context.store.data.Rows\" />\n }\n </button>\n </fd-popover-control>\n <fd-popover-body class=\"combo-popupmode\">\n @for (item of context.store.data[context.store.root]; track item) {\n <button fd-button fdType=\"transparent\" [title]=\"item.txt\" (click)=\"popover.close(); onValueChange(item.id)\">\n @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n }\n </button>\n }\n </fd-popover-body>\n</fd-popover>\n}\n<ng-template #itemTemplate let-item let-popupMode=\"popupMode\">\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\n } } @if (Setting.IconDisplayType !== 'Image') {\n {{ item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate) }}\n }\n</ng-template>\n", styles: [":host{display:flex;align-self:center;align-items:center;width:100%;height:100%}:host ::ng-deep fd-select fd-popover{width:100%}:host fd-combobox{width:100%}:host fd-combobox ::ng-deep fd-popover{width:100%}:host ::ng-deep .fd-popover-custom{width:100%}:host ::ng-deep fd-combobox-mobile fd-dialog-footer{position:absolute;bottom:0;width:100%}:host ::ng-deep fd-combobox-mobile .fd-dialog__content.fd-dialog__content--mobile{width:80svw;height:60svh}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}fd-popover{margin:.25rem 0}\n"] }]
48
+ args: [{ selector: 'bsu-ui-simple-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (Setting.IconDisplayType !== 'Image' && !popupMode) {\r\n<!-- <fd-select\r\n style=\"width: 100%\"\r\n [placeholder]=\"'Select' | bbbTranslate\"\r\n [value]=\"value\"\r\n [mobile]=\"(deviceSize$ | async) === 's'\"\r\n [mobileConfig]=\"mobileConfig\"\r\n (valueChange)=\"onValueChange($event)\"\r\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\r\n [style.text-align]=\"Setting.IsLtr === true ? 'left' : null\"\r\n [readonly]=\"(readonly$ | async) === true ? true : false\"\r\n [disabled]=\"(disable$ | async) === true ? true : false\"\r\n>\r\n @for (item of context.store.data[context.store.root]; track item) {\r\n <fd-option\r\n [value]=\"item.id\"\r\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\r\n [class.control-disabled]=\"item.IsEmpty\"\r\n [class.list-empty-item]=\"item.IsEmpty\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, popupMode: true }\"></ng-container>\r\n </fd-option>\r\n }\r\n</fd-select> -->\r\n<fd-combobox\r\n [inputId]=\"id\"\r\n [mobile]=\"(deviceSize$ | async) === 's'\"\r\n [placeholder]=\"'Select' | bbbTranslate\"\r\n [displayFn]=\"displayFn\"\r\n [mobileConfig]=\"mobileConfig\"\r\n [(ngModel)]=\"tvalue\"\r\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\r\n [disabled]=\"(disable$ | async) === true ? true : false\"\r\n [fillOnSelect]=\"true\"\r\n [dropdownValues]=\"context.store.data[context.store.root]\"\r\n (itemClicked)=\"onItemClick($event)\"\r\n (change)=\"onChange($event)\"\r\n>\r\n <ng-container *fdComboboxItem=\"let item; use: rowDataOption; inputText as search\">\r\n <!-- Note that in this case you are responsible for highlighting. -->\r\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\r\n <img fd-list-icon [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\r\n } } @if (Setting.IconDisplayType !== 'Image') {\r\n <span fd-list-title [innerHTML]=\"item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate)\"></span>\r\n }\r\n </ng-container>\r\n</fd-combobox>\r\n} @if (Setting.IconDisplayType === 'Image' || popupMode) {\r\n<fd-popover #popover [focusTrapped]=\"true\" [focusAutoCapture]=\"true\">\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\r\n @if (value && value !== '0') {\r\n <img [src]=\"value | comboRowImg: context.store.data.Rows\" />\r\n }\r\n </button>\r\n </fd-popover-control>\r\n <fd-popover-body class=\"combo-popupmode\">\r\n @for (item of context.store.data[context.store.root]; track item) {\r\n <button fd-button fdType=\"transparent\" [title]=\"item.txt\" (click)=\"popover.close(); onValueChange(item.id)\">\r\n @if (item.url) {\r\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\r\n }\r\n </button>\r\n }\r\n </fd-popover-body>\r\n</fd-popover>\r\n}\r\n<ng-template #itemTemplate let-item let-popupMode=\"popupMode\">\r\n @if (Setting.IconDisplayType !== 'NoImage') { @if (item.url) {\r\n <img [attrRtl]=\"Setting.IsLtr === true ? false : undefined\" [src]=\"item.url\" />\r\n } } @if (Setting.IconDisplayType !== 'Image') {\r\n {{ item.IsEmpty ? ('Select' | bbbTranslate) : (item.txt | bbbTranslate) }}\r\n }\r\n</ng-template>\r\n", styles: [":host{display:flex;align-self:center;align-items:center;width:100%;height:100%}:host ::ng-deep fd-select fd-popover{width:100%}:host fd-combobox{width:100%}:host fd-combobox ::ng-deep fd-popover{width:100%}:host ::ng-deep .fd-popover-custom{width:100%}:host ::ng-deep fd-combobox-mobile fd-dialog-footer{position:absolute;bottom:0;width:100%}:host ::ng-deep fd-combobox-mobile .fd-dialog__content.fd-dialog__content--mobile{width:80svw;height:60svh}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}fd-popover{margin:.25rem 0}\n"] }]
49
49
  }], propDecorators: { fdComboRef: [{
50
50
  type: ViewChild,
51
51
  args: [ComboboxComponent]
52
52
  }], MinSize: [{
53
53
  type: Input
54
54
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktc2ltcGxlLWNvbWJvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLXNpbXBsZS1jb21iby91aS1zaW1wbGUtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktc2ltcGxlLWNvbWJvL3VpLXNpbXBsZS1jb21iby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBT3pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFOOUQ7O1FBcUNJLGNBQVMsR0FBRyxDQUFDLEdBQWtCLEVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQU96RjtJQTlCRyxJQUFhLE9BQU87UUFDaEIsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BHLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQUs7UUFDZixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxXQUFXLENBQUMsQ0FBZTtRQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsUUFBUSxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBSVMsa0JBQWtCLENBQUMsYUFBa0I7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7OEdBckNRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHVJQUNwQixpQkFBaUIsdUVDWGhDLHV6R0EwRUE7OzJGRGhFYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBR2pCLFVBQVU7c0JBQXZDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQU9mLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50LCBDb21ib2JveEl0ZW0gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQgeyBGaWVsZEJhc2VDb21wb25lbnQsIFJvd0RhdGFPcHRpb24gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1zaW1wbGUtY29tYm8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1zaW1wbGUtY29tYm8uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLXNpbXBsZS1jb21iby5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpU2ltcGxlQ29tYm9Db21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoQ29tYm9ib3hDb21wb25lbnQpIGZkQ29tYm9SZWY6IENvbWJvYm94Q29tcG9uZW50O1xuXG4gICAgY2FwdGlvbjogc3RyaW5nO1xuICAgIHBvcHVwTW9kZTogYm9vbGVhbjtcbiAgICB2YWx1ZVRleHQ6IGFueTtcbiAgICByb3dEYXRhT3B0aW9uOiBSb3dEYXRhT3B0aW9uO1xuICAgIHR2YWx1ZTogUm93RGF0YU9wdGlvbjtcbiAgICBASW5wdXQoKSBnZXQgTWluU2l6ZSgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0ge1xuICAgICAgICByZXR1cm4geyB3aWR0aDogMCwgaGVpZ2h0OiAyNyB9O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnBvcHVwTW9kZSA9IHRoaXMucGFyYW1ldGVycz8uUG9wdXBNb2RlO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy50dmFsdWUgPSB0aGlzLmNvbnRleHQuc3RvcmUuZGF0YVt0aGlzLmNvbnRleHQuc3RvcmUucm9vdF0uZmluZCgoYykgPT4gYy5pZCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2hhbmRsZVZhbHVlQ2hhbmdlKHNlbGVjdGVkVmFsdWUpO1xuICAgIH1cbiAgICBvbkl0ZW1DbGljayhlOiBDb21ib2JveEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faGFuZGxlVmFsdWVDaGFuZ2UoZS5pdGVtLmlkKTtcbiAgICB9XG4gICAgb25DaGFuZ2UoZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnR2YWx1ZSA9IHRoaXMuY29udGV4dC5zdG9yZS5kYXRhW3RoaXMuY29udGV4dC5zdG9yZS5yb290XS5maW5kKChjKSA9PiBjLnR4dCA9PT0gZS50YXJnZXQudmFsdWUpO1xuICAgICAgICB0aGlzLl9oYW5kbGVWYWx1ZUNoYW5nZSh0aGlzLnR2YWx1ZS5pZCk7XG4gICAgfVxuXG4gICAgZGlzcGxheUZuID0gKG9iajogUm93RGF0YU9wdGlvbik6IHN0cmluZyA9PiAob2JqID8gKG9iai5Jc0VtcHR5ID8gJycgOiBvYmoudHh0KSA6ICcnKTtcblxuICAgIHByb3RlY3RlZCBfaGFuZGxlVmFsdWVDaGFuZ2Uoc2VsZWN0ZWRWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZFZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnc2VsZWN0JywgdGhpcy52YWx1ZSk7XG4gICAgfVxufVxuIiwiQGlmIChTZXR0aW5nLkljb25EaXNwbGF5VHlwZSAhPT0gJ0ltYWdlJyAmJiAhcG9wdXBNb2RlKSB7XG48IS0tIDxmZC1zZWxlY3RcbiAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgW21vYmlsZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykgPT09ICdzJ1wiXG4gICAgW21vYmlsZUNvbmZpZ109XCJtb2JpbGVDb25maWdcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIFtzdHlsZS5kaXJlY3Rpb25dPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/ICdsdHInIDogbnVsbFwiXG4gICAgW3N0eWxlLnRleHQtYWxpZ25dPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/ICdsZWZ0JyA6IG51bGxcIlxuICAgIFtyZWFkb25seV09XCIocmVhZG9ubHkkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcbj5cbiAgICBAZm9yIChpdGVtIG9mIGNvbnRleHQuc3RvcmUuZGF0YVtjb250ZXh0LnN0b3JlLnJvb3RdOyB0cmFjayBpdGVtKSB7XG4gICAgPGZkLW9wdGlvblxuICAgICAgICBbdmFsdWVdPVwiaXRlbS5pZFwiXG4gICAgICAgIFtzdHlsZS5kaXJlY3Rpb25dPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/ICdsdHInIDogbnVsbFwiXG4gICAgICAgIFtjbGFzcy5jb250cm9sLWRpc2FibGVkXT1cIml0ZW0uSXNFbXB0eVwiXG4gICAgICAgIFtjbGFzcy5saXN0LWVtcHR5LWl0ZW1dPVwiaXRlbS5Jc0VtcHR5XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBwb3B1cE1vZGU6IHRydWUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZmQtb3B0aW9uPlxuICAgIH1cbjwvZmQtc2VsZWN0PiAtLT5cbjxmZC1jb21ib2JveFxuICAgIFtpbnB1dElkXT1cImlkXCJcbiAgICBbbW9iaWxlXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSA9PT0gJ3MnXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCcgfCBiYmJUcmFuc2xhdGVcIlxuICAgIFtkaXNwbGF5Rm5dPVwiZGlzcGxheUZuXCJcbiAgICBbbW9iaWxlQ29uZmlnXT1cIm1vYmlsZUNvbmZpZ1wiXG4gICAgWyhuZ01vZGVsKV09XCJ0dmFsdWVcIlxuICAgIFtyZWFkT25seV09XCIocmVhZG9ubHkkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICBbZmlsbE9uU2VsZWN0XT1cInRydWVcIlxuICAgIFtkcm9wZG93blZhbHVlc109XCJjb250ZXh0LnN0b3JlLmRhdGFbY29udGV4dC5zdG9yZS5yb290XVwiXG4gICAgKGl0ZW1DbGlja2VkKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqZmRDb21ib2JveEl0ZW09XCJsZXQgaXRlbTsgdXNlOiByb3dEYXRhT3B0aW9uOyBpbnB1dFRleHQgYXMgc2VhcmNoXCI+XG4gICAgICAgIDwhLS0gTm90ZSB0aGF0IGluIHRoaXMgY2FzZSB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBoaWdobGlnaHRpbmcuIC0tPlxuICAgICAgICBAaWYgKFNldHRpbmcuSWNvbkRpc3BsYXlUeXBlICE9PSAnTm9JbWFnZScpIHsgQGlmIChpdGVtLnVybCkge1xuICAgICAgICA8aW1nIGZkLWxpc3QtaWNvbiBbYXR0clJ0bF09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gZmFsc2UgOiB1bmRlZmluZWRcIiBbc3JjXT1cIml0ZW0udXJsXCIgLz5cbiAgICAgICAgfSB9IEBpZiAoU2V0dGluZy5JY29uRGlzcGxheVR5cGUgIT09ICdJbWFnZScpIHtcbiAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZSBbaW5uZXJIVE1MXT1cIml0ZW0uSXNFbXB0eSA/ICgnU2VsZWN0JyB8IGJiYlRyYW5zbGF0ZSkgOiAoaXRlbS50eHQgfCBiYmJUcmFuc2xhdGUpXCI+PC9zcGFuPlxuICAgICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG48L2ZkLWNvbWJvYm94PlxufSBAaWYgKFNldHRpbmcuSWNvbkRpc3BsYXlUeXBlID09PSAnSW1hZ2UnIHx8IHBvcHVwTW9kZSkge1xuPGZkLXBvcG92ZXIgI3BvcG92ZXIgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCIgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiPlxuICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2ZkTWVudV09XCJ0cnVlXCI+XG4gICAgICAgICAgICBAaWYgKHZhbHVlICYmIHZhbHVlICE9PSAnMCcpIHtcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJ2YWx1ZSB8IGNvbWJvUm93SW1nOiBjb250ZXh0LnN0b3JlLmRhdGEuUm93c1wiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgIDxmZC1wb3BvdmVyLWJvZHkgY2xhc3M9XCJjb21iby1wb3B1cG1vZGVcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBjb250ZXh0LnN0b3JlLmRhdGFbY29udGV4dC5zdG9yZS5yb290XTsgdHJhY2sgaXRlbSkge1xuICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFt0aXRsZV09XCJpdGVtLnR4dFwiIChjbGljayk9XCJwb3BvdmVyLmNsb3NlKCk7IG9uVmFsdWVDaGFuZ2UoaXRlbS5pZClcIj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS51cmwpIHtcbiAgICAgICAgICAgIDxpbWcgW2F0dHJSdGxdPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/IGZhbHNlIDogdW5kZWZpbmVkXCIgW3NyY109XCJpdGVtLnVybFwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9mZC1wb3BvdmVyLWJvZHk+XG48L2ZkLXBvcG92ZXI+XG59XG48bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZSBsZXQtaXRlbSBsZXQtcG9wdXBNb2RlPVwicG9wdXBNb2RlXCI+XG4gICAgQGlmIChTZXR0aW5nLkljb25EaXNwbGF5VHlwZSAhPT0gJ05vSW1hZ2UnKSB7IEBpZiAoaXRlbS51cmwpIHtcbiAgICA8aW1nIFthdHRyUnRsXT1cIlNldHRpbmcuSXNMdHIgPT09IHRydWUgPyBmYWxzZSA6IHVuZGVmaW5lZFwiIFtzcmNdPVwiaXRlbS51cmxcIiAvPlxuICAgIH0gfSBAaWYgKFNldHRpbmcuSWNvbkRpc3BsYXlUeXBlICE9PSAnSW1hZ2UnKSB7XG4gICAge3sgaXRlbS5Jc0VtcHR5ID8gKCdTZWxlY3QnIHwgYmJiVHJhbnNsYXRlKSA6IChpdGVtLnR4dCB8IGJiYlRyYW5zbGF0ZSkgfX1cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktc2ltcGxlLWNvbWJvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLXNpbXBsZS1jb21iby91aS1zaW1wbGUtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktc2ltcGxlLWNvbWJvL3VpLXNpbXBsZS1jb21iby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBT3pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFOOUQ7O1FBcUNJLGNBQVMsR0FBRyxDQUFDLEdBQWtCLEVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQU96RjtJQTlCRyxJQUFhLE9BQU87UUFDaEIsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BHLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQUs7UUFDZixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxXQUFXLENBQUMsQ0FBZTtRQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsUUFBUSxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBSVMsa0JBQWtCLENBQUMsYUFBa0I7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7OEdBckNRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHVJQUNwQixpQkFBaUIsdUVDWGhDLDI4R0EwRUE7OzJGRGhFYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBR2pCLFVBQVU7c0JBQXZDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQU9mLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tYm9ib3hDb21wb25lbnQsIENvbWJvYm94SXRlbSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGaWVsZEJhc2VDb21wb25lbnQsIFJvd0RhdGFPcHRpb24gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktc2ltcGxlLWNvbWJvJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1zaW1wbGUtY29tYm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktc2ltcGxlLWNvbWJvLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlTaW1wbGVDb21ib0NvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKENvbWJvYm94Q29tcG9uZW50KSBmZENvbWJvUmVmOiBDb21ib2JveENvbXBvbmVudDtcclxuXHJcbiAgICBjYXB0aW9uOiBzdHJpbmc7XHJcbiAgICBwb3B1cE1vZGU6IGJvb2xlYW47XHJcbiAgICB2YWx1ZVRleHQ6IGFueTtcclxuICAgIHJvd0RhdGFPcHRpb246IFJvd0RhdGFPcHRpb247XHJcbiAgICB0dmFsdWU6IFJvd0RhdGFPcHRpb247XHJcbiAgICBASW5wdXQoKSBnZXQgTWluU2l6ZSgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0ge1xyXG4gICAgICAgIHJldHVybiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDI3IH07XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnBvcHVwTW9kZSA9IHRoaXMucGFyYW1ldGVycz8uUG9wdXBNb2RlO1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHZhbHVlID0gdGhpcy5jb250ZXh0LnN0b3JlLmRhdGFbdGhpcy5jb250ZXh0LnN0b3JlLnJvb3RdLmZpbmQoKGMpID0+IGMuaWQgPT09IHRoaXMudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlVmFsdWVDaGFuZ2Uoc2VsZWN0ZWRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvbkl0ZW1DbGljayhlOiBDb21ib2JveEl0ZW0pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9oYW5kbGVWYWx1ZUNoYW5nZShlLml0ZW0uaWQpO1xyXG4gICAgfVxyXG4gICAgb25DaGFuZ2UoZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudHZhbHVlID0gdGhpcy5jb250ZXh0LnN0b3JlLmRhdGFbdGhpcy5jb250ZXh0LnN0b3JlLnJvb3RdLmZpbmQoKGMpID0+IGMudHh0ID09PSBlLnRhcmdldC52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlVmFsdWVDaGFuZ2UodGhpcy50dmFsdWUuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXlGbiA9IChvYmo6IFJvd0RhdGFPcHRpb24pOiBzdHJpbmcgPT4gKG9iaiA/IChvYmouSXNFbXB0eSA/ICcnIDogb2JqLnR4dCkgOiAnJyk7XHJcblxyXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVWYWx1ZUNoYW5nZShzZWxlY3RlZFZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWRWYWx1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdzZWxlY3QnLCB0aGlzLnZhbHVlKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKFNldHRpbmcuSWNvbkRpc3BsYXlUeXBlICE9PSAnSW1hZ2UnICYmICFwb3B1cE1vZGUpIHtcclxuPCEtLSA8ZmQtc2VsZWN0XHJcbiAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgW21vYmlsZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykgPT09ICdzJ1wiXHJcbiAgICBbbW9iaWxlQ29uZmlnXT1cIm1vYmlsZUNvbmZpZ1wiXHJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIFtzdHlsZS5kaXJlY3Rpb25dPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/ICdsdHInIDogbnVsbFwiXHJcbiAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gJ2xlZnQnIDogbnVsbFwiXHJcbiAgICBbcmVhZG9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcclxuPlxyXG4gICAgQGZvciAoaXRlbSBvZiBjb250ZXh0LnN0b3JlLmRhdGFbY29udGV4dC5zdG9yZS5yb290XTsgdHJhY2sgaXRlbSkge1xyXG4gICAgPGZkLW9wdGlvblxyXG4gICAgICAgIFt2YWx1ZV09XCJpdGVtLmlkXCJcclxuICAgICAgICBbc3R5bGUuZGlyZWN0aW9uXT1cIlNldHRpbmcuSXNMdHIgPT09IHRydWUgPyAnbHRyJyA6IG51bGxcIlxyXG4gICAgICAgIFtjbGFzcy5jb250cm9sLWRpc2FibGVkXT1cIml0ZW0uSXNFbXB0eVwiXHJcbiAgICAgICAgW2NsYXNzLmxpc3QtZW1wdHktaXRlbV09XCJpdGVtLklzRW1wdHlcIlxyXG4gICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBwb3B1cE1vZGU6IHRydWUgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9mZC1vcHRpb24+XHJcbiAgICB9XHJcbjwvZmQtc2VsZWN0PiAtLT5cclxuPGZkLWNvbWJvYm94XHJcbiAgICBbaW5wdXRJZF09XCJpZFwiXHJcbiAgICBbbW9iaWxlXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSA9PT0gJ3MnXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICBbZGlzcGxheUZuXT1cImRpc3BsYXlGblwiXHJcbiAgICBbbW9iaWxlQ29uZmlnXT1cIm1vYmlsZUNvbmZpZ1wiXHJcbiAgICBbKG5nTW9kZWwpXT1cInR2YWx1ZVwiXHJcbiAgICBbcmVhZE9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgIFtmaWxsT25TZWxlY3RdPVwidHJ1ZVwiXHJcbiAgICBbZHJvcGRvd25WYWx1ZXNdPVwiY29udGV4dC5zdG9yZS5kYXRhW2NvbnRleHQuc3RvcmUucm9vdF1cIlxyXG4gICAgKGl0ZW1DbGlja2VkKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxyXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqZmRDb21ib2JveEl0ZW09XCJsZXQgaXRlbTsgdXNlOiByb3dEYXRhT3B0aW9uOyBpbnB1dFRleHQgYXMgc2VhcmNoXCI+XHJcbiAgICAgICAgPCEtLSBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlIHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIGhpZ2hsaWdodGluZy4gLS0+XHJcbiAgICAgICAgQGlmIChTZXR0aW5nLkljb25EaXNwbGF5VHlwZSAhPT0gJ05vSW1hZ2UnKSB7IEBpZiAoaXRlbS51cmwpIHtcclxuICAgICAgICA8aW1nIGZkLWxpc3QtaWNvbiBbYXR0clJ0bF09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gZmFsc2UgOiB1bmRlZmluZWRcIiBbc3JjXT1cIml0ZW0udXJsXCIgLz5cclxuICAgICAgICB9IH0gQGlmIChTZXR0aW5nLkljb25EaXNwbGF5VHlwZSAhPT0gJ0ltYWdlJykge1xyXG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGUgW2lubmVySFRNTF09XCJpdGVtLklzRW1wdHkgPyAoJ1NlbGVjdCcgfCBiYmJUcmFuc2xhdGUpIDogKGl0ZW0udHh0IHwgYmJiVHJhbnNsYXRlKVwiPjwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9mZC1jb21ib2JveD5cclxufSBAaWYgKFNldHRpbmcuSWNvbkRpc3BsYXlUeXBlID09PSAnSW1hZ2UnIHx8IHBvcHVwTW9kZSkge1xyXG48ZmQtcG9wb3ZlciAjcG9wb3ZlciBbZm9jdXNUcmFwcGVkXT1cInRydWVcIiBbZm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCI+XHJcbiAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2ZkTWVudV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIEBpZiAodmFsdWUgJiYgdmFsdWUgIT09ICcwJykge1xyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwidmFsdWUgfCBjb21ib1Jvd0ltZzogY29udGV4dC5zdG9yZS5kYXRhLlJvd3NcIiAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgIDxmZC1wb3BvdmVyLWJvZHkgY2xhc3M9XCJjb21iby1wb3B1cG1vZGVcIj5cclxuICAgICAgICBAZm9yIChpdGVtIG9mIGNvbnRleHQuc3RvcmUuZGF0YVtjb250ZXh0LnN0b3JlLnJvb3RdOyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbdGl0bGVdPVwiaXRlbS50eHRcIiAoY2xpY2spPVwicG9wb3Zlci5jbG9zZSgpOyBvblZhbHVlQ2hhbmdlKGl0ZW0uaWQpXCI+XHJcbiAgICAgICAgICAgIEBpZiAoaXRlbS51cmwpIHtcclxuICAgICAgICAgICAgPGltZyBbYXR0clJ0bF09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gZmFsc2UgOiB1bmRlZmluZWRcIiBbc3JjXT1cIml0ZW0udXJsXCIgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG48L2ZkLXBvcG92ZXI+XHJcbn1cclxuPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGUgbGV0LWl0ZW0gbGV0LXBvcHVwTW9kZT1cInBvcHVwTW9kZVwiPlxyXG4gICAgQGlmIChTZXR0aW5nLkljb25EaXNwbGF5VHlwZSAhPT0gJ05vSW1hZ2UnKSB7IEBpZiAoaXRlbS51cmwpIHtcclxuICAgIDxpbWcgW2F0dHJSdGxdPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/IGZhbHNlIDogdW5kZWZpbmVkXCIgW3NyY109XCJpdGVtLnVybFwiIC8+XHJcbiAgICB9IH0gQGlmIChTZXR0aW5nLkljb25EaXNwbGF5VHlwZSAhPT0gJ0ltYWdlJykge1xyXG4gICAge3sgaXRlbS5Jc0VtcHR5ID8gKCdTZWxlY3QnIHwgYmJiVHJhbnNsYXRlKSA6IChpdGVtLnR4dCB8IGJiYlRyYW5zbGF0ZSkgfX1cclxuICAgIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -41,13 +41,13 @@ export class UiTinymceComponent extends FieldBaseComponent {
41
41
  this.context.fireEvent('change', this, newValue, this.value, {});
42
42
  }
43
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTinymceComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: UiTinymceComponent, selector: "bsu-ui-tinymce", host: { properties: { "style.min-height": "this.tinyHeight" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\n <div\n class=\"html-readonly\"\n *ngIf=\"Setting.IsHtmlViewer || (disableOrReadonly$ | async); else textarea\"\n [class.readonly]=\"readonly$ | async\"\n [class.anonymous]=\"isAnonymous\"\n [class.disable]=\"disable$ | async\"\n [innerHtml]=\"Setting.IsHtmlViewer ? sefeValue : ''\"\n ></div>\n <ng-template #textarea>\n <bsu-mask *ngIf=\"!tinyInit\"></bsu-mask>\n <bsu-barsa-tinyemce\n [Setting]=\"Setting\"\n [IsInline]=\"parameters?.IsInline === true\"\n [value]=\"value\"\n [defaultVerbs]=\"context.defaultVerbs\"\n (tinyInit)=\"onTinyInit()\"\n (valueChange)=\"onTinyChanged($event)\"\n [readonly]=\"isReadonly\"\n ></bsu-barsa-tinyemce>\n </ng-template>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;height:100%;width:100%;align-self:flex-start;min-width:320px}:host ::ng-deep .tox.tox-tinymce{border-radius:0%;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.html-readonly,bsu-barsa-tinyemce{flex-grow:1}.readonly{background:var(--sapBackgroundColor);height:100%}.disable{background:var(--sapBackgroundColor);height:100%;opacity:.5}.readonly.anonymous{background-color:transparent;border:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i4.BarsaTinyemceComponent, selector: "bsu-barsa-tinyemce", inputs: ["Setting", "isReadonly", "value", "IsInline", "defaultVerbs"], outputs: ["valueChange", "tinyInit"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: UiTinymceComponent, selector: "bsu-ui-tinymce", host: { properties: { "style.min-height": "this.tinyHeight" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\n <div\n class=\"html-readonly\"\n *ngIf=\"Setting.IsHtmlViewer || (disableOrReadonly$ | async); else textarea\"\n [class.readonly]=\"readonly$ | async\"\n [class.anonymous]=\"isAnonymous\"\n [class.disable]=\"disable$ | async\"\n [innerHtml]=\"Setting.IsHtmlViewer ? sefeValue : ''\"\n ></div>\n <ng-template #textarea>\n <bsu-mask *ngIf=\"!tinyInit\"></bsu-mask>\n <bsu-barsa-tinyemce\n [attr.ismobile]=\"isMobile\"\n [attr.ismobile]=\"isTablet\"\n [Setting]=\"Setting\"\n [IsInline]=\"parameters?.IsInline === true\"\n [value]=\"value\"\n [defaultVerbs]=\"context.defaultVerbs\"\n (tinyInit)=\"onTinyInit()\"\n (valueChange)=\"onTinyChanged($event)\"\n [readonly]=\"isReadonly\"\n ></bsu-barsa-tinyemce>\n </ng-template>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;height:100%;width:100%;align-self:flex-start;min-width:320px}:host ::ng-deep .tox.tox-tinymce{border-radius:0%;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.html-readonly,bsu-barsa-tinyemce{flex-grow:1}.readonly{background:var(--sapBackgroundColor);height:100%}.disable{background:var(--sapBackgroundColor);height:100%;opacity:.5}.readonly.anonymous{background-color:transparent;border:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i4.BarsaTinyemceComponent, selector: "bsu-barsa-tinyemce", inputs: ["Setting", "isReadonly", "value", "IsInline", "defaultVerbs"], outputs: ["valueChange", "tinyInit"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
45
  }
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTinymceComponent, decorators: [{
47
47
  type: Component,
48
- args: [{ selector: 'bsu-ui-tinymce', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *untilInView=\"el\">\n <div\n class=\"html-readonly\"\n *ngIf=\"Setting.IsHtmlViewer || (disableOrReadonly$ | async); else textarea\"\n [class.readonly]=\"readonly$ | async\"\n [class.anonymous]=\"isAnonymous\"\n [class.disable]=\"disable$ | async\"\n [innerHtml]=\"Setting.IsHtmlViewer ? sefeValue : ''\"\n ></div>\n <ng-template #textarea>\n <bsu-mask *ngIf=\"!tinyInit\"></bsu-mask>\n <bsu-barsa-tinyemce\n [Setting]=\"Setting\"\n [IsInline]=\"parameters?.IsInline === true\"\n [value]=\"value\"\n [defaultVerbs]=\"context.defaultVerbs\"\n (tinyInit)=\"onTinyInit()\"\n (valueChange)=\"onTinyChanged($event)\"\n [readonly]=\"isReadonly\"\n ></bsu-barsa-tinyemce>\n </ng-template>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;height:100%;width:100%;align-self:flex-start;min-width:320px}:host ::ng-deep .tox.tox-tinymce{border-radius:0%;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.html-readonly,bsu-barsa-tinyemce{flex-grow:1}.readonly{background:var(--sapBackgroundColor);height:100%}.disable{background:var(--sapBackgroundColor);height:100%;opacity:.5}.readonly.anonymous{background-color:transparent;border:none}\n"] }]
48
+ args: [{ selector: 'bsu-ui-tinymce', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *untilInView=\"el\">\n <div\n class=\"html-readonly\"\n *ngIf=\"Setting.IsHtmlViewer || (disableOrReadonly$ | async); else textarea\"\n [class.readonly]=\"readonly$ | async\"\n [class.anonymous]=\"isAnonymous\"\n [class.disable]=\"disable$ | async\"\n [innerHtml]=\"Setting.IsHtmlViewer ? sefeValue : ''\"\n ></div>\n <ng-template #textarea>\n <bsu-mask *ngIf=\"!tinyInit\"></bsu-mask>\n <bsu-barsa-tinyemce\n [attr.ismobile]=\"isMobile\"\n [attr.ismobile]=\"isTablet\"\n [Setting]=\"Setting\"\n [IsInline]=\"parameters?.IsInline === true\"\n [value]=\"value\"\n [defaultVerbs]=\"context.defaultVerbs\"\n (tinyInit)=\"onTinyInit()\"\n (valueChange)=\"onTinyChanged($event)\"\n [readonly]=\"isReadonly\"\n ></bsu-barsa-tinyemce>\n </ng-template>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;height:100%;width:100%;align-self:flex-start;min-width:320px}:host ::ng-deep .tox.tox-tinymce{border-radius:0%;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.html-readonly,bsu-barsa-tinyemce{flex-grow:1}.readonly{background:var(--sapBackgroundColor);height:100%}.disable{background:var(--sapBackgroundColor);height:100%;opacity:.5}.readonly.anonymous{background-color:transparent;border:none}\n"] }]
49
49
  }], propDecorators: { tinyHeight: [{
50
50
  type: HostBinding,
51
51
  args: ['style.min-height']
52
52
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGlueW1jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10aW55bWNlL3VpLXRpbnltY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdGlueW1jZS91aS10aW55bWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUdsSCxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUF1QixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFRekYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtJQU4xRDs7UUFPcUMsZUFBVSxHQUFHLE9BQU8sQ0FBQztRQUd0RCxhQUFRLEdBQUcsS0FBSyxDQUFDO0tBZ0NwQjtJQTdCRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUM1RSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQTRCLENBQUM7UUFDakQsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztRQUMxRCwwREFBMEQ7SUFDOUQsQ0FBQztJQUNELFdBQVcsQ0FBQyxhQUE0QjtRQUNwQyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pDLElBQUksYUFBYSxDQUFDLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVFLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVU7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBQ0QsYUFBYSxDQUFDLFFBQVE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQzs4R0FuQ1Esa0JBQWtCO2tHQUFsQixrQkFBa0IsbUtDWC9CLHEyQkFzQkE7OzJGRFhhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTs4QkFHZCxVQUFVO3NCQUExQyxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgQmFyc2FBcGksIEZpZWxkQmFzZUNvbXBvbmVudCwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktdGlueW1jZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXRpbnltY2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLXRpbnltY2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaVRpbnltY2VDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4taGVpZ2h0JykgdGlueUhlaWdodCA9ICcxMDBweCc7XG4gICAgaXNSZWFkb25seTogYm9vbGVhbjtcbiAgICBzZWZlVmFsdWU6IFNhZmVIdG1sO1xuICAgIHRpbnlJbml0ID0gZmFsc2U7XG4gICAgaXNBbm9ueW1vdXM6IGJvb2xlYW47XG4gICAgcGFyYW1ldGVyczogVWlUaW55bWNlU2V0dGluZztcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5pc1JlYWRvbmx5ID0gdGhpcy5TZXR0aW5nLklzUmVhZE9ubHkgfHwgdGhpcy5TZXR0aW5nLkNvbnRyb2xJc1JlYWRPbmx5O1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmIChlbC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICBlbC5wYXJlbnRFbGVtZW50LnN0eWxlLmFsaWduU2VsZiA9ICdzdHJldGNoJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5TZXR0aW5nLklzSHRtbFZpZXdlcikge1xuICAgICAgICAgICAgdGhpcy50aW55SGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgdGhpcy5zZWZlVmFsdWUgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0Fub255bW91cyA9ICFCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzVXNlckxvZ2dlZEluO1xuICAgICAgICAvLyB0aGlzLnRpbnlIZWlnaHQgPSB0aGlzLmxheW91dEluZm8uQ29udHJvbEJvdW5kcy5oZWlnaHQ7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlcyk7XG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2VzLnZhbHVlICYmICFzaW1wbGVDaGFuZ2VzLnZhbHVlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5TZXR0aW5nLklzSHRtbFZpZXdlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VmZVZhbHVlID0gdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uVGlueUluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGlueUluaXQgPSB0cnVlO1xuICAgIH1cbiAgICBvblRpbnlDaGFuZ2VkKG5ld1ZhbHVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjaGFuZ2UnLCB0aGlzLCBuZXdWYWx1ZSwgdGhpcy52YWx1ZSwge30pO1xuICAgIH1cbn1cbmludGVyZmFjZSBVaVRpbnltY2VTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgSXNJbmxpbmU6IGJvb2xlYW47XG59XG4iLCI8bmctY29udGFpbmVyICp1bnRpbEluVmlldz1cImVsXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImh0bWwtcmVhZG9ubHlcIlxuICAgICAgICAqbmdJZj1cIlNldHRpbmcuSXNIdG1sVmlld2VyIHx8IChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYyk7IGVsc2UgdGV4dGFyZWFcIlxuICAgICAgICBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHkkIHwgYXN5bmNcIlxuICAgICAgICBbY2xhc3MuYW5vbnltb3VzXT1cImlzQW5vbnltb3VzXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVdPVwiZGlzYWJsZSQgfCBhc3luY1wiXG4gICAgICAgIFtpbm5lckh0bWxdPVwiU2V0dGluZy5Jc0h0bWxWaWV3ZXIgPyBzZWZlVmFsdWUgOiAnJ1wiXG4gICAgPjwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dGFyZWE+XG4gICAgICAgIDxic3UtbWFzayAqbmdJZj1cIiF0aW55SW5pdFwiPjwvYnN1LW1hc2s+XG4gICAgICAgIDxic3UtYmFyc2EtdGlueWVtY2VcbiAgICAgICAgICAgIFtTZXR0aW5nXT1cIlNldHRpbmdcIlxuICAgICAgICAgICAgW0lzSW5saW5lXT1cInBhcmFtZXRlcnM/LklzSW5saW5lID09PSB0cnVlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbZGVmYXVsdFZlcmJzXT1cImNvbnRleHQuZGVmYXVsdFZlcmJzXCJcbiAgICAgICAgICAgICh0aW55SW5pdCk9XCJvblRpbnlJbml0KClcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVGlueUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwiaXNSZWFkb25seVwiXG4gICAgICAgID48L2JzdS1iYXJzYS10aW55ZW1jZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGlueW1jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS10aW55bWNlL3VpLXRpbnltY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdGlueW1jZS91aS10aW55bWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUdsSCxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUF1QixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFRekYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtJQU4xRDs7UUFPcUMsZUFBVSxHQUFHLE9BQU8sQ0FBQztRQUd0RCxhQUFRLEdBQUcsS0FBSyxDQUFDO0tBZ0NwQjtJQTdCRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUM1RSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQTRCLENBQUM7UUFDakQsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztRQUMxRCwwREFBMEQ7SUFDOUQsQ0FBQztJQUNELFdBQVcsQ0FBQyxhQUE0QjtRQUNwQyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pDLElBQUksYUFBYSxDQUFDLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVFLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVU7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBQ0QsYUFBYSxDQUFDLFFBQVE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQzs4R0FuQ1Esa0JBQWtCO2tHQUFsQixrQkFBa0IsbUtDWC9CLHk3QkF3QkE7OzJGRGJhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTs4QkFHZCxVQUFVO3NCQUExQyxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgQmFyc2FBcGksIEZpZWxkQmFzZUNvbXBvbmVudCwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktdGlueW1jZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLXRpbnltY2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLXRpbnltY2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaVRpbnltY2VDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4taGVpZ2h0JykgdGlueUhlaWdodCA9ICcxMDBweCc7XG4gICAgaXNSZWFkb25seTogYm9vbGVhbjtcbiAgICBzZWZlVmFsdWU6IFNhZmVIdG1sO1xuICAgIHRpbnlJbml0ID0gZmFsc2U7XG4gICAgaXNBbm9ueW1vdXM6IGJvb2xlYW47XG4gICAgcGFyYW1ldGVyczogVWlUaW55bWNlU2V0dGluZztcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5pc1JlYWRvbmx5ID0gdGhpcy5TZXR0aW5nLklzUmVhZE9ubHkgfHwgdGhpcy5TZXR0aW5nLkNvbnRyb2xJc1JlYWRPbmx5O1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmIChlbC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICBlbC5wYXJlbnRFbGVtZW50LnN0eWxlLmFsaWduU2VsZiA9ICdzdHJldGNoJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5TZXR0aW5nLklzSHRtbFZpZXdlcikge1xuICAgICAgICAgICAgdGhpcy50aW55SGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICAgICAgdGhpcy5zZWZlVmFsdWUgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0Fub255bW91cyA9ICFCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzVXNlckxvZ2dlZEluO1xuICAgICAgICAvLyB0aGlzLnRpbnlIZWlnaHQgPSB0aGlzLmxheW91dEluZm8uQ29udHJvbEJvdW5kcy5oZWlnaHQ7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlcyk7XG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2VzLnZhbHVlICYmICFzaW1wbGVDaGFuZ2VzLnZhbHVlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5TZXR0aW5nLklzSHRtbFZpZXdlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VmZVZhbHVlID0gdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG9uVGlueUluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGlueUluaXQgPSB0cnVlO1xuICAgIH1cbiAgICBvblRpbnlDaGFuZ2VkKG5ld1ZhbHVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjaGFuZ2UnLCB0aGlzLCBuZXdWYWx1ZSwgdGhpcy52YWx1ZSwge30pO1xuICAgIH1cbn1cbmludGVyZmFjZSBVaVRpbnltY2VTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgSXNJbmxpbmU6IGJvb2xlYW47XG59XG4iLCI8bmctY29udGFpbmVyICp1bnRpbEluVmlldz1cImVsXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImh0bWwtcmVhZG9ubHlcIlxuICAgICAgICAqbmdJZj1cIlNldHRpbmcuSXNIdG1sVmlld2VyIHx8IChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYyk7IGVsc2UgdGV4dGFyZWFcIlxuICAgICAgICBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHkkIHwgYXN5bmNcIlxuICAgICAgICBbY2xhc3MuYW5vbnltb3VzXT1cImlzQW5vbnltb3VzXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVdPVwiZGlzYWJsZSQgfCBhc3luY1wiXG4gICAgICAgIFtpbm5lckh0bWxdPVwiU2V0dGluZy5Jc0h0bWxWaWV3ZXIgPyBzZWZlVmFsdWUgOiAnJ1wiXG4gICAgPjwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dGFyZWE+XG4gICAgICAgIDxic3UtbWFzayAqbmdJZj1cIiF0aW55SW5pdFwiPjwvYnN1LW1hc2s+XG4gICAgICAgIDxic3UtYmFyc2EtdGlueWVtY2VcbiAgICAgICAgICAgIFthdHRyLmlzbW9iaWxlXT1cImlzTW9iaWxlXCJcbiAgICAgICAgICAgIFthdHRyLmlzbW9iaWxlXT1cImlzVGFibGV0XCJcbiAgICAgICAgICAgIFtTZXR0aW5nXT1cIlNldHRpbmdcIlxuICAgICAgICAgICAgW0lzSW5saW5lXT1cInBhcmFtZXRlcnM/LklzSW5saW5lID09PSB0cnVlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbZGVmYXVsdFZlcmJzXT1cImNvbnRleHQuZGVmYXVsdFZlcmJzXCJcbiAgICAgICAgICAgICh0aW55SW5pdCk9XCJvblRpbnlJbml0KClcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVGlueUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwiaXNSZWFkb25seVwiXG4gICAgICAgID48L2JzdS1iYXJzYS10aW55ZW1jZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,4 +1,5 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';
2
+ import { PopoverComponent } from '@fundamental-ngx/core';
2
3
  import { BaseComponent } from 'barsa-novin-ray-core';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/common";
@@ -52,13 +53,37 @@ export class UlvContextMenuComponent extends BaseComponent {
52
53
  btn.handler.bind(btn.scope)(btn);
53
54
  }
54
55
  }
56
+ OpenPopover() {
57
+ this._popoverCmp.open();
58
+ }
59
+ OpenPopoverAt(x, y) {
60
+ this._popoverCmp.applyNewPosition([
61
+ {
62
+ originX: 'center',
63
+ originY: 'center',
64
+ overlayX: 'start',
65
+ overlayY: 'center',
66
+ offsetX: x,
67
+ offsetY: y
68
+ }
69
+ ]);
70
+ this._popoverCmp.open();
71
+ }
72
+ ClosePopover() {
73
+ this._popoverCmp.close();
74
+ }
55
75
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvContextMenuComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: { onlyOverflow: "onlyOverflow", deviceName: "deviceName", menuItems: "menuItems", allColumns: "allColumns", index: "index", mo: "mo", styleIndex: "styleIndex", conditionalFormats: "conditionalFormats", disableOverflowContextMenu: "disableOverflowContextMenu", footerMode: "footerMode" }, outputs: { commandClick: "commandClick" }, host: { properties: { "class.disableOverflow": "this._disableOverflow" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (footerMode) {\n<div fd-bar barDesign=\"footer\" [cozy]=\"false\" style=\"width: 100%\">\n <div fd-bar-right>\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <ng-template #footerToolbarTpl>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n @for (cmd of menuItems; track cmd) {\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: { $implicit: cmd }\"></ng-container>\n }\n </fd-toolbar>\n </ng-template>\n</div>\n} @else {\n<ng-container\n *ngTemplateOutlet=\"\n overflowMode && !disableOverflowContextMenu ? overflowCommands : simpleCommands;\n context: { $implicit: menuItems, index: index }\n \"\n></ng-container>\n}\n\n<ng-template #simpleCommands let-commands let-index=\"index\">\n @for (cmd of commands; track cmd) {\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n }\n</ng-template>\n\n<ng-template #overflowCommands let-commands let-index=\"index\">\n <fd-popover placement=\"bottom\" [(isOpen)]=\"isOpenOverflow\" [closeOnOutsideClick]=\"true\" [noArrow]=\"true\">\n <fd-popover-control #popover>\n <button fd-button (click)=\"onOpenOverflow($event)\" [fdType]=\"'transparent'\" [glyph]=\"'overflow'\"></button>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list class=\"ulv-overflow-buttons\">\n @for (cmd of commands; track cmd) {\n <li fd-list-item>\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </li>\n }\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #menuButtonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"cmd.menu ? menuTemplate : buttonTemplate; context: { $implicit: cmd }\"\n ></ng-container>\n</ng-template>\n<ng-template #menuTemplate let-cmd>\n <fd-split-button fd-toolbar-item [mainAction]=\"{ mainActionTitle: cmd.text, keepMainAction: true }\">\n <fd-menu>\n @for (btnCommand of cmd.menu.items; track btnCommand) {\n <li\n fd-menu-item\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"liEl\"\n (click)=\"onCommandSplitButtonClick($event, btnCommand)\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n</ng-template>\n<ng-template #buttonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"\n cmd?.Command?.CustomUi ? customButtonTemplate : defaultButtonTemplate;\n context: { $implicit: cmd }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #defaultButtonTemplate let-cmd>\n <button\n fd-button\n #btnEl\n [fdType]=\"cmd.Command?.JsonExtraProp?.Design ? cmd.Command?.JsonExtraProp.Design : 'transparent'\"\n [glyph]=\"cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon || ''\"\n [ulvCommandHandler]=\"cmd\"\n [label]=\"cmd.Command?.NewIcon && cmd.Command?.JsonExtraProp?.Icon ? (cmd.text | bbbTranslate) : ''\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"btnEl\"\n (commandClick)=\"onCommandClick($event)\"\n >\n <!-- \u0686\u0648\u0646 \u0639\u06A9\u0633 \u062F\u0631 \u0633\u0645\u062A \u0631\u0627\u0633\u062A \u0642\u0631\u0627\u0631 \u0628\u06AF\u06CC\u0631\u062F \u0627\u0632 \u0644\u06CC\u0628\u0644 \u062F\u06A9\u0645\u0647 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0646\u06A9\u0631\u062F\u0645 -->\n @if (!cmd.Command?.NewIcon && !cmd.Command?.JsonExtraProp?.Icon) {\n <img [src]=\"cmd.icon\" />\n }\n <span *ngIf=\"!(cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon)\">{{ cmd.text | bbbTranslate }}</span>\n </button>\n</ng-template>\n<ng-template #customButtonTemplate let-cmd>\n <div\n #hostEl\n [dbName]=\"cmd.text\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"hostEl\"\n [styleIndex]=\"styleIndex\"\n >\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"cmd\"\n [component]=\"cmd.Command?.CustomUi\"\n [mo]=\"mo\"\n [context]=\"cmd\"\n [showText]=\"disableOverflowContextMenu === false\"\n [deviceName]=\"deviceName\"\n [index]=\"index\"\n [isEnable]=\"cmd.Command?._isEnable || cmd.Command?.UseForSingle\"\n [allColumns]=\"allColumns\"\n (btnClick)=\"onCommandClick($event)\"\n ></bnrc-dynamic-form-toolbaritem>\n </div>\n</ng-template>\n", styles: [":host{display:flex;justify-content:center;align-items:center}:host ::ng-deep button{margin-top:0!important}:host ::ng-deep .fd-popover-custom{max-width:none}:host.disableOverflow{column-gap:5px}button{align-items:center}button div{display:flex}button ::ng-deep span{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "component", type: i6.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i6.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i6.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i6.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i9.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i9.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i10.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: { onlyOverflow: "onlyOverflow", rightClickEnable: "rightClickEnable", deviceName: "deviceName", menuItems: "menuItems", allColumns: "allColumns", index: "index", mo: "mo", styleIndex: "styleIndex", conditionalFormats: "conditionalFormats", disableOverflowContextMenu: "disableOverflowContextMenu", footerMode: "footerMode", appendTo: "appendTo" }, outputs: { commandClick: "commandClick" }, host: { properties: { "class.disableOverflow": "this._disableOverflow" } }, viewQueries: [{ propertyName: "_popoverCmp", first: true, predicate: PopoverComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (footerMode) {\n<div fd-bar barDesign=\"footer\" [cozy]=\"false\" style=\"width: 100%\">\n <div fd-bar-right>\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <ng-template #footerToolbarTpl>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n @for (cmd of menuItems; track cmd) {\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: { $implicit: cmd }\"></ng-container>\n }\n </fd-toolbar>\n </ng-template>\n</div>\n} @else if(rightClickEnable){\n<ng-container\n *ngTemplateOutlet=\"\n overflowCommands;\n context: { $implicit: menuItems, index: index, hideBtn: true, appendTo: appendTo, showText: true }\n \"\n></ng-container>\n}@else{\n<ng-container\n *ngTemplateOutlet=\"\n overflowMode && !disableOverflowContextMenu ? overflowCommands : simpleCommands;\n context: { $implicit: menuItems, index: index }\n \"\n></ng-container>\n}\n\n<ng-template #simpleCommands let-commands let-index=\"index\">\n @for (cmd of commands; track cmd) {\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n }\n</ng-template>\n\n<ng-template\n #overflowCommands\n let-commands\n let-index=\"index\"\n let-hideBtn=\"hideBtn\"\n let-appendTo=\"appendTo\"\n let-showText=\"showText\"\n>\n <fd-popover\n placement=\"bottom\"\n [(isOpen)]=\"isOpenOverflow\"\n [closeOnOutsideClick]=\"true\"\n [noArrow]=\"true\"\n [appendTo]=\"appendTo\"\n >\n <fd-popover-control #popover>\n @if(!hideBtn){\n <button fd-button (click)=\"onOpenOverflow($event)\" [fdType]=\"'transparent'\" [glyph]=\"'overflow'\"></button>\n }\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list class=\"ulv-overflow-buttons\">\n @for (cmd of commands; track cmd) {\n <li fd-list-item>\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </li>\n }\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #menuButtonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"cmd.menu ? menuTemplate : buttonTemplate; context: { $implicit: cmd }\"\n ></ng-container>\n</ng-template>\n<ng-template #menuTemplate let-cmd>\n <fd-split-button fd-toolbar-item [mainAction]=\"{ mainActionTitle: cmd.text, keepMainAction: true }\">\n <fd-menu>\n @for (btnCommand of cmd.menu.items; track btnCommand) {\n <li\n fd-menu-item\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"liEl\"\n (click)=\"onCommandSplitButtonClick($event, btnCommand)\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n</ng-template>\n<ng-template #buttonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"\n cmd?.Command?.CustomUi ? customButtonTemplate : defaultButtonTemplate;\n context: { $implicit: cmd }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #defaultButtonTemplate let-cmd>\n <button\n fd-button\n #btnEl\n [fdType]=\"cmd.Command?.JsonExtraProp?.Design ? cmd.Command?.JsonExtraProp.Design : 'transparent'\"\n [glyph]=\"cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon || ''\"\n [ulvCommandHandler]=\"cmd\"\n [label]=\"cmd.Command?.NewIcon && cmd.Command?.JsonExtraProp?.Icon ? (cmd.text | bbbTranslate) : ''\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"btnEl\"\n [disabled]=\"cmd.Command?._isEnable === false\"\n (commandClick)=\"onCommandClick($event)\"\n >\n <!-- \u0686\u0648\u0646 \u0639\u06A9\u0633 \u062F\u0631 \u0633\u0645\u062A \u0631\u0627\u0633\u062A \u0642\u0631\u0627\u0631 \u0628\u06AF\u06CC\u0631\u062F \u0627\u0632 \u0644\u06CC\u0628\u0644 \u062F\u06A9\u0645\u0647 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0646\u06A9\u0631\u062F\u0645 -->\n @if (!cmd.Command?.NewIcon && !cmd.Command?.JsonExtraProp?.Icon) {\n <img [src]=\"cmd.icon\" />\n }\n <span *ngIf=\"true || !(cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon)\">{{\n cmd.text | bbbTranslate\n }}</span>\n </button>\n</ng-template>\n<ng-template #customButtonTemplate let-cmd>\n <div\n #hostEl\n [dbName]=\"cmd.text\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"hostEl\"\n [styleIndex]=\"styleIndex\"\n >\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"cmd\"\n [component]=\"cmd.Command?.CustomUi\"\n [mo]=\"mo\"\n [context]=\"cmd\"\n [showText]=\"disableOverflowContextMenu === false\"\n [deviceName]=\"deviceName\"\n [index]=\"index\"\n [isEnable]=\"cmd.Command?._isEnable || cmd.Command?.UseForSingle\"\n [allColumns]=\"allColumns\"\n (btnClick)=\"onCommandClick($event)\"\n ></bnrc-dynamic-form-toolbaritem>\n </div>\n</ng-template>\n", styles: [":host{display:flex;justify-content:center;align-items:center}:host ::ng-deep button{margin-top:0!important}:host ::ng-deep .fd-popover-custom{max-width:none}:host.disableOverflow{column-gap:5px}button{align-items:center}button div{display:flex}button ::ng-deep span{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i5.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "component", type: i6.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i6.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i6.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i6.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i7.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i7.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i7.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { kind: "component", type: i9.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i9.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i10.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
77
  }
58
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlvContextMenuComponent, decorators: [{
59
79
  type: Component,
60
- args: [{ selector: 'bsu-ulv-context-menu,[ulvContextMenu]', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (footerMode) {\n<div fd-bar barDesign=\"footer\" [cozy]=\"false\" style=\"width: 100%\">\n <div fd-bar-right>\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <ng-template #footerToolbarTpl>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n @for (cmd of menuItems; track cmd) {\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: { $implicit: cmd }\"></ng-container>\n }\n </fd-toolbar>\n </ng-template>\n</div>\n} @else {\n<ng-container\n *ngTemplateOutlet=\"\n overflowMode && !disableOverflowContextMenu ? overflowCommands : simpleCommands;\n context: { $implicit: menuItems, index: index }\n \"\n></ng-container>\n}\n\n<ng-template #simpleCommands let-commands let-index=\"index\">\n @for (cmd of commands; track cmd) {\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n }\n</ng-template>\n\n<ng-template #overflowCommands let-commands let-index=\"index\">\n <fd-popover placement=\"bottom\" [(isOpen)]=\"isOpenOverflow\" [closeOnOutsideClick]=\"true\" [noArrow]=\"true\">\n <fd-popover-control #popover>\n <button fd-button (click)=\"onOpenOverflow($event)\" [fdType]=\"'transparent'\" [glyph]=\"'overflow'\"></button>\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list class=\"ulv-overflow-buttons\">\n @for (cmd of commands; track cmd) {\n <li fd-list-item>\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </li>\n }\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #menuButtonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"cmd.menu ? menuTemplate : buttonTemplate; context: { $implicit: cmd }\"\n ></ng-container>\n</ng-template>\n<ng-template #menuTemplate let-cmd>\n <fd-split-button fd-toolbar-item [mainAction]=\"{ mainActionTitle: cmd.text, keepMainAction: true }\">\n <fd-menu>\n @for (btnCommand of cmd.menu.items; track btnCommand) {\n <li\n fd-menu-item\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"liEl\"\n (click)=\"onCommandSplitButtonClick($event, btnCommand)\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n</ng-template>\n<ng-template #buttonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"\n cmd?.Command?.CustomUi ? customButtonTemplate : defaultButtonTemplate;\n context: { $implicit: cmd }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #defaultButtonTemplate let-cmd>\n <button\n fd-button\n #btnEl\n [fdType]=\"cmd.Command?.JsonExtraProp?.Design ? cmd.Command?.JsonExtraProp.Design : 'transparent'\"\n [glyph]=\"cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon || ''\"\n [ulvCommandHandler]=\"cmd\"\n [label]=\"cmd.Command?.NewIcon && cmd.Command?.JsonExtraProp?.Icon ? (cmd.text | bbbTranslate) : ''\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"btnEl\"\n (commandClick)=\"onCommandClick($event)\"\n >\n <!-- \u0686\u0648\u0646 \u0639\u06A9\u0633 \u062F\u0631 \u0633\u0645\u062A \u0631\u0627\u0633\u062A \u0642\u0631\u0627\u0631 \u0628\u06AF\u06CC\u0631\u062F \u0627\u0632 \u0644\u06CC\u0628\u0644 \u062F\u06A9\u0645\u0647 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0646\u06A9\u0631\u062F\u0645 -->\n @if (!cmd.Command?.NewIcon && !cmd.Command?.JsonExtraProp?.Icon) {\n <img [src]=\"cmd.icon\" />\n }\n <span *ngIf=\"!(cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon)\">{{ cmd.text | bbbTranslate }}</span>\n </button>\n</ng-template>\n<ng-template #customButtonTemplate let-cmd>\n <div\n #hostEl\n [dbName]=\"cmd.text\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"hostEl\"\n [styleIndex]=\"styleIndex\"\n >\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"cmd\"\n [component]=\"cmd.Command?.CustomUi\"\n [mo]=\"mo\"\n [context]=\"cmd\"\n [showText]=\"disableOverflowContextMenu === false\"\n [deviceName]=\"deviceName\"\n [index]=\"index\"\n [isEnable]=\"cmd.Command?._isEnable || cmd.Command?.UseForSingle\"\n [allColumns]=\"allColumns\"\n (btnClick)=\"onCommandClick($event)\"\n ></bnrc-dynamic-form-toolbaritem>\n </div>\n</ng-template>\n", styles: [":host{display:flex;justify-content:center;align-items:center}:host ::ng-deep button{margin-top:0!important}:host ::ng-deep .fd-popover-custom{max-width:none}:host.disableOverflow{column-gap:5px}button{align-items:center}button div{display:flex}button ::ng-deep span{height:auto!important}\n"] }]
61
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { onlyOverflow: [{
80
+ args: [{ selector: 'bsu-ulv-context-menu,[ulvContextMenu]', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (footerMode) {\n<div fd-bar barDesign=\"footer\" [cozy]=\"false\" style=\"width: 100%\">\n <div fd-bar-right>\n <ng-container *ngTemplateOutlet=\"footerToolbarTpl\"></ng-container>\n </div>\n <ng-template #footerToolbarTpl>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n @for (cmd of menuItems; track cmd) {\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: { $implicit: cmd }\"></ng-container>\n }\n </fd-toolbar>\n </ng-template>\n</div>\n} @else if(rightClickEnable){\n<ng-container\n *ngTemplateOutlet=\"\n overflowCommands;\n context: { $implicit: menuItems, index: index, hideBtn: true, appendTo: appendTo, showText: true }\n \"\n></ng-container>\n}@else{\n<ng-container\n *ngTemplateOutlet=\"\n overflowMode && !disableOverflowContextMenu ? overflowCommands : simpleCommands;\n context: { $implicit: menuItems, index: index }\n \"\n></ng-container>\n}\n\n<ng-template #simpleCommands let-commands let-index=\"index\">\n @for (cmd of commands; track cmd) {\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n }\n</ng-template>\n\n<ng-template\n #overflowCommands\n let-commands\n let-index=\"index\"\n let-hideBtn=\"hideBtn\"\n let-appendTo=\"appendTo\"\n let-showText=\"showText\"\n>\n <fd-popover\n placement=\"bottom\"\n [(isOpen)]=\"isOpenOverflow\"\n [closeOnOutsideClick]=\"true\"\n [noArrow]=\"true\"\n [appendTo]=\"appendTo\"\n >\n <fd-popover-control #popover>\n @if(!hideBtn){\n <button fd-button (click)=\"onOpenOverflow($event)\" [fdType]=\"'transparent'\" [glyph]=\"'overflow'\"></button>\n }\n </fd-popover-control>\n <fd-popover-body>\n <ul fd-list class=\"ulv-overflow-buttons\">\n @for (cmd of commands; track cmd) {\n <li fd-list-item>\n <ng-container *ngTemplateOutlet=\"menuButtonTemplate; context: { $implicit: cmd }\"></ng-container>\n </li>\n }\n </ul>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n\n<ng-template #menuButtonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"cmd.menu ? menuTemplate : buttonTemplate; context: { $implicit: cmd }\"\n ></ng-container>\n</ng-template>\n<ng-template #menuTemplate let-cmd>\n <fd-split-button fd-toolbar-item [mainAction]=\"{ mainActionTitle: cmd.text, keepMainAction: true }\">\n <fd-menu>\n @for (btnCommand of cmd.menu.items; track btnCommand) {\n <li\n fd-menu-item\n #liEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"liEl\"\n (click)=\"onCommandSplitButtonClick($event, btnCommand)\"\n >\n <div fd-menu-interactive>\n <span fd-menu-title>{{ btnCommand.text | bbbTranslate }}</span>\n </div>\n </li>\n }\n </fd-menu>\n </fd-split-button>\n</ng-template>\n<ng-template #buttonTemplate let-cmd>\n <ng-container\n *ngTemplateOutlet=\"\n cmd?.Command?.CustomUi ? customButtonTemplate : defaultButtonTemplate;\n context: { $implicit: cmd }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #defaultButtonTemplate let-cmd>\n <button\n fd-button\n #btnEl\n [fdType]=\"cmd.Command?.JsonExtraProp?.Design ? cmd.Command?.JsonExtraProp.Design : 'transparent'\"\n [glyph]=\"cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon || ''\"\n [ulvCommandHandler]=\"cmd\"\n [label]=\"cmd.Command?.NewIcon && cmd.Command?.JsonExtraProp?.Icon ? (cmd.text | bbbTranslate) : ''\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"cmd.text\"\n [hostEl]=\"btnEl\"\n [disabled]=\"cmd.Command?._isEnable === false\"\n (commandClick)=\"onCommandClick($event)\"\n >\n <!-- \u0686\u0648\u0646 \u0639\u06A9\u0633 \u062F\u0631 \u0633\u0645\u062A \u0631\u0627\u0633\u062A \u0642\u0631\u0627\u0631 \u0628\u06AF\u06CC\u0631\u062F \u0627\u0632 \u0644\u06CC\u0628\u0644 \u062F\u06A9\u0645\u0647 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0646\u06A9\u0631\u062F\u0645 -->\n @if (!cmd.Command?.NewIcon && !cmd.Command?.JsonExtraProp?.Icon) {\n <img [src]=\"cmd.icon\" />\n }\n <span *ngIf=\"true || !(cmd.Command?.NewIcon || cmd.Command?.JsonExtraProp?.Icon)\">{{\n cmd.text | bbbTranslate\n }}</span>\n </button>\n</ng-template>\n<ng-template #customButtonTemplate let-cmd>\n <div\n #hostEl\n [dbName]=\"cmd.text\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"hostEl\"\n [styleIndex]=\"styleIndex\"\n >\n <bnrc-dynamic-form-toolbaritem\n fd-toolbar-item\n [ulvCommandHandler]=\"cmd\"\n [component]=\"cmd.Command?.CustomUi\"\n [mo]=\"mo\"\n [context]=\"cmd\"\n [showText]=\"disableOverflowContextMenu === false\"\n [deviceName]=\"deviceName\"\n [index]=\"index\"\n [isEnable]=\"cmd.Command?._isEnable || cmd.Command?.UseForSingle\"\n [allColumns]=\"allColumns\"\n (btnClick)=\"onCommandClick($event)\"\n ></bnrc-dynamic-form-toolbaritem>\n </div>\n</ng-template>\n", styles: [":host{display:flex;justify-content:center;align-items:center}:host ::ng-deep button{margin-top:0!important}:host ::ng-deep .fd-popover-custom{max-width:none}:host.disableOverflow{column-gap:5px}button{align-items:center}button div{display:flex}button ::ng-deep span{height:auto!important}\n"] }]
81
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { _popoverCmp: [{
82
+ type: ViewChild,
83
+ args: [PopoverComponent]
84
+ }], onlyOverflow: [{
85
+ type: Input
86
+ }], rightClickEnable: [{
62
87
  type: Input
63
88
  }], deviceName: [{
64
89
  type: Input
@@ -78,10 +103,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
78
103
  type: Input
79
104
  }], footerMode: [{
80
105
  type: Input
106
+ }], appendTo: [{
107
+ type: Input
81
108
  }], commandClick: [{
82
109
  type: Output
83
110
  }], _disableOverflow: [{
84
111
  type: HostBinding,
85
112
  args: ['class.disableOverflow']
86
113
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91bHYtY29udGV4dC1tZW51L3Vsdi1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWNvbnRleHQtbWVudS91bHYtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFxRCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7QUFReEcsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUFldEQ7O09BRUc7SUFDSCxZQUFzQixJQUF1QjtRQUN6QyxLQUFLLEVBQUUsQ0FBQztRQURVLFNBQUksR0FBSixJQUFJLENBQW1CO1FBUG5DLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNYLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQVEvRCxDQUFDO0lBQ0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsMEJBQTBCLEtBQUssSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUM7SUFDNUQsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDOUIsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELGNBQWMsQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBQ0QseUJBQXlCLENBQUMsQ0FBQyxFQUFFLEdBQUc7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDO2FBQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDOzhHQWxEUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qix3aEJDcEJwQyxpaUtBMkhBOzsyRkR2R2EsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNJLHVDQUF1QyxtQkFHaEMsdUJBQXVCLENBQUMsTUFBTTtzRkFHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQytCLGdCQUFnQjtzQkFBckQsV0FBVzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBEZXZpY2VTaXplLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11bHYtY29udGV4dC1tZW51LFt1bHZDb250ZXh0TWVudV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91bHYtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91bHYtY29udGV4dC1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWx2Q29udGV4dE1lbnVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBvbmx5T3ZlcmZsb3c6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogRGV2aWNlU2l6ZTtcbiAgICBASW5wdXQoKSBtZW51SXRlbXM6IGFueVtdO1xuICAgIEBJbnB1dCgpIGFsbENvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBASW5wdXQoKSBpbmRleDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBJbnB1dCgpIHN0eWxlSW5kZXg6IG51bWJlcltdO1xuICAgIEBJbnB1dCgpIGNvbmRpdGlvbmFsRm9ybWF0czogYW55W107XG4gICAgQElucHV0KCkgZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZm9vdGVyTW9kZTogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgY29tbWFuZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlT3ZlcmZsb3cnKSBfZGlzYWJsZU92ZXJmbG93ID0gZmFsc2U7XG4gICAgaXNPcGVuT3ZlcmZsb3c6IGJvb2xlYW47XG4gICAgb3ZlcmZsb3dNb2RlOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLm92ZXJmbG93TW9kZSA9IHRoaXMubWVudUl0ZW1zLmxlbmd0aCA+IDE7XG4gICAgICAgIHRoaXMuZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnUgJiY9IHRoaXMuZGV2aWNlTmFtZSA9PT0gJ21vYmlsZScgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVPdmVyZmxvdyA9IHRoaXMuZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgbWVudUl0ZW1zIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAobWVudUl0ZW1zICYmICFtZW51SXRlbXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25Db21tYW5kQ2xpY2soZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzT3Blbk92ZXJmbG93ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29tbWFuZENsaWNrLmVtaXQoZSk7XG4gICAgfVxuICAgIG9uT3Blbk92ZXJmbG93KGUpOiB2b2lkIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmlzT3Blbk92ZXJmbG93ID0gdHJ1ZTtcbiAgICB9XG4gICAgb25Db21tYW5kU3BsaXRCdXR0b25DbGljayhlLCBidG4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNvbW1hbmRDbGljayhlKTtcbiAgICAgICAgaWYgKGJ0bi5Db21tYW5kICYmIGJ0bi5Db21tYW5kLkhhbmRsZXIpIHtcbiAgICAgICAgICAgIGJ0bi5Db21tYW5kLkhhbmRsZXIoYnRuKTtcbiAgICAgICAgfSBlbHNlIGlmIChidG4uaGFuZGxlcikge1xuICAgICAgICAgICAgYnRuLmhhbmRsZXIuYmluZChidG4uc2NvcGUpKGJ0bik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKGZvb3Rlck1vZGUpIHtcbjxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImZvb3RlclwiIFtjb3p5XT1cImZhbHNlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVG9vbGJhclRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVG9vbGJhclRwbD5cbiAgICAgICAgPGZkLXRvb2xiYXIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgQGZvciAoY21kIG9mIG1lbnVJdGVtczsgdHJhY2sgY21kKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjbWQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxufSBAZWxzZSB7XG48bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgb3ZlcmZsb3dNb2RlICYmICFkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudSA/IG92ZXJmbG93Q29tbWFuZHMgOiBzaW1wbGVDb21tYW5kcztcbiAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IG1lbnVJdGVtcywgaW5kZXg6IGluZGV4IH1cbiAgICBcIlxuPjwvbmctY29udGFpbmVyPlxufVxuXG48bmctdGVtcGxhdGUgI3NpbXBsZUNvbW1hbmRzIGxldC1jb21tYW5kcyBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIEBmb3IgKGNtZCBvZiBjb21tYW5kczsgdHJhY2sgY21kKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1lbnVCdXR0b25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNtZCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNvdmVyZmxvd0NvbW1hbmRzIGxldC1jb21tYW5kcyBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxmZC1wb3BvdmVyIHBsYWNlbWVudD1cImJvdHRvbVwiIFsoaXNPcGVuKV09XCJpc09wZW5PdmVyZmxvd1wiIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIiBbbm9BcnJvd109XCJ0cnVlXCI+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2wgI3BvcG92ZXI+XG4gICAgICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiAoY2xpY2spPVwib25PcGVuT3ZlcmZsb3coJGV2ZW50KVwiIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIFtnbHlwaF09XCInb3ZlcmZsb3cnXCI+PC9idXR0b24+XG4gICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgPHVsIGZkLWxpc3QgY2xhc3M9XCJ1bHYtb3ZlcmZsb3ctYnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGNtZCBvZiBjb21tYW5kczsgdHJhY2sgY21kKSB7XG4gICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1lbnVCdXR0b25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNtZCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICA8L2ZkLXBvcG92ZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21lbnVCdXR0b25UZW1wbGF0ZSBsZXQtY21kPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjbWQubWVudSA/IG1lbnVUZW1wbGF0ZSA6IGJ1dHRvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY21kIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI21lbnVUZW1wbGF0ZSBsZXQtY21kPlxuICAgIDxmZC1zcGxpdC1idXR0b24gZmQtdG9vbGJhci1pdGVtIFttYWluQWN0aW9uXT1cInsgbWFpbkFjdGlvblRpdGxlOiBjbWQudGV4dCwga2VlcE1haW5BY3Rpb246IHRydWUgfVwiPlxuICAgICAgICA8ZmQtbWVudT5cbiAgICAgICAgICAgIEBmb3IgKGJ0bkNvbW1hbmQgb2YgY21kLm1lbnUuaXRlbXM7IHRyYWNrIGJ0bkNvbW1hbmQpIHtcbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGZkLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICNsaUVsXG4gICAgICAgICAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgW2RiTmFtZV09XCJjbWQudGV4dFwiXG4gICAgICAgICAgICAgICAgW2hvc3RFbF09XCJsaUVsXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db21tYW5kU3BsaXRCdXR0b25DbGljaygkZXZlbnQsIGJ0bkNvbW1hbmQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLW1lbnUtdGl0bGU+e3sgYnRuQ29tbWFuZC50ZXh0IHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1tZW51PlxuICAgIDwvZmQtc3BsaXQtYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uVGVtcGxhdGUgbGV0LWNtZD5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBjbWQ/LkNvbW1hbmQ/LkN1c3RvbVVpID8gY3VzdG9tQnV0dG9uVGVtcGxhdGUgOiBkZWZhdWx0QnV0dG9uVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogY21kIH1cbiAgICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0QnV0dG9uVGVtcGxhdGUgbGV0LWNtZD5cbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAjYnRuRWxcbiAgICAgICAgW2ZkVHlwZV09XCJjbWQuQ29tbWFuZD8uSnNvbkV4dHJhUHJvcD8uRGVzaWduID8gY21kLkNvbW1hbmQ/Lkpzb25FeHRyYVByb3AuRGVzaWduIDogJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgIFtnbHlwaF09XCJjbWQuQ29tbWFuZD8uTmV3SWNvbiB8fCBjbWQuQ29tbWFuZD8uSnNvbkV4dHJhUHJvcD8uSWNvbiB8fCAnJ1wiXG4gICAgICAgIFt1bHZDb21tYW5kSGFuZGxlcl09XCJjbWRcIlxuICAgICAgICBbbGFiZWxdPVwiY21kLkNvbW1hbmQ/Lk5ld0ljb24gJiYgY21kLkNvbW1hbmQ/Lkpzb25FeHRyYVByb3A/Lkljb24gPyAoY21kLnRleHQgfCBiYmJUcmFuc2xhdGUpIDogJydcIlxuICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgIFtkYk5hbWVdPVwiY21kLnRleHRcIlxuICAgICAgICBbaG9zdEVsXT1cImJ0bkVsXCJcbiAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvbkNvbW1hbmRDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDwhLS0g2obZiNmGINi52qnYsyDYr9ixINiz2YXYqiDYsdin2LPYqiDZgtix2KfYsSDYqNqv24zYsdivINin2LIg2YTbjNio2YQg2K/aqdmF2Ycg2KfYs9iq2YHYp9iv2Ycg2Ybaqdix2K/ZhSAtLT5cbiAgICAgICAgQGlmICghY21kLkNvbW1hbmQ/Lk5ld0ljb24gJiYgIWNtZC5Db21tYW5kPy5Kc29uRXh0cmFQcm9wPy5JY29uKSB7XG4gICAgICAgIDxpbWcgW3NyY109XCJjbWQuaWNvblwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhKGNtZC5Db21tYW5kPy5OZXdJY29uIHx8IGNtZC5Db21tYW5kPy5Kc29uRXh0cmFQcm9wPy5JY29uKVwiPnt7IGNtZC50ZXh0IHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tQnV0dG9uVGVtcGxhdGUgbGV0LWNtZD5cbiAgICA8ZGl2XG4gICAgICAgICNob3N0RWxcbiAgICAgICAgW2RiTmFtZV09XCJjbWQudGV4dFwiXG4gICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICBbaG9zdEVsXT1cImhvc3RFbFwiXG4gICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgID5cbiAgICAgICAgPGJucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIFt1bHZDb21tYW5kSGFuZGxlcl09XCJjbWRcIlxuICAgICAgICAgICAgW2NvbXBvbmVudF09XCJjbWQuQ29tbWFuZD8uQ3VzdG9tVWlcIlxuICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgIFtjb250ZXh0XT1cImNtZFwiXG4gICAgICAgICAgICBbc2hvd1RleHRdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnUgPT09IGZhbHNlXCJcbiAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgIFtpc0VuYWJsZV09XCJjbWQuQ29tbWFuZD8uX2lzRW5hYmxlIHx8IGNtZC5Db21tYW5kPy5Vc2VGb3JTaW5nbGVcIlxuICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICAoYnRuQ2xpY2spPVwib25Db21tYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgID48L2JucmMtZHluYW1pYy1mb3JtLXRvb2xiYXJpdGVtPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWx2LWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91bHYtY29udGV4dC1tZW51L3Vsdi1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWx2LWNvbnRleHQtbWVudS91bHYtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsT0FBTyxFQUFFLGFBQWEsRUFBcUQsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXhHLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBa0J0RDs7T0FFRztJQUNILFlBQXNCLElBQXVCO1FBQ3pDLEtBQUssRUFBRSxDQUFDO1FBRFUsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFQbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ1gscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBUS9ELENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQywwQkFBMEIsS0FBSyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUM5QixJQUFJLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDTCxDQUFDO0lBQ0QsY0FBYyxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsY0FBYyxDQUFDLENBQUM7UUFDWixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxDQUFDLEVBQUUsR0FBRztRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLENBQUM7YUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsYUFBYSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDOUI7Z0JBQ0ksT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSxDQUFDO2FBQ2I7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFDRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXpFUSx1QkFBdUI7a0dBQXZCLHVCQUF1QixxbEJBQ3JCLGdCQUFnQiw0RkN2Qi9CLGlrTEFvSkE7OzJGRDlIYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksdUNBQXVDLG1CQUdoQyx1QkFBdUIsQ0FBQyxNQUFNO3NGQUdsQixXQUFXO3NCQUF2QyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDbEIsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQytCLGdCQUFnQjtzQkFBckQsV0FBVzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBEZXZpY2VTaXplLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11bHYtY29udGV4dC1tZW51LFt1bHZDb250ZXh0TWVudV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91bHYtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91bHYtY29udGV4dC1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWx2Q29udGV4dE1lbnVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKFBvcG92ZXJDb21wb25lbnQpIF9wb3BvdmVyQ21wOiBQb3BvdmVyQ29tcG9uZW50O1xuICAgIEBJbnB1dCgpIG9ubHlPdmVyZmxvdzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByaWdodENsaWNrRW5hYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRldmljZU5hbWU6IERldmljZVNpemU7XG4gICAgQElucHV0KCkgbWVudUl0ZW1zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBhbGxDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XG4gICAgQElucHV0KCkgaW5kZXg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtbzogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBASW5wdXQoKSBzdHlsZUluZGV4OiBudW1iZXJbXTtcbiAgICBASW5wdXQoKSBjb25kaXRpb25hbEZvcm1hdHM6IGFueVtdO1xuICAgIEBJbnB1dCgpIGRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGZvb3Rlck1vZGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYXBwZW5kVG86IEhUTUxFbGVtZW50O1xuICAgIEBPdXRwdXQoKSBjb21tYW5kQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVPdmVyZmxvdycpIF9kaXNhYmxlT3ZlcmZsb3cgPSBmYWxzZTtcbiAgICBpc09wZW5PdmVyZmxvdzogYm9vbGVhbjtcbiAgICBvdmVyZmxvd01vZGU6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMub3ZlcmZsb3dNb2RlID0gdGhpcy5tZW51SXRlbXMubGVuZ3RoID4gMTtcbiAgICAgICAgdGhpcy5kaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudSAmJj0gdGhpcy5kZXZpY2VOYW1lID09PSAnbW9iaWxlJyA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgdGhpcy5fZGlzYWJsZU92ZXJmbG93ID0gdGhpcy5kaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBtZW51SXRlbXMgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChtZW51SXRlbXMgJiYgIW1lbnVJdGVtcy5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkNvbW1hbmRDbGljayhlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuT3ZlcmZsb3cgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb21tYW5kQ2xpY2suZW1pdChlKTtcbiAgICB9XG4gICAgb25PcGVuT3ZlcmZsb3coZSk6IHZvaWQge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaXNPcGVuT3ZlcmZsb3cgPSB0cnVlO1xuICAgIH1cbiAgICBvbkNvbW1hbmRTcGxpdEJ1dHRvbkNsaWNrKGUsIGJ0bik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ29tbWFuZENsaWNrKGUpO1xuICAgICAgICBpZiAoYnRuLkNvbW1hbmQgJiYgYnRuLkNvbW1hbmQuSGFuZGxlcikge1xuICAgICAgICAgICAgYnRuLkNvbW1hbmQuSGFuZGxlcihidG4pO1xuICAgICAgICB9IGVsc2UgaWYgKGJ0bi5oYW5kbGVyKSB7XG4gICAgICAgICAgICBidG4uaGFuZGxlci5iaW5kKGJ0bi5zY29wZSkoYnRuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIE9wZW5Qb3BvdmVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVyQ21wLm9wZW4oKTtcbiAgICB9XG4gICAgT3BlblBvcG92ZXJBdCh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVyQ21wLmFwcGx5TmV3UG9zaXRpb24oW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBvZmZzZXRYOiB4LFxuICAgICAgICAgICAgICAgIG9mZnNldFk6IHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgXSk7XG4gICAgICAgIHRoaXMuX3BvcG92ZXJDbXAub3BlbigpO1xuICAgIH1cbiAgICBDbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BvcG92ZXJDbXAuY2xvc2UoKTtcbiAgICB9XG59XG4iLCJAaWYgKGZvb3Rlck1vZGUpIHtcbjxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImZvb3RlclwiIFtjb3p5XT1cImZhbHNlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVG9vbGJhclRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVG9vbGJhclRwbD5cbiAgICAgICAgPGZkLXRvb2xiYXIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgQGZvciAoY21kIG9mIG1lbnVJdGVtczsgdHJhY2sgY21kKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjbWQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxufSBAZWxzZSBpZihyaWdodENsaWNrRW5hYmxlKXtcbjxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBvdmVyZmxvd0NvbW1hbmRzO1xuICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogbWVudUl0ZW1zLCBpbmRleDogaW5kZXgsIGhpZGVCdG46IHRydWUsIGFwcGVuZFRvOiBhcHBlbmRUbywgc2hvd1RleHQ6IHRydWUgfVxuICAgIFwiXG4+PC9uZy1jb250YWluZXI+XG59QGVsc2V7XG48bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgb3ZlcmZsb3dNb2RlICYmICFkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudSA/IG92ZXJmbG93Q29tbWFuZHMgOiBzaW1wbGVDb21tYW5kcztcbiAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IG1lbnVJdGVtcywgaW5kZXg6IGluZGV4IH1cbiAgICBcIlxuPjwvbmctY29udGFpbmVyPlxufVxuXG48bmctdGVtcGxhdGUgI3NpbXBsZUNvbW1hbmRzIGxldC1jb21tYW5kcyBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIEBmb3IgKGNtZCBvZiBjb21tYW5kczsgdHJhY2sgY21kKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1lbnVCdXR0b25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNtZCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICAgI292ZXJmbG93Q29tbWFuZHNcbiAgICBsZXQtY29tbWFuZHNcbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgbGV0LWhpZGVCdG49XCJoaWRlQnRuXCJcbiAgICBsZXQtYXBwZW5kVG89XCJhcHBlbmRUb1wiXG4gICAgbGV0LXNob3dUZXh0PVwic2hvd1RleHRcIlxuPlxuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgIFsoaXNPcGVuKV09XCJpc09wZW5PdmVyZmxvd1wiXG4gICAgICAgIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIlxuICAgICAgICBbbm9BcnJvd109XCJ0cnVlXCJcbiAgICAgICAgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCJcbiAgICA+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2wgI3BvcG92ZXI+XG4gICAgICAgICAgICBAaWYoIWhpZGVCdG4pe1xuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gKGNsaWNrKT1cIm9uT3Blbk92ZXJmbG93KCRldmVudClcIiBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIiBbZ2x5cGhdPVwiJ292ZXJmbG93J1wiPjwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgIDx1bCBmZC1saXN0IGNsYXNzPVwidWx2LW92ZXJmbG93LWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChjbWQgb2YgY29tbWFuZHM7IHRyYWNrIGNtZCkge1xuICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51QnV0dG9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjbWQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgPC9mZC1wb3BvdmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtZW51QnV0dG9uVGVtcGxhdGUgbGV0LWNtZD5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY21kLm1lbnUgPyBtZW51VGVtcGxhdGUgOiBidXR0b25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNtZCB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNtZW51VGVtcGxhdGUgbGV0LWNtZD5cbiAgICA8ZmQtc3BsaXQtYnV0dG9uIGZkLXRvb2xiYXItaXRlbSBbbWFpbkFjdGlvbl09XCJ7IG1haW5BY3Rpb25UaXRsZTogY21kLnRleHQsIGtlZXBNYWluQWN0aW9uOiB0cnVlIH1cIj5cbiAgICAgICAgPGZkLW1lbnU+XG4gICAgICAgICAgICBAZm9yIChidG5Db21tYW5kIG9mIGNtZC5tZW51Lml0ZW1zOyB0cmFjayBidG5Db21tYW5kKSB7XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICBmZC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAjbGlFbFxuICAgICAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiY21kLnRleHRcIlxuICAgICAgICAgICAgICAgIFtob3N0RWxdPVwibGlFbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ29tbWFuZFNwbGl0QnV0dG9uQ2xpY2soJGV2ZW50LCBidG5Db21tYW5kKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7IGJ0bkNvbW1hbmQudGV4dCB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmQtbWVudT5cbiAgICA8L2ZkLXNwbGl0LWJ1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2J1dHRvblRlbXBsYXRlIGxldC1jbWQ+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgY21kPy5Db21tYW5kPy5DdXN0b21VaSA/IGN1c3RvbUJ1dHRvblRlbXBsYXRlIDogZGVmYXVsdEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGNtZCB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJ1dHRvblRlbXBsYXRlIGxldC1jbWQ+XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgI2J0bkVsXG4gICAgICAgIFtmZFR5cGVdPVwiY21kLkNvbW1hbmQ/Lkpzb25FeHRyYVByb3A/LkRlc2lnbiA/IGNtZC5Db21tYW5kPy5Kc29uRXh0cmFQcm9wLkRlc2lnbiA6ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICBbZ2x5cGhdPVwiY21kLkNvbW1hbmQ/Lk5ld0ljb24gfHwgY21kLkNvbW1hbmQ/Lkpzb25FeHRyYVByb3A/Lkljb24gfHwgJydcIlxuICAgICAgICBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiY21kXCJcbiAgICAgICAgW2xhYmVsXT1cImNtZC5Db21tYW5kPy5OZXdJY29uICYmIGNtZC5Db21tYW5kPy5Kc29uRXh0cmFQcm9wPy5JY29uID8gKGNtZC50ZXh0IHwgYmJiVHJhbnNsYXRlKSA6ICcnXCJcbiAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICBbZGJOYW1lXT1cImNtZC50ZXh0XCJcbiAgICAgICAgW2hvc3RFbF09XCJidG5FbFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjbWQuQ29tbWFuZD8uX2lzRW5hYmxlID09PSBmYWxzZVwiXG4gICAgICAgIChjb21tYW5kQ2xpY2spPVwib25Db21tYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8IS0tINqG2YjZhiDYudqp2LMg2K/YsSDYs9mF2Kog2LHYp9iz2Kog2YLYsdin2LEg2Kjar9uM2LHYryDYp9iyINmE24zYqNmEINiv2qnZhdmHINin2LPYqtmB2KfYr9mHINmG2qnYsdiv2YUgLS0+XG4gICAgICAgIEBpZiAoIWNtZC5Db21tYW5kPy5OZXdJY29uICYmICFjbWQuQ29tbWFuZD8uSnNvbkV4dHJhUHJvcD8uSWNvbikge1xuICAgICAgICA8aW1nIFtzcmNdPVwiY21kLmljb25cIiAvPlxuICAgICAgICB9XG4gICAgICAgIDxzcGFuICpuZ0lmPVwidHJ1ZSB8fCAhKGNtZC5Db21tYW5kPy5OZXdJY29uIHx8IGNtZC5Db21tYW5kPy5Kc29uRXh0cmFQcm9wPy5JY29uKVwiPnt7XG4gICAgICAgICAgICBjbWQudGV4dCB8IGJiYlRyYW5zbGF0ZVxuICAgICAgICB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2N1c3RvbUJ1dHRvblRlbXBsYXRlIGxldC1jbWQ+XG4gICAgPGRpdlxuICAgICAgICAjaG9zdEVsXG4gICAgICAgIFtkYk5hbWVdPVwiY21kLnRleHRcIlxuICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgW2hvc3RFbF09XCJob3N0RWxcIlxuICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICA+XG4gICAgICAgIDxibnJjLWR5bmFtaWMtZm9ybS10b29sYmFyaXRlbVxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbdWx2Q29tbWFuZEhhbmRsZXJdPVwiY21kXCJcbiAgICAgICAgICAgIFtjb21wb25lbnRdPVwiY21kLkNvbW1hbmQ/LkN1c3RvbVVpXCJcbiAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICBbY29udGV4dF09XCJjbWRcIlxuICAgICAgICAgICAgW3Nob3dUZXh0XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51ID09PSBmYWxzZVwiXG4gICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICBbaXNFbmFibGVdPVwiY21kLkNvbW1hbmQ/Ll9pc0VuYWJsZSB8fCBjbWQuQ29tbWFuZD8uVXNlRm9yU2luZ2xlXCJcbiAgICAgICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICAgICAgKGJ0bkNsaWNrKT1cIm9uQ29tbWFuZENsaWNrKCRldmVudClcIlxuICAgICAgICA+PC9ibnJjLWR5bmFtaWMtZm9ybS10b29sYmFyaXRlbT5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=