barsa-tiles 2.3.157 → 2.3.158

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,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { signal, computed, inject, Injectable, DestroyRef, ChangeDetectionStrategy, Component, Input, Directive, ChangeDetectorRef, ViewContainerRef, HostListener, EventEmitter, Output, ElementRef, ViewChild, Pipe, HostBinding, Injector, input, Renderer2, TemplateRef, DOCUMENT, NgModule, ComponentFactoryResolver, provideAppInitializer, NO_ERRORS_SCHEMA } from '@angular/core';
3
3
  import * as i5 from 'barsa-novin-ray-core';
4
- import { BarsaApi, BbbTranslatePipe, PortalService, TilePropsComponent, BaseComponent, BaseDirective, IsDarkMode, LocalStorageService, PreventDefaulEvent, getDeviceIsMobile, BaseController, BaseDynamicComponent, SaveScrollPositionService, ExecuteDynamicCommand, ShellbarHeightService, ViewBase, GroupByService, APP_VERSION, getDeviceIsDesktop, getDeviceIsTablet, ApplicationCtrlrService, BreadcrumbService, NotificationService, SortDirection, LogService, RoutingService, EmptyPageComponent, ReportNavigatorComponent, TileGroupBreadcrumResolver, PortalPageResolver, AuthGuard, BaseModule, DynamicComponentService, BarsaNovinRayCoreModule } from 'barsa-novin-ray-core';
4
+ import { BarsaApi, BbbTranslatePipe, PortalService, TilePropsComponent, BaseComponent, BaseDirective, IsDarkMode, LocalStorageService, PreventDefaulEvent, ScrollLayoutContextHolder, getDeviceIsMobile, BaseController, BaseDynamicComponent, SaveScrollPositionService, ExecuteDynamicCommand, ShellbarHeightService, ViewBase, GroupByService, APP_VERSION, getDeviceIsDesktop, getDeviceIsTablet, ApplicationCtrlrService, BreadcrumbService, NotificationService, SortDirection, LogService, RoutingService, EmptyPageComponent, ReportNavigatorComponent, TileGroupBreadcrumResolver, PortalPageResolver, AuthGuard, BaseModule, DynamicComponentService, BarsaNovinRayCoreModule } from 'barsa-novin-ray-core';
5
5
  import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
6
  import { map, from, Subject, of, firstValueFrom, takeUntil, filter as filter$1, finalize, BehaviorSubject, interval, combineLatest, fromEvent, forkJoin } from 'rxjs';
7
7
  import { startWith, shareReplay, distinctUntilChanged, filter, tap, map as map$1, concatMap, takeUntil as takeUntil$1, debounceTime, withLatestFrom, exhaustMap, finalize as finalize$1 } from 'rxjs/operators';
