barsa-tiles 2.3.116 → 2.3.121

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.
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { inject, Injectable, ChangeDetectionStrategy, Component, Input, Directive, ChangeDetectorRef, ViewContainerRef, HostListener, ElementRef, ViewChild, Pipe, EventEmitter, Output, HostBinding, Injector, input, Renderer2, TemplateRef, signal, DOCUMENT, NgModule, ComponentFactoryResolver, provideAppInitializer, NO_ERRORS_SCHEMA } from '@angular/core';
3
3
  import * as i5 from 'barsa-novin-ray-core';
4
4
  import { PortalService, BbbTranslatePipe, BarsaApi, TilePropsComponent, BaseComponent, BaseDirective, IsDarkMode, LocalStorageService, PreventDefaulEvent, getDeviceIsMobile, SaveScrollPositionService, ExecuteDynamicCommand, ShellbarHeightService, 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
- import { Subject, BehaviorSubject, of, from, takeUntil as takeUntil$1, filter as filter$1, interval, combineLatest, fromEvent, map as map$1, forkJoin } from 'rxjs';
5
+ import { Subject, BehaviorSubject, of, from, takeUntil as takeUntil$1, filter as filter$1, interval, finalize as finalize$1, combineLatest, fromEvent, map as map$1, forkJoin } from 'rxjs';
6
6
  import { startWith, shareReplay, takeUntil, distinctUntilChanged, filter, tap, map, concatMap, debounceTime, exhaustMap, finalize, withLatestFrom } from 'rxjs/operators';
7
7
  import { ThemingService, RtlService, DialogRef, DialogService, CarouselComponent, ContentDensityService, ShellbarComponent as ShellbarComponent$1, ComboboxComponent, FundamentalNgxCoreModule, GridListModule, ShellbarUserMenuComponent } from '@fundamental-ngx/core';
8
8
  import * as i1$2 from '@angular/common';
@@ -38,7 +38,7 @@ import * as i6$2 from '@fundamental-ngx/core/switch';
38
38
  import * as i2$3 from 'barsa-echarts';
39
39
  import { BarsaEchartsModule } from 'barsa-echarts';
40
40
  import * as i2$4 from '@fundamental-ngx/core/carousel';
41
- import * as i3$3 from '@fundamental-ngx/core/checkbox';
41
+ import * as i4$4 from '@fundamental-ngx/core/checkbox';
42
42
  import { DomSanitizer } from '@angular/platform-browser';
43
43
  import * as i10 from '@fundamental-ngx/core/object-status';
44
44
  import * as i6$3 from '@fundamental-ngx/core/panel';
@@ -48,8 +48,8 @@ import * as i14 from '@fundamental-ngx/core/shellbar';
48
48
  import * as i15 from '@fundamental-ngx/core/generic-tag';
49
49
  import * as i17 from '@fundamental-ngx/core/user-menu';
50
50
  import { UserMenuComponent, UserMenuControlComponent, UserMenuBodyComponent, UserMenuListComponent, UserMenuFooterComponent, UserMenuHeaderDirective, UserMenuSublineDirective, UserMenuUserNameDirective, UserMenuHeaderContainerDirective, UserMenuListItemComponent } from '@fundamental-ngx/core/user-menu';
51
- import * as i3$4 from '@fundamental-ngx/core/breadcrumb';
52
- import * as i4$4 from '@fundamental-ngx/core/dynamic-side-content';
51
+ import * as i3$3 from '@fundamental-ngx/core/breadcrumb';
52
+ import * as i4$5 from '@fundamental-ngx/core/dynamic-side-content';
53
53
  import * as i5$3 from '@fundamental-ngx/core/message-page';
54
54
  import { CdkTableModule } from '@angular/cdk/table';
55
55
  import { SplitterModule } from '@fundamental-ngx/btp/splitter';
@@ -238,7 +238,7 @@ class TilesService {
238
238
  const allApps = this.appTileGroups;
239
239
  if (allApps) {
240
240
  allApps.MoDataList = allApps.MoDataList.filter((c) => c.Id !== appGroupId);
241
- this._appTileGroupsSource.next(allApps);
241
+ this._appTileGroupsSource.next({ ...allApps });
242
242
  }
243
243
  }));
244
244
  }
@@ -378,7 +378,7 @@ class TilesService {
378
378
  selectedAppGroup = c.$Children?.find((child) => child.Id === appGroupId);
379
379
  }
380
380
  });
381
- if (selectedAppGroup && this._appTileGroupLoaded[selectedAppGroup.Id]) {
381
+ if (selectedAppGroup) {
382
382
  // let moDataList = selectedAppGroup.AppTiles.MoDataList;
383
383
  // if (appTileGroups[i].visible)
384
384
  // selectedAppGroup.AppTiles.MoDataList = [...moDataList, settings[i]];
@@ -388,6 +388,7 @@ class TilesService {
388
388
  // );
389
389
  this._loadAppTilesOfAppTileGroup(selectedAppGroup, allApps);
390
390
  }
391
+ this._prepareNavigator(appTileGroupPin);
391
392
  }
392
393
  this._nextAllAppTileGroups(allApps);
393
394
  }
