barsa-tiles 2.0.51 → 2.0.52

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.
@@ -1,17 +1,18 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, inject, signal } from '@angular/core';
2
2
  import { ActivatedRoute, Router } from '@angular/router';
3
- import { BarsaApi, BaseComponent, getDeviceIsMobile, LogService, LocalStorageService } from 'barsa-novin-ray-core';
3
+ import { BarsaApi, BaseComponent, getDeviceIsMobile, LogService, LocalStorageService, BreadcrumbService } from 'barsa-novin-ray-core';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  import * as i2 from "@angular/cdk/scrolling";
7
- import * as i3 from "@fundamental-ngx/core/button";
8
- import * as i4 from "@fundamental-ngx/core/dynamic-page";
9
- import * as i5 from "@fundamental-ngx/core/input-group";
10
- import * as i6 from "@fundamental-ngx/core/list";
11
- import * as i7 from "@fundamental-ngx/core/toolbar";
12
- import * as i8 from "barsa-sap-ui";
13
- import * as i9 from "../tile-renderer.directive";
14
- import * as i10 from "barsa-novin-ray-core";
7
+ import * as i3 from "@fundamental-ngx/core/breadcrumb";
8
+ import * as i4 from "@fundamental-ngx/core/button";
9
+ import * as i5 from "@fundamental-ngx/core/dynamic-page";
10
+ import * as i6 from "@fundamental-ngx/core/input-group";
11
+ import * as i7 from "@fundamental-ngx/core/list";
12
+ import * as i8 from "@fundamental-ngx/core/toolbar";
13
+ import * as i9 from "barsa-sap-ui";
14
+ import * as i10 from "../tile-renderer.directive";
15
+ import * as i11 from "barsa-novin-ray-core";
15
16
  export class BarsaTileGroupPageComponent extends BaseComponent {
16
17
  constructor() {
17
18
  super(...arguments);
@@ -24,9 +25,11 @@ export class BarsaTileGroupPageComponent extends BaseComponent {
24
25
  this._cdr = inject(ChangeDetectorRef);
25
26
  this._router = inject(Router);
26
27
  this._localStorage = inject(LocalStorageService);
28
+ this._breadCrumbService = inject(BreadcrumbService);
27
29
  }
28
30
  ngOnInit() {
29
31
  super.ngOnInit();
32
+ this.breadcrumbs$ = this._breadCrumbService.breadcrumbs$;
30
33
  this.title = localStorage.getItem('ActiveTile');
31
34
  this.isSimple = this.parameters?.IsSimple || this.settings?.IsSimple;
32
35
  this.listMode = this.parameters?.ListMode || this.settings?.ListMode;
@@ -52,13 +55,13 @@ export class BarsaTileGroupPageComponent extends BaseComponent {
52
55
  this._router.navigate(['../']);
53
56
  }
54
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaTileGroupPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaTileGroupPageComponent, selector: "bt-barsa-tile-group-page", host: { properties: { "style.position": "this._position" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isSimple ){\n<fd-dynamic-page [autoResponsive]=\"true\">\n <fd-dynamic-page-header\n [class.simple-title]=\"true\"\n [title]=\"title | bbbTranslate\"\n [class.p-b0]=\"true\"\n [class.hide-title]=\"false\"\n >\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n\n <fd-dynamic-page-content cdkScrollable>\n <ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\n </fd-dynamic-page-content>\n</fd-dynamic-page>\n} @else {\n<ng-container *ngTemplateOutlet=\"listMode ? tilesListTpl : tilesTpl\"> </ng-container>\n}\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n<ng-template #tilesTpl>\n <div class=\"tw-flex tw-gap-1\">\n @for(app of moList();track app.Id){\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app }\"></ng-container>\n }\n </div>\n</ng-template>\n<ng-template #tilesListTpl>\n <fd-toolbar>\n <label fd-toolbar-label>\u0644\u06CC\u0633\u062A \u0627\u067E \u0647\u0627 </label>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fd-input-group glyph=\"decline\" glyphAriaLabel=\"Clear\" placeholder=\"Search\" [button]=\"true\" [disabled]=\"false\">\n </fd-input-group>\n </fd-toolbar>\n\n <ul fd-list [hasNavigation]=\"true\">\n @for(app of moList();track app.Id){\n <li fd-list-item [interactive]=\"true\" class=\"tile-list-item\">\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app, listMode: true }\"></ng-container>\n </li>\n }\n </ul>\n</ng-template>\n<ng-template #tile let-app let-listMode=\"listMode\" let-navigateBack=\"navigateBack\">\n <span\n [dynamicCommand]=\"app.DynamicCommand\"\n [setToStorage]=\"false\"\n [listMode]=\"listMode\"\n [navigateBackOnClick]=\"listMode ? false : isSimple ? true : false\"\n [enableCommand]=\"app.Component\"\n tileRenderer\n [data]=\"app\"\n [edit]=\"false\"\n [component]=\"app.Component\"\n >\n </span>\n</ng-template>\n", styles: [":host{width:100%;display:block}.app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i4.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i4.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i4.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i5.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "component", type: i7.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i7.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "directive", type: i7.ToolbarLabelDirective, selector: "[fd-toolbar-label]" }, { kind: "component", type: i8.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "directive", type: i9.TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "edit", "setToStorage", "listMode", "navigateBackOnClick"], outputs: ["hideClick", "renameClick"] }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaTileGroupPageComponent, selector: "bt-barsa-tile-group-page", host: { properties: { "style.position": "this._position" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isSimple ){\n<fd-dynamic-page [autoResponsive]=\"true\">\n <fd-dynamic-page-header\n [class.simple-title]=\"true\"\n [title]=\"title | bbbTranslate\"\n [class.p-b0]=\"true\"\n [class.hide-title]=\"false\"\n >\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\n <fd-breadcrumb>\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs | slice:\n 0:breadCrumbs.length; track breadCrumb; let i = $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n } }\n </fd-breadcrumb>\n </fd-dynamic-page-breadcrumb>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n\n <fd-dynamic-page-content cdkScrollable>\n <ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\n </fd-dynamic-page-content>\n</fd-dynamic-page>\n} @else {\n<ng-container *ngTemplateOutlet=\"listMode ? tilesListTpl : tilesTpl\"> </ng-container>\n}\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n<ng-template #tilesTpl>\n <div class=\"tw-flex tw-gap-1\">\n @for(app of moList();track app.Id){\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app }\"></ng-container>\n }\n </div>\n</ng-template>\n<ng-template #tilesListTpl>\n <fd-toolbar>\n <label fd-toolbar-label>\u0644\u06CC\u0633\u062A \u0627\u067E \u0647\u0627 </label>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fd-input-group glyph=\"decline\" glyphAriaLabel=\"Clear\" placeholder=\"Search\" [button]=\"true\" [disabled]=\"false\">\n </fd-input-group>\n </fd-toolbar>\n\n <ul fd-list [hasNavigation]=\"true\">\n @for(app of moList();track app.Id){\n <li fd-list-item [interactive]=\"true\" class=\"tile-list-item\">\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app, listMode: true }\"></ng-container>\n </li>\n }\n </ul>\n</ng-template>\n<ng-template #tile let-app let-listMode=\"listMode\" let-navigateBack=\"navigateBack\">\n <span\n [dynamicCommand]=\"app.DynamicCommand\"\n [setToStorage]=\"false\"\n [listMode]=\"listMode\"\n [navigateBackOnClick]=\"listMode ? false : isSimple ? true : false\"\n [enableCommand]=\"app.Component\"\n tileRenderer\n [data]=\"app\"\n [edit]=\"false\"\n [component]=\"app.Component\"\n >\n </span>\n</ng-template>\n", styles: [":host{width:100%;display:block}.app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i3.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i3.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i5.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i5.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i5.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i5.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i6.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "component", type: i8.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i8.ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "directive", type: i8.ToolbarLabelDirective, selector: "[fd-toolbar-label]" }, { kind: "component", type: i9.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i9.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "directive", type: i10.TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "edit", "setToStorage", "listMode", "navigateBackOnClick"], outputs: ["hideClick", "renameClick"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i11.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
56
59
  }
57
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaTileGroupPageComponent, decorators: [{
58
61
  type: Component,
59
- args: [{ selector: 'bt-barsa-tile-group-page', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(!isSimple ){\n<fd-dynamic-page [autoResponsive]=\"true\">\n <fd-dynamic-page-header\n [class.simple-title]=\"true\"\n [title]=\"title | bbbTranslate\"\n [class.p-b0]=\"true\"\n [class.hide-title]=\"false\"\n >\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n\n <fd-dynamic-page-content cdkScrollable>\n <ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\n </fd-dynamic-page-content>\n</fd-dynamic-page>\n} @else {\n<ng-container *ngTemplateOutlet=\"listMode ? tilesListTpl : tilesTpl\"> </ng-container>\n}\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n<ng-template #tilesTpl>\n <div class=\"tw-flex tw-gap-1\">\n @for(app of moList();track app.Id){\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app }\"></ng-container>\n }\n </div>\n</ng-template>\n<ng-template #tilesListTpl>\n <fd-toolbar>\n <label fd-toolbar-label>\u0644\u06CC\u0633\u062A \u0627\u067E \u0647\u0627 </label>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fd-input-group glyph=\"decline\" glyphAriaLabel=\"Clear\" placeholder=\"Search\" [button]=\"true\" [disabled]=\"false\">\n </fd-input-group>\n </fd-toolbar>\n\n <ul fd-list [hasNavigation]=\"true\">\n @for(app of moList();track app.Id){\n <li fd-list-item [interactive]=\"true\" class=\"tile-list-item\">\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app, listMode: true }\"></ng-container>\n </li>\n }\n </ul>\n</ng-template>\n<ng-template #tile let-app let-listMode=\"listMode\" let-navigateBack=\"navigateBack\">\n <span\n [dynamicCommand]=\"app.DynamicCommand\"\n [setToStorage]=\"false\"\n [listMode]=\"listMode\"\n [navigateBackOnClick]=\"listMode ? false : isSimple ? true : false\"\n [enableCommand]=\"app.Component\"\n tileRenderer\n [data]=\"app\"\n [edit]=\"false\"\n [component]=\"app.Component\"\n >\n </span>\n</ng-template>\n", styles: [":host{width:100%;display:block}.app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}\n"] }]
62
+ args: [{ selector: 'bt-barsa-tile-group-page', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(!isSimple ){\n<fd-dynamic-page [autoResponsive]=\"true\">\n <fd-dynamic-page-header\n [class.simple-title]=\"true\"\n [title]=\"title | bbbTranslate\"\n [class.p-b0]=\"true\"\n [class.hide-title]=\"false\"\n >\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\n <fd-breadcrumb>\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs | slice:\n 0:breadCrumbs.length; track breadCrumb; let i = $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n } }\n </fd-breadcrumb>\n </fd-dynamic-page-breadcrumb>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n\n <fd-dynamic-page-content cdkScrollable>\n <ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\n </fd-dynamic-page-content>\n</fd-dynamic-page>\n} @else {\n<ng-container *ngTemplateOutlet=\"listMode ? tilesListTpl : tilesTpl\"> </ng-container>\n}\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n<ng-template #tilesTpl>\n <div class=\"tw-flex tw-gap-1\">\n @for(app of moList();track app.Id){\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app }\"></ng-container>\n }\n </div>\n</ng-template>\n<ng-template #tilesListTpl>\n <fd-toolbar>\n <label fd-toolbar-label>\u0644\u06CC\u0633\u062A \u0627\u067E \u0647\u0627 </label>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fd-input-group glyph=\"decline\" glyphAriaLabel=\"Clear\" placeholder=\"Search\" [button]=\"true\" [disabled]=\"false\">\n </fd-input-group>\n </fd-toolbar>\n\n <ul fd-list [hasNavigation]=\"true\">\n @for(app of moList();track app.Id){\n <li fd-list-item [interactive]=\"true\" class=\"tile-list-item\">\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app, listMode: true }\"></ng-container>\n </li>\n }\n </ul>\n</ng-template>\n<ng-template #tile let-app let-listMode=\"listMode\" let-navigateBack=\"navigateBack\">\n <span\n [dynamicCommand]=\"app.DynamicCommand\"\n [setToStorage]=\"false\"\n [listMode]=\"listMode\"\n [navigateBackOnClick]=\"listMode ? false : isSimple ? true : false\"\n [enableCommand]=\"app.Component\"\n tileRenderer\n [data]=\"app\"\n [edit]=\"false\"\n [component]=\"app.Component\"\n >\n </span>\n</ng-template>\n", styles: [":host{width:100%;display:block}.app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}\n"] }]
60
63
  }], propDecorators: { _position: [{
61
64
  type: HostBinding,
62
65
  args: ['style.position']
63
66
  }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGlsZS1ncm91cC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvYmFyc2EtdGlsZS1ncm91cC1wYWdlL2JhcnNhLXRpbGUtZ3JvdXAtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL2JhcnNhLXRpbGUtZ3JvdXAtcGFnZS9iYXJzYS10aWxlLWdyb3VwLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBRU4sTUFBTSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUNILFFBQVEsRUFDUixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFVBQVUsRUFFVixtQkFBbUIsRUFFdEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUzlCLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxhQUFhO0lBTjlEOztRQU9tQyxjQUFTLEdBQUcsVUFBVSxDQUFDO1FBQ3RELFdBQU0sR0FBRyxNQUFNLENBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQy9CLFFBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUt6QixnQkFBVyxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6QyxTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0tBK0J6RDtJQTVCRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7UUFDckUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFDaEMsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RCxRQUFRLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1lBQ3pCLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQixNQUFNLEVBQUUsa0JBQWtCO1lBQzFCLFNBQVMsRUFBRSxDQUFDLENBQW1CLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQW9DLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsT0FBTztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQTNDUSwyQkFBMkI7a0dBQTNCLDJCQUEyQiwwS0M3QnhDLGk4RUFnRUE7OzJGRG5DYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdoQixTQUFTO3NCQUF2QyxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgc2lnbmFsLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtcbiAgICBCYXJzYUFwaSxcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIGdldERldmljZUlzTW9iaWxlLFxuICAgIExvZ1NlcnZpY2UsXG4gICAgTW9Gb3JSZXBvcnRNb2RlbCxcbiAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWxcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgQmFzZVRpbGVTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdidC1iYXJzYS10aWxlLWdyb3VwLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10aWxlLWdyb3VwLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRpbGUtZ3JvdXAtcGFnZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGlsZUdyb3VwUGFnZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucG9zaXRpb24nKSBfcG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIG1vTGlzdCA9IHNpZ25hbDxCYXNlVGlsZVNldHRpbmdbXT4oW10pO1xuICAgIGlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICBydGwgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzUnRsO1xuICAgIHRpdGxlOiBzdHJpbmcgfCBudWxsO1xuICAgIGRpYWxvZ1JlZjogYW55O1xuICAgIHBhcmFtZXRlcnM6IEJhcnNhVGlsZUdyb3VwUGFnZVNldHRpbmdzO1xuICAgIHNldHRpbmdzOiBCYXJzYVRpbGVHcm91cFBhZ2VTZXR0aW5ncztcbiAgICBwcm90ZWN0ZWQgX2xvZ1NlcnZpY2U6IExvZ1NlcnZpY2UgPSBpbmplY3QoTG9nU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIF9hY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJvdGVjdGVkIF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByb3RlY3RlZCBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJvdGVjdGVkIF9sb2NhbFN0b3JhZ2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlU2VydmljZSk7XG4gICAgaXNTaW1wbGU6IGJvb2xlYW47XG4gICAgbGlzdE1vZGU6IGJvb2xlYW47XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMudGl0bGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQWN0aXZlVGlsZScpO1xuICAgICAgICB0aGlzLmlzU2ltcGxlID0gdGhpcy5wYXJhbWV0ZXJzPy5Jc1NpbXBsZSB8fCB0aGlzLnNldHRpbmdzPy5Jc1NpbXBsZTtcbiAgICAgICAgdGhpcy5saXN0TW9kZSA9IHRoaXMucGFyYW1ldGVycz8uTGlzdE1vZGUgfHwgdGhpcy5zZXR0aW5ncz8uTGlzdE1vZGU7XG4gICAgICAgIGlmICh0aGlzLmlzU2ltcGxlKSB7XG4gICAgICAgICAgICB0aGlzLl9wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpZCA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1snaWQnXTtcblxuICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZEFzeW5jKHtcbiAgICAgICAgICAgIFBhcmFtZXRlcnM6IFtpZF0sXG4gICAgICAgICAgICBNZXRob2Q6ICdHZXRUaWxlR3JvdXBBcHBzJyxcbiAgICAgICAgICAgIFN1Y2Nlc3NGbjogKGU6IE1vRm9yUmVwb3J0TW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vTGlzdC5zZXQoZS5Nb0RhdGFMaXN0IGFzIEFycmF5PEJhc2VUaWxlU2V0dGluZz4pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEZhaWxGbjogKGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2dTZXJ2aWNlLmVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICB9XG4gICAgb25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnLi4vJ10pO1xuICAgIH1cbn1cbmludGVyZmFjZSBCYXJzYVRpbGVHcm91cFBhZ2VTZXR0aW5ncyBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xuICAgIElzU2ltcGxlOiBib29sZWFuO1xuICAgIExpc3RNb2RlOiBib29sZWFuO1xufVxuIiwiQGlmKCFpc1NpbXBsZSApe1xuPGZkLWR5bmFtaWMtcGFnZSBbYXV0b1Jlc3BvbnNpdmVdPVwidHJ1ZVwiPlxuICAgIDxmZC1keW5hbWljLXBhZ2UtaGVhZGVyXG4gICAgICAgIFtjbGFzcy5zaW1wbGUtdGl0bGVdPVwidHJ1ZVwiXG4gICAgICAgIFt0aXRsZV09XCJ0aXRsZSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIFtjbGFzcy5wLWIwXT1cInRydWVcIlxuICAgICAgICBbY2xhc3MuaGlkZS10aXRsZV09XCJmYWxzZVwiXG4gICAgPlxuICAgICAgICA8ZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgICAgICAgICAgPGZkLXRvb2xiYXIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbY2xlYXJCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiIHRpdGxlPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidzYXAtaWNvbi0tJyArIChpc01vYmlsZSA/IChydGwgPyAnYXJyb3ctcmlnaHQnIDogJ2Fycm93LWxlZnQnKSA6ICdkZWNsaW5lJylcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zPlxuICAgIDwvZmQtZHluYW1pYy1wYWdlLWhlYWRlcj5cblxuICAgIDxmZC1keW5hbWljLXBhZ2UtY29udGVudCBjZGtTY3JvbGxhYmxlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGlsZXNUcGxcIj4gPC9uZy1jb250YWluZXI+XG4gICAgPC9mZC1keW5hbWljLXBhZ2UtY29udGVudD5cbjwvZmQtZHluYW1pYy1wYWdlPlxufSBAZWxzZSB7XG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGlzdE1vZGUgPyB0aWxlc0xpc3RUcGwgOiB0aWxlc1RwbFwiPiA8L25nLWNvbnRhaW5lcj5cbn1cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ1RwbD5cbiAgICA8YnN1LW1hc2s+PC9ic3UtbWFzaz5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RpbGVzVHBsPlxuICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWdhcC0xXCI+XG4gICAgICAgIEBmb3IoYXBwIG9mIG1vTGlzdCgpO3RyYWNrIGFwcC5JZCl7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aWxlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYXBwIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGlsZXNMaXN0VHBsPlxuICAgIDxmZC10b29sYmFyPlxuICAgICAgICA8bGFiZWwgZmQtdG9vbGJhci1sYWJlbD7ZhNuM2LPYqiDYp9m+INmH2KcgPC9sYWJlbD5cbiAgICAgICAgPGZkLXRvb2xiYXItc3BhY2VyPjwvZmQtdG9vbGJhci1zcGFjZXI+XG4gICAgICAgIDxmZC1pbnB1dC1ncm91cCBnbHlwaD1cImRlY2xpbmVcIiBnbHlwaEFyaWFMYWJlbD1cIkNsZWFyXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBbYnV0dG9uXT1cInRydWVcIiBbZGlzYWJsZWRdPVwiZmFsc2VcIj5cbiAgICAgICAgPC9mZC1pbnB1dC1ncm91cD5cbiAgICA8L2ZkLXRvb2xiYXI+XG5cbiAgICA8dWwgZmQtbGlzdCBbaGFzTmF2aWdhdGlvbl09XCJ0cnVlXCI+XG4gICAgICAgIEBmb3IoYXBwIG9mIG1vTGlzdCgpO3RyYWNrIGFwcC5JZCl7XG4gICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gW2ludGVyYWN0aXZlXT1cInRydWVcIiBjbGFzcz1cInRpbGUtbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGlsZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGFwcCwgbGlzdE1vZGU6IHRydWUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RpbGUgbGV0LWFwcCBsZXQtbGlzdE1vZGU9XCJsaXN0TW9kZVwiIGxldC1uYXZpZ2F0ZUJhY2s9XCJuYXZpZ2F0ZUJhY2tcIj5cbiAgICA8c3BhblxuICAgICAgICBbZHluYW1pY0NvbW1hbmRdPVwiYXBwLkR5bmFtaWNDb21tYW5kXCJcbiAgICAgICAgW3NldFRvU3RvcmFnZV09XCJmYWxzZVwiXG4gICAgICAgIFtsaXN0TW9kZV09XCJsaXN0TW9kZVwiXG4gICAgICAgIFtuYXZpZ2F0ZUJhY2tPbkNsaWNrXT1cImxpc3RNb2RlID8gZmFsc2UgOiBpc1NpbXBsZSA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgIFtlbmFibGVDb21tYW5kXT1cImFwcC5Db21wb25lbnRcIlxuICAgICAgICB0aWxlUmVuZGVyZXJcbiAgICAgICAgW2RhdGFdPVwiYXBwXCJcbiAgICAgICAgW2VkaXRdPVwiZmFsc2VcIlxuICAgICAgICBbY29tcG9uZW50XT1cImFwcC5Db21wb25lbnRcIlxuICAgID5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGlsZS1ncm91cC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvYmFyc2EtdGlsZS1ncm91cC1wYWdlL2JhcnNhLXRpbGUtZ3JvdXAtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL2JhcnNhLXRpbGUtZ3JvdXAtcGFnZS9iYXJzYS10aWxlLWdyb3VwLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBRU4sTUFBTSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUNILFFBQVEsRUFDUixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFVBQVUsRUFFVixtQkFBbUIsRUFFbkIsaUJBQWlCLEVBRXBCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFVOUIsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGFBQWE7SUFOOUQ7O1FBT21DLGNBQVMsR0FBRyxVQUFVLENBQUM7UUFDdEQsV0FBTSxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDL0IsUUFBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBS3pCLGdCQUFXLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLFNBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDNUMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FpQzVEO0lBN0JHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBQ3pELElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7UUFDckUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFDaEMsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RCxRQUFRLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1lBQ3pCLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQixNQUFNLEVBQUUsa0JBQWtCO1lBQzFCLFNBQVMsRUFBRSxDQUFDLENBQW1CLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQW9DLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsT0FBTztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQTlDUSwyQkFBMkI7a0dBQTNCLDJCQUEyQiwwS0NoQ3hDLHVwR0ErRUE7OzJGRC9DYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdoQixTQUFTO3NCQUF2QyxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgc2lnbmFsLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtcbiAgICBCYXJzYUFwaSxcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIGdldERldmljZUlzTW9iaWxlLFxuICAgIExvZ1NlcnZpY2UsXG4gICAgTW9Gb3JSZXBvcnRNb2RlbCxcbiAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgQnJlYWRDcnVtYkluZm9cbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgQmFzZVRpbGVTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdidC1iYXJzYS10aWxlLWdyb3VwLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10aWxlLWdyb3VwLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRpbGUtZ3JvdXAtcGFnZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGlsZUdyb3VwUGFnZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucG9zaXRpb24nKSBfcG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIG1vTGlzdCA9IHNpZ25hbDxCYXNlVGlsZVNldHRpbmdbXT4oW10pO1xuICAgIGlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICBydGwgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzUnRsO1xuICAgIHRpdGxlOiBzdHJpbmcgfCBudWxsO1xuICAgIGRpYWxvZ1JlZjogYW55O1xuICAgIHBhcmFtZXRlcnM6IEJhcnNhVGlsZUdyb3VwUGFnZVNldHRpbmdzO1xuICAgIHNldHRpbmdzOiBCYXJzYVRpbGVHcm91cFBhZ2VTZXR0aW5ncztcbiAgICBwcm90ZWN0ZWQgX2xvZ1NlcnZpY2U6IExvZ1NlcnZpY2UgPSBpbmplY3QoTG9nU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIF9hY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJvdGVjdGVkIF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByb3RlY3RlZCBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJvdGVjdGVkIF9sb2NhbFN0b3JhZ2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIF9icmVhZENydW1iU2VydmljZSA9IGluamVjdChCcmVhZGNydW1iU2VydmljZSk7XG4gICAgaXNTaW1wbGU6IGJvb2xlYW47XG4gICAgbGlzdE1vZGU6IGJvb2xlYW47XG4gICAgYnJlYWRjcnVtYnMkOiBPYnNlcnZhYmxlPEJyZWFkQ3J1bWJJbmZvW10+O1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmJyZWFkY3J1bWJzJCA9IHRoaXMuX2JyZWFkQ3J1bWJTZXJ2aWNlLmJyZWFkY3J1bWJzJDtcbiAgICAgICAgdGhpcy50aXRsZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdBY3RpdmVUaWxlJyk7XG4gICAgICAgIHRoaXMuaXNTaW1wbGUgPSB0aGlzLnBhcmFtZXRlcnM/LklzU2ltcGxlIHx8IHRoaXMuc2V0dGluZ3M/LklzU2ltcGxlO1xuICAgICAgICB0aGlzLmxpc3RNb2RlID0gdGhpcy5wYXJhbWV0ZXJzPy5MaXN0TW9kZSB8fCB0aGlzLnNldHRpbmdzPy5MaXN0TW9kZTtcbiAgICAgICAgaWYgKHRoaXMuaXNTaW1wbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xuXG4gICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe1xuICAgICAgICAgICAgUGFyYW1ldGVyczogW2lkXSxcbiAgICAgICAgICAgIE1ldGhvZDogJ0dldFRpbGVHcm91cEFwcHMnLFxuICAgICAgICAgICAgU3VjY2Vzc0ZuOiAoZTogTW9Gb3JSZXBvcnRNb2RlbCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW9MaXN0LnNldChlLk1vRGF0YUxpc3QgYXMgQXJyYXk8QmFzZVRpbGVTZXR0aW5nPik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgRmFpbEZuOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ1NlcnZpY2UuZXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycuLi8nXSk7XG4gICAgfVxufVxuaW50ZXJmYWNlIEJhcnNhVGlsZUdyb3VwUGFnZVNldHRpbmdzIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgSXNTaW1wbGU6IGJvb2xlYW47XG4gICAgTGlzdE1vZGU6IGJvb2xlYW47XG59XG4iLCJAaWYoIWlzU2ltcGxlICl7XG48ZmQtZHluYW1pYy1wYWdlIFthdXRvUmVzcG9uc2l2ZV09XCJ0cnVlXCI+XG4gICAgPGZkLWR5bmFtaWMtcGFnZS1oZWFkZXJcbiAgICAgICAgW2NsYXNzLnNpbXBsZS10aXRsZV09XCJ0cnVlXCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgW2NsYXNzLnAtYjBdPVwidHJ1ZVwiXG4gICAgICAgIFtjbGFzcy5oaWRlLXRpdGxlXT1cImZhbHNlXCJcbiAgICA+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtYnJlYWRjcnVtYiBbY2xhc3MuaGlkZV09XCJpc01vYmlsZVwiPlxuICAgICAgICAgICAgPGZkLWJyZWFkY3J1bWI+XG4gICAgICAgICAgICAgICAgQGlmIChicmVhZGNydW1icyQgfCBhc3luYzsgYXMgYnJlYWRDcnVtYnMpIHsgQGZvciAoIGJyZWFkQ3J1bWIgb2YgYnJlYWRDcnVtYnMgfCBzbGljZTpcbiAgICAgICAgICAgICAgICAwOmJyZWFkQ3J1bWJzLmxlbmd0aDsgdHJhY2sgYnJlYWRDcnVtYjsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgICAgICAgICA8ZmQtYnJlYWRjcnVtYi1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8YnN1LWJyZWFkY3J1bWJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0xhc3RdPVwibGFzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnJlYWRDcnVtYl09XCJicmVhZENydW1iXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWJyZWFkY3J1bWI+XG4gICAgICAgICAgICAgICAgPC9mZC1icmVhZGNydW1iLWl0ZW0+XG4gICAgICAgICAgICAgICAgfSB9XG4gICAgICAgICAgICA8L2ZkLWJyZWFkY3J1bWI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWJyZWFkY3J1bWI+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgICAgICAgICA8ZmQtdG9vbGJhciBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwib25DbG9zZSgpXCIgdGl0bGU9XCJDbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ3NhcC1pY29uLS0nICsgKGlzTW9iaWxlID8gKHJ0bCA/ICdhcnJvdy1yaWdodCcgOiAnYXJyb3ctbGVmdCcpIDogJ2RlY2xpbmUnKVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgPC9mZC1keW5hbWljLXBhZ2UtaGVhZGVyPlxuXG4gICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IGNka1Njcm9sbGFibGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aWxlc1RwbFwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1jb250ZW50PlxuPC9mZC1keW5hbWljLXBhZ2U+XG59IEBlbHNlIHtcbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0TW9kZSA/IHRpbGVzTGlzdFRwbCA6IHRpbGVzVHBsXCI+IDwvbmctY29udGFpbmVyPlxufVxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICAgIDxic3UtbWFzaz48L2JzdS1tYXNrPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGlsZXNUcGw+XG4gICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZ2FwLTFcIj5cbiAgICAgICAgQGZvcihhcHAgb2YgbW9MaXN0KCk7dHJhY2sgYXBwLklkKXtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRpbGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBhcHAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0aWxlc0xpc3RUcGw+XG4gICAgPGZkLXRvb2xiYXI+XG4gICAgICAgIDxsYWJlbCBmZC10b29sYmFyLWxhYmVsPtmE24zYs9iqINin2b4g2YfYpyA8L2xhYmVsPlxuICAgICAgICA8ZmQtdG9vbGJhci1zcGFjZXI+PC9mZC10b29sYmFyLXNwYWNlcj5cbiAgICAgICAgPGZkLWlucHV0LWdyb3VwIGdseXBoPVwiZGVjbGluZVwiIGdseXBoQXJpYUxhYmVsPVwiQ2xlYXJcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiIFtidXR0b25dPVwidHJ1ZVwiIFtkaXNhYmxlZF09XCJmYWxzZVwiPlxuICAgICAgICA8L2ZkLWlucHV0LWdyb3VwPlxuICAgIDwvZmQtdG9vbGJhcj5cblxuICAgIDx1bCBmZC1saXN0IFtoYXNOYXZpZ2F0aW9uXT1cInRydWVcIj5cbiAgICAgICAgQGZvcihhcHAgb2YgbW9MaXN0KCk7dHJhY2sgYXBwLklkKXtcbiAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSBbaW50ZXJhY3RpdmVdPVwidHJ1ZVwiIGNsYXNzPVwidGlsZS1saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aWxlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYXBwLCBsaXN0TW9kZTogdHJ1ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGlsZSBsZXQtYXBwIGxldC1saXN0TW9kZT1cImxpc3RNb2RlXCIgbGV0LW5hdmlnYXRlQmFjaz1cIm5hdmlnYXRlQmFja1wiPlxuICAgIDxzcGFuXG4gICAgICAgIFtkeW5hbWljQ29tbWFuZF09XCJhcHAuRHluYW1pY0NvbW1hbmRcIlxuICAgICAgICBbc2V0VG9TdG9yYWdlXT1cImZhbHNlXCJcbiAgICAgICAgW2xpc3RNb2RlXT1cImxpc3RNb2RlXCJcbiAgICAgICAgW25hdmlnYXRlQmFja09uQ2xpY2tdPVwibGlzdE1vZGUgPyBmYWxzZSA6IGlzU2ltcGxlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgW2VuYWJsZUNvbW1hbmRdPVwiYXBwLkNvbXBvbmVudFwiXG4gICAgICAgIHRpbGVSZW5kZXJlclxuICAgICAgICBbZGF0YV09XCJhcHBcIlxuICAgICAgICBbZWRpdF09XCJmYWxzZVwiXG4gICAgICAgIFtjb21wb25lbnRdPVwiYXBwLkNvbXBvbmVudFwiXG4gICAgPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=