@@ -66,9 +66,9 @@ function setTileInfo(appTile) {
66
66
  function prepareNavigator(appTileGroup, translate) {
67
67
  appTileGroup.$TileSettingChanged = false;
68
68
  appTileGroup.$Disabledpin = false;
69
- appTileGroup.navigatorTitle = BarsaApi.Common.Util.TryGetValue(appTileGroup, 'UserAppTileGroupSetting.Title', appTileGroup.Title);
69
+ const hasUserSettings = BarsaApi.Common.Util.TryGetValue(appTileGroup, 'UserAppTileGroupSetting', false);
70
70
  appTileGroup.navigatorTitle =
71
- appTileGroup.navigatorTitle === '' ? appTileGroup.Title : appTileGroup.navigatorTitle;
71
+ !hasUserSettings ? appTileGroup.Title : appTileGroup.navigatorTitle;
72
72
  appTileGroup.navigatorTitle = translate.transform(appTileGroup.navigatorTitle);
73
73
  const orderItem = BarsaApi.Common.Util.TryGetValue(appTileGroup, 'UserAppTileGroupSetting.OrderItem', null);
74
74
  appTileGroup.navigatorOrderItem = orderItem !== null ? orderItem : appTileGroup.OrderItem;
@@ -1265,7 +1265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
1265
1265
 
1266
1266
  class TileGroupBaseComponent extends BaseComponent {
1267
1267
  constructor() {
1268
- super(...arguments);
1268
+ super();
1269
1269
  this.tilesDropped = new EventEmitter();
1270
1270
  this.hideAppTileClick = new EventEmitter();
1271
1271
  this.renameAppTileClick = new EventEmitter();
@@ -1274,7 +1274,12 @@ class TileGroupBaseComponent extends BaseComponent {
1274
1274
  this.resetGroup = new EventEmitter();
1275
1275
  this.deleteGroup = new EventEmitter();
1276
1276
  this.isJustifyStart = signal(false);
1277
+ this._scrollLayoutContext = inject(ScrollLayoutContextHolder);
1278
+ /**
1279
+ *
1280
+ */
1277
1281
  this._cdr = inject(ChangeDetectorRef);
1282
+ this._scrollLayoutContext.setMode('nested');
1278
1283
  }
1279
1284
  ngOnChanges(changes) {
1280
1285
  super.ngOnChanges(changes);
@@ -1321,8 +1326,8 @@ class TileGroupBaseComponent extends BaseComponent {
1321
1326
  const x = this.appTileGroup && this.appTileGroup.navigatorTiles;
1322
1327
  this.isJustifyStart.set(x && x.length ? x.length % 3 !== 0 : false);
1323
1328
  }
1324
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TileGroupBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1325
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: TileGroupBaseComponent, isStandalone: false, selector: "bt-tile-group-base", inputs: { parameters: "parameters", appTileGroup: "appTileGroup", childrenAppTileGroup: "childrenAppTileGroup", stackContent: "stackContent", cssStyles: "cssStyles", edit: "edit", visible: "visible", rtl: "rtl", isAppTileSubGroup: "isAppTileSubGroup", deviceSize: "deviceSize", isLast: "isLast" }, outputs: { tilesDropped: "tilesDropped", hideAppTileClick: "hideAppTileClick", renameAppTileClick: "renameAppTileClick", changeGroupAppTileClick: "changeGroupAppTileClick", toggleGroup: "toggleGroup", resetGroup: "resetGroup", deleteGroup: "deleteGroup" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1329
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TileGroupBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1330
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: TileGroupBaseComponent, isStandalone: false, selector: "bt-tile-group-base", inputs: { parameters: "parameters", appTileGroup: "appTileGroup", childrenAppTileGroup: "childrenAppTileGroup", stackContent: "stackContent", cssStyles: "cssStyles", edit: "edit", visible: "visible", rtl: "rtl", isAppTileSubGroup: "isAppTileSubGroup", deviceSize: "deviceSize", isLast: "isLast" }, outputs: { tilesDropped: "tilesDropped", hideAppTileClick: "hideAppTileClick", renameAppTileClick: "renameAppTileClick", changeGroupAppTileClick: "changeGroupAppTileClick", toggleGroup: "toggleGroup", resetGroup: "resetGroup", deleteGroup: "deleteGroup" }, providers: [ScrollLayoutContextHolder], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1326
1331
  }
1327
1332
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TileGroupBaseComponent, decorators: [{
1328
1333
  type: Component,
@@ -1330,9 +1335,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
1330
1335
  selector: 'bt-tile-group-base',
1331
1336
  template: '',
1332
1337
  changeDetection: ChangeDetectionStrategy.OnPush,
1333
- standalone: false
1338
+ standalone: false,
1339
+ providers: [ScrollLayoutContextHolder]
1334
1340
  }]
1335
- }], propDecorators: { parameters: [{
1341
+ }], ctorParameters: () => [], propDecorators: { parameters: [{
1336
1342
  type: Input
1337
1343
  }], appTileGroup: [{
1338
1344
  type: Input
@@ -1567,11 +1573,11 @@ class TilesViewerGroupComponent extends TileGroupBaseComponent {
1567
1573
  }
1568
1574
  }
1569
1575
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TilesViewerGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1570
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TilesViewerGroupComponent, isStandalone: false, selector: "bt-tiles-viewer-group", usesInheritance: true, ngImport: i0, template: "<fd-layout-panel\r\n [attr.editHome]=\"edit\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!edit || !stackContent\"\r\n [ngClass]=\"appTileGroup.TileGroupType$Caption\"\r\n [class.hide-header]=\"appTileGroup.HideHeader\"\r\n [style.background-color]=\"appTileGroup.BackgroundColor ? appTileGroup.BackgroundColor : null\"\r\n [class.custom-color]=\"appTileGroup.BackgroundColor\"\r\n [class.tw-pb-2]=\"isLast\"\r\n [class.hide]=\"!appTileGroup?.navigatorTiles?.length && !appTileGroup.navigatorActionLinks.length\"\r\n [class.!tw-mb-2]=\"edit\"\r\n>\r\n @if (edit || stackContent || isAppTileSubGroup || appTileGroup.HideHeader) {\r\n <fd-layout-panel-header>\r\n <fd-layout-panel-head>\r\n <h5 fd-layout-panel-title>{{ appTileGroup.navigatorTitle | bbbTranslate }}</h5>\r\n </fd-layout-panel-head>\r\n @if (edit) {\r\n <fd-layout-panel-actions class=\"group-btns\">\r\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [label]=\"!visible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\r\n (click)=\"onToggleShowHide(appTileGroup)\"\r\n ></button>\r\n @if (appTileGroup.Predefined && appTileGroup.$TileSettingChanged) {\r\n <button fd-button [label]=\"'Refresh' | bbbTranslate\" (click)=\"onReset(appTileGroup)\"></button>\r\n } @if (appTileGroup.CanDelete) {\r\n <button\r\n fd-button\r\n [label]=\"'Delete' | bbbTranslate\"\r\n [fdType]=\"'negative'\"\r\n (click)=\"onDelete(appTileGroup)\"\r\n ></button>\r\n }\r\n </fd-toolbar>\r\n </fd-layout-panel-actions>\r\n }\r\n </fd-layout-panel-header>\r\n }\r\n <fd-layout-panel-body [class.small-size]=\"deviceSize === 's'\">\r\n <div\r\n class=\"tile-wrapper\"\r\n tilesCls\r\n [class.!tw-hidden]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\r\n [class.!tw-justify-start]=\"isJustifyStart()\"\r\n [rtl]=\"rtl\"\r\n [appTileGroup]=\"appTileGroup\"\r\n [deviceSize]=\"deviceSize\"\r\n [ngClass]=\"deviceSize\"\r\n #tiles=\"cdkDropList\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\r\n [cdkDropListConnectedTo]=\"actionLinks\"\r\n [cdkDropListData]=\"{\r\n isTile: true,\r\n items: appTileGroup.navigatorTiles || []\r\n }\"\r\n >\r\n @if (!edit) { @if (!appTileGroup.$TilesLoaded) {\r\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\r\n } @else if (!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded) {\r\n <h5 fd-title></h5>\r\n } } @for (appTile of appTileGroup?.navigatorTiles; track appTile.Id; let k = $index) {\r\n <div\r\n [class.edit-home]=\"edit\"\r\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\r\n >\r\n <span\r\n [dynamicCommand]=\"appTile.DynamicCommand\"\r\n [setToStorage]=\"true\"\r\n [enableCommand]=\"!edit && appTile.Component\"\r\n tileRenderer\r\n [deviceSize]=\"deviceSize\"\r\n [data]=\"appTile\"\r\n [groupType]=\"appTileGroup.TileGroupType$Caption\"\r\n [edit]=\"edit\"\r\n [component]=\"appTile.Component\"\r\n (hideClick)=\"onAppTileHideClick(appTile)\"\r\n (renameClick)=\"onAppTileRenameClick(appTile)\"\r\n (changeGroupClick)=\"onAppTileChangeGroupClick(appTile)\"\r\n ></span>\r\n </div>\r\n }\r\n </div>\r\n <bt-actions-link\r\n [class.actions-link-edit-home]=\"edit\"\r\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\r\n [class.!tw-p-0]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\r\n [edit]=\"edit\"\r\n [deviceSize]=\"deviceSize\"\r\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\r\n cdkDropList\r\n #actionLinks=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListConnectedTo]=\"tiles\"\r\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\r\n [cdkDropListData]=\"{\r\n isTile: false,\r\n items: appTileGroup.navigatorActionLinks || []\r\n }\"\r\n >\r\n </bt-actions-link>\r\n </fd-layout-panel-body>\r\n</fd-layout-panel>\r\n\r\n@for (appTileSubGroup of childrenAppTileGroup; track appTileSubGroup.Id;let last=$last) {\r\n<bt-tiles-viewer-group\r\n [class]=\"deviceSize\"\r\n [appTileGroup]=\"appTileSubGroup\"\r\n [childrenAppTileGroup]=\"appTileSubGroup.$Children || []\"\r\n [visible]=\"appTileSubGroup.navigatorVisible\"\r\n [isLast]=\"last\"\r\n [edit]=\"edit\"\r\n [rtl]=\"rtl\"\r\n [stackContent]=\"stackContent\"\r\n [cssStyle]=\"appTileSubGroup.CssStyles\"\r\n [isAppTileSubGroup]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n (tilesDropped)=\"tilesDropped.emit($event)\"\r\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\r\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\r\n (resetGroup)=\"resetGroup.emit($event)\"\r\n (deleteGroup)=\"deleteGroup.emit($event)\"\r\n (toggleGroup)=\"toggleGroup.emit($event)\"\r\n (changeGroupAppTileClick)=\"onAppTileChangeGroupClick($event)\"\r\n></bt-tiles-viewer-group>\r\n}\r\n", styles: [":host{display:block}:host[islast=true]{margin-bottom:var(--footer-height)}:host.s{padding:0 1rem}:host ::ng-deep>fd-layout-panel>fd-layout-panel-header .fd-panel__header{border:none;padding-left:0;padding-right:0}:host ::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}:host ::ng-deep .fd-panel__content{border-bottom:none;padding:1px}fd-layout-panel.custom-color{margin-top:1rem}fd-layout-panel.empty-tiles-group:not([edithome=true]){display:none}fd-layout-panel fd-layout-panel-header fd-layout-panel-head h5{font-weight:500}fd-layout-panel.hide-header fd-layout-panel-header{display:none}fd-layout-panel[editHome=false]{background-color:transparent}.tile-wrapper.TilesGroup{column-gap:.5rem;row-gap:1rem;display:inline-flex;flex-wrap:wrap;align-items:center}.actions-link-edit-home{background-color:var(--sapGroup_ContentBackground, #fff);border-color:var(--sapGroup_ContentBorderColor, #d9d9d9);border-width:var(--sapElement_BorderWidth, .0625rem);border-style:solid}.add-tile{background-color:transparent!important}.add-tile ::ng-deep div{background-color:transparent!important;margin:10px 0}.add-tile div:first-child{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.add-tile fd-icon{font-size:1.5rem;color:#3c4043}fd-layout-panel-body.small-size{display:flex;justify-content:center;flex-direction:column}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup{display:flex;row-gap:.5rem;column-gap:.5rem;justify-content:start;width:calc(99.9999999999svw - 4rem)}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s{max-height:7.25rem;min-height:6.25rem;min-width:8.25rem;max-width:8.25rem;display:flex;flex-direction:column-reverse;justify-content:space-between}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__header{height:1.2rem;max-height:1.2rem;min-height:1.2rem;text-align:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__header.child-has-overflow-text{position:relative}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__subtitle{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__footer{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-tile--launch .fd-tile__content{align-items:center;justify-content:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-numeric-content{justify-content:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-numeric-content .fd-numeric-content__launch-icon-container{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s{--sapFontHeader6Size: .75rem;min-width:calc(33.3333333333svw - 2rem);max-width:calc(33.3333333333svw - 2rem)}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-numeric-content__kpi{font-size:1.2rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s span.fd-numeric-content__scale-text{font-size:.8rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-tile__title{white-space:nowrap}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-tile__content{height:3rem;max-height:3rem;min-height:3rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile.disable-tile-resize .fd-tile--double{min-width:calc(99.9999999999svw - 6rem + 1rem);max-width:calc(99.9999999999svw - 6rem + 1rem)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i3$1.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "ariaValueText", "title", "label", "ariaLive"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class", "id"], exportAs: ["fd-button"] }, { kind: "component", type: i5$1.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i5$1.LayoutPanelHeaderComponent, selector: "fd-layout-panel-header" }, { kind: "component", type: i5$1.LayoutPanelHeadComponent, selector: "fd-layout-panel-head" }, { kind: "directive", type: i5$1.LayoutPanelTitleDirective, selector: "[fd-layout-panel-title]" }, { kind: "component", type: i5$1.LayoutPanelActionsComponent, selector: "fd-layout-panel-actions" }, { kind: "component", type: i5$1.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i6$1.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i5.DynamicStyleDirective, selector: "[cssStyle]", inputs: ["cssStyle"] }, { kind: "component", type: ActionsLinkComponent, selector: "bt-actions-link", inputs: ["actionsLink", "edit", "deviceSize"] }, { kind: "component", type: TilesViewerGroupComponent, selector: "bt-tiles-viewer-group" }, { kind: "directive", type: TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "groupType", "edit", "deviceSize", "setToStorage", "listMode", "navigateBackOnClick"], outputs: ["hideClick", "renameClick", "changeGroupClick"] }, { kind: "directive", type: TileClassDirective, selector: "[tilesCls]", inputs: ["rtl", "deviceSize", "appTileGroup"] }, { kind: "pipe", type: i5.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1576
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TilesViewerGroupComponent, isStandalone: false, selector: "bt-tiles-viewer-group", providers: [ScrollLayoutContextHolder], usesInheritance: true, ngImport: i0, template: "<fd-layout-panel\r\n [attr.editHome]=\"edit\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!edit || !stackContent\"\r\n [ngClass]=\"appTileGroup.TileGroupType$Caption\"\r\n [class.hide-header]=\"appTileGroup.HideHeader\"\r\n [style.background-color]=\"appTileGroup.BackgroundColor ? appTileGroup.BackgroundColor : null\"\r\n [class.custom-color]=\"appTileGroup.BackgroundColor\"\r\n [class.tw-pb-2]=\"isLast\"\r\n [class.!tw-mb-2]=\"edit\"\r\n>\r\n @if (edit || stackContent || isAppTileSubGroup || appTileGroup.HideHeader) {\r\n <fd-layout-panel-header>\r\n <fd-layout-panel-head>\r\n <h5 fd-layout-panel-title>{{ appTileGroup.navigatorTitle | bbbTranslate }}</h5>\r\n </fd-layout-panel-head>\r\n @if (edit) {\r\n <fd-layout-panel-actions class=\"group-btns\">\r\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [label]=\"!visible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\r\n (click)=\"onToggleShowHide(appTileGroup)\"\r\n ></button>\r\n @if (appTileGroup.Predefined && appTileGroup.$TileSettingChanged) {\r\n <button fd-button [label]=\"'Refresh' | bbbTranslate\" (click)=\"onReset(appTileGroup)\"></button>\r\n } @if (appTileGroup.CanDelete) {\r\n <button\r\n fd-button\r\n [label]=\"'Delete' | bbbTranslate\"\r\n [fdType]=\"'negative'\"\r\n (click)=\"onDelete(appTileGroup)\"\r\n ></button>\r\n }\r\n </fd-toolbar>\r\n </fd-layout-panel-actions>\r\n }\r\n </fd-layout-panel-header>\r\n }\r\n <fd-layout-panel-body [class.small-size]=\"deviceSize === 's'\">\r\n <div\r\n class=\"tile-wrapper\"\r\n tilesCls\r\n [class.!tw-hidden]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\r\n [class.!tw-justify-start]=\"isJustifyStart()\"\r\n [rtl]=\"rtl\"\r\n [appTileGroup]=\"appTileGroup\"\r\n [deviceSize]=\"deviceSize\"\r\n [ngClass]=\"deviceSize\"\r\n #tiles=\"cdkDropList\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\r\n [cdkDropListConnectedTo]=\"actionLinks\"\r\n [cdkDropListData]=\"{\r\n isTile: true,\r\n items: appTileGroup.navigatorTiles || []\r\n }\"\r\n >\r\n @if (!edit) { @if (!appTileGroup.$TilesLoaded) {\r\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\r\n } @else if (!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded) {\r\n <h5 fd-title></h5>\r\n } } @for (appTile of appTileGroup?.navigatorTiles; track appTile.Id; let k = $index) {\r\n <div\r\n [class.edit-home]=\"edit\"\r\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\r\n >\r\n <span\r\n [dynamicCommand]=\"appTile.DynamicCommand\"\r\n [setToStorage]=\"true\"\r\n [enableCommand]=\"!edit && appTile.Component\"\r\n tileRenderer\r\n [deviceSize]=\"deviceSize\"\r\n [data]=\"appTile\"\r\n [groupType]=\"appTileGroup.TileGroupType$Caption\"\r\n [edit]=\"edit\"\r\n [component]=\"appTile.Component\"\r\n (hideClick)=\"onAppTileHideClick(appTile)\"\r\n (renameClick)=\"onAppTileRenameClick(appTile)\"\r\n (changeGroupClick)=\"onAppTileChangeGroupClick(appTile)\"\r\n ></span>\r\n </div>\r\n }\r\n </div>\r\n <bt-actions-link\r\n [class.actions-link-edit-home]=\"edit\"\r\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\r\n [class.!tw-p-0]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\r\n [edit]=\"edit\"\r\n [deviceSize]=\"deviceSize\"\r\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\r\n cdkDropList\r\n #actionLinks=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListConnectedTo]=\"tiles\"\r\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\r\n [cdkDropListData]=\"{\r\n isTile: false,\r\n items: appTileGroup.navigatorActionLinks || []\r\n }\"\r\n >\r\n </bt-actions-link>\r\n </fd-layout-panel-body>\r\n</fd-layout-panel>\r\n\r\n@for (appTileSubGroup of childrenAppTileGroup; track appTileSubGroup.Id;let last=$last) {\r\n<bt-tiles-viewer-group\r\n [class]=\"deviceSize\"\r\n [appTileGroup]=\"appTileSubGroup\"\r\n [childrenAppTileGroup]=\"appTileSubGroup.$Children || []\"\r\n [visible]=\"appTileSubGroup.navigatorVisible\"\r\n [isLast]=\"last\"\r\n [edit]=\"edit\"\r\n [rtl]=\"rtl\"\r\n [stackContent]=\"stackContent\"\r\n [cssStyle]=\"appTileSubGroup.CssStyles\"\r\n [isAppTileSubGroup]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n (tilesDropped)=\"tilesDropped.emit($event)\"\r\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\r\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\r\n (resetGroup)=\"resetGroup.emit($event)\"\r\n (deleteGroup)=\"deleteGroup.emit($event)\"\r\n (toggleGroup)=\"toggleGroup.emit($event)\"\r\n (changeGroupAppTileClick)=\"onAppTileChangeGroupClick($event)\"\r\n></bt-tiles-viewer-group>\r\n}\r\n", styles: [":host{display:block}:host[islast=true]{margin-bottom:var(--footer-height)}:host.s{padding:0 1rem}:host ::ng-deep>fd-layout-panel>fd-layout-panel-header .fd-panel__header{border:none;padding-left:0;padding-right:0}:host ::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}:host ::ng-deep .fd-panel__content{border-bottom:none;padding:1px}fd-layout-panel.custom-color{margin-top:1rem}fd-layout-panel.empty-tiles-group:not([edithome=true]){display:none}fd-layout-panel fd-layout-panel-header fd-layout-panel-head h5{font-weight:500}fd-layout-panel.hide-header fd-layout-panel-header{display:none}fd-layout-panel[editHome=false]{background-color:transparent}.tile-wrapper.TilesGroup{column-gap:.5rem;row-gap:1rem;display:inline-flex;flex-wrap:wrap;align-items:center}.actions-link-edit-home{background-color:var(--sapGroup_ContentBackground, #fff);border-color:var(--sapGroup_ContentBorderColor, #d9d9d9);border-width:var(--sapElement_BorderWidth, .0625rem);border-style:solid}.add-tile{background-color:transparent!important}.add-tile ::ng-deep div{background-color:transparent!important;margin:10px 0}.add-tile div:first-child{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.add-tile fd-icon{font-size:1.5rem;color:#3c4043}fd-layout-panel-body.small-size{display:flex;justify-content:center;flex-direction:column}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup{display:flex;row-gap:.5rem;column-gap:.5rem;justify-content:start;width:calc(99.9999999999svw - 4rem)}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s{max-height:7.25rem;min-height:6.25rem;min-width:8.25rem;max-width:8.25rem;display:flex;flex-direction:column-reverse;justify-content:space-between}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__header{height:1.2rem;max-height:1.2rem;min-height:1.2rem;text-align:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__header.child-has-overflow-text{position:relative}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__subtitle{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__footer{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-tile--launch .fd-tile__content{align-items:center;justify-content:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-numeric-content{justify-content:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-numeric-content .fd-numeric-content__launch-icon-container{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s{--sapFontHeader6Size: .75rem;min-width:calc(33.3333333333svw - 2rem);max-width:calc(33.3333333333svw - 2rem)}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-numeric-content__kpi{font-size:1.2rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s span.fd-numeric-content__scale-text{font-size:.8rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-tile__title{white-space:nowrap}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-tile__content{height:3rem;max-height:3rem;min-height:3rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile.disable-tile-resize .fd-tile--double{min-width:calc(99.9999999999svw - 6rem + 1rem);max-width:calc(99.9999999999svw - 6rem + 1rem)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i3$1.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "ariaValueText", "title", "label", "ariaLive"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class", "id"], exportAs: ["fd-button"] }, { kind: "component", type: i5$1.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i5$1.LayoutPanelHeaderComponent, selector: "fd-layout-panel-header" }, { kind: "component", type: i5$1.LayoutPanelHeadComponent, selector: "fd-layout-panel-head" }, { kind: "directive", type: i5$1.LayoutPanelTitleDirective, selector: "[fd-layout-panel-title]" }, { kind: "component", type: i5$1.LayoutPanelActionsComponent, selector: "fd-layout-panel-actions" }, { kind: "component", type: i5$1.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i6$1.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i7.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i7.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i5.DynamicStyleDirective, selector: "[cssStyle]", inputs: ["cssStyle"] }, { kind: "component", type: ActionsLinkComponent, selector: "bt-actions-link", inputs: ["actionsLink", "edit", "deviceSize"] }, { kind: "component", type: TilesViewerGroupComponent, selector: "bt-tiles-viewer-group" }, { kind: "directive", type: TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "groupType", "edit", "deviceSize", "setToStorage", "listMode", "navigateBackOnClick"], outputs: ["hideClick", "renameClick", "changeGroupClick"] }, { kind: "directive", type: TileClassDirective, selector: "[tilesCls]", inputs: ["rtl", "deviceSize", "appTileGroup"] }, { kind: "pipe", type: i5.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1571
1577
  }
1572
1578
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TilesViewerGroupComponent, decorators: [{
1573
1579
  type: Component,
1574
- args: [{ selector: 'bt-tiles-viewer-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-layout-panel\r\n [attr.editHome]=\"edit\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!edit || !stackContent\"\r\n [ngClass]=\"appTileGroup.TileGroupType$Caption\"\r\n [class.hide-header]=\"appTileGroup.HideHeader\"\r\n [style.background-color]=\"appTileGroup.BackgroundColor ? appTileGroup.BackgroundColor : null\"\r\n [class.custom-color]=\"appTileGroup.BackgroundColor\"\r\n [class.tw-pb-2]=\"isLast\"\r\n [class.hide]=\"!appTileGroup?.navigatorTiles?.length && !appTileGroup.navigatorActionLinks.length\"\r\n [class.!tw-mb-2]=\"edit\"\r\n>\r\n @if (edit || stackContent || isAppTileSubGroup || appTileGroup.HideHeader) {\r\n <fd-layout-panel-header>\r\n <fd-layout-panel-head>\r\n <h5 fd-layout-panel-title>{{ appTileGroup.navigatorTitle | bbbTranslate }}</h5>\r\n </fd-layout-panel-head>\r\n @if (edit) {\r\n <fd-layout-panel-actions class=\"group-btns\">\r\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [label]=\"!visible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\r\n (click)=\"onToggleShowHide(appTileGroup)\"\r\n ></button>\r\n @if (appTileGroup.Predefined && appTileGroup.$TileSettingChanged) {\r\n <button fd-button [label]=\"'Refresh' | bbbTranslate\" (click)=\"onReset(appTileGroup)\"></button>\r\n } @if (appTileGroup.CanDelete) {\r\n <button\r\n fd-button\r\n [label]=\"'Delete' | bbbTranslate\"\r\n [fdType]=\"'negative'\"\r\n (click)=\"onDelete(appTileGroup)\"\r\n ></button>\r\n }\r\n </fd-toolbar>\r\n </fd-layout-panel-actions>\r\n }\r\n </fd-layout-panel-header>\r\n }\r\n <fd-layout-panel-body [class.small-size]=\"deviceSize === 's'\">\r\n <div\r\n class=\"tile-wrapper\"\r\n tilesCls\r\n [class.!tw-hidden]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\r\n [class.!tw-justify-start]=\"isJustifyStart()\"\r\n [rtl]=\"rtl\"\r\n [appTileGroup]=\"appTileGroup\"\r\n [deviceSize]=\"deviceSize\"\r\n [ngClass]=\"deviceSize\"\r\n #tiles=\"cdkDropList\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\r\n [cdkDropListConnectedTo]=\"actionLinks\"\r\n [cdkDropListData]=\"{\r\n isTile: true,\r\n items: appTileGroup.navigatorTiles || []\r\n }\"\r\n >\r\n @if (!edit) { @if (!appTileGroup.$TilesLoaded) {\r\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\r\n } @else if (!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded) {\r\n <h5 fd-title></h5>\r\n } } @for (appTile of appTileGroup?.navigatorTiles; track appTile.Id; let k = $index) {\r\n <div\r\n [class.edit-home]=\"edit\"\r\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\r\n >\r\n <span\r\n [dynamicCommand]=\"appTile.DynamicCommand\"\r\n [setToStorage]=\"true\"\r\n [enableCommand]=\"!edit && appTile.Component\"\r\n tileRenderer\r\n [deviceSize]=\"deviceSize\"\r\n [data]=\"appTile\"\r\n [groupType]=\"appTileGroup.TileGroupType$Caption\"\r\n [edit]=\"edit\"\r\n [component]=\"appTile.Component\"\r\n (hideClick)=\"onAppTileHideClick(appTile)\"\r\n (renameClick)=\"onAppTileRenameClick(appTile)\"\r\n (changeGroupClick)=\"onAppTileChangeGroupClick(appTile)\"\r\n ></span>\r\n </div>\r\n }\r\n </div>\r\n <bt-actions-link\r\n [class.actions-link-edit-home]=\"edit\"\r\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\r\n [class.!tw-p-0]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\r\n [edit]=\"edit\"\r\n [deviceSize]=\"deviceSize\"\r\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\r\n cdkDropList\r\n #actionLinks=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListConnectedTo]=\"tiles\"\r\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\r\n [cdkDropListData]=\"{\r\n isTile: false,\r\n items: appTileGroup.navigatorActionLinks || []\r\n }\"\r\n >\r\n </bt-actions-link>\r\n </fd-layout-panel-body>\r\n</fd-layout-panel>\r\n\r\n@for (appTileSubGroup of childrenAppTileGroup; track appTileSubGroup.Id;let last=$last) {\r\n<bt-tiles-viewer-group\r\n [class]=\"deviceSize\"\r\n [appTileGroup]=\"appTileSubGroup\"\r\n [childrenAppTileGroup]=\"appTileSubGroup.$Children || []\"\r\n [visible]=\"appTileSubGroup.navigatorVisible\"\r\n [isLast]=\"last\"\r\n [edit]=\"edit\"\r\n [rtl]=\"rtl\"\r\n [stackContent]=\"stackContent\"\r\n [cssStyle]=\"appTileSubGroup.CssStyles\"\r\n [isAppTileSubGroup]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n (tilesDropped)=\"tilesDropped.emit($event)\"\r\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\r\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\r\n (resetGroup)=\"resetGroup.emit($event)\"\r\n (deleteGroup)=\"deleteGroup.emit($event)\"\r\n (toggleGroup)=\"toggleGroup.emit($event)\"\r\n (changeGroupAppTileClick)=\"onAppTileChangeGroupClick($event)\"\r\n></bt-tiles-viewer-group>\r\n}\r\n", styles: [":host{display:block}:host[islast=true]{margin-bottom:var(--footer-height)}:host.s{padding:0 1rem}:host ::ng-deep>fd-layout-panel>fd-layout-panel-header .fd-panel__header{border:none;padding-left:0;padding-right:0}:host ::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}:host ::ng-deep .fd-panel__content{border-bottom:none;padding:1px}fd-layout-panel.custom-color{margin-top:1rem}fd-layout-panel.empty-tiles-group:not([edithome=true]){display:none}fd-layout-panel fd-layout-panel-header fd-layout-panel-head h5{font-weight:500}fd-layout-panel.hide-header fd-layout-panel-header{display:none}fd-layout-panel[editHome=false]{background-color:transparent}.tile-wrapper.TilesGroup{column-gap:.5rem;row-gap:1rem;display:inline-flex;flex-wrap:wrap;align-items:center}.actions-link-edit-home{background-color:var(--sapGroup_ContentBackground, #fff);border-color:var(--sapGroup_ContentBorderColor, #d9d9d9);border-width:var(--sapElement_BorderWidth, .0625rem);border-style:solid}.add-tile{background-color:transparent!important}.add-tile ::ng-deep div{background-color:transparent!important;margin:10px 0}.add-tile div:first-child{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.add-tile fd-icon{font-size:1.5rem;color:#3c4043}fd-layout-panel-body.small-size{display:flex;justify-content:center;flex-direction:column}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup{display:flex;row-gap:.5rem;column-gap:.5rem;justify-content:start;width:calc(99.9999999999svw - 4rem)}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s{max-height:7.25rem;min-height:6.25rem;min-width:8.25rem;max-width:8.25rem;display:flex;flex-direction:column-reverse;justify-content:space-between}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__header{height:1.2rem;max-height:1.2rem;min-height:1.2rem;text-align:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__header.child-has-overflow-text{position:relative}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__subtitle{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__footer{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-tile--launch .fd-tile__content{align-items:center;justify-content:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-numeric-content{justify-content:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-numeric-content .fd-numeric-content__launch-icon-container{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s{--sapFontHeader6Size: .75rem;min-width:calc(33.3333333333svw - 2rem);max-width:calc(33.3333333333svw - 2rem)}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-numeric-content__kpi{font-size:1.2rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s span.fd-numeric-content__scale-text{font-size:.8rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-tile__title{white-space:nowrap}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-tile__content{height:3rem;max-height:3rem;min-height:3rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile.disable-tile-resize .fd-tile--double{min-width:calc(99.9999999999svw - 6rem + 1rem);max-width:calc(99.9999999999svw - 6rem + 1rem)}\n"] }]
1580
+ args: [{ selector: 'bt-tiles-viewer-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, providers: [ScrollLayoutContextHolder], template: "<fd-layout-panel\r\n [attr.editHome]=\"edit\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!edit || !stackContent\"\r\n [ngClass]=\"appTileGroup.TileGroupType$Caption\"\r\n [class.hide-header]=\"appTileGroup.HideHeader\"\r\n [style.background-color]=\"appTileGroup.BackgroundColor ? appTileGroup.BackgroundColor : null\"\r\n [class.custom-color]=\"appTileGroup.BackgroundColor\"\r\n [class.tw-pb-2]=\"isLast\"\r\n [class.!tw-mb-2]=\"edit\"\r\n>\r\n @if (edit || stackContent || isAppTileSubGroup || appTileGroup.HideHeader) {\r\n <fd-layout-panel-header>\r\n <fd-layout-panel-head>\r\n <h5 fd-layout-panel-title>{{ appTileGroup.navigatorTitle | bbbTranslate }}</h5>\r\n </fd-layout-panel-head>\r\n @if (edit) {\r\n <fd-layout-panel-actions class=\"group-btns\">\r\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [label]=\"!visible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\r\n (click)=\"onToggleShowHide(appTileGroup)\"\r\n ></button>\r\n @if (appTileGroup.Predefined && appTileGroup.$TileSettingChanged) {\r\n <button fd-button [label]=\"'Refresh' | bbbTranslate\" (click)=\"onReset(appTileGroup)\"></button>\r\n } @if (appTileGroup.CanDelete) {\r\n <button\r\n fd-button\r\n [label]=\"'Delete' | bbbTranslate\"\r\n [fdType]=\"'negative'\"\r\n (click)=\"onDelete(appTileGroup)\"\r\n ></button>\r\n }\r\n </fd-toolbar>\r\n </fd-layout-panel-actions>\r\n }\r\n </fd-layout-panel-header>\r\n }\r\n <fd-layout-panel-body [class.small-size]=\"deviceSize === 's'\">\r\n <div\r\n class=\"tile-wrapper\"\r\n tilesCls\r\n [class.!tw-hidden]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\r\n [class.!tw-justify-start]=\"isJustifyStart()\"\r\n [rtl]=\"rtl\"\r\n [appTileGroup]=\"appTileGroup\"\r\n [deviceSize]=\"deviceSize\"\r\n [ngClass]=\"deviceSize\"\r\n #tiles=\"cdkDropList\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\r\n [cdkDropListConnectedTo]=\"actionLinks\"\r\n [cdkDropListData]=\"{\r\n isTile: true,\r\n items: appTileGroup.navigatorTiles || []\r\n }\"\r\n >\r\n @if (!edit) { @if (!appTileGroup.$TilesLoaded) {\r\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\r\n } @else if (!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded) {\r\n <h5 fd-title></h5>\r\n } } @for (appTile of appTileGroup?.navigatorTiles; track appTile.Id; let k = $index) {\r\n <div\r\n [class.edit-home]=\"edit\"\r\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\r\n >\r\n <span\r\n [dynamicCommand]=\"appTile.DynamicCommand\"\r\n [setToStorage]=\"true\"\r\n [enableCommand]=\"!edit && appTile.Component\"\r\n tileRenderer\r\n [deviceSize]=\"deviceSize\"\r\n [data]=\"appTile\"\r\n [groupType]=\"appTileGroup.TileGroupType$Caption\"\r\n [edit]=\"edit\"\r\n [component]=\"appTile.Component\"\r\n (hideClick)=\"onAppTileHideClick(appTile)\"\r\n (renameClick)=\"onAppTileRenameClick(appTile)\"\r\n (changeGroupClick)=\"onAppTileChangeGroupClick(appTile)\"\r\n ></span>\r\n </div>\r\n }\r\n </div>\r\n <bt-actions-link\r\n [class.actions-link-edit-home]=\"edit\"\r\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\r\n [class.!tw-p-0]=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"\r\n [edit]=\"edit\"\r\n [deviceSize]=\"deviceSize\"\r\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\r\n cdkDropList\r\n #actionLinks=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListConnectedTo]=\"tiles\"\r\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\r\n [cdkDropListData]=\"{\r\n isTile: false,\r\n items: appTileGroup.navigatorActionLinks || []\r\n }\"\r\n >\r\n </bt-actions-link>\r\n </fd-layout-panel-body>\r\n</fd-layout-panel>\r\n\r\n@for (appTileSubGroup of childrenAppTileGroup; track appTileSubGroup.Id;let last=$last) {\r\n<bt-tiles-viewer-group\r\n [class]=\"deviceSize\"\r\n [appTileGroup]=\"appTileSubGroup\"\r\n [childrenAppTileGroup]=\"appTileSubGroup.$Children || []\"\r\n [visible]=\"appTileSubGroup.navigatorVisible\"\r\n [isLast]=\"last\"\r\n [edit]=\"edit\"\r\n [rtl]=\"rtl\"\r\n [stackContent]=\"stackContent\"\r\n [cssStyle]=\"appTileSubGroup.CssStyles\"\r\n [isAppTileSubGroup]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n (tilesDropped)=\"tilesDropped.emit($event)\"\r\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\r\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\r\n (resetGroup)=\"resetGroup.emit($event)\"\r\n (deleteGroup)=\"deleteGroup.emit($event)\"\r\n (toggleGroup)=\"toggleGroup.emit($event)\"\r\n (changeGroupAppTileClick)=\"onAppTileChangeGroupClick($event)\"\r\n></bt-tiles-viewer-group>\r\n}\r\n", styles: [":host{display:block}:host[islast=true]{margin-bottom:var(--footer-height)}:host.s{padding:0 1rem}:host ::ng-deep>fd-layout-panel>fd-layout-panel-header .fd-panel__header{border:none;padding-left:0;padding-right:0}:host ::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}:host ::ng-deep .fd-panel__content{border-bottom:none;padding:1px}fd-layout-panel.custom-color{margin-top:1rem}fd-layout-panel.empty-tiles-group:not([edithome=true]){display:none}fd-layout-panel fd-layout-panel-header fd-layout-panel-head h5{font-weight:500}fd-layout-panel.hide-header fd-layout-panel-header{display:none}fd-layout-panel[editHome=false]{background-color:transparent}.tile-wrapper.TilesGroup{column-gap:.5rem;row-gap:1rem;display:inline-flex;flex-wrap:wrap;align-items:center}.actions-link-edit-home{background-color:var(--sapGroup_ContentBackground, #fff);border-color:var(--sapGroup_ContentBorderColor, #d9d9d9);border-width:var(--sapElement_BorderWidth, .0625rem);border-style:solid}.add-tile{background-color:transparent!important}.add-tile ::ng-deep div{background-color:transparent!important;margin:10px 0}.add-tile div:first-child{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.add-tile fd-icon{font-size:1.5rem;color:#3c4043}fd-layout-panel-body.small-size{display:flex;justify-content:center;flex-direction:column}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup{display:flex;row-gap:.5rem;column-gap:.5rem;justify-content:start;width:calc(99.9999999999svw - 4rem)}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s{max-height:7.25rem;min-height:6.25rem;min-width:8.25rem;max-width:8.25rem;display:flex;flex-direction:column-reverse;justify-content:space-between}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__header{height:1.2rem;max-height:1.2rem;min-height:1.2rem;text-align:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__header.child-has-overflow-text{position:relative}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__subtitle{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep bt-tile:not(.disable-tile-resize) .fd-tile--s .fd-tile__footer{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-tile--launch .fd-tile__content{align-items:center;justify-content:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-numeric-content{justify-content:center}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup ::ng-deep .fd-numeric-content .fd-numeric-content__launch-icon-container{display:none}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s{--sapFontHeader6Size: .75rem;min-width:calc(33.3333333333svw - 2rem);max-width:calc(33.3333333333svw - 2rem)}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-numeric-content__kpi{font-size:1.2rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s span.fd-numeric-content__scale-text{font-size:.8rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-tile__title{white-space:nowrap}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile .fd-tile--s .fd-tile__content{height:3rem;max-height:3rem;min-height:3rem}fd-layout-panel-body.small-size .tile-wrapper.TilesGroup.s ::ng-deep bt-tile.disable-tile-resize .fd-tile--double{min-width:calc(99.9999999999svw - 6rem + 1rem);max-width:calc(99.9999999999svw - 6rem + 1rem)}\n"] }]
1575
1581
  }] });
1576
1582
 
1577
1583
  class EmptyListDirective {