@@ -468,7 +469,7 @@ class TilesService {
468
469
  const callback = () => {
469
470
  this._nextAllAppTileGroups(allApps);
470
471
  };
471
- if (!selectedAppTilegroup.UserAppTileGroupSetting) {
472
+ if (!selectedAppTilegroup.UserAppTileGroupSetting || BarsaApi.LoginFormData.IsAnonymous) {
472
473
  this._loadAppTilesByAppTileGroup(selectedAppTilegroup, callback);
473
474
  }
474
475
  else {
@@ -499,6 +500,7 @@ class TilesService {
499
500
  });
500
501
  const apptileGroupIndex = this.appTileGroups?.MoDataList.findIndex((c) => c.Id === selectedAppTilegroup.Id || c.Id === selectedAppTilegroup.$ParentId);
501
502
  selectedAppTilegroup.AppTiles = appTiles;
503
+ this._prepareNavigator(selectedAppTilegroup);
502
504
  const tileGroup = this.appTileGroups.MoDataList[apptileGroupIndex];
503
505
  if (selectedAppTilegroup.$ParentId) {
504
506
  if (tileGroup.$Children) {
@@ -513,6 +515,7 @@ class TilesService {
513
515
  }
514
516
  }
515
517
  _loadAppTilesByAppTileGroupSetting(appTileGroup, callback) {
518
+ this._appTileGroupLoaded[appTileGroup.Id] = true;
516
519
  BarsaApi.Bw.RunBlMethodAsync({
517
520
  Parameters: [appTileGroup.Id],
518
521
  Method: 'LoadAllAppTilesByUserAppTileGroupSettings',
@@ -1837,20 +1840,29 @@ class TilesViewerMegamenuComponent extends BaseComponent {
1837
1840
  this._shellbarHeightServcie = inject(ShellbarHeightService);
1838
1841
  this._shellbarHeightServcie.add('var(--megamenu-height)');
1839
1842
  }
1843
+ ngOnChanges(changes) {
1844
+ const { appTileGroups } = changes;
1845
+ appTileGroups &&
1846
+ appTileGroups.currentValue
1847
+ .filter((c) => !c.$TileLoaded)
1848
+ .forEach((appTileGroup) => {
1849
+ this.loadAppTileGroup.emit(appTileGroup);
1850
+ });
1851
+ }
1840
1852
  onGroupVisibilityChange(e) {
1841
1853
  if (e.visibility === 'Visible') {
1842
- this.loadAppTileGroup.emit(e.menu.data);
1854
+ // this.loadAppTileGroup.emit(e.menu.data);
1843
1855
  }
1844
1856
  }
1845
1857
  _trackById(index, item) {
1846
1858
  return item ? item.Id : index;
1847
1859
  }
1848
1860
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TilesViewerMegamenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1849
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: TilesViewerMegamenuComponent, isStandalone: false, selector: "bt-tiles-viewer-megamenu", inputs: { appTileGroups: "appTileGroups", loading: "loading", rtl: "rtl", deviceSize: "deviceSize", selectedAppGroupId: "selectedAppGroupId", DynamicComponents: "DynamicComponents" }, outputs: { loadAppTileGroup: "loadAppTileGroup" }, host: { properties: { "class.tiles-viewer": "this._cls", "attr.rtl": "this._rtl" } }, viewQueries: [{ propertyName: "_cssRootVariable", first: true, predicate: ["cssRootVariable"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<bsu-barsa-megamenu [menuGroups]=\"appTileGroups | megamenu\" (visibilityChange)=\"onGroupVisibilityChange($event)\"></bsu-barsa-megamenu>\r\n", styles: ["fd-side-nav ul{box-shadow:var(--sapShell_Shadow);border-bottom:none!important;display:flex}fd-side-nav ul li{border:none;background-color:transparent;padding-inline-end:1rem;padding-inline-start:0rem}fd-side-nav ul li a{height:3rem;min-width:5rem;border:none}fd-side-nav ul li a i,fd-side-nav ul li a span{background-color:transparent;color:var(--fdButtonBorderColor)}fd-side-nav ul li a i{min-width:2rem;font-size:1.3rem;margin-top:-2px}fd-side-nav ul li a span{text-align:center;justify-content:center}fd-side-nav .fd-nested-list__title:first-child{padding-inline-start:0}\n"], dependencies: [{ kind: "component", type: i3.BarsaMegamenuComponent, selector: "bsu-barsa-megamenu", inputs: ["menuGroups", "titleKey", "iconKey"], outputs: ["visibilityChange"] }, { kind: "pipe", type: MegamenuPipe, name: "megamenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1861
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: TilesViewerMegamenuComponent, isStandalone: false, selector: "bt-tiles-viewer-megamenu", inputs: { appTileGroups: "appTileGroups", loading: "loading", rtl: "rtl", deviceSize: "deviceSize", selectedAppGroupId: "selectedAppGroupId", DynamicComponents: "DynamicComponents" }, outputs: { loadAppTileGroup: "loadAppTileGroup" }, host: { properties: { "class.tiles-viewer": "this._cls", "attr.rtl": "this._rtl" } }, viewQueries: [{ propertyName: "_cssRootVariable", first: true, predicate: ["cssRootVariable"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<bsu-barsa-megamenu [deviceSize]=\"deviceSize\" [menuGroups]=\"appTileGroups | megamenu\" (visibilityChange)=\"onGroupVisibilityChange($event)\"></bsu-barsa-megamenu>\r\n", styles: ["fd-side-nav ul{box-shadow:var(--sapShell_Shadow);border-bottom:none!important;display:flex}fd-side-nav ul li{border:none;background-color:transparent;padding-inline-end:1rem;padding-inline-start:0rem}fd-side-nav ul li a{height:3rem;min-width:5rem;border:none}fd-side-nav ul li a i,fd-side-nav ul li a span{background-color:transparent;color:var(--fdButtonBorderColor)}fd-side-nav ul li a i{min-width:2rem;font-size:1.3rem;margin-top:-2px}fd-side-nav ul li a span{text-align:center;justify-content:center}fd-side-nav .fd-nested-list__title:first-child{padding-inline-start:0}\n"], dependencies: [{ kind: "component", type: i3.BarsaMegamenuComponent, selector: "bsu-barsa-megamenu", inputs: ["menuGroups", "titleKey", "iconKey", "deviceSize"], outputs: ["visibilityChange"] }, { kind: "pipe", type: MegamenuPipe, name: "megamenu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1850
1862
  }
1851
1863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TilesViewerMegamenuComponent, decorators: [{
1852
1864
  type: Component,
1853
- args: [{ selector: 'bt-tiles-viewer-megamenu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<bsu-barsa-megamenu [menuGroups]=\"appTileGroups | megamenu\" (visibilityChange)=\"onGroupVisibilityChange($event)\"></bsu-barsa-megamenu>\r\n", styles: ["fd-side-nav ul{box-shadow:var(--sapShell_Shadow);border-bottom:none!important;display:flex}fd-side-nav ul li{border:none;background-color:transparent;padding-inline-end:1rem;padding-inline-start:0rem}fd-side-nav ul li a{height:3rem;min-width:5rem;border:none}fd-side-nav ul li a i,fd-side-nav ul li a span{background-color:transparent;color:var(--fdButtonBorderColor)}fd-side-nav ul li a i{min-width:2rem;font-size:1.3rem;margin-top:-2px}fd-side-nav ul li a span{text-align:center;justify-content:center}fd-side-nav .fd-nested-list__title:first-child{padding-inline-start:0}\n"] }]
1865
+ args: [{ selector: 'bt-tiles-viewer-megamenu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<bsu-barsa-megamenu [deviceSize]=\"deviceSize\" [menuGroups]=\"appTileGroups | megamenu\" (visibilityChange)=\"onGroupVisibilityChange($event)\"></bsu-barsa-megamenu>\r\n", styles: ["fd-side-nav ul{box-shadow:var(--sapShell_Shadow);border-bottom:none!important;display:flex}fd-side-nav ul li{border:none;background-color:transparent;padding-inline-end:1rem;padding-inline-start:0rem}fd-side-nav ul li a{height:3rem;min-width:5rem;border:none}fd-side-nav ul li a i,fd-side-nav ul li a span{background-color:transparent;color:var(--fdButtonBorderColor)}fd-side-nav ul li a i{min-width:2rem;font-size:1.3rem;margin-top:-2px}fd-side-nav ul li a span{text-align:center;justify-content:center}fd-side-nav .fd-nested-list__title:first-child{padding-inline-start:0}\n"] }]
1854
1866
  }], ctorParameters: () => [], propDecorators: { _cssRootVariable: [{
1855
1867
  type: ViewChild,
1856
1868
  args: ['cssRootVariable']
@@ -2263,10 +2275,11 @@ class PinTileComponent extends BaseComponent {
2263
2275
  this.newGroupText = '';
2264
2276
  this._dialogService = inject(DialogService);
2265
2277
  this._dialogRef = inject(DialogRef);
2266
- this.bbbPipe = inject(BbbTranslatePipe);
2278
+ this._bbbTranslate = inject(BbbTranslatePipe);
2279
+ this._tilesService = inject(TilesService);
2267
2280
  this.newGroupText = BarsaApi.LoginFormData.IsRtl
2268
- ? this.bbbPipe.transform('Groups') + ' ' + this.bbbPipe.transform('New')
2269
- : this.bbbPipe.transform('New') + ' ' + this.bbbPipe.transform('Groups');
2281
+ ? this._bbbTranslate.transform('Groups') + ' ' + this._bbbTranslate.transform('New')
2282
+ : this._bbbTranslate.transform('New') + ' ' + this._bbbTranslate.transform('Groups');
2270
2283
  const _dialogRef = this._dialogRef;
2271
2284
  this.app = _dialogRef.data.app;
2272
2285
  this.appTileGroups = _dialogRef.data.appTileGroups;
@@ -2297,19 +2310,31 @@ class PinTileComponent extends BaseComponent {
2297
2310
  mobile: this.mobile,
2298
2311
  responsivePadding: true
2299
2312
  });
2300
- this.newGroupDialogRef.afterClosed.subscribe(() => {
2301
- // if (result) {
2302
- // this.dialogRef.loading(true);
2303
- // this.tilesService
2304
- // .createAppGroup(result)
2305
- // .pipe(
2306
- // takeUntil(this._onDestroy$),
2307
- // finalize(() => {
2308
- // this.dialogRef.loading(false);
2309
- // })
2310
- // )
2311
- // .subscribe();
2312
- // }
2313
+ this.newGroupDialogRef.afterClosed.subscribe((result) => {
2314
+ if (result) {
2315
+ this._setLoading(true);
2316
+ this._tilesService
2317
+ .createAppGroup(result)
2318
+ .pipe(takeUntil$1(this._onDestroy$), finalize$1(() => {
2319
+ this._setLoading(false);
2320
+ }))
2321
+ .subscribe();
2322
+ }
2323
+ });
2324
+ }
2325
+ onDeleteGroup(appTileGroup) {
2326
+ const deleteCaption = this._bbbTranslate.transform('Delete');
2327
+ const deleteConfirmation = this._bbbTranslate.transform('QuestionDeleteConfirmMessage');
2328
+ BarsaApi.Bw.Msg.YesNo(deleteConfirmation, deleteCaption, (buttonId) => {
2329
+ if (buttonId === 'yes') {
2330
+ this._setLoading(true);
2331
+ this._tilesService
2332
+ .deleteAppGroup(appTileGroup)
2333
+ .pipe(takeUntil$1(this._onDestroy$), finalize$1(() => {
2334
+ this._setLoading(false);
2335
+ }))
2336
+ .subscribe(() => this._close());
2337
+ }
2313
2338
  });
2314
2339
  }
2315
2340
  _setLoading(loading) {
@@ -2340,11 +2365,11 @@ class PinTileComponent extends BaseComponent {
2340
2365
  this._dialogRef.close(result);
2341
2366
  }
2342
2367
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PinTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2343
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: PinTileComponent, isStandalone: false, selector: "bt-pin-tile", inputs: { app: "app", appTileGroups: "appTileGroups", mobile: "mobile", pin: "pin" }, usesInheritance: true, ngImport: i0, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ 'AddToList' | bbbTranslate }}</h1>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n <ul fd-list [navigationIndicator]=\"true\" style=\"margin-bottom: 1rem\">\r\n <li fd-list-item [navigationIndicator]=\"true\" (click)=\"onNewGroup()\">\r\n <fd-icon glyph=\"add\"></fd-icon><span fd-list-title>{{ newGroupText }}</span>\r\n </li>\r\n @for (appTileGroup of appTileGroups; track appTileGroup) { @if (!appTileGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"appTileGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"appTileGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ appTileGroup.navigatorTitle || appTileGroup.Title }}</span>\r\n </li>\r\n } @for (subGroup of appTileGroup.$Children; track subGroup) { @if (!subGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"subGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"subGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ subGroup.navigatorTitle || subGroup.Title }}</span>\r\n </li>\r\n } } }\r\n </ul>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div fd-bar-left></div>\r\n <div fd-bar-right>\r\n <fd-button-bar fdkInitialFocus fdType=\"emphasized\" [label]=\"'OK' | bbbTranslate\" (click)=\"onAccept()\">\r\n </fd-button-bar>\r\n <fd-button-bar\r\n fdkInitialFocus\r\n fdType=\"transparent\"\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n >\r\n </fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [":host ::ng-deep .cdk-drag{cursor:default!important}:host *{cursor:default!important}li{cursor:pointer}fd-dialog-body,fd-dialog-footer,fd-dialog-header{cursor:default}fd-icon{padding:0 5px}\n"], dependencies: [{ kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2$2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i2$2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i3$3.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i1.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate"] }, { kind: "component", type: i5$2.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i5$2.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i5$2.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i5$2.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i7$1.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i6$1.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i7$1.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "pipe", type: i5.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2368
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: PinTileComponent, isStandalone: false, selector: "bt-pin-tile", inputs: { app: "app", appTileGroups: "appTileGroups", mobile: "mobile", pin: "pin" }, usesInheritance: true, ngImport: i0, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ 'AddToList' | bbbTranslate }}</h1>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n <ul fd-list [navigationIndicator]=\"true\" style=\"margin-bottom: 1rem\">\r\n <li fd-list-item [navigationIndicator]=\"true\" (click)=\"onNewGroup()\">\r\n <fd-icon glyph=\"add\"></fd-icon><span fd-list-title>{{ newGroupText }}</span>\r\n </li>\r\n @for (appTileGroup of appTileGroups; track appTileGroup) { @if (!appTileGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"appTileGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"appTileGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ appTileGroup.navigatorTitle || appTileGroup.Title }}</span>\r\n @if( !appTileGroup.Predefined){\r\n <button\r\n fd-button\r\n glyph=\"delete\"\r\n fdType=\"transparent\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n (click)=\"onDeleteGroup(appTileGroup)\"\r\n ></button>\r\n }\r\n </li>\r\n } @for (subGroup of appTileGroup.$Children; track subGroup) { @if (!subGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"subGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"subGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ subGroup.navigatorTitle || subGroup.Title }}</span>\r\n @if( !subGroup.Predefined){\r\n <button\r\n fd-button\r\n glyph=\"delete\"\r\n fdType=\"transparent\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n (click)=\"onDeleteGroup(subGroup)\"\r\n ></button>\r\n }\r\n </li>\r\n } } }\r\n </ul>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div fd-bar-left></div>\r\n <div fd-bar-right>\r\n <fd-button-bar fdkInitialFocus fdType=\"emphasized\" [label]=\"'OK' | bbbTranslate\" (click)=\"onAccept()\">\r\n </fd-button-bar>\r\n <fd-button-bar\r\n fdkInitialFocus\r\n fdType=\"transparent\"\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n >\r\n </fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [":host ::ng-deep .cdk-drag{cursor:default!important}:host *{cursor:default!important}li{cursor:pointer}fd-dialog-body,fd-dialog-footer,fd-dialog-header{cursor:default}fd-icon{padding:0 5px}\n"], dependencies: [{ kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2$2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i2$2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class", "id"], exportAs: ["fd-button"] }, { kind: "component", type: i4$4.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i1.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate"] }, { kind: "component", type: i5$2.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i5$2.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i5$2.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i5$2.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i7$1.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i6$1.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i7$1.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }, { kind: "pipe", type: i5.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2344
2369
  }
2345
2370
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PinTileComponent, decorators: [{
2346
2371
  type: Component,
2347
- args: [{ selector: 'bt-pin-tile', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ 'AddToList' | bbbTranslate }}</h1>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n <ul fd-list [navigationIndicator]=\"true\" style=\"margin-bottom: 1rem\">\r\n <li fd-list-item [navigationIndicator]=\"true\" (click)=\"onNewGroup()\">\r\n <fd-icon glyph=\"add\"></fd-icon><span fd-list-title>{{ newGroupText }}</span>\r\n </li>\r\n @for (appTileGroup of appTileGroups; track appTileGroup) { @if (!appTileGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"appTileGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"appTileGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ appTileGroup.navigatorTitle || appTileGroup.Title }}</span>\r\n </li>\r\n } @for (subGroup of appTileGroup.$Children; track subGroup) { @if (!subGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"subGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"subGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ subGroup.navigatorTitle || subGroup.Title }}</span>\r\n </li>\r\n } } }\r\n </ul>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div fd-bar-left></div>\r\n <div fd-bar-right>\r\n <fd-button-bar fdkInitialFocus fdType=\"emphasized\" [label]=\"'OK' | bbbTranslate\" (click)=\"onAccept()\">\r\n </fd-button-bar>\r\n <fd-button-bar\r\n fdkInitialFocus\r\n fdType=\"transparent\"\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n >\r\n </fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [":host ::ng-deep .cdk-drag{cursor:default!important}:host *{cursor:default!important}li{cursor:pointer}fd-dialog-body,fd-dialog-footer,fd-dialog-header{cursor:default}fd-icon{padding:0 5px}\n"] }]
2372
+ args: [{ selector: 'bt-pin-tile', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ 'AddToList' | bbbTranslate }}</h1>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n <ul fd-list [navigationIndicator]=\"true\" style=\"margin-bottom: 1rem\">\r\n <li fd-list-item [navigationIndicator]=\"true\" (click)=\"onNewGroup()\">\r\n <fd-icon glyph=\"add\"></fd-icon><span fd-list-title>{{ newGroupText }}</span>\r\n </li>\r\n @for (appTileGroup of appTileGroups; track appTileGroup) { @if (!appTileGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"appTileGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"appTileGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ appTileGroup.navigatorTitle || appTileGroup.Title }}</span>\r\n @if( !appTileGroup.Predefined){\r\n <button\r\n fd-button\r\n glyph=\"delete\"\r\n fdType=\"transparent\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n (click)=\"onDeleteGroup(appTileGroup)\"\r\n ></button>\r\n }\r\n </li>\r\n } @for (subGroup of appTileGroup.$Children; track subGroup) { @if (!subGroup.$Disabledpin) {\r\n <li fd-list-item [selected]=\"subGroup.$PinTile\">\r\n <fd-checkbox [(ngModel)]=\"subGroup.$PinTile\"></fd-checkbox>\r\n <span fd-list-title>{{ subGroup.navigatorTitle || subGroup.Title }}</span>\r\n @if( !subGroup.Predefined){\r\n <button\r\n fd-button\r\n glyph=\"delete\"\r\n fdType=\"transparent\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n (click)=\"onDeleteGroup(subGroup)\"\r\n ></button>\r\n }\r\n </li>\r\n } } }\r\n </ul>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdkTemplate=\"footer\">\r\n <div fd-bar-left></div>\r\n <div fd-bar-right>\r\n <fd-button-bar fdkInitialFocus fdType=\"emphasized\" [label]=\"'OK' | bbbTranslate\" (click)=\"onAccept()\">\r\n </fd-button-bar>\r\n <fd-button-bar\r\n fdkInitialFocus\r\n fdType=\"transparent\"\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n (click)=\"onClose()\"\r\n >\r\n </fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [":host ::ng-deep .cdk-drag{cursor:default!important}:host *{cursor:default!important}li{cursor:pointer}fd-dialog-body,fd-dialog-footer,fd-dialog-header{cursor:default}fd-icon{padding:0 5px}\n"] }]
2348
2373
  }], ctorParameters: () => [], propDecorators: { app: [{
2349
2374
  type: Input
2350
2375
  }], appTileGroups: [{
@@ -3580,7 +3605,7 @@ class BarsaTileGroupPageComponent extends BaseComponent {
3580
3605
  this._router.navigate(['../']);
3581
3606
  }
3582
3607
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BarsaTileGroupPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3583
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BarsaTileGroupPageComponent, isStandalone: false, selector: "bt-barsa-tile-group-page", host: { properties: { "style.position": "this._position" } }, providers: [RoutingService], viewQueries: [{ propertyName: "_containerRef", first: true, predicate: ["containerRef"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isSimple ){\r\n<fd-dynamic-page [autoResponsive]=\"true\">\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"true\"\r\n [title]=\"title | bbbTranslate\"\r\n [class.hide-title]=\"false\"\r\n [class.mobile]=\"isMobile\"\r\n >\r\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\r\n <fd-breadcrumb>\r\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs | slice:\r\n 0:breadCrumbs.length; track breadCrumb.url; let i = $index; let last = $last) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <fd-dynamic-page-layout-actions>\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n </fd-toolbar>\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n\r\n <fd-dynamic-page-content cdkScrollable>\r\n <ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\r\n </fd-dynamic-page-content>\r\n</fd-dynamic-page>\r\n} @else {\r\n<ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\r\n}\r\n<ng-template #loadingTpl>\r\n <bsu-mask></bsu-mask>\r\n</ng-template>\r\n<ng-template #tilesTpl>\r\n <div class=\"tw-flex tw-flex-col tw-gap-4\">\r\n @for(appGroup of moList() | multipleGroupBy: sortSetting();track appGroup.$Group || appGroup.Id) {\r\n @if(appGroup.$Group) {\r\n <fd-panel [fixed]=\"true\">\r\n <h2 fd-panel-title>\r\n {{ appGroup.$Group !== 'undefined' ? appGroup.$Group : '' }}\r\n </h2>\r\n <div\r\n fd-panel-content\r\n [class.small-size]=\"deviceSize === 's'\"\r\n class=\"tw-flex tw-gap-2 tw-flex-wrap tw-p-4 !tw-border-b-0\"\r\n >\r\n @for(app of appGroup.$Children;track app.Id;let i=$index){\r\n <ng-container\r\n *ngTemplateOutlet=\"tile; context: { $implicit: app, deviceSize: deviceSize, index: i }\"\r\n ></ng-container>\r\n }\r\n </div>\r\n </fd-panel>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #tile\r\n let-app\r\n let-listMode=\"listMode\"\r\n let-navigateBack=\"navigateBack\"\r\n let-deviceSize=\"deviceSize\"\r\n let-index=\"index\"\r\n>\r\n <span\r\n [dynamicCommand]=\"app.DynamicCommand\"\r\n [style.margin-right]=\"rtl ? (index === 0 ? '-0.5rem' : null) : null\"\r\n [style.margin-left]=\"!rtl ? (index === 0 ? '-0.5rem' : null) : null\"\r\n [setToStorage]=\"false\"\r\n [listMode]=\"false\"\r\n [navigateBackOnClick]=\"listMode ? false : isSimple ? true : false\"\r\n [enableCommand]=\"app.Component\"\r\n tileRenderer\r\n [data]=\"app\"\r\n [edit]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [component]=\"app.Component\"\r\n >\r\n </span>\r\n</ng-template>\r\n", styles: [":host{width:100%;display:block}.app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}fd-dynamic-page-header.mobile{--fdDynamicPage_Title_Font_Size:1rem}fd-dynamic-page-header.mobile ::ng-deep>.fd-dynamic-page__main-container>.fd-dynamic-page__breadcrumb-title-container{display:flex;flex-direction:row;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.ɵɵCdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i3$4.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i3$4.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class", "id"], exportAs: ["fd-button"] }, { kind: "component", type: i4$3.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i4$3.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i4$3.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i4$3.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i4$3.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i6$3.PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded", "transparent", "noRadius"], outputs: ["expandedChange"] }, { kind: "directive", type: i6$3.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "noPadding", "transparent", "id"] }, { kind: "directive", type: i6$3.PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id"] }, { kind: "component", type: i5$1.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i3.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "directive", type: TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "groupType", "edit", "deviceSize", "setToStorage", "listMode", "navigateBackOnClick"], outputs: ["hideClick", "renameClick"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.SlicePipe, name: "slice" }, { kind: "pipe", type: i5.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i5.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3608
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BarsaTileGroupPageComponent, isStandalone: false, selector: "bt-barsa-tile-group-page", host: { properties: { "style.position": "this._position" } }, providers: [RoutingService], viewQueries: [{ propertyName: "_containerRef", first: true, predicate: ["containerRef"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isSimple ){\r\n<fd-dynamic-page [autoResponsive]=\"true\">\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"true\"\r\n [title]=\"title | bbbTranslate\"\r\n [class.hide-title]=\"false\"\r\n [class.mobile]=\"isMobile\"\r\n >\r\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\r\n <fd-breadcrumb>\r\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs | slice:\r\n 0:breadCrumbs.length; track breadCrumb.url; let i = $index; let last = $last) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <fd-dynamic-page-layout-actions>\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n </fd-toolbar>\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n\r\n <fd-dynamic-page-content cdkScrollable>\r\n <ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\r\n </fd-dynamic-page-content>\r\n</fd-dynamic-page>\r\n} @else {\r\n<ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\r\n}\r\n<ng-template #loadingTpl>\r\n <bsu-mask></bsu-mask>\r\n</ng-template>\r\n<ng-template #tilesTpl>\r\n <div class=\"tw-flex tw-flex-col tw-gap-4\">\r\n @for(appGroup of moList() | multipleGroupBy: sortSetting();track appGroup.$Group || appGroup.Id) {\r\n @if(appGroup.$Group) {\r\n <fd-panel [fixed]=\"true\">\r\n <h2 fd-panel-title>\r\n {{ appGroup.$Group !== 'undefined' ? appGroup.$Group : '' }}\r\n </h2>\r\n <div\r\n fd-panel-content\r\n [class.small-size]=\"deviceSize === 's'\"\r\n class=\"tw-flex tw-gap-2 tw-flex-wrap tw-p-4 !tw-border-b-0\"\r\n >\r\n @for(app of appGroup.$Children;track app.Id;let i=$index){\r\n <ng-container\r\n *ngTemplateOutlet=\"tile; context: { $implicit: app, deviceSize: deviceSize, index: i }\"\r\n ></ng-container>\r\n }\r\n </div>\r\n </fd-panel>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #tile\r\n let-app\r\n let-listMode=\"listMode\"\r\n let-navigateBack=\"navigateBack\"\r\n let-deviceSize=\"deviceSize\"\r\n let-index=\"index\"\r\n>\r\n <span\r\n [dynamicCommand]=\"app.DynamicCommand\"\r\n [style.margin-right]=\"rtl ? (index === 0 ? '-0.5rem' : null) : null\"\r\n [style.margin-left]=\"!rtl ? (index === 0 ? '-0.5rem' : null) : null\"\r\n [setToStorage]=\"false\"\r\n [listMode]=\"false\"\r\n [navigateBackOnClick]=\"listMode ? false : isSimple ? true : false\"\r\n [enableCommand]=\"app.Component\"\r\n tileRenderer\r\n [data]=\"app\"\r\n [edit]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [component]=\"app.Component\"\r\n >\r\n </span>\r\n</ng-template>\r\n", styles: [":host{width:100%;display:block}.app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}fd-dynamic-page-header.mobile{--fdDynamicPage_Title_Font_Size:1rem}fd-dynamic-page-header.mobile ::ng-deep>.fd-dynamic-page__main-container>.fd-dynamic-page__breadcrumb-title-container{display:flex;flex-direction:row;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.ɵɵCdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i3$3.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i3$3.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class", "id"], exportAs: ["fd-button"] }, { kind: "component", type: i4$3.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i4$3.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i4$3.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i4$3.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i4$3.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i6$3.PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded", "transparent", "noRadius"], outputs: ["expandedChange"] }, { kind: "directive", type: i6$3.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "noPadding", "transparent", "id"] }, { kind: "directive", type: i6$3.PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id"] }, { kind: "component", type: i5$1.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i3.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "directive", type: TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "groupType", "edit", "deviceSize", "setToStorage", "listMode", "navigateBackOnClick"], outputs: ["hideClick", "renameClick"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.SlicePipe, name: "slice" }, { kind: "pipe", type: i5.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i5.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3584
3609
  }
3585
3610
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BarsaTileGroupPageComponent, decorators: [{
3586
3611
  type: Component,
@@ -3618,7 +3643,7 @@ class BarsaTileSidebarPageComponent extends EmptyPageComponent {
3618
3643
  this._router.navigate(['../']);
3619
3644
  }
3620
3645
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BarsaTileSidebarPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3621
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BarsaTileSidebarPageComponent, isStandalone: false, selector: "bt-barsa-tile-sidebar-page", providers: [RoutingService], usesInheritance: true, ngImport: i0, template: "<div fd-bar>\r\n <div fd-bar-left style=\"flex: 1; width: 100%\">\r\n <fd-breadcrumb style=\"width: 100%\">\r\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs ;track breadCrumb.url; let i =\r\n $index; let last = $last) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }\r\n </fd-breadcrumb>\r\n </div>\r\n</div>\r\n\r\n<fd-dynamic-side-content class=\"tiles-sidebar-wrapper\" fillEmptySpace style=\"overflow: auto\">\r\n <fd-dynamic-side-content-side>\r\n <ng-container #containerRef></ng-container>\r\n </fd-dynamic-side-content-side>\r\n <fd-dynamic-side-content-main style=\"padding: 2rem\">\r\n @if(firstReportLoaded()===false){\r\n <fd-message-page type=\"no-items\" style=\"align-self: center; background: transparent\">\r\n <fd-message-page-title>{{ 'SearchInReports' | bbbTranslate }}</fd-message-page-title>\r\n </fd-message-page>\r\n }\r\n <router-outlet name=\"mainside\"> </router-outlet>\r\n </fd-dynamic-side-content-main>\r\n</fd-dynamic-side-content>\r\n<div class=\"sidbar-outlet\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n", styles: [":host{width:100%;display:block}fd-dynamic-page ::ng-deep article fd-dynamic-page-content{padding:0}fd-dynamic-page ::ng-deep article fd-layout-panel{background-color:var(--sapBackgroundColor)}fd-dynamic-page ::ng-deep article li{border:none}.tiles-sidebar-wrapper>fd-dynamic-side-content-side{max-width:20svw;width:20svw;overflow-y:auto;padding:0;background-color:var(--sapBaseColor);border:.0625rem solid var(--sapTile_SeparatorColor, #ccc);border-top:none}.tiles-sidebar-wrapper>fd-dynamic-side-content-side ::ng-deep li span.haschildren{font-family:B-Font Medium}.tiles-sidebar-wrapper>fd-dynamic-side-content-side ::ng-deep bsu-barsa-ulv-main,.tiles-sidebar-wrapper>fd-dynamic-side-content-main ::ng-deep bsu-barsa-ulv-main{margin:0!important}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:80svw;max-width:80svw;background-color:var(--sapBaseColor)}@media (max-width: 799px){.tiles-sidebar-wrapper{flex-direction:column}.tiles-sidebar-wrapper>fd-dynamic-side-content-side{width:100svw;max-width:100svw;overflow:hidden}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:100svw;max-width:100svw}}@media (min-width: 800px) and (max-width: 1439px){.tiles-sidebar-wrapper>fd-dynamic-side-content-side{width:35svw;max-width:35svw;overflow:hidden}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:65svw;max-width:65svw}}\n"], dependencies: [{ kind: "directive", type: i1$3.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2$2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "clear", "size", "role"] }, { kind: "directive", type: i2$2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "component", type: i3$4.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i3$4.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i4$4.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i4$4.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i4$4.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i5$3.MessagePageComponent, selector: "fd-message-page", inputs: ["class", "type", "hasIcon", "glyphFont", "glyph"] }, { kind: "component", type: i5$3.MessagePageTitleComponent, selector: "fd-message-page-title" }, { kind: "directive", type: i5.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: i3.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3646
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BarsaTileSidebarPageComponent, isStandalone: false, selector: "bt-barsa-tile-sidebar-page", providers: [RoutingService], usesInheritance: true, ngImport: i0, template: "<div fd-bar>\r\n <div fd-bar-left style=\"flex: 1; width: 100%\">\r\n <fd-breadcrumb style=\"width: 100%\">\r\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs ;track breadCrumb.url; let i =\r\n $index; let last = $last) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }\r\n </fd-breadcrumb>\r\n </div>\r\n</div>\r\n\r\n<fd-dynamic-side-content class=\"tiles-sidebar-wrapper\" fillEmptySpace style=\"overflow: auto\">\r\n <fd-dynamic-side-content-side>\r\n <ng-container #containerRef></ng-container>\r\n </fd-dynamic-side-content-side>\r\n <fd-dynamic-side-content-main style=\"padding: 2rem\">\r\n @if(firstReportLoaded()===false){\r\n <fd-message-page type=\"no-items\" style=\"align-self: center; background: transparent\">\r\n <fd-message-page-title>{{ 'SearchInReports' | bbbTranslate }}</fd-message-page-title>\r\n </fd-message-page>\r\n }\r\n <router-outlet name=\"mainside\"> </router-outlet>\r\n </fd-dynamic-side-content-main>\r\n</fd-dynamic-side-content>\r\n<div class=\"sidbar-outlet\">\r\n <router-outlet></router-outlet>\r\n</div>\r\n", styles: [":host{width:100%;display:block}fd-dynamic-page ::ng-deep article fd-dynamic-page-content{padding:0}fd-dynamic-page ::ng-deep article fd-layout-panel{background-color:var(--sapBackgroundColor)}fd-dynamic-page ::ng-deep article li{border:none}.tiles-sidebar-wrapper>fd-dynamic-side-content-side{max-width:20svw;width:20svw;overflow-y:auto;padding:0;background-color:var(--sapBaseColor);border:.0625rem solid var(--sapTile_SeparatorColor, #ccc);border-top:none}.tiles-sidebar-wrapper>fd-dynamic-side-content-side ::ng-deep li span.haschildren{font-family:B-Font Medium}.tiles-sidebar-wrapper>fd-dynamic-side-content-side ::ng-deep bsu-barsa-ulv-main,.tiles-sidebar-wrapper>fd-dynamic-side-content-main ::ng-deep bsu-barsa-ulv-main{margin:0!important}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:80svw;max-width:80svw;background-color:var(--sapBaseColor)}@media (max-width: 799px){.tiles-sidebar-wrapper{flex-direction:column}.tiles-sidebar-wrapper>fd-dynamic-side-content-side{width:100svw;max-width:100svw;overflow:hidden}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:100svw;max-width:100svw}}@media (min-width: 800px) and (max-width: 1439px){.tiles-sidebar-wrapper>fd-dynamic-side-content-side{width:35svw;max-width:35svw;overflow:hidden}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:65svw;max-width:65svw}}\n"], dependencies: [{ kind: "directive", type: i1$3.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2$2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "clear", "size", "role"] }, { kind: "directive", type: i2$2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "component", type: i3$3.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i3$3.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i4$5.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i4$5.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i4$5.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i5$3.MessagePageComponent, selector: "fd-message-page", inputs: ["class", "type", "hasIcon", "glyphFont", "glyph"] }, { kind: "component", type: i5$3.MessagePageTitleComponent, selector: "fd-message-page-title" }, { kind: "directive", type: i5.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight", "setMaxHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: i3.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3622
3647
  }
3623
3648
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BarsaTileSidebarPageComponent, decorators: [{
3624
3649
  type: Component,