barsa-tiles 1.0.456 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/{esm2020 → esm2022}/barsa-tiles.mjs +4 -4
  2. package/esm2022/lib/action-item/action-item.component.mjs +17 -0
  3. package/{esm2020 → esm2022}/lib/action-links.pipe.mjs +16 -16
  4. package/esm2022/lib/actions-link/actions-link.component.mjs +41 -0
  5. package/esm2022/lib/app-finder/app-finder.component.mjs +52 -0
  6. package/esm2022/lib/app-finder-app-list/app-finder-app-list.component.mjs +39 -0
  7. package/esm2022/lib/app-finder-group/app-finder-group.component.mjs +41 -0
  8. package/esm2022/lib/app-finder.service.mjs +121 -0
  9. package/esm2022/lib/barsa-shellbar/barsa-shellbar.component.mjs +183 -0
  10. package/esm2022/lib/barsa-tiles.module.mjs +225 -0
  11. package/esm2022/lib/change-app-tile/change-app-tile.component.mjs +46 -0
  12. package/esm2022/lib/create-app-group/create-app-group.component.mjs +43 -0
  13. package/esm2022/lib/directives/emptylist.directive.mjs +36 -0
  14. package/esm2022/lib/feed-tile/feed-tile.component.mjs +31 -0
  15. package/{esm2020 → esm2022}/lib/footer-edit-tile/footer-edit-tile.component.mjs +13 -13
  16. package/esm2022/lib/footer-tile/footer-tile.component.mjs +27 -0
  17. package/esm2022/lib/form-app-finder/form-app-finder.component.mjs +95 -0
  18. package/esm2022/lib/form-tile/form-tile.component.mjs +34 -0
  19. package/esm2022/lib/logo-tile/logo-tile.component.mjs +23 -0
  20. package/{esm2020 → esm2022}/lib/micro-tile-chart-area/micro-tile-chart-area.component.mjs +40 -40
  21. package/{esm2020 → esm2022}/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.mjs +29 -29
  22. package/esm2022/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +26 -0
  23. package/{esm2020 → esm2022}/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.mjs +20 -20
  24. package/{esm2020 → esm2022}/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.mjs +31 -31
  25. package/{esm2020 → esm2022}/lib/micro-tile-chart-line/micro-tile-chart-line.component.mjs +32 -32
  26. package/{esm2020 → esm2022}/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.mjs +27 -27
  27. package/{esm2020 → esm2022}/lib/models/app-tile-footer-section.mjs +1 -1
  28. package/{esm2020 → esm2022}/lib/models/app-tile-footer.mjs +1 -1
  29. package/{esm2020 → esm2022}/lib/models/app-tile-group-pin.mjs +1 -1
  30. package/esm2022/lib/models/base-bt-tile-component.mjs +26 -0
  31. package/{esm2020 → esm2022}/lib/models/base-tile-component.mjs +58 -58
  32. package/{esm2020 → esm2022}/lib/models/base-tile-setting.mjs +1 -1
  33. package/{esm2020 → esm2022}/lib/models/feed-tile-setting.mjs +1 -1
  34. package/{esm2020 → esm2022}/lib/models/index.mjs +13 -13
  35. package/{esm2020 → esm2022}/lib/models/logo-tile-setting.mjs +1 -1
  36. package/{esm2020 → esm2022}/lib/models/micro-tile-chart-bullet-setting.mjs +1 -1
  37. package/{esm2020 → esm2022}/lib/models/news-tile-setting.mjs +1 -1
  38. package/{esm2020 → esm2022}/lib/models/numeric-tile-setting.mjs +1 -1
  39. package/{esm2020 → esm2022}/lib/models/profile-tile-setting.mjs +1 -1
  40. package/esm2022/lib/models/tile-setting.mjs +2 -0
  41. package/{esm2020 → esm2022}/lib/models/user-portal-settings.mjs +1 -1
  42. package/esm2022/lib/news-tile/news-tile.component.mjs +53 -0
  43. package/esm2022/lib/notification-group/notification-group.component.mjs +116 -0
  44. package/esm2022/lib/notification-group-header/notification-group-header.component.mjs +38 -0
  45. package/esm2022/lib/numeric-tile/numeric-tile.component.mjs +64 -0
  46. package/esm2022/lib/pin-tile/pin-tile.component.mjs +110 -0
  47. package/esm2022/lib/pipes/group-tiles.pipe.mjs +31 -0
  48. package/{esm2020 → esm2022}/lib/pipes/home-group.pipe.mjs +17 -17
  49. package/esm2022/lib/pipes/tile-home-filter.pipe.mjs +28 -0
  50. package/esm2022/lib/pipes/tile-prop.pipe.mjs +32 -0
  51. package/esm2022/lib/popover-app-finder/filter-apps-grouped.pipe.mjs +36 -0
  52. package/esm2022/lib/popover-app-finder/popover-app-finder.component.mjs +112 -0
  53. package/esm2022/lib/profile-tile/profile-tile.component.mjs +25 -0
  54. package/esm2022/lib/shellbar/shellbar.component.mjs +201 -0
  55. package/esm2022/lib/simple-tile/simple-tile.component.mjs +22 -0
  56. package/esm2022/lib/tile/tile.component.mjs +70 -0
  57. package/esm2022/lib/tile-renderer.directive.mjs +70 -0
  58. package/esm2022/lib/tile-style.directive.mjs +29 -0
  59. package/esm2022/lib/tiles-viewer/tiles-viewer.component.mjs +167 -0
  60. package/esm2022/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +164 -0
  61. package/esm2022/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +88 -0
  62. package/esm2022/lib/tiles-viewer.service.mjs +130 -0
  63. package/esm2022/lib/tiles.service.mjs +589 -0
  64. package/{esm2020 → esm2022}/public-api.mjs +46 -45
  65. package/fesm2022/barsa-tiles.mjs +3179 -0
  66. package/fesm2022/barsa-tiles.mjs.map +1 -0
  67. package/index.d.ts +5 -5
  68. package/lib/action-item/action-item.component.d.ts +6 -6
  69. package/lib/action-links.pipe.d.ts +7 -7
  70. package/lib/actions-link/actions-link.component.d.ts +17 -17
  71. package/lib/app-finder/app-finder.component.d.ts +24 -24
  72. package/lib/app-finder-app-list/app-finder-app-list.component.d.ts +20 -20
  73. package/lib/app-finder-group/app-finder-group.component.d.ts +14 -14
  74. package/lib/app-finder.service.d.ts +33 -33
  75. package/lib/barsa-shellbar/barsa-shellbar.component.d.ts +104 -97
  76. package/lib/barsa-tiles.module.d.ts +91 -86
  77. package/lib/change-app-tile/change-app-tile.component.d.ts +20 -20
  78. package/lib/create-app-group/create-app-group.component.d.ts +19 -19
  79. package/lib/directives/emptylist.directive.d.ts +14 -14
  80. package/lib/feed-tile/feed-tile.component.d.ts +11 -11
  81. package/lib/footer-edit-tile/footer-edit-tile.component.d.ts +6 -6
  82. package/lib/footer-tile/footer-tile.component.d.ts +11 -11
  83. package/lib/form-app-finder/form-app-finder.component.d.ts +38 -38
  84. package/lib/form-tile/form-tile.component.d.ts +24 -24
  85. package/lib/logo-tile/logo-tile.component.d.ts +7 -7
  86. package/lib/micro-tile-chart-area/micro-tile-chart-area.component.d.ts +8 -8
  87. package/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.d.ts +12 -12
  88. package/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.d.ts +16 -16
  89. package/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.d.ts +7 -7
  90. package/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.d.ts +8 -8
  91. package/lib/micro-tile-chart-line/micro-tile-chart-line.component.d.ts +8 -8
  92. package/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.d.ts +8 -8
  93. package/lib/models/app-tile-footer-section.d.ts +6 -6
  94. package/lib/models/app-tile-footer.d.ts +8 -8
  95. package/lib/models/app-tile-group-pin.d.ts +5 -5
  96. package/lib/models/base-bt-tile-component.d.ts +9 -9
  97. package/lib/models/base-tile-component.d.ts +26 -26
  98. package/lib/models/base-tile-setting.d.ts +5 -5
  99. package/lib/models/feed-tile-setting.d.ts +7 -7
  100. package/lib/models/index.d.ts +13 -13
  101. package/lib/models/logo-tile-setting.d.ts +6 -6
  102. package/lib/models/micro-tile-chart-bullet-setting.d.ts +10 -10
  103. package/lib/models/news-tile-setting.d.ts +4 -4
  104. package/lib/models/numeric-tile-setting.d.ts +9 -9
  105. package/lib/models/profile-tile-setting.d.ts +7 -7
  106. package/lib/models/tile-setting.d.ts +10 -10
  107. package/lib/models/user-portal-settings.d.ts +9 -9
  108. package/lib/news-tile/news-tile.component.d.ts +19 -19
  109. package/lib/notification-group/notification-group.component.d.ts +54 -55
  110. package/lib/notification-group-header/notification-group-header.component.d.ts +15 -15
  111. package/lib/numeric-tile/numeric-tile.component.d.ts +16 -12
  112. package/lib/pin-tile/pin-tile.component.d.ts +30 -30
  113. package/lib/pipes/group-tiles.pipe.d.ts +14 -14
  114. package/lib/pipes/home-group.pipe.d.ts +9 -9
  115. package/lib/pipes/tile-home-filter.pipe.d.ts +8 -8
  116. package/lib/pipes/tile-prop.pipe.d.ts +8 -8
  117. package/lib/popover-app-finder/filter-apps-grouped.pipe.d.ts +13 -0
  118. package/lib/popover-app-finder/popover-app-finder.component.d.ts +39 -0
  119. package/lib/profile-tile/profile-tile.component.d.ts +7 -7
  120. package/lib/shellbar/shellbar.component.d.ts +94 -94
  121. package/lib/simple-tile/simple-tile.component.d.ts +10 -10
  122. package/lib/tile/tile.component.d.ts +22 -20
  123. package/lib/tile-renderer.directive.d.ts +28 -28
  124. package/lib/tile-style.directive.d.ts +12 -0
  125. package/lib/tiles-viewer/tiles-viewer.component.d.ts +65 -63
  126. package/lib/tiles-viewer-container/tiles-viewer-container.component.d.ts +59 -57
  127. package/lib/tiles-viewer-group/tiles-viewer-group.component.d.ts +39 -39
  128. package/lib/tiles-viewer.service.d.ts +42 -42
  129. package/lib/tiles.service.d.ts +75 -75
  130. package/package.json +7 -13
  131. package/public-api.d.ts +42 -41
  132. package/esm2020/lib/action-item/action-item.component.mjs +0 -18
  133. package/esm2020/lib/actions-link/actions-link.component.mjs +0 -42
  134. package/esm2020/lib/app-finder/app-finder.component.mjs +0 -53
  135. package/esm2020/lib/app-finder-app-list/app-finder-app-list.component.mjs +0 -40
  136. package/esm2020/lib/app-finder-group/app-finder-group.component.mjs +0 -42
  137. package/esm2020/lib/app-finder.service.mjs +0 -121
  138. package/esm2020/lib/barsa-shellbar/barsa-shellbar.component.mjs +0 -166
  139. package/esm2020/lib/barsa-tiles.module.mjs +0 -206
  140. package/esm2020/lib/change-app-tile/change-app-tile.component.mjs +0 -47
  141. package/esm2020/lib/create-app-group/create-app-group.component.mjs +0 -44
  142. package/esm2020/lib/directives/emptylist.directive.mjs +0 -36
  143. package/esm2020/lib/feed-tile/feed-tile.component.mjs +0 -32
  144. package/esm2020/lib/footer-tile/footer-tile.component.mjs +0 -28
  145. package/esm2020/lib/form-app-finder/form-app-finder.component.mjs +0 -95
  146. package/esm2020/lib/form-tile/form-tile.component.mjs +0 -35
  147. package/esm2020/lib/logo-tile/logo-tile.component.mjs +0 -23
  148. package/esm2020/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +0 -27
  149. package/esm2020/lib/models/base-bt-tile-component.mjs +0 -30
  150. package/esm2020/lib/models/tile-setting.mjs +0 -2
  151. package/esm2020/lib/news-tile/news-tile.component.mjs +0 -54
  152. package/esm2020/lib/notification-group/notification-group.component.mjs +0 -116
  153. package/esm2020/lib/notification-group-header/notification-group-header.component.mjs +0 -39
  154. package/esm2020/lib/numeric-tile/numeric-tile.component.mjs +0 -34
  155. package/esm2020/lib/pin-tile/pin-tile.component.mjs +0 -111
  156. package/esm2020/lib/pipes/group-tiles.pipe.mjs +0 -31
  157. package/esm2020/lib/pipes/tile-home-filter.pipe.mjs +0 -28
  158. package/esm2020/lib/pipes/tile-prop.pipe.mjs +0 -32
  159. package/esm2020/lib/profile-tile/profile-tile.component.mjs +0 -26
  160. package/esm2020/lib/shellbar/shellbar.component.mjs +0 -200
  161. package/esm2020/lib/simple-tile/simple-tile.component.mjs +0 -23
  162. package/esm2020/lib/tile/tile.component.mjs +0 -61
  163. package/esm2020/lib/tile-renderer.directive.mjs +0 -70
  164. package/esm2020/lib/tiles-viewer/tiles-viewer.component.mjs +0 -157
  165. package/esm2020/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +0 -158
  166. package/esm2020/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +0 -88
  167. package/esm2020/lib/tiles-viewer.service.mjs +0 -130
  168. package/esm2020/lib/tiles.service.mjs +0 -589
  169. package/fesm2015/barsa-tiles.mjs +0 -2977
  170. package/fesm2015/barsa-tiles.mjs.map +0 -1
  171. package/fesm2020/barsa-tiles.mjs +0 -2941
  172. package/fesm2020/barsa-tiles.mjs.map +0 -1
@@ -1,2977 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Injectable, Component, ChangeDetectionStrategy, Input, HostListener, Pipe, HostBinding, EventEmitter, Directive, Output, ElementRef, ViewChild, TemplateRef, Inject, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
3
- import * as i1 from 'barsa-novin-ray-core';
4
- import { BarsaApi, TilePropsComponent, BaseComponent, PreventDefaulEvent, BaseDirective, fromIntersectionObserver, IntersectionStatus, APP_VERSION, BaseModule, BarsaNovinRayCoreModule } from 'barsa-novin-ray-core';
5
- import { Subject, BehaviorSubject, of, from, takeUntil as takeUntil$1, filter as filter$1, interval, combineLatest, forkJoin } from 'rxjs';
6
- import { startWith, shareReplay, takeUntil, distinctUntilChanged, filter, tap, concatMap, debounceTime, exhaustMap, finalize, map, withLatestFrom } from 'rxjs/operators';
7
- import * as i1$1 from '@fundamental-ngx/core';
8
- import { TabListComponent, CarouselComponent, ComboboxComponent, FundamentalNgxCoreModule, GridListModule } from '@fundamental-ngx/core';
9
- import * as i1$2 from '@angular/common';
10
- import { DOCUMENT, CommonModule, LowerCasePipe } from '@angular/common';
11
- import * as i1$3 from '@fundamental-ngx/core/tile';
12
- import * as i2$1 from '@fundamental-ngx/core/button';
13
- import * as i3 from '@fundamental-ngx/core/menu';
14
- import * as i5 from 'barsa-sap-ui';
15
- import { BarsaSapUiModule } from 'barsa-sap-ui';
16
- import * as i2 from '@fundamental-ngx/core/icon';
17
- import * as i2$2 from '@angular/cdk/drag-drop';
18
- import { moveItemInArray, transferArrayItem, DragDropModule } from '@angular/cdk/drag-drop';
19
- import * as i3$1 from '@fundamental-ngx/core/busy-indicator';
20
- import * as i6 from '@fundamental-ngx/core/layout-panel';
21
- import * as i9 from '@fundamental-ngx/core/title';
22
- import * as i8 from '@fundamental-ngx/core/panel';
23
- import * as i10 from '@fundamental-ngx/core/toolbar';
24
- import * as i2$3 from '@fundamental-ngx/core/avatar';
25
- import * as i4 from '@fundamental-ngx/core/card';
26
- import * as i5$1 from '@fundamental-ngx/core/fixed-card-layout';
27
- import * as i4$1 from '@fundamental-ngx/core/list';
28
- import * as i1$4 from '@angular/forms';
29
- import { UntypedFormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
30
- import * as i7 from '@fundamental-ngx/core/input-group';
31
- import * as i5$2 from '@fundamental-ngx/core/bar';
32
- import * as i6$1 from '@fundamental-ngx/core/form';
33
- import * as i8$1 from '@fundamental-ngx/core/dialog';
34
- import * as i10$1 from '@fundamental-ngx/core/utils';
35
- import * as i6$2 from '@fundamental-ngx/core/dynamic-page';
36
- import * as i8$2 from '@fundamental-ngx/core/switch';
37
- import * as i9$1 from '@fundamental-ngx/core/tabs';
38
- import * as i2$4 from 'barsa-echarts';
39
- import { BarsaEchartsModule } from 'barsa-echarts';
40
- import * as i3$2 from '@fundamental-ngx/core/carousel';
41
- import * as i6$3 from '@fundamental-ngx/core/checkbox';
42
- import { __awaiter } from 'tslib';
43
- import * as i3$3 from '@angular/platform-browser';
44
- import * as i8$3 from '@fundamental-ngx/core/product-switch';
45
- import * as i9$2 from '@fundamental-ngx/core/popover';
46
- import * as i10$2 from '@fundamental-ngx/core/shellbar';
47
- import * as i4$2 from '@fundamental-ngx/core/notification';
48
- import { CdkTableModule } from '@angular/cdk/table';
49
-
50
- class TilesService {
51
- constructor(_portalService, _rtlService, _bbbTranslatePipe) {
52
- this._portalService = _portalService;
53
- this._rtlService = _rtlService;
54
- this._bbbTranslatePipe = _bbbTranslatePipe;
55
- this.shellbarSource = new Subject();
56
- this._OnDestroy$ = new Subject();
57
- this._homeAppTileGroupsSource = new BehaviorSubject([]);
58
- this.pinTilesSource = new Subject();
59
- this._appTileGroupsSource = new BehaviorSubject(null);
60
- this._edithomeSource = new BehaviorSubject(false);
61
- this._componentSettings$ = new Subject();
62
- BarsaApi.Bw.TilesService = this;
63
- this.homeAppTileGroups$ = this._homeAppTileGroupsSource.asObservable();
64
- this.pinTiles$ = this.pinTilesSource.asObservable().pipe(startWith(null));
65
- this.shellbarSource = new Subject();
66
- this.shellbar$ = this.shellbarSource.asObservable().pipe(shareReplay(1));
67
- this.appTileGroups$ = this._appTileGroupsSource.pipe(shareReplay(1));
68
- this.edit$ = this._edithomeSource.asObservable().pipe(takeUntil(this._OnDestroy$), distinctUntilChanged());
69
- this.deviceSize$ = this._portalService.deviceSize$;
70
- this._rtlService.rtl.next(BarsaApi.LoginFormData.IsRtl);
71
- this.loadAllAppTileGroups();
72
- this.appTileGroups$
73
- .pipe(filter((moForReportModel) => moForReportModel !== null), tap((moForReportModel) => {
74
- if (moForReportModel) {
75
- this._allAppsLoaded(moForReportModel);
76
- }
77
- }))
78
- .subscribe();
79
- BarsaApi.Ul.ApplicationCtrlr.on('GlobalRefreshTile', this._onApplication_GlobalRefreshTile.bind(this));
80
- }
81
- get componentSettings$() {
82
- return this._componentSettings$.asObservable();
83
- }
84
- get appTileGroups() {
85
- return this._appTileGroupsSource.getValue();
86
- }
87
- ngOnDestroy() {
88
- this._OnDestroy$.next();
89
- }
90
- _onApplication_GlobalRefreshTile(sender, appTilesTitle) {
91
- const allApps = this._appTileGroupsSource.getValue();
92
- const appTiles = [];
93
- if (allApps) {
94
- appTilesTitle.forEach((c) => {
95
- const selectedTile = this.findAppTileWithKey(allApps, 'A_App_AppKey', c);
96
- if (selectedTile) {
97
- appTiles.push(selectedTile);
98
- }
99
- });
100
- this._updateAppTileFromNotification(allApps, appTiles);
101
- this._appTileGroupsSource.next(allApps);
102
- }
103
- }
104
- _updateAppTileFromNotification(allApps, appTiles) {
105
- if (!(appTiles === null || appTiles === void 0 ? void 0 : appTiles.length)) {
106
- return;
107
- }
108
- BarsaApi.Bw.RunBlMethodAsync({
109
- Parameters: [appTiles.map((c) => { var _a, _b; return (((_a = c.AppTile) === null || _a === void 0 ? void 0 : _a.Id) ? (_b = c.AppTile) === null || _b === void 0 ? void 0 : _b.Id : c.Id); })],
110
- Method: 'RefreshAppTiles',
111
- SuccessFn: (result) => {
112
- result.MoDataList.forEach((c) => this.updateAppTile(allApps, c));
113
- this._appTileGroupsSource.next(Object.assign({}, allApps));
114
- },
115
- FailFn: () => { }
116
- });
117
- }
118
- loadAppTileGroups(appTileGroup) {
119
- var _a;
120
- if (!appTileGroup || appTileGroup.$TilesLoaded) {
121
- return;
122
- }
123
- const allApps = this._appTileGroupsSource.getValue();
124
- if (allApps) {
125
- const selectedAppTilegroup = allApps === null || allApps === void 0 ? void 0 : allApps.MoDataList.find((c) => c.Id === appTileGroup.Id);
126
- if (selectedAppTilegroup) {
127
- this._loadAppTilesOfAppTileGroup(selectedAppTilegroup, allApps);
128
- (_a = selectedAppTilegroup.$Children) === null || _a === void 0 ? void 0 : _a.forEach((subGroup) => {
129
- this._loadAppTilesOfAppTileGroup(subGroup, allApps);
130
- });
131
- }
132
- }
133
- }
134
- saveTilesStackContent(tilesStackContent) {
135
- const userPortalSettings = this._portalService.userPortalSettings['UserPortalSettings'];
136
- if (userPortalSettings == null) {
137
- return Promise.resolve();
138
- }
139
- userPortalSettings.TilesStackContent = tilesStackContent;
140
- userPortalSettings.$State = 'Modified';
141
- return this._saveUserPortalSettings(userPortalSettings).then(() => this._portalService.setUserPortalSettings(userPortalSettings));
142
- }
143
- loadUserPortalSettings() {
144
- return this._portalService.getData('UserPortalSetting').pipe(concatMap((data) => {
145
- if (data) {
146
- return of(data);
147
- }
148
- else {
149
- return this.loadFromServerUserPortalSetting();
150
- }
151
- }));
152
- }
153
- refreshTile(appTile) {
154
- return new Promise((resolve, reject) => {
155
- BarsaApi.Bw.RunBlMethodAsync({
156
- Parameters: [appTile.Id],
157
- Method: 'RefreshTile',
158
- SuccessFn: (newAppTile) => {
159
- var _a;
160
- if ((_a = newAppTile.MoDataList) === null || _a === void 0 ? void 0 : _a.length) {
161
- resolve(newAppTile.MoDataList[0]);
162
- }
163
- reject(`refresh tile not found apptile width title: ${appTile.Title}`);
164
- },
165
- FailFn: () => {
166
- reject(null);
167
- }
168
- });
169
- });
170
- }
171
- loadFromServerUserPortalSetting() {
172
- return from(new Promise((resolve, reject) => {
173
- BarsaApi.Bw.RunBlMethodAsync({
174
- Parameters: [],
175
- Method: 'GetUserPortalSettings',
176
- SuccessFn: (userPortalSetting) => {
177
- this._portalService.setData('UserPortalSetting', userPortalSetting);
178
- resolve(userPortalSetting);
179
- },
180
- FailFn: () => {
181
- reject(null);
182
- }
183
- });
184
- }));
185
- }
186
- toggleAppGroupSettingVisible(appGroup) {
187
- return from(new Promise((resolve, reject) => {
188
- BarsaApi.Bw.RunBlMethodAsync({
189
- Parameters: [appGroup.Id],
190
- Method: 'ToggleAppTileGroupSettingVisible',
191
- SuccessFn: (appGroupSetting) => {
192
- this._updateAppTileGroupSettings(appGroup, appGroupSetting);
193
- resolve(appGroupSetting);
194
- },
195
- FailFn: () => {
196
- reject(null);
197
- }
198
- });
199
- })).pipe(tap((appGroupSetting) => {
200
- this._updateAppGroupSetting(appGroup, appGroupSetting);
201
- }));
202
- }
203
- resetAppGroupSetting(appGroup) {
204
- return from(new Promise((resolve, reject) => {
205
- BarsaApi.Bw.RunBlMethodAsync({
206
- Parameters: [appGroup.Id],
207
- Method: 'ResetAppTileGroupSettingVisible',
208
- SuccessFn: (appGroupSetting) => {
209
- this._updateAppTileGroupSettings(appGroup, appGroupSetting);
210
- resolve(appGroupSetting);
211
- },
212
- FailFn: () => {
213
- reject(null);
214
- }
215
- });
216
- })).pipe(tap((appGroupSetting) => {
217
- this._updateAppGroupSetting(appGroup, appGroupSetting);
218
- }));
219
- }
220
- deleteAppGroup(appGroup) {
221
- return from(new Promise((resolve, reject) => {
222
- BarsaApi.Bw.RunBlMethodAsync({
223
- Parameters: [appGroup.Id],
224
- Method: 'DeleteAppGroup',
225
- SuccessFn: () => {
226
- resolve(appGroup.Id);
227
- },
228
- FailFn: () => {
229
- reject(null);
230
- }
231
- });
232
- })).pipe(tap((appGroupId) => {
233
- const allApps = this.appTileGroups;
234
- if (allApps) {
235
- allApps.MoDataList = allApps.MoDataList.filter((c) => c.Id !== appGroupId);
236
- this._appTileGroupsSource.next(allApps);
237
- }
238
- }));
239
- }
240
- changeAppTileSetting(appTile) {
241
- const allApps = this.appTileGroups;
242
- const selectedGroup = this.findGroupWithAppTileId(allApps, appTile.Id);
243
- if (selectedGroup === null) {
244
- return of(null);
245
- }
246
- return from(new Promise((resolve, reject) => {
247
- BarsaApi.Bw.RunBlMethodAsync({
248
- Parameters: [selectedGroup.Id, appTile.Id, appTile.Title, appTile.Subtitle],
249
- Method: 'ChangeAppTileSetting',
250
- SuccessFn: () => {
251
- this._nextAllAppTileGroups(allApps);
252
- resolve(selectedGroup);
253
- },
254
- FailFn: () => {
255
- reject(null);
256
- }
257
- });
258
- })).pipe(tap((appGroupSetting) => this.updataAppTileSetting(selectedGroup, appGroupSetting)));
259
- }
260
- saveAppGroupOrders(appGroups) {
261
- const groupOrders = appGroups.map((c) => c.Id);
262
- return from(new Promise((resolve, reject) => {
263
- BarsaApi.Bw.RunBlMethodAsync({
264
- Parameters: [groupOrders],
265
- Method: 'ChangeOrderAppTileGroups',
266
- SuccessFn: () => {
267
- resolve();
268
- },
269
- FailFn: () => {
270
- reject(null);
271
- }
272
- });
273
- })).pipe();
274
- }
275
- createAppGroup(title) {
276
- return from(new Promise((resolve, reject) => {
277
- BarsaApi.Bw.RunBlMethodAsync({
278
- Parameters: [title],
279
- Method: 'CreateAppTileGroup',
280
- SuccessFn: (mo) => {
281
- resolve(mo);
282
- },
283
- FailFn: () => {
284
- reject(null);
285
- }
286
- });
287
- })).pipe(tap((mo) => this.addAppGroup(mo)));
288
- }
289
- saveOrderAppTiles(appGroup, appTiles, isActionLink = false, appTileIdTransferedId = '0') {
290
- BarsaApi.Bw.RunBlMethodAsync({
291
- Parameters: [appGroup.Id, appTiles, isActionLink, appTileIdTransferedId],
292
- Method: 'ChangeOrderAppTiles',
293
- SuccessFn: () => { },
294
- FailFn: () => { }
295
- });
296
- }
297
- updateAppTile(allApps, appTile) {
298
- const selectedAppTile = this.findAppTileWithKey(allApps, 'A_App_Component.Settings.Id', appTile.A_App_Component.Settings.Id);
299
- if (selectedAppTile) {
300
- BarsaApi.Common.Merger.FastMerge(selectedAppTile.A_App_Component.Settings, appTile.A_App_Component.Settings);
301
- this._componentSettings$.next(selectedAppTile.A_App_Component.Settings);
302
- }
303
- }
304
- updataAppTileSetting(selectedGroup, appGroupSetting) {
305
- const allApps = this.appTileGroups;
306
- allApps === null || allApps === void 0 ? void 0 : allApps.MoDataList.forEach((appGroup) => {
307
- if (appGroup.Id === selectedGroup.Id) {
308
- appGroup.UserAppTileGroupSetting = appGroupSetting;
309
- }
310
- });
311
- this._appTileGroupsSource.next(allApps);
312
- }
313
- addAppGroup(mo) {
314
- const allApps = this.appTileGroups;
315
- if (allApps) {
316
- allApps.MoDataList.push(mo);
317
- this._appTileGroupsSource.next(allApps);
318
- }
319
- }
320
- singlePinTileChanged(appTileId) {
321
- const allApps = this.appTileGroups;
322
- const group = this.findGroupWithAppTileId(allApps, appTileId);
323
- if (group === null) {
324
- return of(false);
325
- }
326
- return from(new Promise((resolve, reject) => {
327
- BarsaApi.Bw.RunBlMethodAsync({
328
- Parameters: [group.Id, appTileId],
329
- Method: 'RemoveAppTileFromTileGroup',
330
- SuccessFn: (setting) => {
331
- this._updateAppTileGroupSettings(group, setting);
332
- this._nextAllAppTileGroups(allApps);
333
- resolve(true);
334
- },
335
- FailFn: () => {
336
- reject(false);
337
- }
338
- });
339
- }));
340
- }
341
- pinTileChanged(appTileGroupsPin, app, callback) {
342
- const allApps = this.appTileGroups;
343
- const visible = appTileGroupsPin.map((c) => c.visible);
344
- const groupChanges = appTileGroupsPin.map((c) => new BarsaApi.Common.MetaObjectWeb({
345
- Id: c.appTileGroup.Id,
346
- TypeDefId: allApps === null || allApps === void 0 ? void 0 : allApps.TypeDefId
347
- }));
348
- BarsaApi.Bw.RunBlMethodAsync({
349
- Parameters: [groupChanges, visible, app.Id],
350
- Method: 'TilePinChanged',
351
- SuccessFn: (settings) => {
352
- this._tilePinChange(appTileGroupsPin, allApps);
353
- callback(settings);
354
- },
355
- FailFn: () => {
356
- // TODO show error
357
- }
358
- });
359
- }
360
- _tilePinChange(appTileGroupsPin, allApps) {
361
- for (const appTileGroupPin of appTileGroupsPin) {
362
- let selectedAppGroup;
363
- const appGroupId = appTileGroupPin.appTileGroup.Id;
364
- allApps === null || allApps === void 0 ? void 0 : allApps.MoDataList.forEach((c) => {
365
- var _a;
366
- if (c.Id === appGroupId) {
367
- selectedAppGroup = c;
368
- }
369
- else if (!selectedAppGroup) {
370
- selectedAppGroup = (_a = c.$Children) === null || _a === void 0 ? void 0 : _a.find((child) => child.Id === appGroupId);
371
- }
372
- });
373
- if (selectedAppGroup && selectedAppGroup.$TilesLoaded) {
374
- // let moDataList = selectedAppGroup.AppTiles.MoDataList;
375
- // if (appTileGroups[i].visible)
376
- // selectedAppGroup.AppTiles.MoDataList = [...moDataList, settings[i]];
377
- // else
378
- // selectedAppGroup.AppTiles.MoDataList = moDataList.filter(
379
- // (c) => c.App.Id !== app.Id
380
- // );
381
- this._loadAppTilesOfAppTileGroup(selectedAppGroup, allApps);
382
- }
383
- }
384
- this._nextAllAppTileGroups(allApps);
385
- }
386
- loadShellbar() {
387
- BarsaApi.Bw.RunBlMethodAsync({
388
- Parameters: [BarsaApi.LoginFormData.PortalId],
389
- Method: 'LoadShellbarByPortalId',
390
- SuccessFn: (shellbar) => {
391
- this.shellbarSource.next(shellbar);
392
- },
393
- FailFn: () => {
394
- // TODO show error
395
- }
396
- });
397
- // this._portalService
398
- // .ReportExecutePromise('Shellbar')
399
- // .then((moForReportModel) => this.shellbarSource.next(moForReportModel.MoDataList[0]));
400
- }
401
- loadAllAppTileGroups() {
402
- this._portalService
403
- .ReportExecute('AllAppTileGroups')
404
- .subscribe((allApps) => this._nextAllAppTileGroups(allApps));
405
- }
406
- _setTileInfo(appTile) {
407
- {
408
- const title = BarsaApi.Common.Util.TryGetValue(appTile, 'Component.Settings.TileSetting.Title', null);
409
- appTile.TileTitle = !appTile.Title ? title : appTile.Title;
410
- const subtitle = BarsaApi.Common.Util.TryGetValue(appTile, 'Component.Settings.TileSetting.Subtitle', null);
411
- appTile.Subtitle = !appTile.Subtitle ? subtitle : appTile.Subtitle;
412
- }
413
- }
414
- getTileGroups() {
415
- return this._appTileGroupsSource.getValue();
416
- }
417
- setEditHome(edit) {
418
- this._edithomeSource.next(edit);
419
- }
420
- _allAppsLoaded(moForReportModel) {
421
- moForReportModel.MoDataList.forEach((c) => {
422
- this._prepareNavigator(c);
423
- });
424
- this._setHomeAppTileGroups(moForReportModel.MoDataList);
425
- }
426
- _loadAppTilesOfAppTileGroup(selectedAppTilegroup, allApps) {
427
- const callback = () => {
428
- this._nextAllAppTileGroups(allApps);
429
- };
430
- if (!selectedAppTilegroup.UserAppTileGroupSetting) {
431
- this._loadAppTilesByAppTileGroup(selectedAppTilegroup, callback);
432
- }
433
- else {
434
- this._loadAppTilesByAppTileGroupSetting(selectedAppTilegroup, callback);
435
- }
436
- }
437
- _loadAppTilesByAppTileGroup(appGroup, callback) {
438
- BarsaApi.Bw.RunBlMethodAsync({
439
- Parameters: [appGroup.Id],
440
- Method: 'LoadAllAppTilesByAppTileGroup',
441
- SuccessFn: (appTiles) => {
442
- this._updateAppTilesOfAppTileGroup(appGroup, appTiles);
443
- callback();
444
- },
445
- FailFn: () => {
446
- // TODO show error
447
- }
448
- });
449
- }
450
- _updateAppTilesOfAppTileGroup(selectedAppTilegroup, appTiles) {
451
- var _a;
452
- if (this.appTileGroups) {
453
- selectedAppTilegroup = Object.assign(Object.assign({}, selectedAppTilegroup), { $TilesLoaded: true });
454
- appTiles.MoDataList.forEach((element) => {
455
- var _a, _b, _c;
456
- element.Component = (_a = element.A_App_Component) !== null && _a !== void 0 ? _a : element.A_AppTile_App_Component;
457
- element.DynamicCommand = (_b = element.A_App_DynamicCommand) !== null && _b !== void 0 ? _b : element.A_AppTile_App_DynamicCommand;
458
- element.Predefined = (_c = element.Predefined) !== null && _c !== void 0 ? _c : element.A_AppTile_Predefined;
459
- });
460
- const apptileGroupIndex = (_a = this.appTileGroups) === null || _a === void 0 ? void 0 : _a.MoDataList.findIndex((c) => c.Id === selectedAppTilegroup.Id || c.Id === selectedAppTilegroup.$ParentId);
461
- selectedAppTilegroup.AppTiles = appTiles;
462
- const tileGroup = this.appTileGroups.MoDataList[apptileGroupIndex];
463
- if (selectedAppTilegroup.$ParentId) {
464
- if (tileGroup.$Children) {
465
- const idOfSubGroup = tileGroup.$Children.findIndex((c) => c.Id === selectedAppTilegroup.Id);
466
- tileGroup.$Children[idOfSubGroup] = selectedAppTilegroup;
467
- }
468
- this.appTileGroups.MoDataList[apptileGroupIndex] = Object.assign({}, tileGroup);
469
- }
470
- else {
471
- this.appTileGroups.MoDataList[apptileGroupIndex] = selectedAppTilegroup;
472
- }
473
- }
474
- }
475
- _loadAppTilesByAppTileGroupSetting(appTileGroup, callback) {
476
- BarsaApi.Bw.RunBlMethodAsync({
477
- Parameters: [appTileGroup.Id],
478
- Method: 'LoadAllAppTilesByUserAppTileGroupSettings',
479
- SuccessFn: (appTiles) => {
480
- this._updateAppTilesOfAppTileGroup(appTileGroup, appTiles);
481
- callback();
482
- },
483
- FailFn: () => {
484
- // TODO show error
485
- }
486
- });
487
- }
488
- _nextAllAppTileGroups(newAllApps = null) {
489
- const allApps = newAllApps !== null && newAllApps !== void 0 ? newAllApps : this._appTileGroupsSource.getValue();
490
- this._appTileGroupsSource.next(allApps ? Object.assign({}, allApps) : null);
491
- }
492
- _setHomeAppTileGroups(appGroups) {
493
- let newAppGroups = [...appGroups];
494
- newAppGroups = newAppGroups
495
- .filter((c) => c.Visible)
496
- .sort((a, b) => Number(a.navigatorOrderItem) - Number(b.navigatorOrderItem));
497
- this._homeAppTileGroupsSource.next(newAppGroups);
498
- }
499
- _saveUserPortalSettings(userPortalSettings) {
500
- return new Promise((resolve, reject) => {
501
- BarsaApi.Bw.RunBlMethodAsync({
502
- Parameters: [new BarsaApi.Common.MetaObjectWeb(userPortalSettings)],
503
- Method: 'SaveUserPortalSettings',
504
- SuccessFn: () => {
505
- resolve();
506
- },
507
- FailFn: () => {
508
- reject(null);
509
- }
510
- });
511
- });
512
- }
513
- _updateAppGroupSetting(appGroup, appGroupSetting) {
514
- const allApps = this.appTileGroups;
515
- const selectedAppGroup = allApps === null || allApps === void 0 ? void 0 : allApps.MoDataList.find((c) => c.Id === appGroup.Id);
516
- if (selectedAppGroup && allApps) {
517
- selectedAppGroup.UserAppTileGroupSetting = appGroupSetting;
518
- this._nextAllAppTileGroups(allApps);
519
- }
520
- }
521
- findAppTileWithKey(allApps, key, value) {
522
- let selectedTile;
523
- if (typeof value === 'string') {
524
- value = BarsaApi.Common.Util.ReplaceArabicCharchter(value);
525
- }
526
- if (!allApps) {
527
- return null;
528
- }
529
- allApps.MoDataList.forEach((appGroup) => {
530
- var _a;
531
- if (selectedTile) {
532
- return;
533
- }
534
- selectedTile = appGroup.navigatorTiles.find((c) => BarsaApi.Common.Util.TryGetValue(c, key, null) === value);
535
- (_a = appGroup.$Children) === null || _a === void 0 ? void 0 : _a.forEach((subGroup) => {
536
- if (selectedTile) {
537
- return;
538
- }
539
- selectedTile = subGroup.navigatorTiles.find((c) => BarsaApi.Common.Util.TryGetValue(c, key, null) === value);
540
- });
541
- });
542
- return selectedTile;
543
- }
544
- findGroupWithAppTileId(allApps, appTileId) {
545
- let selectedGroup;
546
- if (!allApps) {
547
- return null;
548
- }
549
- allApps.MoDataList.forEach((appGroup) => {
550
- var _a;
551
- if (selectedGroup) {
552
- return;
553
- }
554
- if (appGroup.navigatorTiles.some((appTile) => appTile.Id === appTileId)) {
555
- selectedGroup = appGroup;
556
- return;
557
- }
558
- (_a = appGroup.$Children) === null || _a === void 0 ? void 0 : _a.forEach((subGroup) => {
559
- if (subGroup.navigatorTiles.some((appTile) => appTile.Id === appTileId)) {
560
- selectedGroup = subGroup;
561
- return;
562
- }
563
- });
564
- });
565
- return selectedGroup;
566
- }
567
- _findGroupWithAppGroupId(allApps, appGroupId) {
568
- let selectedGroup;
569
- if (!allApps) {
570
- return null;
571
- }
572
- allApps.MoDataList.forEach((appGroup) => {
573
- var _a;
574
- if (selectedGroup) {
575
- return;
576
- }
577
- if (appGroup.Id === appGroupId) {
578
- selectedGroup = appGroup;
579
- return;
580
- }
581
- (_a = appGroup.$Children) === null || _a === void 0 ? void 0 : _a.forEach((subGroup) => {
582
- if (subGroup.Id === appGroupId) {
583
- selectedGroup = subGroup;
584
- return;
585
- }
586
- });
587
- });
588
- return selectedGroup;
589
- }
590
- _updateAppTileGroupSettings(appTileGroup, setting) {
591
- appTileGroup.UserAppTileGroupSetting = setting;
592
- appTileGroup = JSON.parse(JSON.stringify(appTileGroup));
593
- this._nextAllAppTileGroups();
594
- return appTileGroup;
595
- }
596
- _prepareNavigator(appTileGroup) {
597
- var _a, _b, _c;
598
- appTileGroup.$TileSettingChanged = false;
599
- appTileGroup.$Disabledpin = false;
600
- appTileGroup.navigatorTitle = BarsaApi.Common.Util.TryGetValue(appTileGroup, 'UserAppTileGroupSetting.Title', appTileGroup.Title);
601
- appTileGroup.navigatorTitle = appTileGroup.navigatorTitle =
602
- appTileGroup.navigatorTitle === '' ? appTileGroup.Title : appTileGroup.navigatorTitle;
603
- appTileGroup.navigatorTitle = this._bbbTranslatePipe.transform(appTileGroup.navigatorTitle);
604
- const orderItem = BarsaApi.Common.Util.TryGetValue(appTileGroup, 'UserAppTileGroupSetting.OrderItem', null);
605
- if (orderItem !== null) {
606
- appTileGroup.navigatorOrderItem = orderItem;
607
- }
608
- else {
609
- appTileGroup.navigatorOrderItem = appTileGroup.OrderItem;
610
- }
611
- const visible = BarsaApi.Common.Util.TryGetValue(appTileGroup, 'UserAppTileGroupSetting.Visible', null);
612
- if (visible !== null) {
613
- appTileGroup.navigatorVisible = visible;
614
- }
615
- else {
616
- appTileGroup.navigatorVisible = appTileGroup.Visible;
617
- }
618
- const appTiles = (_b = (_a = appTileGroup.AppTiles) === null || _a === void 0 ? void 0 : _a.MoDataList) !== null && _b !== void 0 ? _b : [];
619
- appTileGroup.navigatorTiles = appTiles
620
- .filter((c) => c.Visible && !c.IsActionLink)
621
- .sort((a, b) => Number(a.OrderItem) - Number(b.OrderItem));
622
- appTileGroup.navigatorActionLinks = appTiles
623
- .filter((c) => c.Visible && c.IsActionLink)
624
- .sort((a, b) => Number(a.OrderItemActionLink) - Number(b.OrderItemActionLink));
625
- appTileGroup.navigatorTiles.forEach((appTile) => this._setTileInfo(appTile));
626
- appTileGroup.navigatorActionLinks.forEach((appTile) => this._setTileInfo(appTile));
627
- (_c = appTileGroup.$Children) === null || _c === void 0 ? void 0 : _c.forEach((subAppTileGroup) => {
628
- this._prepareNavigator(subAppTileGroup);
629
- });
630
- }
631
- }
632
- TilesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesService, deps: [{ token: i1.PortalService }, { token: i1$1.RtlService }, { token: i1.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
633
- TilesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesService, providedIn: 'root' });
634
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesService, decorators: [{
635
- type: Injectable,
636
- args: [{
637
- providedIn: 'root'
638
- }]
639
- }], ctorParameters: function () { return [{ type: i1.PortalService }, { type: i1$1.RtlService }, { type: i1.BbbTranslatePipe }]; } });
640
-
641
- class BaseTileComponent extends TilePropsComponent {
642
- constructor(el, _renderer2, _cdr, _tilesService) {
643
- super(el, _renderer2, _cdr);
644
- this.el = el;
645
- this._renderer2 = _renderer2;
646
- this._cdr = _cdr;
647
- this._tilesService = _tilesService;
648
- }
649
- get settings() {
650
- var _a, _b;
651
- const data = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.Component) === null || _b === void 0 ? void 0 : _b.Settings;
652
- return data ? data : this.parameters;
653
- }
654
- get backColor() {
655
- return this.settings.TileSetting.BackColor;
656
- }
657
- get title() {
658
- return this.data.TileTitle;
659
- }
660
- get subtitle() {
661
- return this.data.Subtitle;
662
- }
663
- get double() {
664
- return this.settings.TileSetting.IsDouble;
665
- }
666
- get badge() {
667
- return this.settings.TileSetting.Badge;
668
- }
669
- get footer() {
670
- return this.settings.TileSetting.Footer;
671
- }
672
- get tileSetting() {
673
- return this.settings.TileSetting;
674
- }
675
- setEditHome(val) {
676
- this.edit = val;
677
- this._cdr.detectChanges();
678
- }
679
- onTileClick() {
680
- if (this.context) {
681
- this.context.FireEvent('click', this.context);
682
- }
683
- }
684
- }
685
- BaseTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BaseTileComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: TilesService }], target: i0.ɵɵFactoryTarget.Component });
686
- BaseTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BaseTileComponent, selector: "bt-base-tile", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BaseTileComponent, decorators: [{
688
- type: Component,
689
- args: [{
690
- selector: 'bt-base-tile',
691
- template: '',
692
- changeDetection: ChangeDetectionStrategy.OnPush
693
- }]
694
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: TilesService }]; } });
695
-
696
- class BaseBtTileComponent extends BaseTileComponent {
697
- ngOnInit() {
698
- super.ngOnInit();
699
- this._tilesService.componentSettings$
700
- .pipe(takeUntil$1(this._onDestroy$), filter$1((c) => c.Id === this.settings.Id))
701
- .subscribe((c) => {
702
- this._cdr.detectChanges();
703
- });
704
- this._renderer2.addClass(this.el.nativeElement, 'barsa-tile');
705
- if (this.backColor) {
706
- this._renderer2.setStyle(this.el.nativeElement, 'background-color', `${this.backColor}`);
707
- this._renderer2.addClass(this.el.nativeElement, 'customColor');
708
- }
709
- }
710
- }
711
- BaseBtTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BaseBtTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
712
- BaseBtTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BaseBtTileComponent, selector: "bt-base-bt-tile", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BaseBtTileComponent, decorators: [{
714
- type: Component,
715
- args: [{
716
- selector: 'bt-base-bt-tile',
717
- template: '',
718
- changeDetection: ChangeDetectionStrategy.OnPush
719
- }]
720
- }] });
721
-
722
- class FooterTileComponent extends BaseComponent {
723
- get twoColumn() {
724
- return this.settings.TwoColumn;
725
- }
726
- get firstSection() {
727
- return this.settings.FirstSection;
728
- }
729
- get secondSection() {
730
- return this.settings.SecondSection;
731
- }
732
- }
733
- FooterTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FooterTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
734
- FooterTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FooterTileComponent, selector: "bt-footer-tile", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: "<div fd-tile-footer [twoColumn]=\"twoColumn\">\r\n <ng-container *ngIf=\"twoColumn; else oneColumn\">\r\n <div fd-tile-section>\r\n <fd-icon fd-tile-refresh [font]=\"firstSection.Icon | sapFont\" [glyph]=\"firstSection.Icon\"></fd-icon>\r\n <span fd-tile-footer-text>{{ firstSection.Text | bbbTranslate }}</span>\r\n </div>\r\n <div fd-tile-section>\r\n <fd-icon fd-tile-refresh [font]=\"secondSection.Icon | sapFont\" [glyph]=\"secondSection.Icon\"></fd-icon>\r\n <span fd-tile-footer-text>{{ secondSection.Text | bbbTranslate }}</span>\r\n </div>\r\n </ng-container>\r\n <ng-template #oneColumn>\r\n <fd-icon fd-tile-refresh [font]=\"firstSection.Icon | sapFont\" [glyph]=\"firstSection.Icon\"></fd-icon>\r\n <span fd-tile-footer-text>{{ firstSection.Text | bbbTranslate }}</span>\r\n </ng-template>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i1$3.TileFooterDirective, selector: "[fdTileFooter], [fd-tile-footer]", inputs: ["twoColumn"] }, { kind: "directive", type: i1$3.TileSectionDirective, selector: "[fdTileSection], [fd-tile-section]" }, { kind: "directive", type: i1$3.TileRefreshDirective, selector: "[fdTileRefresh], [fd-tile-refresh]", inputs: ["glyph", "class", "ariaLabel"] }, { kind: "directive", type: i1$3.TileFooterTextDirective, selector: "[fdTileFooterText], [fd-tile-footer-text]" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i5.SapFontPipe, name: "sapFont" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
735
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FooterTileComponent, decorators: [{
736
- type: Component,
737
- args: [{ selector: 'bt-footer-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div fd-tile-footer [twoColumn]=\"twoColumn\">\r\n <ng-container *ngIf=\"twoColumn; else oneColumn\">\r\n <div fd-tile-section>\r\n <fd-icon fd-tile-refresh [font]=\"firstSection.Icon | sapFont\" [glyph]=\"firstSection.Icon\"></fd-icon>\r\n <span fd-tile-footer-text>{{ firstSection.Text | bbbTranslate }}</span>\r\n </div>\r\n <div fd-tile-section>\r\n <fd-icon fd-tile-refresh [font]=\"secondSection.Icon | sapFont\" [glyph]=\"secondSection.Icon\"></fd-icon>\r\n <span fd-tile-footer-text>{{ secondSection.Text | bbbTranslate }}</span>\r\n </div>\r\n </ng-container>\r\n <ng-template #oneColumn>\r\n <fd-icon fd-tile-refresh [font]=\"firstSection.Icon | sapFont\" [glyph]=\"firstSection.Icon\"></fd-icon>\r\n <span fd-tile-footer-text>{{ firstSection.Text | bbbTranslate }}</span>\r\n </ng-template>\r\n</div>\r\n" }]
738
- }], propDecorators: { settings: [{
739
- type: Input
740
- }] } });
741
-
742
- class TileComponent extends TilePropsComponent {
743
- constructor() {
744
- super(...arguments);
745
- this.runningCommand = false;
746
- }
747
- onClick(ev) {
748
- if (this.edit || this.disableClick || this.runningCommand || !this.dynamicCommand) {
749
- return false;
750
- }
751
- PreventDefaulEvent(ev);
752
- const command = this.dynamicCommand;
753
- const e = { command, DynamicSetting: null };
754
- this.runningCommand = true;
755
- this._cdr.detectChanges();
756
- BarsaApi.Common.CustomCodeManager.RunDynamicCommand(command.Id, e, () => {
757
- this.runningCommand = false;
758
- this._cdr.detectChanges();
759
- });
760
- return false;
761
- }
762
- }
763
- TileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
764
- TileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TileComponent, selector: "bt-tile", inputs: { type: "type", footerTemplate: "footerTemplate", footer: "footer", disableClick: "disableClick", title: "title", icon: "icon", subtitle: "subtitle", isDouble: "isDouble", edit: "edit", dynamicCommand: "dynamicCommand" }, host: { listeners: { "click": "onClick($event)" } }, usesInheritance: true, ngImport: i0, template: "<fd-tile [type]=\"type\" [double]=\"isDouble\" [action]=\"edit\">\n <ng-container *ngIf=\"edit && !data.Locked\">\n <button fd-button fd-tile-action-close fdType=\"transparent\" (click)=\"hideClick.emit()\"></button>\n <button fd-button fd-tile-action-indicator fdType=\"transparent\" [fdMenuTrigger]=\"menu\"></button>\n </ng-container>\n <div fd-tile-header>\n <h1 fd-tile-title>\n {{ title | bbbTranslate }}\n </h1>\n <h2 fd-tile-subtitle>\n {{ subtitle | bbbTranslate }}\n </h2>\n </div>\n <ng-content></ng-content>\n <ng-container [ngTemplateOutlet]=\"footerTemplate ? footerTemplate : defaultFooter\"></ng-container>\n</fd-tile>\n<ng-template #defaultFooter>\n <bt-footer-tile *ngIf=\"footer\" [settings]=\"footer\"></bt-footer-tile>\n</ng-template>\n<fd-menu #menu>\n <li fd-menu-item>\n <a (click)=\"menu.close(); renameClick.emit()\" fd-menu-interactive>\n <span fd-menu-title>{{ 'Rename' | bbbTranslate }}</span>\n </a>\n </li>\n</fd-menu>\n<bsu-mask *ngIf=\"runningCommand\"></bsu-mask>\n", styles: [":host,fd-tile{display:block}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i3.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i3.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i3.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "directive", type: i3.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i1$3.TileComponent, selector: "fd-tile", inputs: ["class", "size", "double", "type", "action", "clickable"], outputs: ["tileClick"] }, { kind: "directive", type: i1$3.TileHeaderDirective, selector: "[fdTileHeader], [fd-tile-header]", inputs: ["twoColumn"] }, { kind: "directive", type: i1$3.TileTitleDirective, selector: "[fdTileTitle], [fd-tile-title]" }, { kind: "directive", type: i1$3.TileSubtitleDirective, selector: "[fdTileTitle], [fd-tile-subtitle]" }, { kind: "directive", type: i1$3.TileActionCloseDirective, selector: "[fdTileActionClose], [fd-tile-action-close]", inputs: ["class"] }, { kind: "directive", type: i1$3.TileActionIndicatorDirective, selector: "[fdTileActionIndicator], [fd-tile-action-indicator]", inputs: ["class"] }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: FooterTileComponent, selector: "bt-footer-tile", inputs: ["settings"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
765
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileComponent, decorators: [{
766
- type: Component,
767
- args: [{ selector: 'bt-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-tile [type]=\"type\" [double]=\"isDouble\" [action]=\"edit\">\n <ng-container *ngIf=\"edit && !data.Locked\">\n <button fd-button fd-tile-action-close fdType=\"transparent\" (click)=\"hideClick.emit()\"></button>\n <button fd-button fd-tile-action-indicator fdType=\"transparent\" [fdMenuTrigger]=\"menu\"></button>\n </ng-container>\n <div fd-tile-header>\n <h1 fd-tile-title>\n {{ title | bbbTranslate }}\n </h1>\n <h2 fd-tile-subtitle>\n {{ subtitle | bbbTranslate }}\n </h2>\n </div>\n <ng-content></ng-content>\n <ng-container [ngTemplateOutlet]=\"footerTemplate ? footerTemplate : defaultFooter\"></ng-container>\n</fd-tile>\n<ng-template #defaultFooter>\n <bt-footer-tile *ngIf=\"footer\" [settings]=\"footer\"></bt-footer-tile>\n</ng-template>\n<fd-menu #menu>\n <li fd-menu-item>\n <a (click)=\"menu.close(); renameClick.emit()\" fd-menu-interactive>\n <span fd-menu-title>{{ 'Rename' | bbbTranslate }}</span>\n </a>\n </li>\n</fd-menu>\n<bsu-mask *ngIf=\"runningCommand\"></bsu-mask>\n", styles: [":host,fd-tile{display:block}\n"] }]
768
- }], propDecorators: { type: [{
769
- type: Input
770
- }], footerTemplate: [{
771
- type: Input
772
- }], footer: [{
773
- type: Input
774
- }], disableClick: [{
775
- type: Input
776
- }], title: [{
777
- type: Input
778
- }], icon: [{
779
- type: Input
780
- }], subtitle: [{
781
- type: Input
782
- }], isDouble: [{
783
- type: Input
784
- }], edit: [{
785
- type: Input
786
- }], dynamicCommand: [{
787
- type: Input
788
- }], onClick: [{
789
- type: HostListener,
790
- args: ['click', ['$event']]
791
- }] } });
792
-
793
- class TilePropPipe {
794
- transform(data, prop, parameters) {
795
- if (data) {
796
- if (prop === 'Title') {
797
- return data.TileTitle;
798
- }
799
- if (prop === 'Subtitle') {
800
- return data.Subtitle;
801
- }
802
- if (prop === 'DynamicCommand') {
803
- return data['DynamicCommand'];
804
- }
805
- const val = data.Component.Settings.TileSetting[prop];
806
- if (typeof val === 'undefined') {
807
- return data.Component.Settings[prop];
808
- }
809
- return val;
810
- }
811
- return parameters ? parameters.TileSetting[prop] : '';
812
- }
813
- }
814
- TilePropPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilePropPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
815
- TilePropPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: TilePropPipe, name: "tileProp" });
816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilePropPipe, decorators: [{
817
- type: Pipe,
818
- args: [{
819
- name: 'tileProp'
820
- }]
821
- }] });
822
-
823
- class FormTileComponent extends BaseBtTileComponent {
824
- ngOnInit() {
825
- super.ngOnInit();
826
- const options = {
827
- Parameters: [],
828
- Method: this.settings.RunBlMethod,
829
- SuccessFn: (mo) => {
830
- this.params = {
831
- moId: mo.$State === 'New' ? '0' : mo.Id,
832
- typeDefId: this.settings.TypeDef.Id,
833
- viewId: this.settings.TypeViewEntity.Id
834
- };
835
- this._cdr.detectChanges();
836
- },
837
- FailFn: () => { }
838
- };
839
- BarsaApi.Bw.RunBlMethodAsync(options);
840
- }
841
- }
842
- FormTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FormTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
843
- FormTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FormTileComponent, selector: "bt-form-tile", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n [disableClick]=\"true\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n>\r\n <div fd-tile-content>\r\n <bnrc-form *ngIf=\"params\" [params]=\"params\"></bnrc-form>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host{display:block}bnrc-form{z-index:3}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: i1.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
844
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FormTileComponent, decorators: [{
845
- type: Component,
846
- args: [{ selector: 'bt-form-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n [disableClick]=\"true\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n>\r\n <div fd-tile-content>\r\n <bnrc-form *ngIf=\"params\" [params]=\"params\"></bnrc-form>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host{display:block}bnrc-form{z-index:3}\n"] }]
847
- }] });
848
-
849
- class ActionItemComponent extends TileComponent {
850
- }
851
- ActionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ActionItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
852
- ActionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ActionItemComponent, selector: "bt-action-item", usesInheritance: true, ngImport: i0, template: "<div [class.action-item-edit-mode]=\"edit\" class=\"action-item\">\n <fd-icon *ngIf=\"icon\" [glyph]=\"icon\"></fd-icon>\n <h1 fd-tile-title>{{ title }}</h1>\n\n <h2 fd-tile-subtitle *ngIf=\"subtitle\">{{ subtitle }}</h2>\n\n <div *ngIf=\"edit && !data.Locked\" class=\"buttons\">\n <button fd-button fd-tile-action-close fdType=\"transparent\" (click)=\"hideClick.emit()\"></button>\n <button fd-button fd-tile-action-indicator fdType=\"transparent\" [fdMenuTrigger]=\"menu\"></button>\n </div>\n <fd-menu #menu>\n <li fd-menu-item>\n <a (click)=\"menu.close(); renameClick.emit()\" fd-menu-interactive>\n <span fd-menu-title>{{ 'Rename' | bbbTranslate }}</span>\n </a>\n </li>\n </fd-menu>\n</div>\n", styles: [".action-item{display:flex;justify-content:space-between;height:100%;align-items:center;column-gap:10px;padding:7px;background-color:var(--sapTile_Background, #fff);cursor:pointer;box-shadow:var(--sapContent_Shadow0, 0 0 0 .0625rem rgba(0, 0, 0, .1), 0 .125rem .5rem 0 rgba(0, 0, 0, .1));border-radius:var(--sapElement_BorderCornerRadius, .25rem);border:.0625rem solid var(--sapTile_BorderColor, transparent)}.action-item:hover{background-color:var(--sapBackgroundColor);border-color:var(--sapTile_Interactive_BorderColor)}.action-item fd-icon{color:var(--sapLinkColor, #0a6ed1);font-size:1.3rem;line-height:0}.action-item-edit-mode h1,.action-item-edit-mode h2{opacity:.3}.action-item-edit-mode .buttons{display:flex;column-gap:2px}.action-item-edit-mode .buttons button{display:flex}h1{text-decoration:none;color:var(--sapLinkColor, #0a6ed1);text-shadow:var(--sapContent_TextShadow, 0 0 .125rem #fff)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i3.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i3.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i3.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i3.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "directive", type: i3.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "directive", type: i1$3.TileTitleDirective, selector: "[fdTileTitle], [fd-tile-title]" }, { kind: "directive", type: i1$3.TileSubtitleDirective, selector: "[fdTileTitle], [fd-tile-subtitle]" }, { kind: "directive", type: i1$3.TileActionCloseDirective, selector: "[fdTileActionClose], [fd-tile-action-close]", inputs: ["class"] }, { kind: "directive", type: i1$3.TileActionIndicatorDirective, selector: "[fdTileActionIndicator], [fd-tile-action-indicator]", inputs: ["class"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
853
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ActionItemComponent, decorators: [{
854
- type: Component,
855
- args: [{ selector: 'bt-action-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class.action-item-edit-mode]=\"edit\" class=\"action-item\">\n <fd-icon *ngIf=\"icon\" [glyph]=\"icon\"></fd-icon>\n <h1 fd-tile-title>{{ title }}</h1>\n\n <h2 fd-tile-subtitle *ngIf=\"subtitle\">{{ subtitle }}</h2>\n\n <div *ngIf=\"edit && !data.Locked\" class=\"buttons\">\n <button fd-button fd-tile-action-close fdType=\"transparent\" (click)=\"hideClick.emit()\"></button>\n <button fd-button fd-tile-action-indicator fdType=\"transparent\" [fdMenuTrigger]=\"menu\"></button>\n </div>\n <fd-menu #menu>\n <li fd-menu-item>\n <a (click)=\"menu.close(); renameClick.emit()\" fd-menu-interactive>\n <span fd-menu-title>{{ 'Rename' | bbbTranslate }}</span>\n </a>\n </li>\n </fd-menu>\n</div>\n", styles: [".action-item{display:flex;justify-content:space-between;height:100%;align-items:center;column-gap:10px;padding:7px;background-color:var(--sapTile_Background, #fff);cursor:pointer;box-shadow:var(--sapContent_Shadow0, 0 0 0 .0625rem rgba(0, 0, 0, .1), 0 .125rem .5rem 0 rgba(0, 0, 0, .1));border-radius:var(--sapElement_BorderCornerRadius, .25rem);border:.0625rem solid var(--sapTile_BorderColor, transparent)}.action-item:hover{background-color:var(--sapBackgroundColor);border-color:var(--sapTile_Interactive_BorderColor)}.action-item fd-icon{color:var(--sapLinkColor, #0a6ed1);font-size:1.3rem;line-height:0}.action-item-edit-mode h1,.action-item-edit-mode h2{opacity:.3}.action-item-edit-mode .buttons{display:flex;column-gap:2px}.action-item-edit-mode .buttons button{display:flex}h1{text-decoration:none;color:var(--sapLinkColor, #0a6ed1);text-shadow:var(--sapContent_TextShadow, 0 0 .125rem #fff)}\n"] }]
856
- }] });
857
-
858
- class ActionsLinkComponent extends BaseComponent {
859
- /**
860
- *
861
- */
862
- constructor(_cdr) {
863
- super();
864
- this._cdr = _cdr;
865
- }
866
- ngOnInit() {
867
- var _a;
868
- super.ngOnInit();
869
- this.hide = ((_a = this.actionsLink) === null || _a === void 0 ? void 0 : _a.length) === 0;
870
- }
871
- ngOnChanges(changes) {
872
- var _a;
873
- super.ngOnChanges(changes);
874
- const { actionsLink } = changes;
875
- if (!actionsLink.firstChange) {
876
- this.hide = ((_a = actionsLink.currentValue) === null || _a === void 0 ? void 0 : _a.length) === 0;
877
- this._cdr.detectChanges();
878
- }
879
- }
880
- }
881
- ActionsLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ActionsLinkComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
882
- ActionsLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ActionsLinkComponent, selector: "bt-actions-link", inputs: { actionsLink: "actionsLink", edit: "edit" }, host: { properties: { "class.hide": "this.hide" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<bt-action-item\n *ngFor=\"let actionItem of actionsLink\"\n cdkDrag\n [data]=\"actionItem\"\n [edit]=\"edit\"\n [title]=\"actionItem | tileProp: 'Title'\"\n [subtitle]=\"actionItem | tileProp: 'Subtitle'\"\n [dynamicCommand]=\"actionItem | tileProp: 'DynamicCommand'\"\n [isDouble]=\"actionItem | tileProp: 'IsDouble'\"\n [footer]=\"actionItem | tileProp: 'Footer'\"\n [icon]=\"actionItem | tileProp: 'Icon'\"\n [cdkDragDisabled]=\"!actionItem || actionItem.Locked\"\n [mo]=\"actionItem\"\n>\n</bt-action-item>\n", styles: [":host{display:flex;width:100%;row-gap:3px;flex-wrap:wrap;border-radius:var(--sapElement_BorderCornerRadius, .25rem);column-gap:3px;padding:1rem 0}bt-action-item{margin-top:auto;margin-bottom:auto}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: ActionItemComponent, selector: "bt-action-item" }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
883
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ActionsLinkComponent, decorators: [{
884
- type: Component,
885
- args: [{ selector: 'bt-actions-link', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-action-item\n *ngFor=\"let actionItem of actionsLink\"\n cdkDrag\n [data]=\"actionItem\"\n [edit]=\"edit\"\n [title]=\"actionItem | tileProp: 'Title'\"\n [subtitle]=\"actionItem | tileProp: 'Subtitle'\"\n [dynamicCommand]=\"actionItem | tileProp: 'DynamicCommand'\"\n [isDouble]=\"actionItem | tileProp: 'IsDouble'\"\n [footer]=\"actionItem | tileProp: 'Footer'\"\n [icon]=\"actionItem | tileProp: 'Icon'\"\n [cdkDragDisabled]=\"!actionItem || actionItem.Locked\"\n [mo]=\"actionItem\"\n>\n</bt-action-item>\n", styles: [":host{display:flex;width:100%;row-gap:3px;flex-wrap:wrap;border-radius:var(--sapElement_BorderCornerRadius, .25rem);column-gap:3px;padding:1rem 0}bt-action-item{margin-top:auto;margin-bottom:auto}\n"] }]
886
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { hide: [{
887
- type: HostBinding,
888
- args: ['class.hide']
889
- }], actionsLink: [{
890
- type: Input
891
- }], edit: [{
892
- type: Input
893
- }] } });
894
-
895
- class TileRendererDirective extends BaseDirective {
896
- constructor(_cdr, _portalService, _vcr, _injector, _el) {
897
- super(_el);
898
- this._cdr = _cdr;
899
- this._portalService = _portalService;
900
- this._vcr = _vcr;
901
- this._injector = _injector;
902
- this._el = _el;
903
- this.hideClick = new EventEmitter();
904
- this.renameClick = new EventEmitter();
905
- }
906
- ngOnInit() {
907
- super.ngOnInit();
908
- if (!this.component) {
909
- return;
910
- }
911
- const { Module, ModuleFileName, Name, Selector } = this.component;
912
- this._portalService
913
- .getComponent(Module, ModuleFileName, Name, Selector, this._injector)
914
- .pipe(takeUntil(this._onDestroy$))
915
- .subscribe((componentRef) => {
916
- const instance = componentRef.instance;
917
- instance.data = this.data;
918
- instance.edit = this.edit;
919
- instance.hideClick.pipe(takeUntil(this._onDestroy$)).subscribe(() => {
920
- this.hideClick.emit();
921
- });
922
- instance.renameClick.pipe(takeUntil(this._onDestroy$)).subscribe(() => this.renameClick.emit());
923
- this._vcr.insert(componentRef.hostView);
924
- this._tileRef = componentRef;
925
- // this._cdr.detectChanges();
926
- });
927
- }
928
- ngOnChanges(changes) {
929
- const { edit } = changes;
930
- if (edit && !edit.firstChange) {
931
- this._tileRef.instance.setEditHome(edit.currentValue);
932
- }
933
- }
934
- ngOnDestroy() {
935
- super.ngOnDestroy();
936
- if (this._tileRef) {
937
- this._tileRef.destroy();
938
- }
939
- }
940
- }
941
- TileRendererDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileRendererDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PortalService }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
942
- TileRendererDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: TileRendererDirective, selector: "[tileRenderer]", inputs: { component: "component", data: "data", edit: "edit" }, outputs: { hideClick: "hideClick", renameClick: "renameClick" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
943
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileRendererDirective, decorators: [{
944
- type: Directive,
945
- args: [{
946
- selector: '[tileRenderer]'
947
- }]
948
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.PortalService }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { component: [{
949
- type: Input
950
- }], data: [{
951
- type: Input
952
- }], edit: [{
953
- type: Input
954
- }], hideClick: [{
955
- type: Output
956
- }], renameClick: [{
957
- type: Output
958
- }] } });
959
-
960
- class TilesViewerGroupComponent extends BaseComponent {
961
- constructor(_el) {
962
- super();
963
- this._el = _el;
964
- this.tilesDropped = new EventEmitter();
965
- this.hideAppTileClick = new EventEmitter();
966
- this.renameAppTileClick = new EventEmitter();
967
- this.toggleGroup = new EventEmitter();
968
- this.resetGroup = new EventEmitter();
969
- this.deleteGroup = new EventEmitter();
970
- this.marginRightTile = null;
971
- }
972
- ngAfterViewInit() {
973
- super.ngAfterViewInit();
974
- if (this.deviceSize === 's') {
975
- const t = document.body.clientWidth % 154;
976
- this.marginRightTile = t / 3;
977
- }
978
- }
979
- onDrop(appTileGroup, event) {
980
- if (!this.edit || appTileGroup.Locked) {
981
- return;
982
- }
983
- this.tilesDropped.emit({ appTileGroup, event });
984
- }
985
- onAppTileHideClick(appTile) {
986
- this.hideAppTileClick.emit(appTile);
987
- }
988
- onAppTileRenameClick(appTile) {
989
- this.renameAppTileClick.emit(appTile);
990
- }
991
- onDelete(appTileGroup) {
992
- this.deleteGroup.emit(appTileGroup);
993
- }
994
- onToggleShowHide(appTileGroup) {
995
- this.toggleGroup.emit(appTileGroup);
996
- }
997
- onReset(appTileGroup) {
998
- this.resetGroup.emit(appTileGroup);
999
- }
1000
- }
1001
- TilesViewerGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerGroupComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1002
- TilesViewerGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: { appTileGroup: "appTileGroup", stackContent: "stackContent", edit: "edit", rtl: "rtl", isAppTileSubGroup: "isAppTileSubGroup", deviceSize: "deviceSize" }, outputs: { tilesDropped: "tilesDropped", hideAppTileClick: "hideAppTileClick", renameAppTileClick: "renameAppTileClick", toggleGroup: "toggleGroup", resetGroup: "resetGroup", deleteGroup: "deleteGroup" }, usesInheritance: true, ngImport: i0, template: "<fd-layout-panel [fixed]=\"true\" [attr.editHome]=\"edit\" cdkDrag [cdkDragDisabled]=\"!edit || !stackContent\">\n <fd-layout-panel-header *ngIf=\"edit || stackContent || isAppTileSubGroup\">\n <fd-layout-panel-head>\n <h2 fd-layout-panel-title>{{ appTileGroup.navigatorTitle }}</h2>\n </fd-layout-panel-head>\n <fd-layout-panel-actions *ngIf=\"edit\" class=\"group-btns\">\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\n <button\n fd-button\n fd-toolbar-item\n [label]=\"!appTileGroup.navigatorVisible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onToggleShowHide(appTileGroup)\"\n ></button>\n <button\n fd-button\n *ngIf=\"appTileGroup.Predefined && appTileGroup.$TileSettingChanged\"\n [label]=\"'Refresh' | bbbTranslate\"\n (click)=\"onReset(appTileGroup)\"\n ></button>\n <button\n *ngIf=\"!appTileGroup.Predefined\"\n fd-button\n [label]=\"'Delete' | bbbTranslate\"\n [fdType]=\"'negative'\"\n (click)=\"onDelete(appTileGroup)\"\n ></button>\n </fd-toolbar>\n </fd-layout-panel-actions>\n </fd-layout-panel-header>\n <fd-layout-panel-body [bleed]=\"!stackContent\" [class.small-size]=\"deviceSize === 's'\">\n <div\n class=\"tile-wrapper\"\n [ngClass]=\"{ rtl: rtl, ltr: !rtl, s: deviceSize === 's' }\"\n fd-panel-content\n #tiles=\"cdkDropList\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListConnectedTo]=\"actionLinks\"\n [cdkDropListData]=\"{\n isTile: true,\n items: appTileGroup.navigatorTiles || []\n }\"\n >\n <ng-container *ngIf=\"!edit\">\n <fd-busy-indicator fd-title *ngIf=\"!appTileGroup.$TilesLoaded\" [loading]=\"true\"></fd-busy-indicator>\n\n <h5 fd-title *ngIf=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"></h5>\n </ng-container>\n <div\n *ngFor=\"let appTile of appTileGroup.navigatorTiles; let k = index\"\n [class.edit-home]=\"edit\"\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\n >\n <span\n [dynamicCommand]=\"appTile.DynamicCommand\"\n [enableCommand]=\"!edit && appTile.Component\"\n tileRenderer\n [data]=\"appTile\"\n [edit]=\"edit\"\n [component]=\"appTile.Component\"\n (hideClick)=\"onAppTileHideClick(appTile)\"\n (renameClick)=\"onAppTileRenameClick(appTile)\"\n ></span>\n </div>\n <fd-tile class=\"add-tile\" *ngIf=\"edit\" [routerLink]=\"['/home/appfinder']\">\n <div>\n <fd-icon glyph=\"add\"></fd-icon>\n </div>\n </fd-tile>\n </div>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<bt-actions-link\n [class.actions-link-edit-home]=\"edit\"\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\n [edit]=\"edit\"\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\n cdkDropList\n #actionLinks=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListConnectedTo]=\"tiles\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListData]=\"{\n isTile: false,\n items: appTileGroup.navigatorActionLinks || []\n }\"\n>\n</bt-actions-link>\n<ng-container *ngFor=\"let appTileSubGroup of appTileGroup.$Children\">\n <bt-tiles-viewer-group\n [appTileGroup]=\"appTileSubGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"true\"\n [deviceSize]=\"deviceSize\"\n (tilesDropped)=\"tilesDropped.emit($event)\"\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\n (resetGroup)=\"resetGroup.emit($event)\"\n (deleteGroup)=\"deleteGroup.emit($event)\"\n (toggleGroup)=\"toggleGroup.emit($event)\"\n ></bt-tiles-viewer-group>\n</ng-container>\n", styles: [":host{display:block}fd-layout-panel{box-shadow:none}fd-layout-panel fd-layout-panel-body:not(.small-size){margin-top:.5rem}fd-layout-panel fd-layout-panel-body.small-size{padding:1rem .5rem}fd-layout-panel[editHome=false]{background:transparent}::ng-deep .fd-panel__header{border:none;padding-left:0;padding-right:0}::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}::ng-deep .fd-panel__content{border-bottom:none;padding:1px}.tile-wrapper{column-gap:3px;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}fd-layout-panel-body.small-size .tile-wrapper{display:grid;grid-template-columns:154px 154px;gap:1rem}fd-layout-panel-body.small-size .tile-wrapper .isdouble{grid-column-start:1;grid-column-end:3}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], 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", "title", "label", "ariaLive"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i6.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage"] }, { kind: "component", type: i6.LayoutPanelHeaderComponent, selector: "fd-layout-panel-header" }, { kind: "component", type: i6.LayoutPanelHeadComponent, selector: "fd-layout-panel-head" }, { kind: "directive", type: i6.LayoutPanelTitleDirective, selector: "[fd-layout-panel-title]" }, { kind: "component", type: i6.LayoutPanelActionsComponent, selector: "fd-layout-panel-actions" }, { kind: "component", type: i6.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i9.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i8.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "id"] }, { kind: "component", type: i1$3.TileComponent, selector: "fd-tile", inputs: ["class", "size", "double", "type", "action", "clickable"], outputs: ["tileClick"] }, { kind: "component", type: i10.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i10.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: ActionsLinkComponent, selector: "bt-actions-link", inputs: ["actionsLink", "edit"] }, { kind: "component", type: TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: ["appTileGroup", "stackContent", "edit", "rtl", "isAppTileSubGroup", "deviceSize"], outputs: ["tilesDropped", "hideAppTileClick", "renameAppTileClick", "toggleGroup", "resetGroup", "deleteGroup"] }, { kind: "directive", type: TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "edit"], outputs: ["hideClick", "renameClick"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1003
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerGroupComponent, decorators: [{
1004
- type: Component,
1005
- args: [{ selector: 'bt-tiles-viewer-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-layout-panel [fixed]=\"true\" [attr.editHome]=\"edit\" cdkDrag [cdkDragDisabled]=\"!edit || !stackContent\">\n <fd-layout-panel-header *ngIf=\"edit || stackContent || isAppTileSubGroup\">\n <fd-layout-panel-head>\n <h2 fd-layout-panel-title>{{ appTileGroup.navigatorTitle }}</h2>\n </fd-layout-panel-head>\n <fd-layout-panel-actions *ngIf=\"edit\" class=\"group-btns\">\n <fd-toolbar [shouldOverflow]=\"false\" [fdType]=\"'transparent'\" [clearBorder]=\"true\">\n <button\n fd-button\n fd-toolbar-item\n [label]=\"!appTileGroup.navigatorVisible ? ('Show' | bbbTranslate) : ('Hide' | bbbTranslate)\"\n (click)=\"onToggleShowHide(appTileGroup)\"\n ></button>\n <button\n fd-button\n *ngIf=\"appTileGroup.Predefined && appTileGroup.$TileSettingChanged\"\n [label]=\"'Refresh' | bbbTranslate\"\n (click)=\"onReset(appTileGroup)\"\n ></button>\n <button\n *ngIf=\"!appTileGroup.Predefined\"\n fd-button\n [label]=\"'Delete' | bbbTranslate\"\n [fdType]=\"'negative'\"\n (click)=\"onDelete(appTileGroup)\"\n ></button>\n </fd-toolbar>\n </fd-layout-panel-actions>\n </fd-layout-panel-header>\n <fd-layout-panel-body [bleed]=\"!stackContent\" [class.small-size]=\"deviceSize === 's'\">\n <div\n class=\"tile-wrapper\"\n [ngClass]=\"{ rtl: rtl, ltr: !rtl, s: deviceSize === 's' }\"\n fd-panel-content\n #tiles=\"cdkDropList\"\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListConnectedTo]=\"actionLinks\"\n [cdkDropListData]=\"{\n isTile: true,\n items: appTileGroup.navigatorTiles || []\n }\"\n >\n <ng-container *ngIf=\"!edit\">\n <fd-busy-indicator fd-title *ngIf=\"!appTileGroup.$TilesLoaded\" [loading]=\"true\"></fd-busy-indicator>\n\n <h5 fd-title *ngIf=\"!appTileGroup.navigatorTiles.length && appTileGroup.$TilesLoaded\"></h5>\n </ng-container>\n <div\n *ngFor=\"let appTile of appTileGroup.navigatorTiles; let k = index\"\n [class.edit-home]=\"edit\"\n [class.isdouble]=\"appTile.Component?.Settings?.TileSetting?.IsDouble\"\n cdkDrag\n [cdkDragDisabled]=\"!edit || appTileGroup.Locked\"\n >\n <span\n [dynamicCommand]=\"appTile.DynamicCommand\"\n [enableCommand]=\"!edit && appTile.Component\"\n tileRenderer\n [data]=\"appTile\"\n [edit]=\"edit\"\n [component]=\"appTile.Component\"\n (hideClick)=\"onAppTileHideClick(appTile)\"\n (renameClick)=\"onAppTileRenameClick(appTile)\"\n ></span>\n </div>\n <fd-tile class=\"add-tile\" *ngIf=\"edit\" [routerLink]=\"['/home/appfinder']\">\n <div>\n <fd-icon glyph=\"add\"></fd-icon>\n </div>\n </fd-tile>\n </div>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<bt-actions-link\n [class.actions-link-edit-home]=\"edit\"\n [actionsLink]=\"appTileGroup.navigatorActionLinks\"\n [edit]=\"edit\"\n [style.min-height]=\"edit ? '4rem' : 'auto'\"\n cdkDropList\n #actionLinks=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListConnectedTo]=\"tiles\"\n (cdkDropListDropped)=\"onDrop(appTileGroup, $event)\"\n [cdkDropListData]=\"{\n isTile: false,\n items: appTileGroup.navigatorActionLinks || []\n }\"\n>\n</bt-actions-link>\n<ng-container *ngFor=\"let appTileSubGroup of appTileGroup.$Children\">\n <bt-tiles-viewer-group\n [appTileGroup]=\"appTileSubGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"true\"\n [deviceSize]=\"deviceSize\"\n (tilesDropped)=\"tilesDropped.emit($event)\"\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\n (resetGroup)=\"resetGroup.emit($event)\"\n (deleteGroup)=\"deleteGroup.emit($event)\"\n (toggleGroup)=\"toggleGroup.emit($event)\"\n ></bt-tiles-viewer-group>\n</ng-container>\n", styles: [":host{display:block}fd-layout-panel{box-shadow:none}fd-layout-panel fd-layout-panel-body:not(.small-size){margin-top:.5rem}fd-layout-panel fd-layout-panel-body.small-size{padding:1rem .5rem}fd-layout-panel[editHome=false]{background:transparent}::ng-deep .fd-panel__header{border:none;padding-left:0;padding-right:0}::ng-deep fd-panel[edithome=false] .fd-panel__header:first-child{display:none}::ng-deep .fd-panel__content{border-bottom:none;padding:1px}.tile-wrapper{column-gap:3px;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}fd-layout-panel-body.small-size .tile-wrapper{display:grid;grid-template-columns:154px 154px;gap:1rem}fd-layout-panel-body.small-size .tile-wrapper .isdouble{grid-column-start:1;grid-column-end:3}\n"] }]
1006
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { appTileGroup: [{
1007
- type: Input
1008
- }], stackContent: [{
1009
- type: Input
1010
- }], edit: [{
1011
- type: Input
1012
- }], rtl: [{
1013
- type: Input
1014
- }], isAppTileSubGroup: [{
1015
- type: Input
1016
- }], deviceSize: [{
1017
- type: Input
1018
- }], tilesDropped: [{
1019
- type: Output
1020
- }], hideAppTileClick: [{
1021
- type: Output
1022
- }], renameAppTileClick: [{
1023
- type: Output
1024
- }], toggleGroup: [{
1025
- type: Output
1026
- }], resetGroup: [{
1027
- type: Output
1028
- }], deleteGroup: [{
1029
- type: Output
1030
- }] } });
1031
-
1032
- class EmptyListDirective {
1033
- constructor(templateRef, viewContainer, bbbPipe) {
1034
- this.templateRef = templateRef;
1035
- this.viewContainer = viewContainer;
1036
- this.bbbPipe = bbbPipe;
1037
- this.hasView = false;
1038
- }
1039
- set emptyList(list) {
1040
- if (!list || (!list.length && !this.hasView)) {
1041
- const _view = this.viewContainer.createEmbeddedView(this.templateRef);
1042
- this.setNoData(_view);
1043
- this.hasView = true;
1044
- }
1045
- else if (list && list.length > 0 && this.hasView) {
1046
- this.viewContainer.clear();
1047
- this.hasView = false;
1048
- }
1049
- }
1050
- setNoData(view) {
1051
- view.rootNodes[0].innerHTML = this.bbbPipe.transform('NoData');
1052
- }
1053
- }
1054
- EmptyListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: EmptyListDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Directive });
1055
- EmptyListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: EmptyListDirective, selector: "[emptyList]", inputs: { emptyList: "emptyList" }, ngImport: i0 });
1056
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: EmptyListDirective, decorators: [{
1057
- type: Directive,
1058
- args: [{
1059
- selector: '[emptyList]'
1060
- }]
1061
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.BbbTranslatePipe }]; }, propDecorators: { emptyList: [{
1062
- type: Input
1063
- }] } });
1064
-
1065
- class AppFinderAppListComponent extends BaseComponent {
1066
- constructor() {
1067
- super(...arguments);
1068
- this.pinClick = new EventEmitter();
1069
- this.appTileGroupsPinChange = new EventEmitter();
1070
- }
1071
- onPinTap(app) {
1072
- this.pinClick.emit(app);
1073
- }
1074
- }
1075
- AppFinderAppListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AppFinderAppListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1076
- AppFinderAppListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: AppFinderAppListComponent, selector: "bt-app-finder-app-list", inputs: { appGroup: "appGroup", mobile: "mobile", searchTerm: "searchTerm", pinnedAppInAppTileGroups: "pinnedAppInAppTileGroups" }, outputs: { pinClick: "pinClick", appTileGroupsPinChange: "appTileGroupsPinChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"appGroup\">\r\n <h5 fd-title *emptyList=\"appGroup.Apps\"></h5>\r\n <ng-container *ngIf=\"(appGroup.Apps | filterStr: { Title: searchTerm, mode: 'contains' }).length > 0\">\r\n <fd-fixed-card-layout [disableDragDrop]=\"true\">\r\n <ng-container\r\n *ngFor=\"let app of appGroup.Apps | filterStr: { Title: searchTerm, mode: 'contains' }; let i = index\"\r\n >\r\n <fd-card *fdCardDef=\"i\">\r\n <fd-card-header [dynCommand]=\"app.DynamicCommand\" [mo]=\"app\">\r\n <fd-avatar *ngIf=\"app.Icon\" [glyph]=\"app.Icon\" size=\"s\" [title]=\"app.Title\"></fd-avatar>\r\n <h2 fd-card-title class=\"header-title\">\r\n {{ app.Title }}\r\n </h2>\r\n <h3 fd-card-subtitle></h3>\r\n </fd-card-header>\r\n <fd-card-content>\r\n <button\r\n fd-button\r\n [glyph]=\"'pushpin-off'\"\r\n [fdType]=\"\r\n pinnedAppInAppTileGroups[app.Id]\r\n ? pinnedAppInAppTileGroups[app.Id].length\r\n ? 'emphasized'\r\n : 'standard'\r\n : app.$HasPinned\r\n ? 'emphasized'\r\n : 'standard'\r\n \"\r\n (click)=\"onPinTap(app)\"\r\n ></button>\r\n </fd-card-content>\r\n </fd-card>\r\n </ng-container>\r\n </fd-fixed-card-layout>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [":host{display:block;flex-grow:1;padding:1rem}button{cursor:pointer}h3{padding-bottom:.5rem}fd-fixed-card-layout,h5{padding-bottom:2rem;display:block}.header-title{padding-bottom:30px}fd-card-content{padding:10px;cursor:default}@media (max-width: 767px){:host{padding:0 1rem}}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i4.CardHeaderComponent, selector: "fd-card-header", inputs: ["interactive", "tabindex"] }, { kind: "component", type: i4.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i4.CardTitleDirective, selector: "[fd-card-title]" }, { kind: "directive", type: i4.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "component", type: i5$1.FixedCardLayoutComponent, selector: "fd-fixed-card-layout", inputs: ["disableDragDrop", "dragStartDelay", "cardMinimumWidth", "columnsWidthConfig", "maxColumns"], outputs: ["layoutChange", "cardDraggedDropped"] }, { kind: "directive", type: i5$1.CardDefinitionDirective, selector: "[fdCardDef]", inputs: ["fdCardDef"] }, { kind: "component", type: i9.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i1.DynamicCommandDirective, selector: "[dynCommand]", inputs: ["dynCommand", "mo", "enableCommand"], outputs: ["commandClick"] }, { kind: "directive", type: EmptyListDirective, selector: "[emptyList]", inputs: ["emptyList"] }, { kind: "pipe", type: i1.FilterStringPipe, name: "filterStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1077
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AppFinderAppListComponent, decorators: [{
1078
- type: Component,
1079
- args: [{ selector: 'bt-app-finder-app-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"appGroup\">\r\n <h5 fd-title *emptyList=\"appGroup.Apps\"></h5>\r\n <ng-container *ngIf=\"(appGroup.Apps | filterStr: { Title: searchTerm, mode: 'contains' }).length > 0\">\r\n <fd-fixed-card-layout [disableDragDrop]=\"true\">\r\n <ng-container\r\n *ngFor=\"let app of appGroup.Apps | filterStr: { Title: searchTerm, mode: 'contains' }; let i = index\"\r\n >\r\n <fd-card *fdCardDef=\"i\">\r\n <fd-card-header [dynCommand]=\"app.DynamicCommand\" [mo]=\"app\">\r\n <fd-avatar *ngIf=\"app.Icon\" [glyph]=\"app.Icon\" size=\"s\" [title]=\"app.Title\"></fd-avatar>\r\n <h2 fd-card-title class=\"header-title\">\r\n {{ app.Title }}\r\n </h2>\r\n <h3 fd-card-subtitle></h3>\r\n </fd-card-header>\r\n <fd-card-content>\r\n <button\r\n fd-button\r\n [glyph]=\"'pushpin-off'\"\r\n [fdType]=\"\r\n pinnedAppInAppTileGroups[app.Id]\r\n ? pinnedAppInAppTileGroups[app.Id].length\r\n ? 'emphasized'\r\n : 'standard'\r\n : app.$HasPinned\r\n ? 'emphasized'\r\n : 'standard'\r\n \"\r\n (click)=\"onPinTap(app)\"\r\n ></button>\r\n </fd-card-content>\r\n </fd-card>\r\n </ng-container>\r\n </fd-fixed-card-layout>\r\n </ng-container>\r\n</ng-container>\r\n", styles: [":host{display:block;flex-grow:1;padding:1rem}button{cursor:pointer}h3{padding-bottom:.5rem}fd-fixed-card-layout,h5{padding-bottom:2rem;display:block}.header-title{padding-bottom:30px}fd-card-content{padding:10px;cursor:default}@media (max-width: 767px){:host{padding:0 1rem}}\n"] }]
1080
- }], propDecorators: { appGroup: [{
1081
- type: Input
1082
- }], mobile: [{
1083
- type: Input
1084
- }], searchTerm: [{
1085
- type: Input
1086
- }], pinnedAppInAppTileGroups: [{
1087
- type: Input
1088
- }], pinClick: [{
1089
- type: Output
1090
- }], appTileGroupsPinChange: [{
1091
- type: Output
1092
- }] } });
1093
-
1094
- class AppFinderGroupComponent extends BaseComponent {
1095
- constructor() {
1096
- super(...arguments);
1097
- this.selectedIdChange = new EventEmitter();
1098
- }
1099
- ngOnChanges(changes) {
1100
- super.ngOnChanges(changes);
1101
- if (changes.appGroups && !changes.appGroups.firstChange) {
1102
- const appGroups = changes.appGroups.currentValue;
1103
- if (appGroups && appGroups.length > 0 && !this.selectedId) {
1104
- this.selectedIdChange.emit(appGroups[0].Id);
1105
- }
1106
- }
1107
- }
1108
- OnMenuGroupClick(group) {
1109
- this.selectedIdChange.emit(group.Id);
1110
- }
1111
- OnGroupClick(group) {
1112
- this.selectedIdChange.emit(group.Id);
1113
- }
1114
- }
1115
- AppFinderGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AppFinderGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1116
- AppFinderGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: AppFinderGroupComponent, selector: "bt-app-finder-group", inputs: { appGroups: "appGroups", selectedId: "selectedId", listMode: "listMode" }, outputs: { selectedIdChange: "selectedIdChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"listMode; else menuTpl\">\r\n <div class=\"app-groups\">\r\n <ul fd-list [selection]=\"true\">\r\n <li\r\n fd-list-item\r\n *ngFor=\"let group of appGroups; let i = index\"\r\n [selected]=\"group.Id === selectedId\"\r\n (click)=\"OnGroupClick(group)\"\r\n >\r\n <span fd-list-title>\r\n {{ group.Title }}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-container>\r\n<ng-template #menuTpl>\r\n <li *ngFor=\"let group of appGroups; let i = index\" fd-menu-item [selected]=\"group.Id === selectedId\">\r\n <a fd-menu-interactive (click)=\"OnMenuGroupClick(group)\">\r\n <span fd-menu-title>\r\n {{ group.Title }}\r\n </span>\r\n </a>\r\n </li>\r\n</ng-template>\r\n", styles: [".app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4$1.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i4$1.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i3.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i3.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i3.MenuTitleDirective, selector: "[fd-menu-title]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AppFinderGroupComponent, decorators: [{
1118
- type: Component,
1119
- args: [{ selector: 'bt-app-finder-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"listMode; else menuTpl\">\r\n <div class=\"app-groups\">\r\n <ul fd-list [selection]=\"true\">\r\n <li\r\n fd-list-item\r\n *ngFor=\"let group of appGroups; let i = index\"\r\n [selected]=\"group.Id === selectedId\"\r\n (click)=\"OnGroupClick(group)\"\r\n >\r\n <span fd-list-title>\r\n {{ group.Title }}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-container>\r\n<ng-template #menuTpl>\r\n <li *ngFor=\"let group of appGroups; let i = index\" fd-menu-item [selected]=\"group.Id === selectedId\">\r\n <a fd-menu-interactive (click)=\"OnMenuGroupClick(group)\">\r\n <span fd-menu-title>\r\n {{ group.Title }}\r\n </span>\r\n </a>\r\n </li>\r\n</ng-template>\r\n", styles: [".app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}\n"] }]
1120
- }], propDecorators: { appGroups: [{
1121
- type: Input
1122
- }], selectedId: [{
1123
- type: Input
1124
- }], listMode: [{
1125
- type: Input
1126
- }], selectedIdChange: [{
1127
- type: Output
1128
- }] } });
1129
-
1130
- class AppFinderComponent extends BaseComponent {
1131
- constructor() {
1132
- super(...arguments);
1133
- this.contentDensity = 'compact';
1134
- this.pinClick = new EventEmitter();
1135
- this.selectedAppGroupIdChange = new EventEmitter();
1136
- }
1137
- onSearchSubmit() {
1138
- this.searchTerm = this.searchTerm2;
1139
- }
1140
- }
1141
- AppFinderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AppFinderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1142
- AppFinderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: AppFinderComponent, selector: "bt-app-finder", inputs: { appGroups: "appGroups", deviceSize: "deviceSize", sideContentSize: "sideContentSize", selectedAppGroup: "selectedAppGroup", selectedAppGroupId: "selectedAppGroupId", mobile: "mobile", contentDensity: "contentDensity", contentHeight: "contentHeight", pinnedAppInAppTileGroups: "pinnedAppInAppTileGroups" }, outputs: { pinClick: "pinClick", selectedAppGroupIdChange: "selectedAppGroupIdChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"wrapper\">\n <ng-container *ngIf=\"appGroups; else loading\">\n <fd-toolbar [fdType]=\"'solid'\">\n <button\n fd-toolbar-item\n fd-button\n [fdMenu]=\"true\"\n [glyph]=\"'menu2'\"\n [fdType]=\"'transparent'\"\n [fdMenuTrigger]=\"menu\"\n [label]=\"selectedAppGroup?.Title\"\n *ngIf=\"deviceSize === 's'\"\n ></button>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fd-input-group\n fd-toolbar-item\n type=\"search\"\n glyph=\"search\"\n [glyphAriaLabel]=\"'Search' | bbbTranslate\"\n [placeholder]=\"'Search' | bbbTranslate\"\n [button]=\"true\"\n [disabled]=\"false\"\n [(ngModel)]=\"searchTerm2\"\n (addOnButtonClicked)=\"onSearchSubmit()\"\n (keydown.enter)=\"onSearchSubmit()\"\n >\n </fd-input-group>\n </fd-toolbar>\n <div style=\"display: flex; overflow-y: auto\" [style.height]=\"contentHeight\">\n <div class=\"app-groups\">\n <bt-app-finder-group\n *ngIf=\"deviceSize !== 's'\"\n [appGroups]=\"appGroups\"\n [listMode]=\"true\"\n [selectedId]=\"selectedAppGroupId\"\n (selectedIdChange)=\"selectedAppGroupIdChange.emit($event)\"\n >\n </bt-app-finder-group>\n </div>\n <bt-app-finder-app-list\n [appGroup]=\"selectedAppGroup\"\n [mobile]=\"mobile\"\n [searchTerm]=\"searchTerm\"\n [pinnedAppInAppTileGroups]=\"pinnedAppInAppTileGroups\"\n (pinClick)=\"pinClick.emit($event)\"\n ></bt-app-finder-app-list>\n </div>\n <fd-menu\n #menu\n [mobile]=\"deviceSize === 's'\"\n [mobileConfig]=\"{ title: 'Groups' | bbbTranslate, hasCloseButton: true }\"\n >\n <bt-app-finder-group\n *ngIf=\"deviceSize === 's'\"\n [appGroups]=\"appGroups\"\n [selectedId]=\"selectedAppGroupId\"\n (selectedIdChange)=\"menu.close(); selectedAppGroupIdChange.emit($event)\"\n >\n </bt-app-finder-group>\n </fd-menu>\n </ng-container>\n <ng-template #loading>\n <bsu-mask></bsu-mask>\n </ng-template>\n</div>\n", styles: [":host{display:block;background-color:var(--sapBackgroundColor, #f7f7f7);color:var(--sapTextColor, #32363a)}:host ::ng-deep .fd-list__title{line-height:1.5rem}.wrapper{display:flex;flex-direction:column}fd-toolbar{width:100%}::ng-deep span.fd-toolbar__spacer{display:none}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i3.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "directive", type: i3.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i10.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i10.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i10.ToolbarSpacerComponent, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "directive", type: i1.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: AppFinderGroupComponent, selector: "bt-app-finder-group", inputs: ["appGroups", "selectedId", "listMode"], outputs: ["selectedIdChange"] }, { kind: "component", type: AppFinderAppListComponent, selector: "bt-app-finder-app-list", inputs: ["appGroup", "mobile", "searchTerm", "pinnedAppInAppTileGroups"], outputs: ["pinClick", "appTileGroupsPinChange"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AppFinderComponent, decorators: [{
1144
- type: Component,
1145
- args: [{ selector: 'bt-app-finder', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"wrapper\">\n <ng-container *ngIf=\"appGroups; else loading\">\n <fd-toolbar [fdType]=\"'solid'\">\n <button\n fd-toolbar-item\n fd-button\n [fdMenu]=\"true\"\n [glyph]=\"'menu2'\"\n [fdType]=\"'transparent'\"\n [fdMenuTrigger]=\"menu\"\n [label]=\"selectedAppGroup?.Title\"\n *ngIf=\"deviceSize === 's'\"\n ></button>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fd-input-group\n fd-toolbar-item\n type=\"search\"\n glyph=\"search\"\n [glyphAriaLabel]=\"'Search' | bbbTranslate\"\n [placeholder]=\"'Search' | bbbTranslate\"\n [button]=\"true\"\n [disabled]=\"false\"\n [(ngModel)]=\"searchTerm2\"\n (addOnButtonClicked)=\"onSearchSubmit()\"\n (keydown.enter)=\"onSearchSubmit()\"\n >\n </fd-input-group>\n </fd-toolbar>\n <div style=\"display: flex; overflow-y: auto\" [style.height]=\"contentHeight\">\n <div class=\"app-groups\">\n <bt-app-finder-group\n *ngIf=\"deviceSize !== 's'\"\n [appGroups]=\"appGroups\"\n [listMode]=\"true\"\n [selectedId]=\"selectedAppGroupId\"\n (selectedIdChange)=\"selectedAppGroupIdChange.emit($event)\"\n >\n </bt-app-finder-group>\n </div>\n <bt-app-finder-app-list\n [appGroup]=\"selectedAppGroup\"\n [mobile]=\"mobile\"\n [searchTerm]=\"searchTerm\"\n [pinnedAppInAppTileGroups]=\"pinnedAppInAppTileGroups\"\n (pinClick)=\"pinClick.emit($event)\"\n ></bt-app-finder-app-list>\n </div>\n <fd-menu\n #menu\n [mobile]=\"deviceSize === 's'\"\n [mobileConfig]=\"{ title: 'Groups' | bbbTranslate, hasCloseButton: true }\"\n >\n <bt-app-finder-group\n *ngIf=\"deviceSize === 's'\"\n [appGroups]=\"appGroups\"\n [selectedId]=\"selectedAppGroupId\"\n (selectedIdChange)=\"menu.close(); selectedAppGroupIdChange.emit($event)\"\n >\n </bt-app-finder-group>\n </fd-menu>\n </ng-container>\n <ng-template #loading>\n <bsu-mask></bsu-mask>\n </ng-template>\n</div>\n", styles: [":host{display:block;background-color:var(--sapBackgroundColor, #f7f7f7);color:var(--sapTextColor, #32363a)}:host ::ng-deep .fd-list__title{line-height:1.5rem}.wrapper{display:flex;flex-direction:column}fd-toolbar{width:100%}::ng-deep span.fd-toolbar__spacer{display:none}\n"] }]
1146
- }], propDecorators: { appGroups: [{
1147
- type: Input
1148
- }], deviceSize: [{
1149
- type: Input
1150
- }], sideContentSize: [{
1151
- type: Input
1152
- }], selectedAppGroup: [{
1153
- type: Input
1154
- }], selectedAppGroupId: [{
1155
- type: Input
1156
- }], mobile: [{
1157
- type: Input
1158
- }], contentDensity: [{
1159
- type: Input
1160
- }], contentHeight: [{
1161
- type: Input
1162
- }], pinnedAppInAppTileGroups: [{
1163
- type: Input
1164
- }], pinClick: [{
1165
- type: Output
1166
- }], selectedAppGroupIdChange: [{
1167
- type: Output
1168
- }] } });
1169
-
1170
- class ChangeAppTileComponent extends BaseComponent {
1171
- constructor(fb, dialogRef, bbbPipe) {
1172
- super();
1173
- this.fb = fb;
1174
- this.dialogRef = dialogRef;
1175
- this.bbbPipe = bbbPipe;
1176
- this.title = dialogRef.data.TileTitle;
1177
- this.subtitle = dialogRef.data.Subtitle;
1178
- }
1179
- ngOnInit() {
1180
- super.ngOnInit();
1181
- this.appGroupForm = this.fb.group({
1182
- title: new UntypedFormControl(this.title, [Validators.required]),
1183
- subtitle: new UntypedFormControl(this.subtitle)
1184
- });
1185
- this.RequiredText = this.bbbPipe
1186
- .transform(')AlertFieldIsMandatory')
1187
- .replace('{0}', this.bbbPipe.transform('Title'));
1188
- }
1189
- onSave() {
1190
- this.submitted = true;
1191
- if (this.appGroupForm.valid) {
1192
- this.dialogRef.close({ title: this.title, subtitle: this.subtitle });
1193
- }
1194
- }
1195
- }
1196
- ChangeAppTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ChangeAppTileComponent, deps: [{ token: i1$4.UntypedFormBuilder }, { token: i1$1.DialogRef }, { token: i1.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Component });
1197
- ChangeAppTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ChangeAppTileComponent, selector: "bt-change-app-tile", usesInheritance: true, ngImport: i0, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ dialogRef.data.$Caption }}</h1>\r\n <button fd-dialog-close-button (click)=\"dialogRef.dismiss()\"></button>\r\n </fd-dialog-header>\r\n <fd-dialog-body [formGroup]=\"appGroupForm\">\r\n <div fd-form-item>\r\n <label fd-form-label [required]=\"true\">{{ 'Title' | bbbTranslate }}</label>\r\n <fd-form-input-message-group>\r\n <fd-input-group\r\n class=\"form-control\"\r\n formControlName=\"title\"\r\n form-control\r\n [button]=\"true\"\r\n [(ngModel)]=\"title\"\r\n [state]=\"submitted && appGroupForm.controls.title.errors ? 'error' : 'information'\"\r\n >\r\n </fd-input-group>\r\n <fd-form-message *ngIf=\"submitted && appGroupForm.controls.title.errors\" type=\"error\">\r\n {{ RequiredText }}\r\n </fd-form-message>\r\n </fd-form-input-message-group>\r\n </div>\r\n <br />\r\n <div fd-form-item>\r\n <label fd-form-label>{{ 'Subtitle' | bbbTranslate }}</label>\r\n <fd-form-input-message-group>\r\n <fd-input-group formControlName=\"subtitle\" form-control [button]=\"true\" [(ngModel)]=\"subtitle\">\r\n </fd-input-group>\r\n </fd-form-input-message-group>\r\n </div>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-button-bar [label]=\"'Save' | bbbTranslate\" fdType=\"emphasized\" (click)=\"onSave()\"> </fd-button-bar>\r\n <fd-button-bar\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n fdInitialFocus\r\n fdType=\"transparent\"\r\n (click)=\"this.dialogRef.close()\"\r\n >\r\n </fd-button-bar>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i5$2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i6$1.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i6$1.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i6$1.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: i6$1.FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "isOpen"], outputs: ["isOpenChange"] }, { kind: "component", type: i7.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i8$1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i8$1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8$1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i8$1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i8$1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "component", type: i9.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i10$1.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ChangeAppTileComponent, decorators: [{
1199
- type: Component,
1200
- args: [{ selector: 'bt-change-app-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ dialogRef.data.$Caption }}</h1>\r\n <button fd-dialog-close-button (click)=\"dialogRef.dismiss()\"></button>\r\n </fd-dialog-header>\r\n <fd-dialog-body [formGroup]=\"appGroupForm\">\r\n <div fd-form-item>\r\n <label fd-form-label [required]=\"true\">{{ 'Title' | bbbTranslate }}</label>\r\n <fd-form-input-message-group>\r\n <fd-input-group\r\n class=\"form-control\"\r\n formControlName=\"title\"\r\n form-control\r\n [button]=\"true\"\r\n [(ngModel)]=\"title\"\r\n [state]=\"submitted && appGroupForm.controls.title.errors ? 'error' : 'information'\"\r\n >\r\n </fd-input-group>\r\n <fd-form-message *ngIf=\"submitted && appGroupForm.controls.title.errors\" type=\"error\">\r\n {{ RequiredText }}\r\n </fd-form-message>\r\n </fd-form-input-message-group>\r\n </div>\r\n <br />\r\n <div fd-form-item>\r\n <label fd-form-label>{{ 'Subtitle' | bbbTranslate }}</label>\r\n <fd-form-input-message-group>\r\n <fd-input-group formControlName=\"subtitle\" form-control [button]=\"true\" [(ngModel)]=\"subtitle\">\r\n </fd-input-group>\r\n </fd-form-input-message-group>\r\n </div>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-button-bar [label]=\"'Save' | bbbTranslate\" fdType=\"emphasized\" (click)=\"onSave()\"> </fd-button-bar>\r\n <fd-button-bar\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n fdInitialFocus\r\n fdType=\"transparent\"\r\n (click)=\"this.dialogRef.close()\"\r\n >\r\n </fd-button-bar>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n" }]
1201
- }], ctorParameters: function () { return [{ type: i1$4.UntypedFormBuilder }, { type: i1$1.DialogRef }, { type: i1.BbbTranslatePipe }]; } });
1202
-
1203
- class TilesViewerService {
1204
- constructor(dialogService, tilesService) {
1205
- this.dialogService = dialogService;
1206
- this.tilesService = tilesService;
1207
- this._onDestroy$ = new Subject();
1208
- this._hideTileSource = new Subject();
1209
- this._updateAppTileSettingSource = new Subject();
1210
- this._deleteGroupSource = new Subject();
1211
- this._loadAppGroupSource = new Subject();
1212
- this._saveAppGroupOrdersSource = new Subject();
1213
- this.saveAppGroupOrders$ = this._saveAppGroupOrdersSource.asObservable();
1214
- this._resetAppGroupSource = new Subject();
1215
- this.resetAppGroup$ = this._resetAppGroupSource.asObservable();
1216
- this._hideAppGroupSource = new Subject();
1217
- this.hideAppGroup$ = this._hideAppGroupSource.asObservable();
1218
- this._viewLoadingSource = new BehaviorSubject(false);
1219
- this.viewLoading$ = this._viewLoadingSource.asObservable().pipe(debounceTime(200));
1220
- this.hideTile$ = this._hideTileSource.asObservable();
1221
- this.updateAppTileSetting$ = this._updateAppTileSettingSource.asObservable();
1222
- this.deleteAppGroup$ = this._deleteGroupSource.asObservable();
1223
- this._loadAppGroupSource
1224
- .asObservable()
1225
- .pipe(takeUntil(this._onDestroy$))
1226
- .subscribe((group) => {
1227
- this.tilesService.loadAppTileGroups(group);
1228
- });
1229
- this.hideTile$
1230
- .pipe(tap(() => this.setLoading()), takeUntil(this._onDestroy$), exhaustMap((appTile) => this.tilesService
1231
- .singlePinTileChanged(appTile.AppTile ? appTile.AppTile.Id : appTile.Id)
1232
- .pipe(finalize(() => this.setLoaded()))), finalize(() => this.setLoaded()))
1233
- .subscribe();
1234
- this.updateAppTileSetting$
1235
- .pipe(takeUntil(this._onDestroy$), tap(() => this.setLoading()), exhaustMap((appTile) => this.tilesService.changeAppTileSetting(appTile).pipe(finalize(() => {
1236
- this.setLoaded();
1237
- }))), finalize(() => {
1238
- this.setLoaded();
1239
- }))
1240
- .subscribe();
1241
- this.deleteAppGroup$
1242
- .pipe(tap(() => this.setLoading()), takeUntil(this._onDestroy$), exhaustMap((appGroup) => this.tilesService.deleteAppGroup(appGroup).pipe(finalize(() => {
1243
- this.setLoaded();
1244
- }))))
1245
- .subscribe();
1246
- this.resetAppGroup$
1247
- .pipe(takeUntil(this._onDestroy$), tap(() => this.setLoading()), exhaustMap((appGroup) => this.tilesService.resetAppGroupSetting(appGroup).pipe(finalize(() => {
1248
- this.setLoaded();
1249
- }))), finalize(() => {
1250
- this.setLoaded();
1251
- }))
1252
- .subscribe();
1253
- this.hideAppGroup$
1254
- .pipe(takeUntil(this._onDestroy$), tap(() => this.setLoading()), exhaustMap((appGroup) => this.tilesService.toggleAppGroupSettingVisible(appGroup).pipe(finalize(() => {
1255
- this.setLoaded();
1256
- }))), finalize(() => {
1257
- this.setLoaded();
1258
- }))
1259
- .subscribe();
1260
- this.saveAppGroupOrders$
1261
- .pipe(takeUntil(this._onDestroy$), tap(() => this.setLoading()), exhaustMap((appGroups) => this.tilesService.saveAppGroupOrders(appGroups).pipe(finalize(() => {
1262
- this.setLoaded();
1263
- }))), finalize(() => {
1264
- this.setLoaded();
1265
- }))
1266
- .subscribe();
1267
- }
1268
- get selectedAppGroupId() {
1269
- var _a;
1270
- return (_a = localStorage.getItem('selectedTab')) !== null && _a !== void 0 ? _a : '';
1271
- }
1272
- set selectedAppGroupId(groupId) {
1273
- localStorage.setItem('selectedTab', groupId);
1274
- }
1275
- setSelectedTab(group) {
1276
- this.selectedAppGroupId = group.Id;
1277
- }
1278
- loadAppGroup(group) {
1279
- this._loadAppGroupSource.next(group);
1280
- }
1281
- ngOnDestroy() {
1282
- this._onDestroy$.next();
1283
- }
1284
- openRenameForm(appTile) {
1285
- const newGroupDialogRef = this.dialogService.open(ChangeAppTileComponent, {
1286
- data: appTile,
1287
- verticalPadding: true,
1288
- responsivePadding: true
1289
- });
1290
- newGroupDialogRef.afterClosed.subscribe((setting) => {
1291
- if (setting) {
1292
- const newAppTile = Object.assign({}, appTile);
1293
- newAppTile.Title = newAppTile.TileTitle = setting.title;
1294
- newAppTile.Subtitle = setting.subtitle;
1295
- this._updateAppTileSettingSource.next(newAppTile);
1296
- }
1297
- });
1298
- }
1299
- resetAppGroup(appGroup) {
1300
- this._resetAppGroupSource.next(appGroup);
1301
- }
1302
- toggleAppGroupSettingVisible(appGroup) {
1303
- this._hideAppGroupSource.next(appGroup);
1304
- }
1305
- deleteAppGroup(appGroup) {
1306
- this._deleteGroupSource.next(appGroup);
1307
- }
1308
- hideTile(appTile) {
1309
- this._hideTileSource.next(appTile);
1310
- }
1311
- saveAppGroupOrders(appGroups) {
1312
- this._saveAppGroupOrdersSource.next(appGroups);
1313
- }
1314
- setLoaded() {
1315
- this._viewLoadingSource.next(false);
1316
- }
1317
- setLoading() {
1318
- this._viewLoadingSource.next(true);
1319
- }
1320
- }
1321
- TilesViewerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerService, deps: [{ token: i1$1.DialogService }, { token: TilesService }], target: i0.ɵɵFactoryTarget.Injectable });
1322
- TilesViewerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerService });
1323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerService, decorators: [{
1324
- type: Injectable
1325
- }], ctorParameters: function () { return [{ type: i1$1.DialogService }, { type: TilesService }]; } });
1326
-
1327
- class TilesViewerComponent extends BaseComponent {
1328
- constructor(_cdr, _saveScrollPosition) {
1329
- super();
1330
- this._cdr = _cdr;
1331
- this._saveScrollPosition = _saveScrollPosition;
1332
- this.pageContentClass = true;
1333
- this.stackContentChange = new EventEmitter();
1334
- this.closeEditHome = new EventEmitter();
1335
- this.save = new EventEmitter();
1336
- this.listDropped = new EventEmitter();
1337
- this.tabChanged = new EventEmitter();
1338
- this.toggleGroup = new EventEmitter();
1339
- this.resetGroup = new EventEmitter();
1340
- this.deleteGroup = new EventEmitter();
1341
- this.hideAppTileClick = new EventEmitter();
1342
- this.renameAppTileClick = new EventEmitter();
1343
- this.tilesDropped = new EventEmitter();
1344
- this._rtl = BarsaApi.LoginFormData.IsRtl;
1345
- this.id = 'tilesviewer';
1346
- }
1347
- ngOnInit() {
1348
- super.ngOnInit();
1349
- const elDom = this.contentPageRef.nativeElement;
1350
- elDom.addEventListener('scroll', () => {
1351
- this._saveScrollPosition.setScrollPosition(this.id, elDom.scrollTop);
1352
- });
1353
- this._tilesIntersection = fromIntersectionObserver(elDom, {
1354
- root: null,
1355
- rootMargin: '0px',
1356
- threshold: 0
1357
- }, 0, false)
1358
- .pipe(takeUntil$1(this._onDestroy$))
1359
- .subscribe((e) => {
1360
- this._onInView(e);
1361
- });
1362
- }
1363
- onSelectedTabChange(selectedTab, appTileGroups) {
1364
- let firstSelected = false;
1365
- if (!this.selectedTabTitle) {
1366
- firstSelected = true;
1367
- }
1368
- const selectedTabTitle = selectedTab.title || '';
1369
- this.selectedTabTitle = selectedTabTitle;
1370
- setTimeout(() => {
1371
- this.tabChanged.emit({
1372
- firstSelected,
1373
- selectedTabTitle,
1374
- tabPanels: this.tabListComponent.tabPanels.toArray(),
1375
- appTileGroups
1376
- });
1377
- });
1378
- }
1379
- onDropGroup(appTileGroups, event) {
1380
- if (!this.edit) {
1381
- return;
1382
- }
1383
- this.listDropped.emit({ appTileGroups, event });
1384
- }
1385
- onDrop($event) {
1386
- this.tilesDropped.emit($event);
1387
- }
1388
- onStackContentChanged(checked) {
1389
- this.stackContentChange.emit(checked);
1390
- }
1391
- onExitEditHome(appGroups) {
1392
- this.save.emit(appGroups);
1393
- }
1394
- onCloseEditHome() {
1395
- this.closeEditHome.emit();
1396
- }
1397
- _trackById(item, index) {
1398
- return item ? item.Id : index;
1399
- }
1400
- _onInView(e) {
1401
- this.formVisibilityStatus = e;
1402
- if (this.formVisibilityStatus === IntersectionStatus.Visible) {
1403
- const scrollTop = this._saveScrollPosition.getScrollPosition(this.id);
1404
- // window.scrollTo({ top: scrollTop, behavior: 'smooth' });
1405
- this.contentPageRef.nativeElement.scrollTop = scrollTop;
1406
- // this._cdr.detectChanges();
1407
- }
1408
- }
1409
- }
1410
- TilesViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SaveScrollPositionService }], target: i0.ɵɵFactoryTarget.Component });
1411
- TilesViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TilesViewerComponent, selector: "bt-tiles-viewer", inputs: { appTileGroups: "appTileGroups", loading: "loading", edit: "edit", rtl: "rtl", stackContent: "stackContent", deviceSize: "deviceSize", selectedAppGroupId: "selectedAppGroupId", DynamicComponents: "DynamicComponents" }, outputs: { stackContentChange: "stackContentChange", closeEditHome: "closeEditHome", save: "save", listDropped: "listDropped", tabChanged: "tabChanged", toggleGroup: "toggleGroup", resetGroup: "resetGroup", deleteGroup: "deleteGroup", hideAppTileClick: "hideAppTileClick", renameAppTileClick: "renameAppTileClick", tilesDropped: "tilesDropped" }, host: { properties: { "class.page-content": "this.pageContentClass", "attr.rtl": "this._rtl" } }, viewQueries: [{ propertyName: "tabListComponent", first: true, predicate: TabListComponent, descendants: true }, { propertyName: "contentPageRef", first: true, predicate: ["contentPage"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-dynamic-page\n size=\"large\"\n [ariaLabel]=\"'HomeEdit' | bbbTranslate\"\n [autoResponsive]=\"true\"\n [class.stack-mode]=\"stackContent\"\n>\n <fd-dynamic-page-header *ngIf=\"edit\" [title]=\"'HomeEdit' | bbbTranslate\">\n <fd-dynamic-page-global-actions>\n <fd-toolbar *ngIf=\"edit\" fdType=\"transparent\" [clearBorder]=\"true\">\n <label fd-form-label fd-toolbar-item>Stacked Content </label>\n <fd-switch\n fd-toolbar-item\n [checked]=\"stackContent\"\n (checkedChange)=\"onStackContentChanged($event)\"\n ></fd-switch>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" title=\"Close\" (click)=\"onCloseEditHome()\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-content #contentPage>\n <ng-container\n *ngTemplateOutlet=\"\n stackContent ? renderTabsStacked : renderTabs;\n context: {\n $implicit: appTileGroups,\n stackContent: stackContent,\n edit: edit\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer>\n <div fd-bar barDesign=\"footer\" *ngIf=\"edit\">\n <div fd-bar-right>\n <fd-button-bar\n [label]=\"'SaveAndClose' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onExitEditHome(appTileGroups)\"\n ></fd-button-bar>\n </div>\n </div>\n </fd-dynamic-page-footer>\n</fd-dynamic-page>\n\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<ng-template #renderTabs let-appTileGroups let-stackContent=\"stackContent\" let-edit=\"edit\">\n <fd-tab-list\n class=\"tile-tabs\"\n [size]=\"deviceSize\"\n [collapseOverflow]=\"true\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onDropGroup(appTileGroups, $event)\"\n (selectedTabChange)=\"onSelectedTabChange($event, appTileGroups)\"\n >\n <ng-container *ngFor=\"let appTileGroup of appTileGroups; let i = index; trackBy: _trackById\">\n <fd-tab\n *ngIf=\"edit || appTileGroup.navigatorVisible\"\n [title]=\"appTileGroup.navigatorTitle | bbbTranslate\"\n [ngClass]=\"'fd-tabs--' + deviceSize\"\n [class.is-expanded]=\"selectedTabTitle === (appTileGroup.navigatorTitle | bbbTranslate)\"\n >\n <fd-dynamic-page-content [id]=\"appTileGroup.Id\">\n <ng-container\n *ngTemplateOutlet=\"\n renderGroup;\n context: {\n $implicit: appTileGroup,\n stackContent: stackContent,\n edit: edit,\n isAppTileSubGroup: false\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </fd-tab>\n </ng-container>\n </fd-tab-list>\n</ng-template>\n<ng-template #renderTabsStacked let-appTileGroups let-stackContent=\"stackContent\" let-edit=\"edit\">\n <fd-tab-list\n class=\"tile-tabs\"\n [size]=\"deviceSize\"\n [collapseOverflow]=\"true\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n [stackContent]=\"true\"\n [maxContentHeight]=\"stackContent ? 'calc(99vh - 2.75rem - 44px)' : 'calc(100vh - 44px)'\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onDropGroup(appTileGroups, $event)\"\n >\n <ng-container *ngFor=\"let appTileGroup of appTileGroups; let i = index; trackBy: _trackById\">\n <fd-tab\n *ngIf=\"edit || appTileGroup.navigatorVisible\"\n [title]=\"appTileGroup.navigatorTitle | bbbTranslate\"\n [ngClass]=\"'fd-tabs--' + deviceSize\"\n [count]=\"appTileGroup.$Children?.length\"\n >\n <fd-dynamic-page-content [id]=\"appTileGroup.Id\">\n <ng-container\n *ngTemplateOutlet=\"\n renderGroup;\n context: {\n $implicit: appTileGroup,\n stackContent: stackContent,\n edit: edit,\n isAppTileSubGroup: false\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </fd-tab>\n </ng-container>\n </fd-tab-list>\n</ng-template>\n<ng-template\n #renderGroup\n let-appTileGroup\n let-stackContent=\"stackContent\"\n let-edit=\"edit\"\n let-isAppTileSubGroup=\"isAppTileSubGroup\"\n>\n <bt-tiles-viewer-group\n [appTileGroup]=\"appTileGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [deviceSize]=\"deviceSize\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"isAppTileSubGroup\"\n (tilesDropped)=\"onDrop($event)\"\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\n (resetGroup)=\"resetGroup.emit($event)\"\n (deleteGroup)=\"deleteGroup.emit($event)\"\n (toggleGroup)=\"toggleGroup.emit($event)\"\n ></bt-tiles-viewer-group>\n</ng-template>\n", styles: [":host{display:block}:host ::ng-deep .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}:host ::ng-deep fd-tab-list[noSpy] .fd-tabs__content{overflow-y:initial}:host ::ng-deep fd-dynamic-page section{height:calc(100vh - 44px)!important}:host ::ng-deep .footer-spacer{height:0}.fd-tabs__panel:not(.is-expanded){display:none}fd-dynamic-page.stack-mode fd-dynamic-page-content{overflow-y:hidden}fd-dynamic-page-content{padding:0!important}@media (max-width: 599px){bnrc-dynamic-component{margin-right:0!important;margin-left:0!important}}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: i5$2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i5$2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i5$2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6$2.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["role", "ariaLabel", "background", "autoResponsive", "size", "offset", "expandContent"] }, { kind: "component", type: i6$2.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "subtitle"] }, { kind: "component", type: i6$2.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i6$2.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i6$2.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i6$2.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i6$1.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8$2.SwitchComponent, selector: "fd-switch", inputs: ["activeText", "inactiveText", "disabled", "id", "name", "required", "checked", "semantic", "ariaLabel", "ariaLabelledby", "ariaLabelledBy", "semanticAcceptLabel", "semanticDeclineLabel"], outputs: ["checkedChange"] }, { kind: "component", type: i9$1.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "expandOverflowText", "defaultTab", "selectDefaultOnTabsChange"], outputs: ["selectedTabChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i9$1.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "component", type: i10.ToolbarComponent, selector: "fd-toolbar", inputs: ["class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "directive", type: i10.ToolbarItemDirective, selector: "[fd-toolbar-item]" }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: ["appTileGroup", "stackContent", "edit", "rtl", "isAppTileSubGroup", "deviceSize"], outputs: ["tilesDropped", "hideAppTileClick", "renameAppTileClick", "toggleGroup", "resetGroup", "deleteGroup"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1412
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerComponent, decorators: [{
1413
- type: Component,
1414
- args: [{ selector: 'bt-tiles-viewer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dynamic-page\n size=\"large\"\n [ariaLabel]=\"'HomeEdit' | bbbTranslate\"\n [autoResponsive]=\"true\"\n [class.stack-mode]=\"stackContent\"\n>\n <fd-dynamic-page-header *ngIf=\"edit\" [title]=\"'HomeEdit' | bbbTranslate\">\n <fd-dynamic-page-global-actions>\n <fd-toolbar *ngIf=\"edit\" fdType=\"transparent\" [clearBorder]=\"true\">\n <label fd-form-label fd-toolbar-item>Stacked Content </label>\n <fd-switch\n fd-toolbar-item\n [checked]=\"stackContent\"\n (checkedChange)=\"onStackContentChanged($event)\"\n ></fd-switch>\n </fd-toolbar>\n </fd-dynamic-page-global-actions>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" title=\"Close\" (click)=\"onCloseEditHome()\">\n <i class=\"sap-icon--decline\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n <fd-dynamic-page-content #contentPage>\n <ng-container\n *ngTemplateOutlet=\"\n stackContent ? renderTabsStacked : renderTabs;\n context: {\n $implicit: appTileGroups,\n stackContent: stackContent,\n edit: edit\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n <fd-dynamic-page-footer>\n <div fd-bar barDesign=\"footer\" *ngIf=\"edit\">\n <div fd-bar-right>\n <fd-button-bar\n [label]=\"'SaveAndClose' | bbbTranslate\"\n fdType=\"emphasized\"\n (click)=\"onExitEditHome(appTileGroups)\"\n ></fd-button-bar>\n </div>\n </div>\n </fd-dynamic-page-footer>\n</fd-dynamic-page>\n\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<ng-template #renderTabs let-appTileGroups let-stackContent=\"stackContent\" let-edit=\"edit\">\n <fd-tab-list\n class=\"tile-tabs\"\n [size]=\"deviceSize\"\n [collapseOverflow]=\"true\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onDropGroup(appTileGroups, $event)\"\n (selectedTabChange)=\"onSelectedTabChange($event, appTileGroups)\"\n >\n <ng-container *ngFor=\"let appTileGroup of appTileGroups; let i = index; trackBy: _trackById\">\n <fd-tab\n *ngIf=\"edit || appTileGroup.navigatorVisible\"\n [title]=\"appTileGroup.navigatorTitle | bbbTranslate\"\n [ngClass]=\"'fd-tabs--' + deviceSize\"\n [class.is-expanded]=\"selectedTabTitle === (appTileGroup.navigatorTitle | bbbTranslate)\"\n >\n <fd-dynamic-page-content [id]=\"appTileGroup.Id\">\n <ng-container\n *ngTemplateOutlet=\"\n renderGroup;\n context: {\n $implicit: appTileGroup,\n stackContent: stackContent,\n edit: edit,\n isAppTileSubGroup: false\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </fd-tab>\n </ng-container>\n </fd-tab-list>\n</ng-template>\n<ng-template #renderTabsStacked let-appTileGroups let-stackContent=\"stackContent\" let-edit=\"edit\">\n <fd-tab-list\n class=\"tile-tabs\"\n [size]=\"deviceSize\"\n [collapseOverflow]=\"true\"\n [expandOverflowText]=\"'More' | bbbTranslate\"\n [stackContent]=\"true\"\n [maxContentHeight]=\"stackContent ? 'calc(99vh - 2.75rem - 44px)' : 'calc(100vh - 44px)'\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"onDropGroup(appTileGroups, $event)\"\n >\n <ng-container *ngFor=\"let appTileGroup of appTileGroups; let i = index; trackBy: _trackById\">\n <fd-tab\n *ngIf=\"edit || appTileGroup.navigatorVisible\"\n [title]=\"appTileGroup.navigatorTitle | bbbTranslate\"\n [ngClass]=\"'fd-tabs--' + deviceSize\"\n [count]=\"appTileGroup.$Children?.length\"\n >\n <fd-dynamic-page-content [id]=\"appTileGroup.Id\">\n <ng-container\n *ngTemplateOutlet=\"\n renderGroup;\n context: {\n $implicit: appTileGroup,\n stackContent: stackContent,\n edit: edit,\n isAppTileSubGroup: false\n }\n \"\n ></ng-container>\n </fd-dynamic-page-content>\n </fd-tab>\n </ng-container>\n </fd-tab-list>\n</ng-template>\n<ng-template\n #renderGroup\n let-appTileGroup\n let-stackContent=\"stackContent\"\n let-edit=\"edit\"\n let-isAppTileSubGroup=\"isAppTileSubGroup\"\n>\n <bt-tiles-viewer-group\n [appTileGroup]=\"appTileGroup\"\n [edit]=\"edit\"\n [rtl]=\"rtl\"\n [deviceSize]=\"deviceSize\"\n [stackContent]=\"stackContent\"\n [isAppTileSubGroup]=\"isAppTileSubGroup\"\n (tilesDropped)=\"onDrop($event)\"\n (renameAppTileClick)=\"renameAppTileClick.emit($event)\"\n (hideAppTileClick)=\"hideAppTileClick.emit($event)\"\n (resetGroup)=\"resetGroup.emit($event)\"\n (deleteGroup)=\"deleteGroup.emit($event)\"\n (toggleGroup)=\"toggleGroup.emit($event)\"\n ></bt-tiles-viewer-group>\n</ng-template>\n", styles: [":host{display:block}:host ::ng-deep .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}:host ::ng-deep fd-tab-list[noSpy] .fd-tabs__content{overflow-y:initial}:host ::ng-deep fd-dynamic-page section{height:calc(100vh - 44px)!important}:host ::ng-deep .footer-spacer{height:0}.fd-tabs__panel:not(.is-expanded){display:none}fd-dynamic-page.stack-mode fd-dynamic-page-content{overflow-y:hidden}fd-dynamic-page-content{padding:0!important}@media (max-width: 599px){bnrc-dynamic-component{margin-right:0!important;margin-left:0!important}}\n"] }]
1415
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SaveScrollPositionService }]; }, propDecorators: { tabListComponent: [{
1416
- type: ViewChild,
1417
- args: [TabListComponent]
1418
- }], contentPageRef: [{
1419
- type: ViewChild,
1420
- args: ['contentPage', { static: true, read: ElementRef }]
1421
- }], pageContentClass: [{
1422
- type: HostBinding,
1423
- args: ['class.page-content']
1424
- }], appTileGroups: [{
1425
- type: Input
1426
- }], loading: [{
1427
- type: Input
1428
- }], edit: [{
1429
- type: Input
1430
- }], rtl: [{
1431
- type: Input
1432
- }], stackContent: [{
1433
- type: Input
1434
- }], deviceSize: [{
1435
- type: Input
1436
- }], selectedAppGroupId: [{
1437
- type: Input
1438
- }], DynamicComponents: [{
1439
- type: Input
1440
- }], stackContentChange: [{
1441
- type: Output
1442
- }], closeEditHome: [{
1443
- type: Output
1444
- }], save: [{
1445
- type: Output
1446
- }], listDropped: [{
1447
- type: Output
1448
- }], tabChanged: [{
1449
- type: Output
1450
- }], toggleGroup: [{
1451
- type: Output
1452
- }], resetGroup: [{
1453
- type: Output
1454
- }], deleteGroup: [{
1455
- type: Output
1456
- }], hideAppTileClick: [{
1457
- type: Output
1458
- }], renameAppTileClick: [{
1459
- type: Output
1460
- }], tilesDropped: [{
1461
- type: Output
1462
- }], _rtl: [{
1463
- type: HostBinding,
1464
- args: ['attr.rtl']
1465
- }] } });
1466
-
1467
- class TilesViewerContainerComponent extends BaseComponent {
1468
- constructor(_portalService, _tilesService, _tilesViewerService) {
1469
- super();
1470
- this._portalService = _portalService;
1471
- this._tilesService = _tilesService;
1472
- this._tilesViewerService = _tilesViewerService;
1473
- this.changedOrder = false;
1474
- this.userStackContent = false;
1475
- this.initialStackContentValue = false;
1476
- this.firstSelected = false;
1477
- this.stackContent$ = this._portalService.userPortalSettings$.pipe(takeUntil(this._onDestroy$), map((settings) => settings['UserPortalSettings']), map((settings) => settings === null || settings === void 0 ? void 0 : settings.TilesStackContent), distinctUntilChanged());
1478
- this.stackContent$.subscribe((stackContent) => {
1479
- this.initialStackContentValue = this.userStackContent = stackContent;
1480
- if (stackContent) {
1481
- }
1482
- });
1483
- }
1484
- ngOnInit() {
1485
- super.ngOnInit();
1486
- this.viewLoading$ = this._tilesViewerService.viewLoading$;
1487
- this.rtl$ = this._portalService.rtl$;
1488
- this.deviceSize$ = this._portalService.deviceSize$;
1489
- this.edit$ = this._tilesService.edit$;
1490
- this.appTileGroups$ = this._tilesService.homeAppTileGroups$;
1491
- this.appTileGroups$.pipe(withLatestFrom(this.stackContent$)).subscribe(([tiles, stackContent]) => {
1492
- if (tiles && stackContent) {
1493
- tiles.forEach((c) => {
1494
- this._tilesService.loadAppTileGroups(c);
1495
- });
1496
- }
1497
- });
1498
- }
1499
- ngOnDestroy() {
1500
- super.ngOnDestroy();
1501
- this._tilesService.setEditHome(false);
1502
- }
1503
- onSelectedTabChange(e) {
1504
- const { firstSelected, selectedTabTitle, appTileGroups: appGroups, tabPanels } = e;
1505
- let appTileGroup;
1506
- if (firstSelected) {
1507
- const lastSelectedAppGroupId = this._tilesViewerService.selectedAppGroupId;
1508
- if (lastSelectedAppGroupId) {
1509
- appTileGroup = appGroups.find((c) => c.Id === lastSelectedAppGroupId);
1510
- if (appTileGroup) {
1511
- const lastTab = tabPanels.find((c) => c.title === (appTileGroup === null || appTileGroup === void 0 ? void 0 : appTileGroup.navigatorTitle));
1512
- if (lastTab) {
1513
- appTileGroup = appGroups.find((c) => c.Id === lastSelectedAppGroupId);
1514
- lastTab.open(true);
1515
- }
1516
- }
1517
- }
1518
- }
1519
- if (!appTileGroup) {
1520
- appTileGroup = appGroups.find((c) => c.navigatorTitle === selectedTabTitle);
1521
- }
1522
- if (appTileGroup) {
1523
- this._tilesViewerService.setSelectedTab(appTileGroup);
1524
- this._tilesViewerService.loadAppGroup(appTileGroup);
1525
- }
1526
- }
1527
- onDropGroup(e) {
1528
- const { event, appTileGroups: appGroups } = e;
1529
- moveItemInArray(appGroups, event.previousIndex, event.currentIndex);
1530
- this.changedOrder = true;
1531
- // this.saveOrderAppTiles(allApps, group);
1532
- }
1533
- onDrop(e) {
1534
- var _a, _b, _c;
1535
- const { appTileGroup: group, event } = e;
1536
- const previousContainer = event.previousContainer;
1537
- const container = event.container;
1538
- const containerIsTile = container.data.isTile;
1539
- const previousItems = previousContainer.data.items;
1540
- const containerItems = container.data.items;
1541
- const { previousIndex, currentIndex } = event;
1542
- if (previousContainer === container) {
1543
- moveItemInArray(previousItems, previousIndex, currentIndex);
1544
- if (containerIsTile) {
1545
- this._saveOrderAppTiles(group);
1546
- }
1547
- else {
1548
- this._saveOrderActionLinks(group);
1549
- }
1550
- }
1551
- else {
1552
- transferArrayItem(previousItems, containerItems, previousIndex, currentIndex);
1553
- const appTileIdTransferedId = (_c = (_b = (_a = containerItems[currentIndex]) === null || _a === void 0 ? void 0 : _a.AppTile) === null || _b === void 0 ? void 0 : _b.Id) !== null && _c !== void 0 ? _c : containerItems[currentIndex].Id;
1554
- if (containerIsTile) {
1555
- this._saveOrderActionLinks(group);
1556
- this._saveOrderAppTiles(group, appTileIdTransferedId);
1557
- }
1558
- else {
1559
- this._saveOrderAppTiles(group);
1560
- this._saveOrderActionLinks(group, appTileIdTransferedId);
1561
- }
1562
- }
1563
- }
1564
- onStackContentChanged(checked) {
1565
- this.userStackContent = checked;
1566
- }
1567
- onExitEditHome(appTileGroups) {
1568
- if (this.changedOrder) {
1569
- this._tilesViewerService.saveAppGroupOrders(appTileGroups);
1570
- this.changedOrder = false;
1571
- }
1572
- if (this.userStackContent !== this.initialStackContentValue) {
1573
- this._tilesService.saveTilesStackContent(this.userStackContent);
1574
- }
1575
- this._setEditHome(false);
1576
- }
1577
- onCloseEditHome() {
1578
- this._setEditHome(false);
1579
- }
1580
- onDelete(appTileGroup) {
1581
- this._tilesViewerService.deleteAppGroup(appTileGroup);
1582
- }
1583
- onToggleShowHide(appTileGroup) {
1584
- this._tilesViewerService.toggleAppGroupSettingVisible(appTileGroup);
1585
- }
1586
- onReset(appTileGroup) {
1587
- this._tilesViewerService.resetAppGroup(appTileGroup);
1588
- }
1589
- onHideAppTile(appTile) {
1590
- this._tilesViewerService.hideTile(appTile);
1591
- }
1592
- onRenameAppTile(appTile) {
1593
- this._tilesViewerService.openRenameForm(appTile);
1594
- }
1595
- _setEditHome(val) {
1596
- this._tilesService.setEditHome(val);
1597
- }
1598
- _saveOrderAppTiles(appTileGroup, appTileIdTransferedId = '0') {
1599
- const appTiles = appTileGroup.navigatorTiles.map((appTile) => appTile.AppTile ? appTile.AppTile.Id : appTile.Id);
1600
- this._tilesService.saveOrderAppTiles(appTileGroup, appTiles, false, appTileIdTransferedId);
1601
- }
1602
- _saveOrderActionLinks(appTileGroup, appTileIdTransferedId = '0') {
1603
- const actionLinks = appTileGroup.navigatorActionLinks.map((appTile) => appTile.AppTile ? appTile.AppTile.Id : appTile.Id);
1604
- this._tilesService.saveOrderAppTiles(appTileGroup, actionLinks, true, appTileIdTransferedId);
1605
- }
1606
- }
1607
- TilesViewerContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerContainerComponent, deps: [{ token: i1.PortalService }, { token: TilesService }, { token: TilesViewerService }], target: i0.ɵɵFactoryTarget.Component });
1608
- TilesViewerContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TilesViewerContainerComponent, selector: "bt-tiles-viewer-container", providers: [TilesViewerService], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"appTileGroups$ | async as appTileGroups; else loading\">\n <bt-tiles-viewer\n *ngIf=\"appTileGroups; else empty\"\n [appTileGroups]=\"appTileGroups\"\n [loading]=\"(viewLoading$ | async)!!\"\n [edit]=\"(edit$ | async)!!\"\n [rtl]=\"(rtl$ | async)!!\"\n [stackContent]=\"(stackContent$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n (stackContentChange)=\"onStackContentChanged($event)\"\n (closeEditHome)=\"onCloseEditHome()\"\n (save)=\"onExitEditHome($event)\"\n (listDropped)=\"onDropGroup($event)\"\n (tabChanged)=\"onSelectedTabChange($event)\"\n (toggleGroup)=\"onToggleShowHide($event)\"\n (resetGroup)=\"onReset($event)\"\n (deleteGroup)=\"onDelete($event)\"\n (tilesDropped)=\"onDrop($event)\"\n (hideAppTileClick)=\"onHideAppTile($event)\"\n (renameAppTileClick)=\"onRenameAppTile($event)\"\n ></bt-tiles-viewer>\n</ng-container>\n<ng-template #empty>\n <bsu-no-data></bsu-no-data>\n</ng-template>\n\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i5.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: TilesViewerComponent, selector: "bt-tiles-viewer", inputs: ["appTileGroups", "loading", "edit", "rtl", "stackContent", "deviceSize", "selectedAppGroupId", "DynamicComponents"], outputs: ["stackContentChange", "closeEditHome", "save", "listDropped", "tabChanged", "toggleGroup", "resetGroup", "deleteGroup", "hideAppTileClick", "renameAppTileClick", "tilesDropped"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TilesViewerContainerComponent, decorators: [{
1610
- type: Component,
1611
- args: [{ selector: 'bt-tiles-viewer-container', providers: [TilesViewerService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"appTileGroups$ | async as appTileGroups; else loading\">\n <bt-tiles-viewer\n *ngIf=\"appTileGroups; else empty\"\n [appTileGroups]=\"appTileGroups\"\n [loading]=\"(viewLoading$ | async)!!\"\n [edit]=\"(edit$ | async)!!\"\n [rtl]=\"(rtl$ | async)!!\"\n [stackContent]=\"(stackContent$ | async)!!\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n (stackContentChange)=\"onStackContentChanged($event)\"\n (closeEditHome)=\"onCloseEditHome()\"\n (save)=\"onExitEditHome($event)\"\n (listDropped)=\"onDropGroup($event)\"\n (tabChanged)=\"onSelectedTabChange($event)\"\n (toggleGroup)=\"onToggleShowHide($event)\"\n (resetGroup)=\"onReset($event)\"\n (deleteGroup)=\"onDelete($event)\"\n (tilesDropped)=\"onDrop($event)\"\n (hideAppTileClick)=\"onHideAppTile($event)\"\n (renameAppTileClick)=\"onRenameAppTile($event)\"\n ></bt-tiles-viewer>\n</ng-container>\n<ng-template #empty>\n <bsu-no-data></bsu-no-data>\n</ng-template>\n\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
1612
- }], ctorParameters: function () { return [{ type: i1.PortalService }, { type: TilesService }, { type: TilesViewerService }]; } });
1613
-
1614
- class MicroTileChartBulletComponent extends BaseBtTileComponent {
1615
- ngOnInit() {
1616
- super.ngOnInit();
1617
- this.target = this.settings.Target;
1618
- this.value = this.settings.Value;
1619
- this.range = this.settings.Range;
1620
- this.forecast = this.settings.Forecast;
1621
- this.suffix = this.settings.Suffix;
1622
- this.separatorLines = this.settings.SeparatorLines;
1623
- this.isDelta = this.settings.IsDelta;
1624
- }
1625
- }
1626
- MicroTileChartBulletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartBulletComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1627
- MicroTileChartBulletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MicroTileChartBulletComponent, selector: "bt-micro-tile-chart-bullet", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-bullet\r\n *ngIf=\"double\"\r\n [target]=\"target\"\r\n [value]=\"value\"\r\n [range]=\"range\"\r\n [forecast]=\"forecast\"\r\n [isDelta]=\"isDelta\"\r\n [separatorLines]=\"separatorLines\"\r\n [suffix]=\"suffix\"\r\n >\r\n </be-micro-chart-bullet>\r\n\r\n <be-micro-chart-bullet\r\n [target]=\"target\"\r\n [value]=\"value\"\r\n [range]=\"range\"\r\n [forecast]=\"forecast\"\r\n [isDelta]=\"double ? false : isDelta\"\r\n [separatorLines]=\"separatorLines\"\r\n [suffix]=\"suffix\"\r\n >\r\n </be-micro-chart-bullet>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host ::ng-deep .fd-tile__content{display:flex;column-gap:20px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: i2$4.MicroChartBulletComponent, selector: "be-micro-chart-bullet", inputs: ["range", "value", "forecast", "target", "suffix", "separatorLines", "isDelta"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1628
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartBulletComponent, decorators: [{
1629
- type: Component,
1630
- args: [{ selector: 'bt-micro-tile-chart-bullet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-bullet\r\n *ngIf=\"double\"\r\n [target]=\"target\"\r\n [value]=\"value\"\r\n [range]=\"range\"\r\n [forecast]=\"forecast\"\r\n [isDelta]=\"isDelta\"\r\n [separatorLines]=\"separatorLines\"\r\n [suffix]=\"suffix\"\r\n >\r\n </be-micro-chart-bullet>\r\n\r\n <be-micro-chart-bullet\r\n [target]=\"target\"\r\n [value]=\"value\"\r\n [range]=\"range\"\r\n [forecast]=\"forecast\"\r\n [isDelta]=\"double ? false : isDelta\"\r\n [separatorLines]=\"separatorLines\"\r\n [suffix]=\"suffix\"\r\n >\r\n </be-micro-chart-bullet>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host ::ng-deep .fd-tile__content{display:flex;column-gap:20px}\n"] }]
1631
- }] });
1632
-
1633
- class NewsTileComponent extends BaseBtTileComponent {
1634
- constructor() {
1635
- super(...arguments);
1636
- this.isStop = false;
1637
- }
1638
- get twoColumn() {
1639
- return this.footer.TwoColumn;
1640
- }
1641
- ngOnInit() {
1642
- super.ngOnInit();
1643
- const slides = this.settings.Report.MoDataList;
1644
- if (slides.length) {
1645
- this._updateTile(slides[0]);
1646
- interval(5000)
1647
- .pipe(takeUntil(this._onDestroy$), tap(() => {
1648
- if (!this.isStop) {
1649
- this.carouselComponent.next();
1650
- }
1651
- }))
1652
- .subscribe();
1653
- }
1654
- this.slides = slides;
1655
- }
1656
- slideChange(activeSlide) {
1657
- const currentSlide = activeSlide.activeItems[0].value;
1658
- this._updateTile(currentSlide);
1659
- }
1660
- _updateTile(newsMo) {
1661
- this.activeNews = newsMo;
1662
- }
1663
- }
1664
- NewsTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NewsTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1665
- NewsTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: NewsTileComponent, selector: "bt-news-tile", viewQueries: [{ propertyName: "carouselComponent", first: true, predicate: CarouselComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<bt-tile\n [data]=\"data\"\n [type]=\"'launch'\"\n [footerTemplate]=\"newsFooter\"\n [edit]=\"edit\"\n [title]=\"data | tileProp: 'Title':parameters\"\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\n [footer]=\"data | tileProp: 'Footer':parameters\"\n (hideClick)=\"hideClick.emit()\"\n (renameClick)=\"renameClick.emit()\"\n (click)=\"onTileClick()\"\n>\n <div fd-tile-content style=\"align-items: center; padding-top: 1rem\">\n <span>\n {{ activeNews?.Text | bbbTranslate }}\n </span>\n\n <div class=\"wrapper-carousel\">\n <div class=\"cover\"></div>\n <button\n fd-button\n *ngIf=\"slides.length > 1\"\n fdType=\"transparent\"\n [glyph]=\"isStop ? 'play' : 'pause'\"\n (click)=\"isStop = !isStop; $event.preventDefault(); $event.stopPropagation()\"\n ></button>\n <fd-carousel\n carouselIndicatorsOrientation=\"top\"\n [slideTransitionDuration]=\"1000\"\n (slideChange)=\"slideChange($event)\"\n [loop]=\"true\"\n [navigation]=\"false\"\n [navigatorInPageIndicator]=\"false\"\n width=\"100%\"\n >\n <fd-carousel-item *ngFor=\"let slide of slides\" [value]=\"slide\">\n <img\n [src]=\"slide.Img ? (slide.Img.FileId | picFieldSrc: 'ID':null:slide.Img.FileId:335:170) : ''\"\n />\n </fd-carousel-item>\n </fd-carousel>\n </div>\n </div>\n</bt-tile>\n\n<!-- tile footer-->\n<ng-template #newsFooter>\n <div fd-tile-footer [twoColumn]=\"twoColumn\" *untilInView=\"el\">\n <ng-container *ngIf=\"twoColumn; else oneColumn\">\n <div fd-tile-section>\n <span fd-tile-footer-text>{{ activeNews?.Footer1 | bbbTranslate }}</span>\n </div>\n <div fd-tile-section>\n <span fd-tile-footer-text>{{ activeNews?.Footer2 | bbbTranslate }}</span>\n </div>\n </ng-container>\n <ng-template #oneColumn>\n <span fd-tile-footer-text>{{ activeNews?.Footer1 | bbbTranslate }}</span>\n </ng-template>\n </div>\n</ng-template>\n", styles: [":host{position:relative;display:block}:host bt-tile{position:relative}:host bt-tile .wrapper-carousel{position:absolute;top:0;width:100%;height:100%;left:0;z-index:0}:host bt-tile .wrapper-carousel img{width:335px;height:165px;object-fit:cover}:host ::ng-deep span{z-index:3;color:#fff}:host ::ng-deep button{position:absolute;right:15px;top:15px;display:none}:host ::ng-deep button fd-icon{z-index:4;min-width:1.5rem!important;font-size:1.5rem!important;color:#fff!important}:host ::ng-deep .fd-carousel__content{z-index:3}:host ::ng-deep .fd-carousel__page-indicator-container{position:absolute;bottom:0;display:none;background-color:transparent}:host ::ng-deep .fd-carousel__page-indicator-container ol{z-index:5}:host ::ng-deep .fd-carousel__page-indicator-container ol li{background-color:#dad7d7}:host ::ng-deep .fd-carousel__page-indicator-container ol li.fd-carousel__page-indicator--active{background-color:#fff}:host .cover{background-color:#064079d9;position:absolute;bottom:0;left:0;right:0;height:50%;z-index:4;opacity:.6}:host:hover ::ng-deep .fd-carousel__page-indicator-container{display:inherit}:host:hover ::ng-deep button{display:inline-flex}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3$2.CarouselComponent, selector: "fd-carousel", inputs: ["id", "ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "pageIndicatorsOrientation", "height", "width", "loop", "leftNavigationBtnLabel", "rightNavigationBtnLabel", "navigation", "navigatorInPageIndicator", "numericIndicator", "pageIndicatorContainer", "pageIndicator", "resourceStrings", "slideTransitionDuration", "swipeEnabled", "vertical", "visibleSlidesCount"], outputs: ["slideChange"] }, { kind: "component", type: i3$2.CarouselItemComponent, selector: "fd-carousel-item", inputs: ["id", "ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "loading", "title", "initialHeight", "initialWidth", "value"] }, { kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "directive", type: i1$3.TileFooterDirective, selector: "[fdTileFooter], [fd-tile-footer]", inputs: ["twoColumn"] }, { kind: "directive", type: i1$3.TileSectionDirective, selector: "[fdTileSection], [fd-tile-section]" }, { kind: "directive", type: i1$3.TileFooterTextDirective, selector: "[fdTileFooterText], [fd-tile-footer-text]" }, { kind: "directive", type: i1.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1666
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NewsTileComponent, decorators: [{
1667
- type: Component,
1668
- args: [{ selector: 'bt-news-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\n [data]=\"data\"\n [type]=\"'launch'\"\n [footerTemplate]=\"newsFooter\"\n [edit]=\"edit\"\n [title]=\"data | tileProp: 'Title':parameters\"\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\n [footer]=\"data | tileProp: 'Footer':parameters\"\n (hideClick)=\"hideClick.emit()\"\n (renameClick)=\"renameClick.emit()\"\n (click)=\"onTileClick()\"\n>\n <div fd-tile-content style=\"align-items: center; padding-top: 1rem\">\n <span>\n {{ activeNews?.Text | bbbTranslate }}\n </span>\n\n <div class=\"wrapper-carousel\">\n <div class=\"cover\"></div>\n <button\n fd-button\n *ngIf=\"slides.length > 1\"\n fdType=\"transparent\"\n [glyph]=\"isStop ? 'play' : 'pause'\"\n (click)=\"isStop = !isStop; $event.preventDefault(); $event.stopPropagation()\"\n ></button>\n <fd-carousel\n carouselIndicatorsOrientation=\"top\"\n [slideTransitionDuration]=\"1000\"\n (slideChange)=\"slideChange($event)\"\n [loop]=\"true\"\n [navigation]=\"false\"\n [navigatorInPageIndicator]=\"false\"\n width=\"100%\"\n >\n <fd-carousel-item *ngFor=\"let slide of slides\" [value]=\"slide\">\n <img\n [src]=\"slide.Img ? (slide.Img.FileId | picFieldSrc: 'ID':null:slide.Img.FileId:335:170) : ''\"\n />\n </fd-carousel-item>\n </fd-carousel>\n </div>\n </div>\n</bt-tile>\n\n<!-- tile footer-->\n<ng-template #newsFooter>\n <div fd-tile-footer [twoColumn]=\"twoColumn\" *untilInView=\"el\">\n <ng-container *ngIf=\"twoColumn; else oneColumn\">\n <div fd-tile-section>\n <span fd-tile-footer-text>{{ activeNews?.Footer1 | bbbTranslate }}</span>\n </div>\n <div fd-tile-section>\n <span fd-tile-footer-text>{{ activeNews?.Footer2 | bbbTranslate }}</span>\n </div>\n </ng-container>\n <ng-template #oneColumn>\n <span fd-tile-footer-text>{{ activeNews?.Footer1 | bbbTranslate }}</span>\n </ng-template>\n </div>\n</ng-template>\n", styles: [":host{position:relative;display:block}:host bt-tile{position:relative}:host bt-tile .wrapper-carousel{position:absolute;top:0;width:100%;height:100%;left:0;z-index:0}:host bt-tile .wrapper-carousel img{width:335px;height:165px;object-fit:cover}:host ::ng-deep span{z-index:3;color:#fff}:host ::ng-deep button{position:absolute;right:15px;top:15px;display:none}:host ::ng-deep button fd-icon{z-index:4;min-width:1.5rem!important;font-size:1.5rem!important;color:#fff!important}:host ::ng-deep .fd-carousel__content{z-index:3}:host ::ng-deep .fd-carousel__page-indicator-container{position:absolute;bottom:0;display:none;background-color:transparent}:host ::ng-deep .fd-carousel__page-indicator-container ol{z-index:5}:host ::ng-deep .fd-carousel__page-indicator-container ol li{background-color:#dad7d7}:host ::ng-deep .fd-carousel__page-indicator-container ol li.fd-carousel__page-indicator--active{background-color:#fff}:host .cover{background-color:#064079d9;position:absolute;bottom:0;left:0;right:0;height:50%;z-index:4;opacity:.6}:host:hover ::ng-deep .fd-carousel__page-indicator-container{display:inherit}:host:hover ::ng-deep button{display:inline-flex}\n"] }]
1669
- }], propDecorators: { carouselComponent: [{
1670
- type: ViewChild,
1671
- args: [CarouselComponent]
1672
- }] } });
1673
-
1674
- class MicroTileChartComparisonComponent extends BaseBtTileComponent {
1675
- constructor() {
1676
- super(...arguments);
1677
- this.chartData = {
1678
- data: [
1679
- { value: 5, color: '#de890d', label: 'تاخیر' },
1680
- {
1681
- value: 45,
1682
- color: '#dc0d0e',
1683
- label: 'هم اکنون'
1684
- },
1685
- { value: 100, color: '#3fa45b', label: 'به موقع' }
1686
- ],
1687
- suffix: '%'
1688
- };
1689
- }
1690
- }
1691
- MicroTileChartComparisonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartComparisonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1692
- MicroTileChartComparisonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MicroTileChartComparisonComponent, selector: "bt-micro-tile-chart-comparison", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-comparison [data]=\"chartData\" [size]=\"double ? 'l' : 's'\"></be-micro-chart-comparison>\r\n </div>\r\n</bt-tile>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: i2$4.MicroChartComparisonComponent, selector: "be-micro-chart-comparison", inputs: ["data", "size"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1693
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartComparisonComponent, decorators: [{
1694
- type: Component,
1695
- args: [{ selector: 'bt-micro-tile-chart-comparison', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-comparison [data]=\"chartData\" [size]=\"double ? 'l' : 's'\"></be-micro-chart-comparison>\r\n </div>\r\n</bt-tile>\r\n" }]
1696
- }] });
1697
-
1698
- class MicroTileChartStackbarComponent extends BaseBtTileComponent {
1699
- constructor() {
1700
- super(...arguments);
1701
- this.charData = {
1702
- data: [
1703
- { value: 20, color: '#3fa45b' },
1704
- { value: 30, color: '#e9730c' },
1705
- { value: 50, color: '#dc0d0e' }
1706
- ],
1707
- suffix: '%'
1708
- };
1709
- }
1710
- }
1711
- MicroTileChartStackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartStackbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1712
- MicroTileChartStackbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MicroTileChartStackbarComponent, selector: "bt-micro-tile-chart-stackbar", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-stackbar [data]=\"charData\"></be-micro-chart-stackbar>\r\n </div>\r\n</bt-tile>\r\n", styles: [".chart{width:100%}\n"], dependencies: [{ kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: i2$4.MicroChartStackbarComponent, selector: "be-micro-chart-stackbar", inputs: ["data"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartStackbarComponent, decorators: [{
1714
- type: Component,
1715
- args: [{ selector: 'bt-micro-tile-chart-stackbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-stackbar [data]=\"charData\"></be-micro-chart-stackbar>\r\n </div>\r\n</bt-tile>\r\n", styles: [".chart{width:100%}\n"] }]
1716
- }] });
1717
-
1718
- class MicroTileChartLineComponent extends BaseBtTileComponent {
1719
- constructor() {
1720
- super(...arguments);
1721
- this.chartData = {
1722
- data: [
1723
- { value: 2, label: '1 آبان' },
1724
- { value: 4, label: 'آبان 20' },
1725
- {
1726
- value: 3,
1727
- label: 'آبان 27'
1728
- },
1729
- { value: 5, label: 'آبان 30' }
1730
- ],
1731
- color: '',
1732
- suffix: 'M'
1733
- };
1734
- }
1735
- }
1736
- MicroTileChartLineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartLineComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1737
- MicroTileChartLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MicroTileChartLineComponent, selector: "bt-micro-tile-chart-line", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-line [line]=\"chartData\"></be-micro-chart-line>\r\n </div>\r\n</bt-tile>\r\n", styles: ["be-micro-chart-bar{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: i2$4.MicroChartLineComponent, selector: "be-micro-chart-line", inputs: ["line"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartLineComponent, decorators: [{
1739
- type: Component,
1740
- args: [{ selector: 'bt-micro-tile-chart-line', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-line [line]=\"chartData\"></be-micro-chart-line>\r\n </div>\r\n</bt-tile>\r\n", styles: ["be-micro-chart-bar{display:flex;flex-direction:column}\n"] }]
1741
- }] });
1742
-
1743
- class MicroTileChartCircularComponent extends BaseBtTileComponent {
1744
- constructor() {
1745
- super(...arguments);
1746
- this.chartData = 70;
1747
- }
1748
- }
1749
- MicroTileChartCircularComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartCircularComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1750
- MicroTileChartCircularComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MicroTileChartCircularComponent, selector: "bt-micro-tile-chart-circular", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-circular [data]=\"chartData\"></be-micro-chart-circular>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: i2$4.MicroChartCircularComponent, selector: "be-micro-chart-circular", inputs: ["data"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1751
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartCircularComponent, decorators: [{
1752
- type: Component,
1753
- args: [{ selector: 'bt-micro-tile-chart-circular', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-circular [data]=\"chartData\"></be-micro-chart-circular>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host{display:block}\n"] }]
1754
- }] });
1755
-
1756
- class MicroTileChartAreaComponent extends BaseBtTileComponent {
1757
- constructor() {
1758
- super(...arguments);
1759
- this.chartData = {
1760
- areas: [
1761
- { data: [2.5, 2.5, 2.5, 2.5], color: '#3fa45b' },
1762
- {
1763
- data: [2, 2, 2, 2],
1764
- color: '#e9730c'
1765
- },
1766
- { data: [1.5, 1.5, 1.5, 1.5], color: '#dc0d0e' }
1767
- ],
1768
- line: {
1769
- data: [
1770
- { value: 2, label: 'june 1' },
1771
- { value: 4, label: 'june 20' },
1772
- { value: 3, label: 'june 27' },
1773
- { value: 5, label: 'june 30' }
1774
- ],
1775
- suffix: 'M'
1776
- },
1777
- firstValueColor: '#3fa45b',
1778
- lastValueColor: '#dc0d0e'
1779
- };
1780
- }
1781
- }
1782
- MicroTileChartAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartAreaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1783
- MicroTileChartAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MicroTileChartAreaComponent, selector: "bt-micro-tile-chart-area", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-area\r\n [style.flex-direction]=\"double ? 'row' : 'column'\"\r\n [chartData]=\"chartData\"\r\n [size]=\"double ? 'l' : 's'\"\r\n ></be-micro-chart-area>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host{display:block}be-micro-chart-area{display:flex}\n"], dependencies: [{ kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: i2$4.MicroChartAreaComponent, selector: "be-micro-chart-area", inputs: ["size", "chartData"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1784
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartAreaComponent, decorators: [{
1785
- type: Component,
1786
- args: [{ selector: 'bt-micro-tile-chart-area', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-area\r\n [style.flex-direction]=\"double ? 'row' : 'column'\"\r\n [chartData]=\"chartData\"\r\n [size]=\"double ? 'l' : 's'\"\r\n ></be-micro-chart-area>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host{display:block}be-micro-chart-area{display:flex}\n"] }]
1787
- }] });
1788
-
1789
- class MicroTileChartBarComponent extends BaseBtTileComponent {
1790
- constructor() {
1791
- super(...arguments);
1792
- this.chartData = [
1793
- { value: 5, color: '#dc0d0e', label: 'q1' },
1794
- { value: 10, color: '#dc0d0e', label: 'q4' },
1795
- { value: 20, color: '#e9730c', label: 'q2' },
1796
- { value: 36, color: '#3fa45b', label: 'q3' }
1797
- ];
1798
- this.extraData = {
1799
- value: 1.8,
1800
- suffix: 'M'
1801
- };
1802
- }
1803
- }
1804
- MicroTileChartBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartBarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1805
- MicroTileChartBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: MicroTileChartBarComponent, selector: "bt-micro-tile-chart-bar", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-bar [data]=\"chartData\" [size]=\"double ? 'l' : 's'\" [extraData]=\"extraData\"></be-micro-chart-bar>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: i2$4.MicroChartBarComponent, selector: "be-micro-chart-bar", inputs: ["data", "size", "extraData"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1806
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: MicroTileChartBarComponent, decorators: [{
1807
- type: Component,
1808
- args: [{ selector: 'bt-micro-tile-chart-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <be-micro-chart-bar [data]=\"chartData\" [size]=\"double ? 'l' : 's'\" [extraData]=\"extraData\"></be-micro-chart-bar>\r\n </div>\r\n</bt-tile>\r\n", styles: [":host{display:block}\n"] }]
1809
- }] });
1810
-
1811
- class CreateAppGroupComponent extends BaseComponent {
1812
- constructor(fb, dialogRef, bbbPipe) {
1813
- super();
1814
- this.fb = fb;
1815
- this.dialogRef = dialogRef;
1816
- this.bbbPipe = bbbPipe;
1817
- }
1818
- ngOnInit() {
1819
- super.ngOnInit();
1820
- this.appGroupForm = this.fb.group({
1821
- title: new UntypedFormControl(this.title, [Validators.required])
1822
- });
1823
- const mandatoryFieldText = this.bbbPipe.transform('AlertFieldIsMandatory');
1824
- const titleText = this.bbbPipe.transform('Title');
1825
- this.RequiredText = mandatoryFieldText.replace('{0}', titleText);
1826
- }
1827
- onSave() {
1828
- this.submitted = true;
1829
- if (this.appGroupForm.valid) {
1830
- this.dialogRef.close(this.title);
1831
- }
1832
- }
1833
- }
1834
- CreateAppGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CreateAppGroupComponent, deps: [{ token: i1$4.UntypedFormBuilder }, { token: i1$1.DialogRef }, { token: i1.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Component });
1835
- CreateAppGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CreateAppGroupComponent, selector: "bt-create-app-group", usesInheritance: true, ngImport: i0, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ dialogRef.data.title }}</h1>\r\n <button fd-dialog-close-button (click)=\"dialogRef.dismiss()\"></button>\r\n </fd-dialog-header>\r\n\r\n <fd-dialog-body>\r\n <div fd-form-item [formGroup]=\"appGroupForm\">\r\n <label fd-form-label [required]=\"true\"> {{ 'Title' | bbbTranslate }}</label>\r\n <fd-form-input-message-group>\r\n <fd-input-group\r\n class=\"form-control\"\r\n formControlName=\"title\"\r\n form-control\r\n [button]=\"true\"\r\n [(ngModel)]=\"title\"\r\n [state]=\"submitted && appGroupForm.controls.title.errors ? 'error' : 'information'\"\r\n >\r\n </fd-input-group>\r\n <fd-form-message *ngIf=\"submitted && appGroupForm.controls.title.errors\" type=\"error\">\r\n {{ RequiredText }}\r\n </fd-form-message>\r\n </fd-form-input-message-group>\r\n </div>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-button-bar [label]=\"'Save' | bbbTranslate\" fdType=\"emphasized\" (click)=\"onSave()\"> </fd-button-bar>\r\n <fd-button-bar\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n fdInitialFocus\r\n fdType=\"transparent\"\r\n (click)=\"this.dialogRef.dismiss()\"\r\n >\r\n </fd-button-bar>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i5$2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i6$1.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i6$1.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i6$1.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: i6$1.FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "isOpen"], outputs: ["isOpenChange"] }, { kind: "component", type: i7.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i8$1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i8$1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8$1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i8$1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i8$1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "component", type: i9.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i10$1.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1836
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CreateAppGroupComponent, decorators: [{
1837
- type: Component,
1838
- args: [{ selector: 'bt-create-app-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ dialogRef.data.title }}</h1>\r\n <button fd-dialog-close-button (click)=\"dialogRef.dismiss()\"></button>\r\n </fd-dialog-header>\r\n\r\n <fd-dialog-body>\r\n <div fd-form-item [formGroup]=\"appGroupForm\">\r\n <label fd-form-label [required]=\"true\"> {{ 'Title' | bbbTranslate }}</label>\r\n <fd-form-input-message-group>\r\n <fd-input-group\r\n class=\"form-control\"\r\n formControlName=\"title\"\r\n form-control\r\n [button]=\"true\"\r\n [(ngModel)]=\"title\"\r\n [state]=\"submitted && appGroupForm.controls.title.errors ? 'error' : 'information'\"\r\n >\r\n </fd-input-group>\r\n <fd-form-message *ngIf=\"submitted && appGroupForm.controls.title.errors\" type=\"error\">\r\n {{ RequiredText }}\r\n </fd-form-message>\r\n </fd-form-input-message-group>\r\n </div>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <fd-button-bar [label]=\"'Save' | bbbTranslate\" fdType=\"emphasized\" (click)=\"onSave()\"> </fd-button-bar>\r\n <fd-button-bar\r\n [label]=\"'Cancel' | bbbTranslate\"\r\n fdInitialFocus\r\n fdType=\"transparent\"\r\n (click)=\"this.dialogRef.dismiss()\"\r\n >\r\n </fd-button-bar>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n" }]
1839
- }], ctorParameters: function () { return [{ type: i1$4.UntypedFormBuilder }, { type: i1$1.DialogRef }, { type: i1.BbbTranslatePipe }]; } });
1840
-
1841
- class PinTileComponent extends BaseComponent {
1842
- constructor(_dialogService, _dialogRef, bbbPipe) {
1843
- super();
1844
- this._dialogService = _dialogService;
1845
- this._dialogRef = _dialogRef;
1846
- this.bbbPipe = bbbPipe;
1847
- this.newGroupText = BarsaApi.LoginFormData.IsRtl
1848
- ? this.bbbPipe.transform('Groups') + ' ' + this.bbbPipe.transform('New')
1849
- : this.bbbPipe.transform('New') + ' ' + this.bbbPipe.transform('Groups');
1850
- this.app = _dialogRef.data.app;
1851
- this.appTileGroups = _dialogRef.data.appTileGroups;
1852
- this.pinnedAppInTileGroups = _dialogRef.data.pinnedAppInTileGroups;
1853
- }
1854
- ngOnInit() {
1855
- this._setLoading(true);
1856
- const tileGroupsId = this.pinnedAppInTileGroups[this.app.Id];
1857
- this.appTileGroups.forEach((appGroup) => {
1858
- this._setDefaultPinTile(appGroup, tileGroupsId);
1859
- });
1860
- this._setLoading(false);
1861
- }
1862
- onAccept() {
1863
- const appTileGroupsPin = [];
1864
- this.appTileGroups.forEach((group) => {
1865
- this._getChangedPinTileGroups(group, appTileGroupsPin);
1866
- });
1867
- this._close({ appTileGroupsPin, app: this.app });
1868
- }
1869
- onClose() {
1870
- this._close();
1871
- }
1872
- onNewGroup() {
1873
- this.newGroupDialogRef = this._dialogService.open(CreateAppGroupComponent, {
1874
- data: { title: this.newGroupText },
1875
- verticalPadding: true,
1876
- mobile: this.mobile,
1877
- responsivePadding: true
1878
- });
1879
- this.newGroupDialogRef.afterClosed.subscribe(() => {
1880
- // if (result) {
1881
- // this.dialogRef.loading(true);
1882
- // this.tilesService
1883
- // .createAppGroup(result)
1884
- // .pipe(
1885
- // takeUntil(this._onDestroy$),
1886
- // finalize(() => {
1887
- // this.dialogRef.loading(false);
1888
- // })
1889
- // )
1890
- // .subscribe();
1891
- // }
1892
- });
1893
- }
1894
- _setLoading(loading) {
1895
- this._dialogRef.loading(loading);
1896
- }
1897
- _setDefaultPinTile(appTileGroup, tileGroupsId) {
1898
- var _a, _b;
1899
- appTileGroup.$PinTile = appTileGroup.$DefaultPinTile =
1900
- tileGroupsId.includes(appTileGroup.Id) || tileGroupsId.includes((_a = appTileGroup.UserAppTileGroupSetting) === null || _a === void 0 ? void 0 : _a.Id);
1901
- (_b = appTileGroup.$Children) === null || _b === void 0 ? void 0 : _b.forEach((subGroup) => {
1902
- this._setDefaultPinTile(subGroup, tileGroupsId);
1903
- });
1904
- appTileGroup.$Disabledpin = false;
1905
- }
1906
- _getChangedPinTileGroups(appTileGroup, appTileGroupsPin) {
1907
- var _a;
1908
- if (appTileGroup.$PinTile && !appTileGroup.$DefaultPinTile) {
1909
- // Add
1910
- appTileGroupsPin.push({ appTileGroup, visible: true });
1911
- }
1912
- else if (appTileGroup.$PinTile === false && appTileGroup.$DefaultPinTile) {
1913
- // Remove
1914
- appTileGroupsPin.push({ appTileGroup, visible: false });
1915
- }
1916
- (_a = appTileGroup.$Children) === null || _a === void 0 ? void 0 : _a.forEach((subGroup) => {
1917
- this._getChangedPinTileGroups(subGroup, appTileGroupsPin);
1918
- });
1919
- }
1920
- _close(result) {
1921
- this._dialogRef.close(result);
1922
- }
1923
- }
1924
- PinTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PinTileComponent, deps: [{ token: i1$1.DialogService }, { token: i1$1.DialogRef }, { token: i1.BbbTranslatePipe }], target: i0.ɵɵFactoryTarget.Component });
1925
- PinTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PinTileComponent, 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 <ng-container *ngFor=\"let appTileGroup of appTileGroups\">\r\n <li *ngIf=\"!appTileGroup.$Disabledpin\" 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 <ng-container *ngFor=\"let subGroup of appTileGroup.$Children\">\r\n <li *ngIf=\"!subGroup.$Disabledpin\" 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 </ng-container>\r\n </ng-container>\r\n </ul>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdTemplate=\"footer\">\r\n <div fd-bar-left></div>\r\n <div fd-bar-right>\r\n <fd-button-bar fd-initial-focus fdType=\"emphasized\" [label]=\"'OK' | bbbTranslate\" (click)=\"onAccept()\">\r\n </fd-button-bar>\r\n <fd-button-bar\r\n fd-initial-focus\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$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5$2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i5$2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i5$2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i6$3.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i4$1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4$1.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i4$1.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i8$1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i8$1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8$1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i8$1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i9.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i10$1.TemplateDirective, selector: "[fdTemplate]", inputs: ["fdTemplate"] }, { kind: "directive", type: i10$1.InitialFocusDirective, selector: "[fdInitialFocus], [fd-initial-focus]", inputs: ["fd-initial-focus", "enabled", "focusLastElement"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1926
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PinTileComponent, decorators: [{
1927
- type: Component,
1928
- args: [{ selector: 'bt-pin-tile', changeDetection: ChangeDetectionStrategy.OnPush, 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 <ng-container *ngFor=\"let appTileGroup of appTileGroups\">\r\n <li *ngIf=\"!appTileGroup.$Disabledpin\" 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 <ng-container *ngFor=\"let subGroup of appTileGroup.$Children\">\r\n <li *ngIf=\"!subGroup.$Disabledpin\" 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 </ng-container>\r\n </ng-container>\r\n </ul>\r\n </fd-dialog-body>\r\n\r\n <fd-dialog-footer>\r\n <ng-template fdTemplate=\"footer\">\r\n <div fd-bar-left></div>\r\n <div fd-bar-right>\r\n <fd-button-bar fd-initial-focus fdType=\"emphasized\" [label]=\"'OK' | bbbTranslate\" (click)=\"onAccept()\">\r\n </fd-button-bar>\r\n <fd-button-bar\r\n fd-initial-focus\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"] }]
1929
- }], ctorParameters: function () { return [{ type: i1$1.DialogService }, { type: i1$1.DialogRef }, { type: i1.BbbTranslatePipe }]; }, propDecorators: { app: [{
1930
- type: Input
1931
- }], appTileGroups: [{
1932
- type: Input
1933
- }], mobile: [{
1934
- type: Input
1935
- }], pin: [{
1936
- type: Input
1937
- }] } });
1938
-
1939
- class AppFinderService {
1940
- constructor(_portalService, _tileService) {
1941
- this._portalService = _portalService;
1942
- this._tileService = _tileService;
1943
- this._appGroupsSource = new BehaviorSubject([]);
1944
- this._OnDestroy$ = new Subject();
1945
- this._selectedAppGroupIdSource = new Subject();
1946
- this._pinnedAppInAppTileGroupsSource = new BehaviorSubject({});
1947
- this.loadAppGroups();
1948
- this.deviceSize$ = this._tileService.deviceSize$;
1949
- this.pinnedAppInAppTileGroups$ = this._pinnedAppInAppTileGroupsSource.asObservable();
1950
- this.appGroups$ = this._appGroupsSource.asObservable();
1951
- this.selectedAppGroupId$ = this._selectedAppGroupIdSource.asObservable().pipe(distinctUntilChanged());
1952
- this.selectedAppGroup$ = combineLatest([this.appGroups$, this.selectedAppGroupId$]).pipe(map(([moDataList, selectedId]) => moDataList === null || moDataList === void 0 ? void 0 : moDataList.find((c) => c.Id === selectedId)));
1953
- }
1954
- get deviceSize() {
1955
- return this._portalService.deviceSize;
1956
- }
1957
- get appTileGroups() {
1958
- var _a;
1959
- return (_a = this._tileService.appTileGroups) === null || _a === void 0 ? void 0 : _a.MoDataList;
1960
- }
1961
- ngOnDestroy() {
1962
- this._OnDestroy$.next();
1963
- }
1964
- loadAppGroups() {
1965
- this._portalService
1966
- .ReportExecute('UserAppGroups')
1967
- .subscribe((allApps) => this._nextAllApps(allApps.MoDataList));
1968
- }
1969
- selectAppGroup(appGroupId) {
1970
- const appGroups = this._appGroupsSource.getValue();
1971
- const group = appGroups.find((c) => c.Id === appGroupId);
1972
- if (group) {
1973
- this._selectedAppGroupIdSource.next(appGroupId);
1974
- this.loadAppsByAppGroup(appGroups, group);
1975
- }
1976
- }
1977
- loadAppsByAppGroup(appGroups, appGroup) {
1978
- var _a;
1979
- if (appGroup.Apps) {
1980
- return;
1981
- }
1982
- const reportWrapper = BarsaApi.Bw.RunBlMethod('LoadAppsByAppGroup', appGroup.Id);
1983
- const moForReport = reportWrapper.Unwrap();
1984
- appGroup.Apps = (_a = appGroup.Apps) !== null && _a !== void 0 ? _a : [];
1985
- const apps = moForReport.MoDataList;
1986
- if (apps.length > 0) {
1987
- const customColumns = Object.keys(apps[0]).filter((c) => c.indexOf('$Caption') > -1 && !c.startsWith('$'));
1988
- apps.forEach((app) => {
1989
- customColumns.forEach((column) => {
1990
- app.$HasPinned = app.$HasPinned || Number(app[column.split('$Caption')[0]]);
1991
- });
1992
- });
1993
- }
1994
- appGroup.Apps = [...appGroup.Apps, ...apps];
1995
- this._nextAllApps(appGroups);
1996
- }
1997
- loadPinnedAppInTileGroups(app) {
1998
- var _a;
1999
- const appId = app.Id;
2000
- const val = this._pinnedAppInAppTileGroupsSource.getValue();
2001
- if (val[appId]) {
2002
- return val;
2003
- }
2004
- const reportWrapper = BarsaApi.Bw.RunBlMethod('PinnedAppInTileGroups', appId);
2005
- const moForReport = reportWrapper.Unwrap();
2006
- val[appId] = (_a = val[appId]) !== null && _a !== void 0 ? _a : [];
2007
- const apps = moForReport.MoDataList;
2008
- if (apps.length > 0) {
2009
- apps.forEach((itemApp) => {
2010
- var _a;
2011
- const predefined = itemApp.Id.Id;
2012
- const userSetting = (_a = itemApp.UserAppTileGroupSetting) === null || _a === void 0 ? void 0 : _a.Id;
2013
- if (predefined) {
2014
- val[appId] = [...val[appId], predefined];
2015
- }
2016
- if (userSetting) {
2017
- val[appId] = [...val[appId], userSetting];
2018
- }
2019
- });
2020
- }
2021
- this._pinnedAppInAppTileGroupsSource.next(val);
2022
- return val;
2023
- }
2024
- pinTileChanged(appTileGroups, app, callback) {
2025
- this._tileService.pinTileChanged(appTileGroups, app, (settings) => {
2026
- const val = this._pinnedAppInAppTileGroupsSource.getValue();
2027
- const appId = app.Id;
2028
- for (let i = 0; i < appTileGroups.length; i++) {
2029
- const appTileSetting = settings[i];
2030
- const appTileGroupSettingId = appTileSetting.UserAppTileGroupSettingId;
2031
- const appTileGroupId = appTileSetting.AppTileGroupId;
2032
- if (appTileGroups[i].visible) {
2033
- val[appId] = [...val[appId], appTileGroupSettingId, appTileGroupId];
2034
- }
2035
- else {
2036
- val[appId] = val[appId].filter((c) => c !== appTileGroupSettingId && c !== appTileGroupId);
2037
- }
2038
- }
2039
- this._pinnedAppInAppTileGroupsSource.next(Object.assign({}, val));
2040
- callback();
2041
- });
2042
- }
2043
- _nextAllApps(appGroups) {
2044
- const newAppGroups = appGroups !== null && appGroups !== void 0 ? appGroups : this._appGroupsSource.getValue();
2045
- this._appGroupsSource.next([...newAppGroups]);
2046
- }
2047
- }
2048
- AppFinderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AppFinderService, deps: [{ token: i1.PortalService }, { token: TilesService }], target: i0.ɵɵFactoryTarget.Injectable });
2049
- AppFinderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AppFinderService, providedIn: 'root' });
2050
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AppFinderService, decorators: [{
2051
- type: Injectable,
2052
- args: [{
2053
- providedIn: 'root'
2054
- }]
2055
- }], ctorParameters: function () { return [{ type: i1.PortalService }, { type: TilesService }]; } });
2056
-
2057
- class FormAppFinderComponent extends BaseComponent {
2058
- constructor(_cdr, _dialogService, _appFinderService, _el, _contentDensityService) {
2059
- super();
2060
- this._cdr = _cdr;
2061
- this._dialogService = _dialogService;
2062
- this._appFinderService = _appFinderService;
2063
- this._el = _el;
2064
- this.isAllSelected = true;
2065
- this.contentDensity$ = _contentDensityService.contentDensity.asObservable();
2066
- this.appGroups$ = this._appFinderService.appGroups$;
2067
- this.selectedAppGroup$ = this._appFinderService.selectedAppGroup$;
2068
- this.selectedAppGroupId$ = this._appFinderService.selectedAppGroupId$;
2069
- this.deviceSize$ = this._appFinderService.deviceSize$;
2070
- this.pinnedAppInAppTileGroups$ = this._appFinderService.pinnedAppInAppTileGroups$;
2071
- this.mobile$ = this.deviceSize$.pipe(map((c) => c === 's'));
2072
- }
2073
- ngOnInit() {
2074
- super.ngOnInit();
2075
- this.contentHeight = 'calc(' + this._el.nativeElement.offsetHeight + 'px - 2.75rem)';
2076
- this.sideContentSize$ = this.deviceSize$.pipe(takeUntil(this._onDestroy$), map((deviceSize) => {
2077
- switch (deviceSize) {
2078
- case 's':
2079
- return 'sm';
2080
- case 'm':
2081
- return 'md';
2082
- case 'l':
2083
- return 'lg';
2084
- case 'xl':
2085
- return 'xl';
2086
- default:
2087
- return 'l';
2088
- }
2089
- }));
2090
- }
2091
- onSelectedAppGroupChange(appGroupId) {
2092
- this._changeGroup(appGroupId);
2093
- }
2094
- onPinClick(app) {
2095
- const pinnedAppInTileGroups = this._appFinderService.loadPinnedAppInTileGroups(app);
2096
- const appTileGroups = this._appFinderService.appTileGroups;
2097
- const deviceSize = this._appFinderService.deviceSize;
2098
- const mobile = deviceSize === 's';
2099
- this._dialogService
2100
- .open(PinTileComponent, {
2101
- data: { app, pinnedAppInTileGroups, appTileGroups },
2102
- minWidth: '350px',
2103
- minHeight: '420px',
2104
- draggable: false,
2105
- mobile,
2106
- resizable: false,
2107
- verticalPadding: false,
2108
- backdropClickCloseable: false
2109
- })
2110
- .afterClosed.subscribe((result) => {
2111
- this._appTileGroupsPinChange(result);
2112
- });
2113
- }
2114
- onRefresh() { }
2115
- _appTileGroupsPinChange(result) {
2116
- return __awaiter(this, void 0, void 0, function* () {
2117
- try {
2118
- // Will try to ask for permission
2119
- this._appFinderService.pinTileChanged(result.appTileGroupsPin, result.app, () => {
2120
- this._cdr.detectChanges();
2121
- });
2122
- }
2123
- catch (err) {
2124
- // show msg error
2125
- }
2126
- finally {
2127
- // show toast successful
2128
- }
2129
- });
2130
- }
2131
- _changeGroup(appGroupId) {
2132
- this.isAllSelected = false;
2133
- this._appFinderService.selectAppGroup(appGroupId);
2134
- this._cdr.detectChanges();
2135
- }
2136
- }
2137
- FormAppFinderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FormAppFinderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.DialogService }, { token: AppFinderService }, { token: i0.ElementRef }, { token: i1$1.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component });
2138
- FormAppFinderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FormAppFinderComponent, selector: "bt-form-app-finder", usesInheritance: true, ngImport: i0, template: "<bt-app-finder\r\n [appGroups]=\"(appGroups$ | async)!!\"\r\n [selectedAppGroupId]=\"(selectedAppGroupId$ | async)!!\"\r\n [selectedAppGroup]=\"(selectedAppGroup$ | async)!!\"\r\n [mobile]=\"(mobile$ | async)!!\"\r\n [sideContentSize]=\"(sideContentSize$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async) ?? 'compact'\"\r\n [pinnedAppInAppTileGroups]=\"(pinnedAppInAppTileGroups$ | async)!!\"\r\n [contentHeight]=\"contentHeight\"\r\n (selectedAppGroupIdChange)=\"onSelectedAppGroupChange($event)\"\r\n (pinClick)=\"onPinClick($event)\"\r\n>\r\n</bt-app-finder>\r\n", styles: [":host{display:block;min-height:100vh}\n"], dependencies: [{ kind: "directive", type: i1.MobileDirective, selector: "[mobile]" }, { kind: "component", type: AppFinderComponent, selector: "bt-app-finder", inputs: ["appGroups", "deviceSize", "sideContentSize", "selectedAppGroup", "selectedAppGroupId", "mobile", "contentDensity", "contentHeight", "pinnedAppInAppTileGroups"], outputs: ["pinClick", "selectedAppGroupIdChange"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FormAppFinderComponent, decorators: [{
2140
- type: Component,
2141
- args: [{ selector: 'bt-form-app-finder', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-app-finder\r\n [appGroups]=\"(appGroups$ | async)!!\"\r\n [selectedAppGroupId]=\"(selectedAppGroupId$ | async)!!\"\r\n [selectedAppGroup]=\"(selectedAppGroup$ | async)!!\"\r\n [mobile]=\"(mobile$ | async)!!\"\r\n [sideContentSize]=\"(sideContentSize$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async) ?? 'compact'\"\r\n [pinnedAppInAppTileGroups]=\"(pinnedAppInAppTileGroups$ | async)!!\"\r\n [contentHeight]=\"contentHeight\"\r\n (selectedAppGroupIdChange)=\"onSelectedAppGroupChange($event)\"\r\n (pinClick)=\"onPinClick($event)\"\r\n>\r\n</bt-app-finder>\r\n", styles: [":host{display:block;min-height:100vh}\n"] }]
2142
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.DialogService }, { type: AppFinderService }, { type: i0.ElementRef }, { type: i1$1.ContentDensityService }]; } });
2143
-
2144
- class FooterEditTileComponent extends BaseComponent {
2145
- }
2146
- FooterEditTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FooterEditTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2147
- FooterEditTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FooterEditTileComponent, selector: "bt-footer-edit-tile", usesInheritance: true, ngImport: i0, template: "<button fd-button [glyph]=\"'pushpin-off'\" fdType=\"\"></button>\r\n", styles: [":host{border-top:1px solid #ccc;padding-bottom:5px}\n"], dependencies: [{ kind: "component", type: i2$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FooterEditTileComponent, decorators: [{
2149
- type: Component,
2150
- args: [{ selector: 'bt-footer-edit-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button fd-button [glyph]=\"'pushpin-off'\" fdType=\"\"></button>\r\n", styles: [":host{border-top:1px solid #ccc;padding-bottom:5px}\n"] }]
2151
- }] });
2152
-
2153
- class NumericTileComponent extends BaseBtTileComponent {
2154
- get launchIcon() {
2155
- return this.settings.LaunchIcon;
2156
- }
2157
- get kpiState() {
2158
- return this.settings.ContentKpiState;
2159
- }
2160
- get kpi() {
2161
- return this.settings.ContentKpi;
2162
- }
2163
- get scaleState() {
2164
- return this.settings.ScaleState;
2165
- }
2166
- get scaleText() {
2167
- return this.settings.ScaleText;
2168
- }
2169
- get scaleArrowIcon() {
2170
- return this.settings.ScaleArrowIcon;
2171
- }
2172
- }
2173
- NumericTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NumericTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2174
- NumericTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: NumericTileComponent, selector: "bt-numeric-tile", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <div fd-numeric-content>\r\n <div fd-numeric-content-launch-icon-container>\r\n <i fd-numeric-content-launch-icon [glyph]=\"launchIcon\" [class]=\"launchIcon | sapFontClass\"></i>\r\n </div>\r\n <div fd-numeric-content-kpi-container>\r\n <div fd-numeric-content-kpi [state]=\"kpiState\">{{ kpi }}</div>\r\n </div>\r\n <div fd-numeric-content-scale-container style=\"padding-top: 0.2rem\">\r\n <div fd-numeric-content-scale [state]=\"scaleState\">\r\n <span\r\n fd-numeric-content-scale-arrow\r\n [glyph]=\"scaleArrowIcon\"\r\n [class]=\"scaleArrowIcon | sapFontClass\"\r\n ></span>\r\n <span fd-numeric-content-scale-text>{{ scaleText }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</bt-tile>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "directive", type: i1$3.NumericContentDirective, selector: "[fd-numeric-content]", inputs: ["class", "size"] }, { kind: "directive", type: i1$3.NumericContentKpiContainerDirective, selector: "[fd-numeric-content-kpi-container]" }, { kind: "directive", type: i1$3.NumericContentKpiDirective, selector: "[fd-numeric-content-kpi]", inputs: ["state", "class", "glyph"] }, { kind: "directive", type: i1$3.NumericContentLaunchIconContainerDirective, selector: "[fd-numeric-content-launch-icon-container]" }, { kind: "directive", type: i1$3.NumericContentLaunchIconDirective, selector: "[fd-numeric-content-launch-icon]", inputs: ["class", "glyph"] }, { kind: "directive", type: i1$3.NumericContentScaleArrowDirective, selector: "[fd-numeric-content-scale-arrow]", inputs: ["class", "glyph"] }, { kind: "directive", type: i1$3.NumericContentScaleContainerDirective, selector: "[fd-numeric-content-scale-container]" }, { kind: "directive", type: i1$3.NumericContentScaleDirective, selector: "[fd-numeric-content-scale]", inputs: ["state", "class"] }, { kind: "directive", type: i1$3.NumericContentScaleTextDirective, selector: "[fd-numeric-content-scale-text]" }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: i5.SapFontClassPipe, name: "sapFontClass" }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NumericTileComponent, decorators: [{
2176
- type: Component,
2177
- args: [{ selector: 'bt-numeric-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <div fd-numeric-content>\r\n <div fd-numeric-content-launch-icon-container>\r\n <i fd-numeric-content-launch-icon [glyph]=\"launchIcon\" [class]=\"launchIcon | sapFontClass\"></i>\r\n </div>\r\n <div fd-numeric-content-kpi-container>\r\n <div fd-numeric-content-kpi [state]=\"kpiState\">{{ kpi }}</div>\r\n </div>\r\n <div fd-numeric-content-scale-container style=\"padding-top: 0.2rem\">\r\n <div fd-numeric-content-scale [state]=\"scaleState\">\r\n <span\r\n fd-numeric-content-scale-arrow\r\n [glyph]=\"scaleArrowIcon\"\r\n [class]=\"scaleArrowIcon | sapFontClass\"\r\n ></span>\r\n <span fd-numeric-content-scale-text>{{ scaleText }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</bt-tile>\r\n" }]
2178
- }] });
2179
-
2180
- class LogoTileComponent extends BaseBtTileComponent {
2181
- get fileId() {
2182
- var _a, _b;
2183
- let fileId = (_a = this.settings.Logo) === null || _a === void 0 ? void 0 : _a.FileId;
2184
- if (!fileId) {
2185
- fileId = (_b = this.settings.CalcLogo) === null || _b === void 0 ? void 0 : _b.FileId;
2186
- }
2187
- return fileId;
2188
- }
2189
- }
2190
- LogoTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LogoTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2191
- LogoTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LogoTileComponent, selector: "bt-logo-tile", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n>\r\n <div fd-tile-content>\r\n <img fd-tile-logo [src]=\"fileId | picFieldSrc: 'GetPictureFromFileInfo':null\" />\r\n </div>\r\n</bt-tile>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "directive", type: i1$3.TileLogoDirective, selector: "[fdTileLogo], [fd-tile-logo]" }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LogoTileComponent, decorators: [{
2193
- type: Component,
2194
- args: [{ selector: 'bt-logo-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n>\r\n <div fd-tile-content>\r\n <img fd-tile-logo [src]=\"fileId | picFieldSrc: 'GetPictureFromFileInfo':null\" />\r\n </div>\r\n</bt-tile>\r\n" }]
2195
- }] });
2196
-
2197
- class FeedTileComponent extends BaseBtTileComponent {
2198
- get twoColumn() {
2199
- return this.settings.TwoColumn;
2200
- }
2201
- get text() {
2202
- return this.settings.ContentText;
2203
- }
2204
- get byline() {
2205
- return this.settings.ContentByLine;
2206
- }
2207
- get kpi() {
2208
- return this.settings.ContentKpi;
2209
- }
2210
- get state() {
2211
- return this.settings.State;
2212
- }
2213
- }
2214
- FeedTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FeedTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2215
- FeedTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FeedTileComponent, selector: "bt-feed-tile", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'feed'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content [twoColumn]=\"twoColumn\">\r\n <ng-container *ngIf=\"twoColumn; else oneColumn\">\r\n <div fd-tile-section>\r\n <div fd-tile-content-text>{{ text | bbbTranslate }}</div>\r\n <div fd-tile-content-byline>{{ byline }}</div>\r\n </div>\r\n <div fd-tile-section>\r\n <div fd-numeric-content>\r\n <div fd-numeric-content-kpi-container>\r\n <div fd-numeric-content-kpi [state]=\"state\">{{ kpi }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-template #oneColumn>\r\n <div fd-numeric-content>\r\n <div fd-numeric-content-kpi-container>\r\n <div fd-numeric-content-kpi [state]=\"state\">{{ kpi }}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</bt-tile>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "directive", type: i1$3.TileSectionDirective, selector: "[fdTileSection], [fd-tile-section]" }, { kind: "directive", type: i1$3.TileContentBylineDirective, selector: "[fdTileContentByline], [fd-tile-content-byline]" }, { kind: "directive", type: i1$3.TileContentTextDirective, selector: "[fdTileContentText], [fd-tile-content-text]" }, { kind: "directive", type: i1$3.NumericContentDirective, selector: "[fd-numeric-content]", inputs: ["class", "size"] }, { kind: "directive", type: i1$3.NumericContentKpiContainerDirective, selector: "[fd-numeric-content-kpi-container]" }, { kind: "directive", type: i1$3.NumericContentKpiDirective, selector: "[fd-numeric-content-kpi]", inputs: ["state", "class", "glyph"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FeedTileComponent, decorators: [{
2217
- type: Component,
2218
- args: [{ selector: 'bt-feed-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'feed'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content [twoColumn]=\"twoColumn\">\r\n <ng-container *ngIf=\"twoColumn; else oneColumn\">\r\n <div fd-tile-section>\r\n <div fd-tile-content-text>{{ text | bbbTranslate }}</div>\r\n <div fd-tile-content-byline>{{ byline }}</div>\r\n </div>\r\n <div fd-tile-section>\r\n <div fd-numeric-content>\r\n <div fd-numeric-content-kpi-container>\r\n <div fd-numeric-content-kpi [state]=\"state\">{{ kpi }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-template #oneColumn>\r\n <div fd-numeric-content>\r\n <div fd-numeric-content-kpi-container>\r\n <div fd-numeric-content-kpi [state]=\"state\">{{ kpi }}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</bt-tile>\r\n" }]
2219
- }] });
2220
-
2221
- class SimpleTileComponent extends BaseBtTileComponent {
2222
- ngOnInit() {
2223
- super.ngOnInit();
2224
- this.icon = this.settings.Icon;
2225
- this.iconColor = this.settings.IconColor;
2226
- }
2227
- }
2228
- SimpleTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SimpleTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2229
- SimpleTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: SimpleTileComponent, selector: "bt-simple-tile", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <fd-icon *ngIf=\"icon\" [glyph]=\"icon\" [font]=\"icon | sapFont\" [style.color]=\"iconColor\"></fd-icon>\r\n </div>\r\n</bt-tile>\r\n", styles: ["::ng-deep .fd-tile--launch .fd-tile__content{align-items:normal!important}fd-icon{font-size:3rem}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: i5.SapFontPipe, name: "sapFont" }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SimpleTileComponent, decorators: [{
2231
- type: Component,
2232
- args: [{ selector: 'bt-simple-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <fd-icon *ngIf=\"icon\" [glyph]=\"icon\" [font]=\"icon | sapFont\" [style.color]=\"iconColor\"></fd-icon>\r\n </div>\r\n</bt-tile>\r\n", styles: ["::ng-deep .fd-tile--launch .fd-tile__content{align-items:normal!important}fd-icon{font-size:3rem}\n"] }]
2233
- }] });
2234
-
2235
- class ProfileTileComponent extends BaseBtTileComponent {
2236
- get fileId() {
2237
- var _a;
2238
- let fileId = (_a = this.settings.Image) === null || _a === void 0 ? void 0 : _a.FileId;
2239
- if (!fileId) {
2240
- fileId = this.settings.CalcImage;
2241
- }
2242
- return fileId;
2243
- }
2244
- }
2245
- ProfileTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2246
- ProfileTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ProfileTileComponent, selector: "bt-profile-tile", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <span\r\n *ngIf=\"fileId; else showIcon\"\r\n class=\"profile\"\r\n fd-tile-profile-img\r\n [backgroundImage]=\"fileId | picFieldSrc: 'GetPictureFromFileInfo':null\"\r\n ></span>\r\n <ng-template #showIcon>\r\n <fd-icon\r\n *ngIf=\"settings.Icon; else avatar\"\r\n [font]=\"settings.Icon | sapFont\"\r\n fd-tile-profile-img\r\n style=\"font-size: 2rem\"\r\n [glyph]=\"settings.Icon\"\r\n ></fd-icon>\r\n </ng-template>\r\n <ng-template #avatar>\r\n <fd-icon font=\"SAP-icons-TNT\" fd-tile-profile-img style=\"font-size: 2rem\" glyph=\"user\"></fd-icon>\r\n </ng-template>\r\n </div>\r\n</bt-tile>\r\n", styles: [".profile{background-size:contain;background-repeat:no-repeat}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i1$3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "directive", type: i1$3.TileProfileImgDirective, selector: "[fdTileProfileImg], [fd-tile-profile-img]", inputs: ["id", "ariaLabel", "ariaLabelledby", "backgroundImage"] }, { kind: "component", type: TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i5.SapFontPipe, name: "sapFont" }, { kind: "pipe", type: TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileTileComponent, decorators: [{
2248
- type: Component,
2249
- args: [{ selector: 'bt-profile-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <span\r\n *ngIf=\"fileId; else showIcon\"\r\n class=\"profile\"\r\n fd-tile-profile-img\r\n [backgroundImage]=\"fileId | picFieldSrc: 'GetPictureFromFileInfo':null\"\r\n ></span>\r\n <ng-template #showIcon>\r\n <fd-icon\r\n *ngIf=\"settings.Icon; else avatar\"\r\n [font]=\"settings.Icon | sapFont\"\r\n fd-tile-profile-img\r\n style=\"font-size: 2rem\"\r\n [glyph]=\"settings.Icon\"\r\n ></fd-icon>\r\n </ng-template>\r\n <ng-template #avatar>\r\n <fd-icon font=\"SAP-icons-TNT\" fd-tile-profile-img style=\"font-size: 2rem\" glyph=\"user\"></fd-icon>\r\n </ng-template>\r\n </div>\r\n</bt-tile>\r\n", styles: [".profile{background-size:contain;background-repeat:no-repeat}\n"] }]
2250
- }] });
2251
-
2252
- class NotificationGroupHeaderComponent extends BaseComponent {
2253
- constructor(_cdr) {
2254
- super();
2255
- this._cdr = _cdr;
2256
- this.unreadCount = 0;
2257
- }
2258
- ngOnInit() {
2259
- super.ngOnInit();
2260
- this.setUnreadCount(this.notifications);
2261
- }
2262
- ngOnChanges(changes) {
2263
- super.ngOnChanges(changes);
2264
- const { notifications } = changes;
2265
- if (notifications && !notifications.firstChange) {
2266
- this.setUnreadCount(notifications.currentValue);
2267
- this._cdr.detectChanges();
2268
- }
2269
- }
2270
- setUnreadCount(notifications) {
2271
- this.unreadCount = notifications.filter((c) => c.Unread).length;
2272
- }
2273
- }
2274
- NotificationGroupHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NotificationGroupHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2275
- NotificationGroupHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: NotificationGroupHeaderComponent, selector: "bt-notification-group-header", inputs: { notifications: "notifications", title: "title" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<h2 fd-notification-title [unread]=\"false\">\r\n {{ title | bbbTranslate }} ({{ notifications.length }})\r\n <strong *ngIf=\"unreadCount !== 0\">{{ 'New' | bbbTranslate }} ({{ unreadCount }})</strong>\r\n</h2>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$2.NotificationTitleDirective, selector: "[fdNotificationTitle], [fd-notification-title]", inputs: ["unread"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NotificationGroupHeaderComponent, decorators: [{
2277
- type: Component,
2278
- args: [{ selector: 'bt-notification-group-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<h2 fd-notification-title [unread]=\"false\">\r\n {{ title | bbbTranslate }} ({{ notifications.length }})\r\n <strong *ngIf=\"unreadCount !== 0\">{{ 'New' | bbbTranslate }} ({{ unreadCount }})</strong>\r\n</h2>\r\n" }]
2279
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { notifications: [{
2280
- type: Input
2281
- }], title: [{
2282
- type: Input
2283
- }] } });
2284
-
2285
- class NotificationGroupComponent extends BaseComponent {
2286
- constructor(_groupByPipe, _cdr) {
2287
- super();
2288
- this._groupByPipe = _groupByPipe;
2289
- this._cdr = _cdr;
2290
- this._deviceSize = '';
2291
- this.viewed = new EventEmitter();
2292
- this.remove = new EventEmitter();
2293
- this.actionClick = new EventEmitter();
2294
- this.show = new EventEmitter();
2295
- this.loadMore = new EventEmitter();
2296
- this.expanded = {};
2297
- this.tabList = [
2298
- { title: 'By Date', groupByItems: [] },
2299
- { title: 'By Type', groupByItems: [] },
2300
- { title: 'By Priority', groupByItems: [] }
2301
- ];
2302
- this.viewedNotifications = [];
2303
- }
2304
- ngOnInit() {
2305
- super.ngOnInit();
2306
- this._deviceSize = this.deviceSize;
2307
- this.applyGroupByItems(this.notifications);
2308
- }
2309
- ngOnChanges(changes) {
2310
- super.ngOnChanges(changes);
2311
- const { notifications } = changes;
2312
- if (notifications && !notifications.firstChange) {
2313
- this.applyGroupByItems(notifications.currentValue);
2314
- this._cdr.detectChanges();
2315
- }
2316
- }
2317
- applyGroupByItems(notifications) {
2318
- if (!(notifications === null || notifications === void 0 ? void 0 : notifications.length)) {
2319
- return;
2320
- }
2321
- this.tabList[0].groupByItems = this._groupByPipe.transform(notifications, 'CreationDate');
2322
- this.tabList[1].groupByItems = this._groupByPipe.transform(notifications, 'Subject');
2323
- this.tabList[2].groupByItems = this._groupByPipe.transform(notifications, 'Priority');
2324
- for (let i = 0; i < this.tabList.length; i++) {
2325
- if (this.tabList[i].groupByItems.length) {
2326
- const firstKey = this.tabList[i].groupByItems[0].key;
2327
- if (firstKey && typeof this.expanded[firstKey] === 'undefined') {
2328
- this.expanded[firstKey] = true;
2329
- }
2330
- }
2331
- }
2332
- }
2333
- _trackByTitle(_index, _) {
2334
- return _index;
2335
- }
2336
- _trackByKey(_index, item) {
2337
- return item.key;
2338
- }
2339
- _trackMoById(_index, mo) {
2340
- return mo.Id;
2341
- }
2342
- onVisibilityChange(e, mo, isLast) {
2343
- if (e === IntersectionStatus.Visible) {
2344
- if (mo.Unread) {
2345
- this.viewedNotifications = [...this.viewedNotifications.filter((c) => c.Unread), mo];
2346
- this.viewed.emit(mo);
2347
- }
2348
- if (isLast) {
2349
- this.loadMore.emit();
2350
- }
2351
- }
2352
- }
2353
- onWorkflowExecuteChoiceStatusChanged(e, mo) {
2354
- var _a;
2355
- if (e.result && !e.error) {
2356
- this.remove.emit({ items: [mo], silent: true });
2357
- BarsaApi.Bw.Toast.Success(`${(_a = e.choice) === null || _a === void 0 ? void 0 : _a.Title} ${BarsaApi.BBB.Action}`);
2358
- return;
2359
- }
2360
- mo.$ChoiceDefStatus = e;
2361
- this._cdr.detectChanges();
2362
- }
2363
- }
2364
- NotificationGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NotificationGroupComponent, deps: [{ token: i1.GroupByPipe }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2365
- NotificationGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: NotificationGroupComponent, selector: "bt-notification-group", inputs: { notifications: "notifications", loading: "loading", deviceSize: "deviceSize", notificationCount: "notificationCount" }, outputs: { viewed: "viewed", remove: "remove", actionClick: "actionClick", show: "show", loadMore: "loadMore" }, host: { properties: { "class": "this._deviceSize" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"notifications && notifications.length > 0; else noData\">\n <ng-container>\n <fd-notification-group>\n <fd-tab-list size=\"s\" [expandOverflowText]=\"'More' | bbbTranslate\">\n <fd-tab\n [title]=\"tab.title | bbbTranslate\"\n *ngFor=\"let tab of tabList; let index = index; trackBy: _trackByTitle\"\n >\n <fd-notification-group-list\n *ngFor=\"let groupItem of tab.groupByItems; let index = index; trackBy: _trackByKey\"\n >\n <fd-notification-group-header [(expanded)]=\"expanded[groupItem.key]\">\n <fd-notification-header>\n <bt-notification-group-header\n [notifications]=\"groupItem.value\"\n [title]=\"groupItem.key\"\n ></bt-notification-group-header>\n </fd-notification-header>\n <fd-notification-actions>\n <!-- <button fd-button label=\"Accept All\"></button> -->\n <button\n fd-button\n fdType=\"transparent\"\n [ariaLabel]=\"'DeleteAll' | bbbTranslate\"\n [title]=\"'DeleteAll' | bbbTranslate\"\n glyph=\"decline\"\n (click)=\"remove.emit({ items: groupItem.value, silent: false })\"\n ></button>\n </fd-notification-actions>\n </fd-notification-group-header>\n <ng-container\n *ngTemplateOutlet=\"\n notificationBody;\n context: { $implicit: groupItem.value, expanded: expanded[groupItem.key] }\n \"\n ></ng-container>\n <!-- <fd-notification-limit *ngIf=\"groupItem.value.length - 4 > 0\">\n <h1 fd-notification-limit-title>\n There are {{ groupItem.value.length - 4 }} more notifications\n </h1>\n <p fd-notification-limit-description>\n You need to close or take action on the listed notifications to display more.\n </p>\n </fd-notification-limit> -->\n </fd-notification-group-list>\n </fd-tab>\n </fd-tab-list>\n </fd-notification-group>\n </ng-container>\n</ng-container>\n<ng-template #noData>\n <bsu-no-data *ngIf=\"!loading; else loadingTpl\"></bsu-no-data>\n</ng-template>\n<ng-template #loadingTpl>\n <div style=\"height: 30px; position: relative\">\n <bsu-mask [top]=\"'10px'\"></bsu-mask>\n </div>\n</ng-template>\n<ng-template #notificationItem> </ng-template>\n\n<ng-template #notificationBody let-notifications let-exapanded=\"expanded\">\n <div style=\"max-height: 346px; overflow-y: auto; overflow-x: hidden\">\n <ng-container *ngFor=\"let mo of notifications; trackBy: _trackMoById; let first = first; let last = last\">\n <bsu-notification-item\n [notificationItem]=\"mo\"\n (viewed)=\"viewed.emit($event)\"\n (remove)=\"remove.emit($event)\"\n (show)=\"show.emit($event)\"\n (actionClick)=\"actionClick.emit($event)\"\n intersectionObserver\n [intersectionThreshold]=\"0.5\"\n [deviceSize]=\"deviceSize\"\n (visibilityChange)=\"onVisibilityChange($event, mo, last)\"\n ></bsu-notification-item>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <ng-container *ngTemplateOutlet=\"loadingTpl\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;min-width:600px}:host ::ng-deep .fd-tabs__content{overflow:hidden}:host ::ng-deep .fd-notification{padding:0;box-shadow:none}fd-notification{margin:0;padding-left:0rem!important;padding-right:0rem!important}fd-notification-body{position:relative}.noloading{visibility:hidden;height:0;width:0}.loading{visibility:visible;height:100%;width:100%}:host.s{min-width:auto}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4$2.NotificationHeaderComponent, selector: "fd-notification-header", inputs: ["uniqueId"] }, { kind: "component", type: i4$2.NotificationActionsComponent, selector: "fd-notification-actions" }, { kind: "component", type: i4$2.NotificationGroupHeaderComponent, selector: "fd-notification-group-header", inputs: ["expandCompact", "expandAriaLabel", "expandAriaLabelledBy", "expanded"], outputs: ["expandedChange"] }, { kind: "component", type: i4$2.NotificationGroupComponent, selector: "fd-notification-group", inputs: ["class", "mobile", "width"] }, { kind: "component", type: i4$2.NotificationGroupListComponent, selector: "fd-notification-group-list" }, { kind: "component", type: i9$1.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "expandOverflowText", "defaultTab", "selectDefaultOnTabsChange"], outputs: ["selectedTabChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i9$1.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "directive", type: i1.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i5.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: i5.NotificationItemComponent, selector: "bsu-notification-item", inputs: ["option", "notificationItem", "showCloseButton", "deviceSize"], outputs: ["viewed", "remove", "actionClick", "show", "close"] }, { kind: "component", type: NotificationGroupHeaderComponent, selector: "bt-notification-group-header", inputs: ["notifications", "title"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2366
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: NotificationGroupComponent, decorators: [{
2367
- type: Component,
2368
- args: [{ selector: 'bt-notification-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"notifications && notifications.length > 0; else noData\">\n <ng-container>\n <fd-notification-group>\n <fd-tab-list size=\"s\" [expandOverflowText]=\"'More' | bbbTranslate\">\n <fd-tab\n [title]=\"tab.title | bbbTranslate\"\n *ngFor=\"let tab of tabList; let index = index; trackBy: _trackByTitle\"\n >\n <fd-notification-group-list\n *ngFor=\"let groupItem of tab.groupByItems; let index = index; trackBy: _trackByKey\"\n >\n <fd-notification-group-header [(expanded)]=\"expanded[groupItem.key]\">\n <fd-notification-header>\n <bt-notification-group-header\n [notifications]=\"groupItem.value\"\n [title]=\"groupItem.key\"\n ></bt-notification-group-header>\n </fd-notification-header>\n <fd-notification-actions>\n <!-- <button fd-button label=\"Accept All\"></button> -->\n <button\n fd-button\n fdType=\"transparent\"\n [ariaLabel]=\"'DeleteAll' | bbbTranslate\"\n [title]=\"'DeleteAll' | bbbTranslate\"\n glyph=\"decline\"\n (click)=\"remove.emit({ items: groupItem.value, silent: false })\"\n ></button>\n </fd-notification-actions>\n </fd-notification-group-header>\n <ng-container\n *ngTemplateOutlet=\"\n notificationBody;\n context: { $implicit: groupItem.value, expanded: expanded[groupItem.key] }\n \"\n ></ng-container>\n <!-- <fd-notification-limit *ngIf=\"groupItem.value.length - 4 > 0\">\n <h1 fd-notification-limit-title>\n There are {{ groupItem.value.length - 4 }} more notifications\n </h1>\n <p fd-notification-limit-description>\n You need to close or take action on the listed notifications to display more.\n </p>\n </fd-notification-limit> -->\n </fd-notification-group-list>\n </fd-tab>\n </fd-tab-list>\n </fd-notification-group>\n </ng-container>\n</ng-container>\n<ng-template #noData>\n <bsu-no-data *ngIf=\"!loading; else loadingTpl\"></bsu-no-data>\n</ng-template>\n<ng-template #loadingTpl>\n <div style=\"height: 30px; position: relative\">\n <bsu-mask [top]=\"'10px'\"></bsu-mask>\n </div>\n</ng-template>\n<ng-template #notificationItem> </ng-template>\n\n<ng-template #notificationBody let-notifications let-exapanded=\"expanded\">\n <div style=\"max-height: 346px; overflow-y: auto; overflow-x: hidden\">\n <ng-container *ngFor=\"let mo of notifications; trackBy: _trackMoById; let first = first; let last = last\">\n <bsu-notification-item\n [notificationItem]=\"mo\"\n (viewed)=\"viewed.emit($event)\"\n (remove)=\"remove.emit($event)\"\n (show)=\"show.emit($event)\"\n (actionClick)=\"actionClick.emit($event)\"\n intersectionObserver\n [intersectionThreshold]=\"0.5\"\n [deviceSize]=\"deviceSize\"\n (visibilityChange)=\"onVisibilityChange($event, mo, last)\"\n ></bsu-notification-item>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <ng-container *ngTemplateOutlet=\"loadingTpl\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{display:block;min-width:600px}:host ::ng-deep .fd-tabs__content{overflow:hidden}:host ::ng-deep .fd-notification{padding:0;box-shadow:none}fd-notification{margin:0;padding-left:0rem!important;padding-right:0rem!important}fd-notification-body{position:relative}.noloading{visibility:hidden;height:0;width:0}.loading{visibility:visible;height:100%;width:100%}:host.s{min-width:auto}\n"] }]
2369
- }], ctorParameters: function () { return [{ type: i1.GroupByPipe }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { notifications: [{
2370
- type: Input
2371
- }], loading: [{
2372
- type: Input
2373
- }], deviceSize: [{
2374
- type: Input
2375
- }], notificationCount: [{
2376
- type: Input
2377
- }], _deviceSize: [{
2378
- type: HostBinding,
2379
- args: ['class']
2380
- }], viewed: [{
2381
- type: Output
2382
- }], remove: [{
2383
- type: Output
2384
- }], actionClick: [{
2385
- type: Output
2386
- }], show: [{
2387
- type: Output
2388
- }], loadMore: [{
2389
- type: Output
2390
- }] } });
2391
-
2392
- class BarsaShellbarComponent extends BaseComponent {
2393
- constructor(_notificationService, _dialogService, _document, appVersion) {
2394
- super();
2395
- this._notificationService = _notificationService;
2396
- this._dialogService = _dialogService;
2397
- this._document = _document;
2398
- this.appVersion = appVersion;
2399
- this.openNotificationPanel = new EventEmitter();
2400
- this.cultureChanged = new EventEmitter();
2401
- this.notificationLoadMore = new EventEmitter();
2402
- this.removeNotification = new EventEmitter();
2403
- this.notifiationActionClick = new EventEmitter();
2404
- this.notificationViewed = new EventEmitter();
2405
- this.isOpenNotificatoin = false;
2406
- this.user = {
2407
- initials: 'WW',
2408
- colorAccent: 1
2409
- };
2410
- this.searchTerms = ['مرخصی', 'ماموریت', 'تیکت', 'پروژه'];
2411
- this.showVersion = false;
2412
- this._viewedNotifications$ = new Subject();
2413
- this.onBellNotification = () => {
2414
- var _a;
2415
- ((_a = this._document) === null || _a === void 0 ? void 0 : _a.body) && this._document.body.click();
2416
- this._dialogService
2417
- .open(this._notificationsDialog, {
2418
- mobile: true,
2419
- fullScreen: true,
2420
- verticalPadding: false,
2421
- closeOnNavigation: true
2422
- })
2423
- .afterLoaded.subscribe(() => {
2424
- this.openNotificationPanel.emit();
2425
- });
2426
- };
2427
- this._viewedNotifications = [];
2428
- this.onOpenNotification = () => {
2429
- this.isOpenNotificatoin = true;
2430
- this.openNotificationPanel.emit();
2431
- };
2432
- this.onLanguage = (e) => {
2433
- const culture = e.currentTarget.textContent.trim();
2434
- this._changeCulture(culture);
2435
- };
2436
- this.showVersion = !BarsaApi.LoginFormData.IsServiceDesk;
2437
- this.showVersion = false;
2438
- }
2439
- ngOnInit() {
2440
- super.ngOnInit();
2441
- }
2442
- onCultureChange(culture) {
2443
- this._changeCulture(culture);
2444
- }
2445
- onShowNotification(e) {
2446
- this.isOpenNotificatoin = false;
2447
- this._notificationService.ShowNotificationRelatedMo(e);
2448
- }
2449
- onNotificationItemViewed(viewedMo) {
2450
- this.notificationViewed.emit(viewedMo);
2451
- }
2452
- onRemoveNotifications(e) {
2453
- this.removeNotification.emit(e);
2454
- }
2455
- onNotificationAction(e) {
2456
- this.notifiationActionClick.emit(e);
2457
- }
2458
- onNotificationLoadMore() {
2459
- this.notificationLoadMore.emit();
2460
- }
2461
- _changeCulture(culture) {
2462
- this.cultureChanged.emit(culture);
2463
- }
2464
- }
2465
- BarsaShellbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaShellbarComponent, deps: [{ token: i1.NotificationService }, { token: i1$1.DialogService }, { token: DOCUMENT }, { token: APP_VERSION }], target: i0.ɵɵFactoryTarget.Component });
2466
- BarsaShellbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaShellbarComponent, selector: "bt-barsa-shellbar", inputs: { cssCustomUrl: "cssCustomUrl", cssUrl: "cssUrl", allowAnonymous: "allowAnonymous", multiLanguages: "multiLanguages", userLoggedIn: "userLoggedIn", settings: "settings", productMenuControl: "productMenuControl", deviceSize: "deviceSize", cultures: "cultures", shellbarData: "shellbarData", notificationCount: "notificationCount", notifcationLoaded: "notifcationLoaded", notificationLoading: "notificationLoading", notifications: "notifications", productMenuItems1: "productMenuItems1", bodyClick: "bodyClick", logo: "logo", actions: "actions", userMenu: "userMenu", productSwitcher: "productSwitcher", subtitle: "subtitle" }, outputs: { openNotificationPanel: "openNotificationPanel", cultureChanged: "cultureChanged", notificationLoadMore: "notificationLoadMore", removeNotification: "removeNotification", notifiationActionClick: "notifiationActionClick", notificationViewed: "notificationViewed" }, viewQueries: [{ propertyName: "comboboxComponent", first: true, predicate: ComboboxComponent, descendants: true }, { propertyName: "popoverComponent", first: true, predicate: ["popoverComponent"], descendants: true }, { propertyName: "_notificationsDialog", first: true, predicate: ["notificationsDialog"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<link *ngIf=\"cssUrl\" type=\"text/css\" rel=\"stylesheet\" [href]=\"cssUrl\" />\n<link *ngIf=\"cssCustomUrl\" type=\"text/css\" rel=\"stylesheet\" [href]=\"cssCustomUrl\" />\n\n<fd-shellbar *ngIf=\"userLoggedIn || allowAnonymous\" [size]=\"deviceSize\" [ngClass]=\"deviceSize\">\n <fd-shellbar-logo *ngIf=\"logo\">\n <a\n [style.backgroundImage]=\"'url(' + (logo?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null) + ')'\"\n href=\"/\"\n class=\"fd-shellbar__logo fd-shellbar__logo--image-replaced\"\n aria-label=\"Barsa Novin Ray\"\n ></a>\n </fd-shellbar-logo>\n\n <fd-product-menu\n *ngIf=\"!settings?.HideProductMenu && productMenuItems1 && productMenuItems1.length > 0\"\n [control]=\"productMenuControl\"\n [closePopoverOnSelect]=\"true\"\n [items]=\"productMenuItems1\"\n >\n </fd-product-menu>\n\n <fd-shellbar-subtitle> {{ subtitle | bbbTranslate }}{{ showVersion ? appVersion : '' }} </fd-shellbar-subtitle>\n <fd-shellbar-actions\n *ngIf=\"user && (userMenu?.length || !settings?.HideLanguage)\"\n [user]=\"user\"\n [userMenu]=\"userMenu\"\n #langRef\n >\n <fd-shellbar-action\n *ngFor=\"let action of actions\"\n [glyph]=\"action.Icon\"\n [callback]=\"action.Callback\"\n [label]=\"action.Label\"\n >\n </fd-shellbar-action>\n <fd-shellbar-action\n *ngIf=\"deviceSize === 's' && userLoggedIn && !settings?.HideNotifications\"\n [glyph]=\"'bell'\"\n [label]=\"'Notifications' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Notifications' | bbbTranslate\"\n [callback]=\"onBellNotification\"\n >\n </fd-shellbar-action>\n <fd-popover\n *ngIf=\"!settings?.HideNotifications && userLoggedIn\"\n [(isOpen)]=\"isOpenNotificatoin\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [noArrow]=\"true\"\n placement=\"bottom\"\n title=\"Notification Popover\"\n [focusAutoCapture]=\"true\"\n [mobile]=\"deviceSize === 's'\"\n #popoverComponent\n >\n <fd-popover-control>\n <fd-shellbar-action\n [glyph]=\"'bell'\"\n [label]=\"'Notification'\"\n [notificationCount]=\"notificationCount.unread\"\n [notificationLabel]=\"'Notification Label'\"\n [callback]=\"onOpenNotification\"\n >\n </fd-shellbar-action>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 320px; overflow-x: auto; box-shadow: var(--sapContent_Shadow0)\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n\n <fd-shellbar-action\n *ngIf=\"!settings?.HideLanguage && deviceSize !== 's' && multiLanguages\"\n [glyph]=\"'world'\"\n [label]=\"'language'\"\n [fdMenuTrigger]=\"menu\"\n (callback)=\"(onLanguage)\"\n >\n </fd-shellbar-action>\n <ng-container *ngIf=\"!settings?.HideLanguage && deviceSize === 's' && multiLanguages\">\n <fd-shellbar-action\n *ngFor=\"let culture of cultures | keyvalue\"\n [label]=\"culture.value\"\n [callback]=\"onLanguage\"\n class=\"culture-abbrivation\"\n [glyph]=\"culture.key\"\n [ngClass]=\"'flags'\"\n >\n </fd-shellbar-action>\n </ng-container>\n\n <fd-product-switch *ngIf=\"productSwitcher?.length\">\n <fd-product-switch-body [products]=\"productSwitcher\" [forceListMode]=\"deviceSize === 's'\">\n </fd-product-switch-body>\n </fd-product-switch>\n </fd-shellbar-actions>\n</fd-shellbar>\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<fd-menu #menu>\n <ul fd-list>\n <li fd-list-item *ngFor=\"let culture of cultures | keyvalue\">\n <a fd-list-link (click)=\"onCultureChange(culture.value)\">\n <span fd-list-title>\n <img width=\"14px\" height=\"12px\" [src]=\"'/assets/flags/' + culture.key + '.png'\" />\n <span class=\"culture-abbrivation\" [ngClass]=\"culture.key\"> {{ culture.key }}</span>\n </span>\n </a>\n </li>\n </ul>\n</fd-menu>\n<ng-template #notificationGroupTpl let-notificationCount=\"notificationCount\">\n <div style=\"position: relative; height: 100px\" *ngIf=\"!notifcationLoaded && notificationLoading === true\">\n <bsu-mask size=\"s\"></bsu-mask>\n </div>\n <bt-notification-group\n [notifications]=\"notifications\"\n [notificationCount]=\"notificationCount\"\n [loading]=\"notificationLoading === true\"\n (viewed)=\"onNotificationItemViewed($event)\"\n (remove)=\"onRemoveNotifications($event)\"\n (show)=\"popoverComponent.close(); onShowNotification($event)\"\n (actionClick)=\"popoverComponent.close(); onNotificationAction($event)\"\n (loadMore)=\"onNotificationLoadMore()\"\n [deviceSize]=\"deviceSize\"\n ></bt-notification-group>\n</ng-template>\n\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #notificationsDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-10\" fd-title>{{ 'Notification' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss()\"></button>\n </fd-dialog-header>\n <fd-dialog-body class=\"mobile\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-dialog-body>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:contents}:host ::ng-deep fd-shellbar-actions fd-avatar{background-color:transparent!important;color:var(--sapShell_InteractiveTextColor, #d1e8ff)}:host ::ng-deep fd-combobox .fd-input-group input{min-width:2rem;height:1.625rem;margin-top:.1875rem;margin-bottom:.1875rem;padding:0 .5rem;box-sizing:border-box}:host ::ng-deep fd-combobox .fd-input-group span{min-width:2rem;min-height:1.625rem}:host ::ng-deep .fd-shellbar__subtitle{font-size:1rem}:host ::ng-deep .fd-shellbar--s{padding:0}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__subtitle{display:block;overflow:hidden;text-wrap:wrap;width:100%;word-break:break-all}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--product{flex:1}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--actions{max-width:120px}.fd-shellbar__logo{min-height:3rem;height:3rem;width:3rem}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4$1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }, { kind: "component", type: i4$1.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i4$1.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i4$1.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated"] }, { kind: "component", type: i3.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "directive", type: i3.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i8$1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i8$1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i8$1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i8$1.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "component", type: i9.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8$3.ProductSwitchComponent, selector: "fd-product-switch", inputs: ["placement", "ariaLabel", "disabled"] }, { kind: "component", type: i8$3.ProductSwitchBodyComponent, selector: "fd-product-switch-body", inputs: ["dragAndDropEnabled", "products", "forceListMode"], outputs: ["productsChange", "itemClicked"] }, { kind: "component", type: i9$2.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i9$2.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i9$2.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i10$2.ShellbarComponent, selector: "fd-shellbar", inputs: ["size", "sideNav"] }, { kind: "component", type: i10$2.ProductMenuComponent, selector: "fd-product-menu", inputs: ["closeOnEscapeKey", "closeOnOutsideClick", "triggers", "placement", "disabled", "fillControlMode", "control", "items", "closePopoverOnSelect"] }, { kind: "component", type: i10$2.ShellbarSubtitleComponent, selector: "fd-shellbar-subtitle" }, { kind: "component", type: i10$2.ShellbarActionsComponent, selector: "fd-shellbar-actions", inputs: ["user", "userMenu", "closePopoverOnSelect", "collapsedItemMenuLabel"] }, { kind: "component", type: i10$2.ShellbarActionComponent, selector: "fd-shellbar-action", inputs: ["glyph", "callback", "label", "notificationLabel", "notificationCount"] }, { kind: "component", type: i10$2.ShellbarLogoComponent, selector: "fd-shellbar-logo" }, { kind: "directive", type: i1.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: NotificationGroupComponent, selector: "bt-notification-group", inputs: ["notifications", "loading", "deviceSize", "notificationCount"], outputs: ["viewed", "remove", "actionClick", "show", "loadMore"] }, { kind: "pipe", type: i1$2.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaShellbarComponent, decorators: [{
2468
- type: Component,
2469
- args: [{ selector: 'bt-barsa-shellbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<link *ngIf=\"cssUrl\" type=\"text/css\" rel=\"stylesheet\" [href]=\"cssUrl\" />\n<link *ngIf=\"cssCustomUrl\" type=\"text/css\" rel=\"stylesheet\" [href]=\"cssCustomUrl\" />\n\n<fd-shellbar *ngIf=\"userLoggedIn || allowAnonymous\" [size]=\"deviceSize\" [ngClass]=\"deviceSize\">\n <fd-shellbar-logo *ngIf=\"logo\">\n <a\n [style.backgroundImage]=\"'url(' + (logo?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null) + ')'\"\n href=\"/\"\n class=\"fd-shellbar__logo fd-shellbar__logo--image-replaced\"\n aria-label=\"Barsa Novin Ray\"\n ></a>\n </fd-shellbar-logo>\n\n <fd-product-menu\n *ngIf=\"!settings?.HideProductMenu && productMenuItems1 && productMenuItems1.length > 0\"\n [control]=\"productMenuControl\"\n [closePopoverOnSelect]=\"true\"\n [items]=\"productMenuItems1\"\n >\n </fd-product-menu>\n\n <fd-shellbar-subtitle> {{ subtitle | bbbTranslate }}{{ showVersion ? appVersion : '' }} </fd-shellbar-subtitle>\n <fd-shellbar-actions\n *ngIf=\"user && (userMenu?.length || !settings?.HideLanguage)\"\n [user]=\"user\"\n [userMenu]=\"userMenu\"\n #langRef\n >\n <fd-shellbar-action\n *ngFor=\"let action of actions\"\n [glyph]=\"action.Icon\"\n [callback]=\"action.Callback\"\n [label]=\"action.Label\"\n >\n </fd-shellbar-action>\n <fd-shellbar-action\n *ngIf=\"deviceSize === 's' && userLoggedIn && !settings?.HideNotifications\"\n [glyph]=\"'bell'\"\n [label]=\"'Notifications' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Notifications' | bbbTranslate\"\n [callback]=\"onBellNotification\"\n >\n </fd-shellbar-action>\n <fd-popover\n *ngIf=\"!settings?.HideNotifications && userLoggedIn\"\n [(isOpen)]=\"isOpenNotificatoin\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [noArrow]=\"true\"\n placement=\"bottom\"\n title=\"Notification Popover\"\n [focusAutoCapture]=\"true\"\n [mobile]=\"deviceSize === 's'\"\n #popoverComponent\n >\n <fd-popover-control>\n <fd-shellbar-action\n [glyph]=\"'bell'\"\n [label]=\"'Notification'\"\n [notificationCount]=\"notificationCount.unread\"\n [notificationLabel]=\"'Notification Label'\"\n [callback]=\"onOpenNotification\"\n >\n </fd-shellbar-action>\n </fd-popover-control>\n <fd-popover-body style=\"min-width: 320px; overflow-x: auto; box-shadow: var(--sapContent_Shadow0)\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-popover-body>\n </fd-popover>\n\n <fd-shellbar-action\n *ngIf=\"!settings?.HideLanguage && deviceSize !== 's' && multiLanguages\"\n [glyph]=\"'world'\"\n [label]=\"'language'\"\n [fdMenuTrigger]=\"menu\"\n (callback)=\"(onLanguage)\"\n >\n </fd-shellbar-action>\n <ng-container *ngIf=\"!settings?.HideLanguage && deviceSize === 's' && multiLanguages\">\n <fd-shellbar-action\n *ngFor=\"let culture of cultures | keyvalue\"\n [label]=\"culture.value\"\n [callback]=\"onLanguage\"\n class=\"culture-abbrivation\"\n [glyph]=\"culture.key\"\n [ngClass]=\"'flags'\"\n >\n </fd-shellbar-action>\n </ng-container>\n\n <fd-product-switch *ngIf=\"productSwitcher?.length\">\n <fd-product-switch-body [products]=\"productSwitcher\" [forceListMode]=\"deviceSize === 's'\">\n </fd-product-switch-body>\n </fd-product-switch>\n </fd-shellbar-actions>\n</fd-shellbar>\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<fd-menu #menu>\n <ul fd-list>\n <li fd-list-item *ngFor=\"let culture of cultures | keyvalue\">\n <a fd-list-link (click)=\"onCultureChange(culture.value)\">\n <span fd-list-title>\n <img width=\"14px\" height=\"12px\" [src]=\"'/assets/flags/' + culture.key + '.png'\" />\n <span class=\"culture-abbrivation\" [ngClass]=\"culture.key\"> {{ culture.key }}</span>\n </span>\n </a>\n </li>\n </ul>\n</fd-menu>\n<ng-template #notificationGroupTpl let-notificationCount=\"notificationCount\">\n <div style=\"position: relative; height: 100px\" *ngIf=\"!notifcationLoaded && notificationLoading === true\">\n <bsu-mask size=\"s\"></bsu-mask>\n </div>\n <bt-notification-group\n [notifications]=\"notifications\"\n [notificationCount]=\"notificationCount\"\n [loading]=\"notificationLoading === true\"\n (viewed)=\"onNotificationItemViewed($event)\"\n (remove)=\"onRemoveNotifications($event)\"\n (show)=\"popoverComponent.close(); onShowNotification($event)\"\n (actionClick)=\"popoverComponent.close(); onNotificationAction($event)\"\n (loadMore)=\"onNotificationLoadMore()\"\n [deviceSize]=\"deviceSize\"\n ></bt-notification-group>\n</ng-template>\n\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #notificationsDialog>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-10\" fd-title>{{ 'Notification' | bbbTranslate }}</h1>\n <button fd-dialog-close-button (click)=\"dialog.dismiss()\"></button>\n </fd-dialog-header>\n <fd-dialog-body class=\"mobile\">\n <ng-container\n *ngTemplateOutlet=\"notificationGroupTpl; context: { notificationCount: notificationCount }\"\n ></ng-container>\n </fd-dialog-body>\n </fd-dialog>\n</ng-template>\n", styles: [":host{display:contents}:host ::ng-deep fd-shellbar-actions fd-avatar{background-color:transparent!important;color:var(--sapShell_InteractiveTextColor, #d1e8ff)}:host ::ng-deep fd-combobox .fd-input-group input{min-width:2rem;height:1.625rem;margin-top:.1875rem;margin-bottom:.1875rem;padding:0 .5rem;box-sizing:border-box}:host ::ng-deep fd-combobox .fd-input-group span{min-width:2rem;min-height:1.625rem}:host ::ng-deep .fd-shellbar__subtitle{font-size:1rem}:host ::ng-deep .fd-shellbar--s{padding:0}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__subtitle{display:block;overflow:hidden;text-wrap:wrap;width:100%;word-break:break-all}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--product{flex:1}:host ::ng-deep .fd-shellbar--s ::ng-deep .fd-shellbar__group.fd-shellbar__group--actions{max-width:120px}.fd-shellbar__logo{min-height:3rem;height:3rem;width:3rem}\n"] }]
2470
- }], ctorParameters: function () {
2471
- return [{ type: i1.NotificationService }, { type: i1$1.DialogService }, { type: Document, decorators: [{
2472
- type: Inject,
2473
- args: [DOCUMENT]
2474
- }] }, { type: undefined, decorators: [{
2475
- type: Inject,
2476
- args: [APP_VERSION]
2477
- }] }];
2478
- }, propDecorators: { cssCustomUrl: [{
2479
- type: Input
2480
- }], cssUrl: [{
2481
- type: Input
2482
- }], allowAnonymous: [{
2483
- type: Input
2484
- }], multiLanguages: [{
2485
- type: Input
2486
- }], userLoggedIn: [{
2487
- type: Input
2488
- }], settings: [{
2489
- type: Input
2490
- }], productMenuControl: [{
2491
- type: Input
2492
- }], deviceSize: [{
2493
- type: Input
2494
- }], cultures: [{
2495
- type: Input
2496
- }], shellbarData: [{
2497
- type: Input
2498
- }], notificationCount: [{
2499
- type: Input
2500
- }], notifcationLoaded: [{
2501
- type: Input
2502
- }], notificationLoading: [{
2503
- type: Input
2504
- }], notifications: [{
2505
- type: Input
2506
- }], productMenuItems1: [{
2507
- type: Input
2508
- }], bodyClick: [{
2509
- type: Input
2510
- }], logo: [{
2511
- type: Input
2512
- }], actions: [{
2513
- type: Input
2514
- }], userMenu: [{
2515
- type: Input
2516
- }], productSwitcher: [{
2517
- type: Input
2518
- }], subtitle: [{
2519
- type: Input
2520
- }], openNotificationPanel: [{
2521
- type: Output
2522
- }], cultureChanged: [{
2523
- type: Output
2524
- }], notificationLoadMore: [{
2525
- type: Output
2526
- }], removeNotification: [{
2527
- type: Output
2528
- }], notifiationActionClick: [{
2529
- type: Output
2530
- }], notificationViewed: [{
2531
- type: Output
2532
- }], comboboxComponent: [{
2533
- type: ViewChild,
2534
- args: [ComboboxComponent]
2535
- }], popoverComponent: [{
2536
- type: ViewChild,
2537
- args: ['popoverComponent', { static: false }]
2538
- }], _notificationsDialog: [{
2539
- type: ViewChild,
2540
- args: ['notificationsDialog', { static: true, read: TemplateRef }]
2541
- }] } });
2542
-
2543
- class ShellbarComponent extends BaseComponent {
2544
- constructor(_bbbTranslatePipe, _portalService, _breadCrumbService, _tilesService, _cdr, _domSanitizer, _notificationService, appVersion) {
2545
- super();
2546
- this._bbbTranslatePipe = _bbbTranslatePipe;
2547
- this._portalService = _portalService;
2548
- this._breadCrumbService = _breadCrumbService;
2549
- this._tilesService = _tilesService;
2550
- this._cdr = _cdr;
2551
- this._domSanitizer = _domSanitizer;
2552
- this._notificationService = _notificationService;
2553
- this.appVersion = appVersion;
2554
- this.isOpenNotificatoin = false;
2555
- this.user = {
2556
- initials: 'WW',
2557
- colorAccent: 1
2558
- };
2559
- this.allowAnonymous = true;
2560
- this.notifcationLoaded = false;
2561
- this._viewedNotifications$ = new Subject();
2562
- this._viewedNotifications = [];
2563
- this.bodyClick = ';$("body").click()';
2564
- this.onOpenNotification = () => {
2565
- this.isOpenNotificatoin = true;
2566
- this._handleOpenNotificationPanel();
2567
- };
2568
- this.onCultureChanged = (culture) => {
2569
- this._changeCulture(culture);
2570
- };
2571
- this.userLoggedIn$ = this._portalService.userLoggedIn$;
2572
- this.notifiationCountLoaded$ = this._notificationService.notificationCountLoaded$;
2573
- this._viewedNotifications$
2574
- .pipe(takeUntil(this._onDestroy$), tap((item) => this._viewedNotifications.push(item)), map((item) => this._viewedNotifications), debounceTime(2000), map((items) => items.map((item) => item.Tag)))
2575
- .subscribe((tags) => {
2576
- this._viewedNotifications = [];
2577
- this._notificationService.setNotificationViewed(tags);
2578
- });
2579
- }
2580
- get subtitle() {
2581
- var _a, _b, _c;
2582
- if (!this.shellbarData) {
2583
- return '';
2584
- }
2585
- if (this._portalService.deviceSize === 's' && this.shellbarData.MobileSubtitle) {
2586
- return this.shellbarData.MobileSubtitle
2587
- ? `${this.shellbarData.MobileSubtitle} ${typeof ((_a = this.shellbarData) === null || _a === void 0 ? void 0 : _a.calcSubtitle) === 'string' ? this.shellbarData.calcSubtitle : ''}`
2588
- : '';
2589
- }
2590
- return this.shellbarData.Subtitle
2591
- ? `${(_b = this.shellbarData) === null || _b === void 0 ? void 0 : _b.Subtitle} ${typeof ((_c = this.shellbarData) === null || _c === void 0 ? void 0 : _c.calcSubtitle) === 'string' ? this.shellbarData.calcSubtitle : ''}`
2592
- : '';
2593
- }
2594
- get logo() {
2595
- var _a;
2596
- return (_a = this.shellbarData) === null || _a === void 0 ? void 0 : _a.Logo;
2597
- }
2598
- get actions() {
2599
- var _a, _b, _c, _d;
2600
- return ((_a = this.settings) === null || _a === void 0 ? void 0 : _a.HideUserMenu) ? [] : (_d = (_c = (_b = this.shellbarData) === null || _b === void 0 ? void 0 : _b.ActionItems) === null || _c === void 0 ? void 0 : _c.MoDataList) !== null && _d !== void 0 ? _d : [];
2601
- }
2602
- get userMenu() {
2603
- var _a;
2604
- const moDataList = BarsaApi.Common.Util.TryGetValue(this.shellbarData, 'UserMenuItems.MoDataList');
2605
- const items = moDataList ? [...moDataList] : [];
2606
- if (!items.length) {
2607
- return [];
2608
- }
2609
- items.forEach((c) => {
2610
- c.text = this._bbbTranslatePipe.transform(c.text);
2611
- c.callback = new Function(c.Code + this.bodyClick);
2612
- });
2613
- if (!BarsaApi.LoginFormData.IsAnonymous && BarsaApi.LoginFormData.IsUserLoggedIn) {
2614
- items.splice(0, 0, { Id: '-1', $Caption: '', text: BarsaApi.LoginFormData.UserDisplayName });
2615
- }
2616
- return ((_a = this.settings) === null || _a === void 0 ? void 0 : _a.HideUserMenu) ? [] : items;
2617
- }
2618
- get productSwitcher() {
2619
- var _a, _b, _c;
2620
- return ((_c = (_b = (_a = this.shellbarData) === null || _a === void 0 ? void 0 : _a.ProductSwitchItems) === null || _b === void 0 ? void 0 : _b.MoDataList) !== null && _c !== void 0 ? _c : []);
2621
- }
2622
- get multiLanguages() {
2623
- var _a;
2624
- return (_a = this.shellbarData) === null || _a === void 0 ? void 0 : _a.MultiLanguages;
2625
- }
2626
- get productMenuItems() {
2627
- var _a, _b, _c;
2628
- const items = (_c = (_b = (_a = this.shellbarData) === null || _a === void 0 ? void 0 : _a.ProductMenuItems) === null || _b === void 0 ? void 0 : _b.MoDataList) !== null && _c !== void 0 ? _c : [];
2629
- items.forEach((c) => (c.callback = new Function(c.Code + this.bodyClick)));
2630
- return items;
2631
- }
2632
- ngOnInit() {
2633
- super.ngOnInit();
2634
- this.cultures = BarsaApi.LoginFormData.Cultures;
2635
- this.cssUrl$ = this._portalService.cssUrl$;
2636
- this.cssCustomUrl$ = this._portalService.cssCustomUrl$;
2637
- this.notificationsCount$ = this._notificationService.notificationCount$;
2638
- this._notificationService.notificationCount$.subscribe(() => this._cdr.detectChanges());
2639
- this.notificationLoading$ = this._notificationService.notificationLoading$;
2640
- this.notifications$ = this._notificationService.notifications$.pipe(takeUntil(this._onDestroy$), map((notifications) => this._mapNotifications(notifications)));
2641
- BarsaApi.Bw.SetUserPortalSettings = (userPortalSettings) => {
2642
- this._portalService.setUserPortalSettings(userPortalSettings);
2643
- };
2644
- BarsaApi.Bw.SetShellbarSubtitle = (calcSubtitle) => {
2645
- this.shellbarData.calcSubtitle = calcSubtitle;
2646
- this._cdr.detectChanges();
2647
- };
2648
- this.deviceSize$ = this._portalService.deviceSize$.pipe(takeUntil(this._onDestroy$));
2649
- this._breadCrumbService.breadcrumbs$.pipe(takeUntil(this._onDestroy$)).subscribe((breadCrumbs) => {
2650
- if (breadCrumbs.length > 0) {
2651
- this.productMenuControl = breadCrumbs[breadCrumbs.length - 1].label;
2652
- }
2653
- this._cdr.detectChanges();
2654
- });
2655
- this._tilesService.shellbar$.pipe(takeUntil(this._onDestroy$)).subscribe((mo) => {
2656
- this.shellbarData = mo;
2657
- // this._cdr.detectChanges();
2658
- forkJoin([of(this.productMenuItems), of([])]) // to append user defined
2659
- .pipe(takeUntil(this._onDestroy$), map(([s1, s2]) => [...s1, ...s2]))
2660
- .subscribe((c) => {
2661
- this.productMenuItems1 = c;
2662
- this._cdr.detectChanges();
2663
- });
2664
- });
2665
- if (this.allowAnonymous) {
2666
- this._tilesService.loadShellbar();
2667
- }
2668
- this._portalService.userLoggedIn$.pipe(takeUntil(this._onDestroy$)).subscribe((loggedIn) => {
2669
- if (!loggedIn) {
2670
- return;
2671
- }
2672
- this._tilesService.loadShellbar();
2673
- this._notificationService.loadUnreadNotificationCount();
2674
- });
2675
- }
2676
- onCultureChange(culture) {
2677
- this._changeCulture(culture);
2678
- }
2679
- onShowNotification(e) {
2680
- this.isOpenNotificatoin = false;
2681
- this._notificationService.ShowNotificationRelatedMo(e);
2682
- }
2683
- onNotificationItemViewed(viewedMo) {
2684
- this._viewedNotifications$.next(viewedMo);
2685
- }
2686
- onRemoveNotifications(e) {
2687
- this._notificationService.removeNotification(e.items);
2688
- }
2689
- onNotificationAction(e) {
2690
- this._portalService.ExecuteNotificationAction(e.item.Tag, e.btn.Title);
2691
- }
2692
- onNotificationLoadMore() {
2693
- this._notificationService.loadMore();
2694
- }
2695
- onNotificationWorkflowChoiceSuccess(result) { }
2696
- onNotificationWorkflowChoiceFailed(err) { }
2697
- onHandleOpenNotificationPanel() {
2698
- this._handleOpenNotificationPanel();
2699
- }
2700
- _handleOpenNotificationPanel() {
2701
- if (this.notifcationLoaded) {
2702
- return;
2703
- }
2704
- this.notifcationLoaded = true;
2705
- this._notificationService.loadNotifications();
2706
- }
2707
- _mapNotifications(notifications) {
2708
- return notifications.map((notification) => (Object.assign(Object.assign({}, notification), { contentSafeHtml: notification.Content
2709
- ? this._domSanitizer.bypassSecurityTrustHtml(notification.Content)
2710
- : '' })));
2711
- }
2712
- _changeCulture(culture /* culture sample :English */) {
2713
- BarsaApi.Bw.SetCultureByDisplayName(culture);
2714
- BarsaApi.Bw.NavigateTo('/');
2715
- }
2716
- }
2717
- ShellbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ShellbarComponent, deps: [{ token: i1.BbbTranslatePipe }, { token: i1.PortalService }, { token: i1.BreadcrumbService }, { token: TilesService }, { token: i0.ChangeDetectorRef }, { token: i3$3.DomSanitizer }, { token: i1.NotificationService }, { token: APP_VERSION }], target: i0.ɵɵFactoryTarget.Component });
2718
- ShellbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ShellbarComponent, selector: "bt-shellbar", viewQueries: [{ propertyName: "comboboxComponent", first: true, predicate: ComboboxComponent, descendants: true }, { propertyName: "popoverComponent", first: true, predicate: ["popoverComponent"], descendants: true }, { propertyName: "_notificationsDialog", first: true, predicate: ["notificationsDialog"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"userLoggedIn$ | async as userloggend; else noLoggedInShellbar\">\n <ng-container *ngIf=\"notifiationCountLoaded$ | async as notifiationCountLoaded\">\n <ng-container *ngIf=\"deviceSize$ | async as deviceSize\">\n <bt-barsa-shellbar\n *ngIf=\"shellbarData\"\n [cssUrl]=\"(cssUrl$ | async)!!\"\n [cssCustomUrl]=\"(cssCustomUrl$ | async)!!\"\n [userLoggedIn]=\"true\"\n [allowAnonymous]=\"allowAnonymous\"\n [deviceSize]=\"deviceSize\"\n [shellbarData]=\"shellbarData\"\n [productMenuControl]=\"productMenuControl\"\n [settings]=\"settings\"\n [multiLanguages]=\"multiLanguages\"\n [notificationCount]=\"(notificationsCount$ | async)!!\"\n [notifications]=\"(notifications$ | async) ?? []\"\n [notifcationLoaded]=\"notifcationLoaded\"\n [notificationLoading]=\"(notificationLoading$ | async) === true\"\n [cultures]=\"cultures\"\n [logo]=\"logo\"\n [actions]=\"actions\"\n [userMenu]=\"userMenu\"\n [productSwitcher]=\"productSwitcher\"\n [subtitle]=\"subtitle\"\n [productMenuItems1]=\"productMenuItems1\"\n (cultureChanged)=\"onCultureChanged($event)\"\n (notificationViewed)=\"onNotificationItemViewed($event)\"\n (notifiationActionClick)=\"onNotificationAction($event)\"\n (removeNotification)=\"onRemoveNotifications($event)\"\n (notificationLoadMore)=\"onNotificationLoadMore()\"\n (openNotificationPanel)=\"onHandleOpenNotificationPanel()\"\n >\n </bt-barsa-shellbar\n ></ng-container>\n </ng-container>\n</ng-container>\n<ng-template #noLoggedInShellbar>\n <bt-barsa-shellbar\n *ngIf=\"notificationsCount$ | async as notificationCount\"\n [cssUrl]=\"''\"\n [cssCustomUr]=\"''\"\n [userLoggedIn]=\"false\"\n [multiLanguages]=\"multiLanguages\"\n [userMenu]=\"userMenu\"\n [logo]=\"logo\"\n [productMenuItems1]=\"productMenuItems1\"\n [allowAnonymous]=\"allowAnonymous\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [shellbarData]=\"shellbarData\"\n [cultures]=\"cultures\"\n [logo]=\"logo\"\n [actions]=\"actions\"\n [userMenu]=\"userMenu\"\n [productMenuControl]=\"productMenuControl\"\n [productSwitcher]=\"productSwitcher\"\n [subtitle]=\"subtitle\"\n [settings]=\"settings\"\n [notificationCount]=\"{ unread: 0, all: 0 }\"\n [notifications]=\"[]\"\n [notifcationLoaded]=\"true\"\n [notificationLoading]=\"false\"\n [cultures]=\"cultures\"\n [productMenuItems1]=\"productMenuItems1\"\n (cultureChanged)=\"onCultureChanged($event)\"\n >\n </bt-barsa-shellbar>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BarsaShellbarComponent, selector: "bt-barsa-shellbar", inputs: ["cssCustomUrl", "cssUrl", "allowAnonymous", "multiLanguages", "userLoggedIn", "settings", "productMenuControl", "deviceSize", "cultures", "shellbarData", "notificationCount", "notifcationLoaded", "notificationLoading", "notifications", "productMenuItems1", "bodyClick", "logo", "actions", "userMenu", "productSwitcher", "subtitle"], outputs: ["openNotificationPanel", "cultureChanged", "notificationLoadMore", "removeNotification", "notifiationActionClick", "notificationViewed"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ShellbarComponent, decorators: [{
2720
- type: Component,
2721
- args: [{ selector: 'bt-shellbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"userLoggedIn$ | async as userloggend; else noLoggedInShellbar\">\n <ng-container *ngIf=\"notifiationCountLoaded$ | async as notifiationCountLoaded\">\n <ng-container *ngIf=\"deviceSize$ | async as deviceSize\">\n <bt-barsa-shellbar\n *ngIf=\"shellbarData\"\n [cssUrl]=\"(cssUrl$ | async)!!\"\n [cssCustomUrl]=\"(cssCustomUrl$ | async)!!\"\n [userLoggedIn]=\"true\"\n [allowAnonymous]=\"allowAnonymous\"\n [deviceSize]=\"deviceSize\"\n [shellbarData]=\"shellbarData\"\n [productMenuControl]=\"productMenuControl\"\n [settings]=\"settings\"\n [multiLanguages]=\"multiLanguages\"\n [notificationCount]=\"(notificationsCount$ | async)!!\"\n [notifications]=\"(notifications$ | async) ?? []\"\n [notifcationLoaded]=\"notifcationLoaded\"\n [notificationLoading]=\"(notificationLoading$ | async) === true\"\n [cultures]=\"cultures\"\n [logo]=\"logo\"\n [actions]=\"actions\"\n [userMenu]=\"userMenu\"\n [productSwitcher]=\"productSwitcher\"\n [subtitle]=\"subtitle\"\n [productMenuItems1]=\"productMenuItems1\"\n (cultureChanged)=\"onCultureChanged($event)\"\n (notificationViewed)=\"onNotificationItemViewed($event)\"\n (notifiationActionClick)=\"onNotificationAction($event)\"\n (removeNotification)=\"onRemoveNotifications($event)\"\n (notificationLoadMore)=\"onNotificationLoadMore()\"\n (openNotificationPanel)=\"onHandleOpenNotificationPanel()\"\n >\n </bt-barsa-shellbar\n ></ng-container>\n </ng-container>\n</ng-container>\n<ng-template #noLoggedInShellbar>\n <bt-barsa-shellbar\n *ngIf=\"notificationsCount$ | async as notificationCount\"\n [cssUrl]=\"''\"\n [cssCustomUr]=\"''\"\n [userLoggedIn]=\"false\"\n [multiLanguages]=\"multiLanguages\"\n [userMenu]=\"userMenu\"\n [logo]=\"logo\"\n [productMenuItems1]=\"productMenuItems1\"\n [allowAnonymous]=\"allowAnonymous\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [shellbarData]=\"shellbarData\"\n [cultures]=\"cultures\"\n [logo]=\"logo\"\n [actions]=\"actions\"\n [userMenu]=\"userMenu\"\n [productMenuControl]=\"productMenuControl\"\n [productSwitcher]=\"productSwitcher\"\n [subtitle]=\"subtitle\"\n [settings]=\"settings\"\n [notificationCount]=\"{ unread: 0, all: 0 }\"\n [notifications]=\"[]\"\n [notifcationLoaded]=\"true\"\n [notificationLoading]=\"false\"\n [cultures]=\"cultures\"\n [productMenuItems1]=\"productMenuItems1\"\n (cultureChanged)=\"onCultureChanged($event)\"\n >\n </bt-barsa-shellbar>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
2722
- }], ctorParameters: function () {
2723
- return [{ type: i1.BbbTranslatePipe }, { type: i1.PortalService }, { type: i1.BreadcrumbService }, { type: TilesService }, { type: i0.ChangeDetectorRef }, { type: i3$3.DomSanitizer }, { type: i1.NotificationService }, { type: undefined, decorators: [{
2724
- type: Inject,
2725
- args: [APP_VERSION]
2726
- }] }];
2727
- }, propDecorators: { comboboxComponent: [{
2728
- type: ViewChild,
2729
- args: [ComboboxComponent]
2730
- }], popoverComponent: [{
2731
- type: ViewChild,
2732
- args: ['popoverComponent', { static: false }]
2733
- }], _notificationsDialog: [{
2734
- type: ViewChild,
2735
- args: ['notificationsDialog', { static: true, read: TemplateRef }]
2736
- }] } });
2737
-
2738
- class TileHomeFilterPipe {
2739
- transform(collection) {
2740
- return collection.filter((val) => this.matchFilter(val));
2741
- }
2742
- matchFilter(value) {
2743
- const match = Object.keys(value.Data).some((key) => {
2744
- if (key.startsWith('$')) {
2745
- return false;
2746
- }
2747
- if (key.startsWith('c')) {
2748
- return BarsaApi.Common.Util.TryGetValue(value, 'Data.' + key);
2749
- }
2750
- });
2751
- return match;
2752
- }
2753
- }
2754
- TileHomeFilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileHomeFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2755
- TileHomeFilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: TileHomeFilterPipe, name: "tileHomeFilter" });
2756
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileHomeFilterPipe, decorators: [{
2757
- type: Pipe,
2758
- args: [{
2759
- name: 'tileHomeFilter'
2760
- }]
2761
- }] });
2762
-
2763
- class GroupTilesPipe {
2764
- transform(appGroup) {
2765
- var _a, _b;
2766
- const predefineTiles = appGroup.AppTiles;
2767
- if ((predefineTiles === null || predefineTiles === void 0 ? void 0 : predefineTiles.length) === 0) {
2768
- return of([]);
2769
- }
2770
- const predefine$ = of(predefineTiles);
2771
- const userDefine$ = of((_b = (_a = appGroup.UserAppTileGroupSetting) === null || _a === void 0 ? void 0 : _a.UserAppTilesSetting) === null || _b === void 0 ? void 0 : _b.MoDataList);
2772
- return forkJoin([predefine$, userDefine$]).pipe(map(([s1, s2]) => [...s1, ...s2]), map((arrTiles) => {
2773
- const tempTiles = arrTiles.filter((c) => c.Visible).sort((a, b) => (a.OrderItem > b.OrderItem ? 1 : 0));
2774
- const group = Object.assign({}, appGroup);
2775
- group.Title = BarsaApi.Common.Util.TryGetValue(group, 'UserAppTileGroupSetting.Title', group.Title);
2776
- group.OrderItem = BarsaApi.Common.Util.TryGetValue(group, 'UserAppTileGroupSetting.OrderItem', group.OrderItem);
2777
- return tempTiles;
2778
- }), shareReplay(1));
2779
- }
2780
- }
2781
- GroupTilesPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: GroupTilesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2782
- GroupTilesPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: GroupTilesPipe, name: "groupTiles" });
2783
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: GroupTilesPipe, decorators: [{
2784
- type: Pipe,
2785
- args: [{
2786
- name: 'groupTiles'
2787
- }]
2788
- }] });
2789
-
2790
- class HomeGroupPipe {
2791
- constructor() { }
2792
- transform(appGroups) {
2793
- return appGroups.filter((c) => c.navigatorTiles && c.navigatorTiles.length > 0);
2794
- }
2795
- }
2796
- HomeGroupPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: HomeGroupPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2797
- HomeGroupPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: HomeGroupPipe, name: "homeGroup" });
2798
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: HomeGroupPipe, decorators: [{
2799
- type: Pipe,
2800
- args: [{
2801
- name: 'homeGroup'
2802
- }]
2803
- }], ctorParameters: function () { return []; } });
2804
-
2805
- class ActionLinksPipe {
2806
- transform(tiles) {
2807
- return tiles.filter((tile) => tile.IsActionLink);
2808
- }
2809
- }
2810
- ActionLinksPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ActionLinksPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2811
- ActionLinksPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: ActionLinksPipe, name: "actionLinks" });
2812
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ActionLinksPipe, decorators: [{
2813
- type: Pipe,
2814
- args: [{
2815
- name: 'actionLinks'
2816
- }]
2817
- }] });
2818
-
2819
- const components = [
2820
- ShellbarComponent,
2821
- SimpleTileComponent,
2822
- TilesViewerComponent,
2823
- ProfileTileComponent,
2824
- FeedTileComponent,
2825
- FooterTileComponent,
2826
- TileComponent,
2827
- LogoTileComponent,
2828
- NumericTileComponent,
2829
- FooterEditTileComponent,
2830
- FormAppFinderComponent,
2831
- PinTileComponent,
2832
- ChangeAppTileComponent,
2833
- CreateAppGroupComponent,
2834
- MicroTileChartAreaComponent,
2835
- MicroTileChartCircularComponent,
2836
- MicroTileChartLineComponent,
2837
- MicroTileChartStackbarComponent,
2838
- MicroTileChartComparisonComponent,
2839
- MicroTileChartBarComponent,
2840
- MicroTileChartBulletComponent,
2841
- TilesViewerContainerComponent,
2842
- NewsTileComponent,
2843
- ActionsLinkComponent,
2844
- ActionItemComponent,
2845
- AppFinderComponent,
2846
- AppFinderGroupComponent,
2847
- AppFinderAppListComponent,
2848
- TilesViewerGroupComponent,
2849
- FormTileComponent,
2850
- BarsaShellbarComponent
2851
- ];
2852
- const pipes = [GroupTilesPipe, TileHomeFilterPipe, HomeGroupPipe, ActionLinksPipe, TilePropPipe];
2853
- const directives = [EmptyListDirective, TileRendererDirective];
2854
- class BarsaTilesModule extends BaseModule {
2855
- constructor(dcm, componentFactoryResolver) {
2856
- super(dcm, componentFactoryResolver, 'BarsaTilesModule');
2857
- this.dcm = dcm;
2858
- this.componentFactoryResolver = componentFactoryResolver;
2859
- this.dynamicComponents = [...components];
2860
- }
2861
- }
2862
- BarsaTilesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTilesModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule });
2863
- BarsaTilesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: BarsaTilesModule, declarations: [ShellbarComponent,
2864
- SimpleTileComponent,
2865
- TilesViewerComponent,
2866
- ProfileTileComponent,
2867
- FeedTileComponent,
2868
- FooterTileComponent,
2869
- TileComponent,
2870
- LogoTileComponent,
2871
- NumericTileComponent,
2872
- FooterEditTileComponent,
2873
- FormAppFinderComponent,
2874
- PinTileComponent,
2875
- ChangeAppTileComponent,
2876
- CreateAppGroupComponent,
2877
- MicroTileChartAreaComponent,
2878
- MicroTileChartCircularComponent,
2879
- MicroTileChartLineComponent,
2880
- MicroTileChartStackbarComponent,
2881
- MicroTileChartComparisonComponent,
2882
- MicroTileChartBarComponent,
2883
- MicroTileChartBulletComponent,
2884
- TilesViewerContainerComponent,
2885
- NewsTileComponent,
2886
- ActionsLinkComponent,
2887
- ActionItemComponent,
2888
- AppFinderComponent,
2889
- AppFinderGroupComponent,
2890
- AppFinderAppListComponent,
2891
- TilesViewerGroupComponent,
2892
- FormTileComponent,
2893
- BarsaShellbarComponent, GroupTilesPipe, TileHomeFilterPipe, HomeGroupPipe, ActionLinksPipe, TilePropPipe, EmptyListDirective, TileRendererDirective, NotificationGroupComponent,
2894
- NotificationGroupHeaderComponent], imports: [CommonModule,
2895
- FormsModule,
2896
- DragDropModule,
2897
- CdkTableModule,
2898
- FundamentalNgxCoreModule,
2899
- GridListModule,
2900
- ReactiveFormsModule,
2901
- BarsaNovinRayCoreModule,
2902
- BarsaSapUiModule,
2903
- BarsaEchartsModule], exports: [ShellbarComponent,
2904
- SimpleTileComponent,
2905
- TilesViewerComponent,
2906
- ProfileTileComponent,
2907
- FeedTileComponent,
2908
- FooterTileComponent,
2909
- TileComponent,
2910
- LogoTileComponent,
2911
- NumericTileComponent,
2912
- FooterEditTileComponent,
2913
- FormAppFinderComponent,
2914
- PinTileComponent,
2915
- ChangeAppTileComponent,
2916
- CreateAppGroupComponent,
2917
- MicroTileChartAreaComponent,
2918
- MicroTileChartCircularComponent,
2919
- MicroTileChartLineComponent,
2920
- MicroTileChartStackbarComponent,
2921
- MicroTileChartComparisonComponent,
2922
- MicroTileChartBarComponent,
2923
- MicroTileChartBulletComponent,
2924
- TilesViewerContainerComponent,
2925
- NewsTileComponent,
2926
- ActionsLinkComponent,
2927
- ActionItemComponent,
2928
- AppFinderComponent,
2929
- AppFinderGroupComponent,
2930
- AppFinderAppListComponent,
2931
- TilesViewerGroupComponent,
2932
- FormTileComponent,
2933
- BarsaShellbarComponent] });
2934
- BarsaTilesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTilesModule, providers: [TilesService, AppFinderService, LowerCasePipe], imports: [CommonModule,
2935
- FormsModule,
2936
- DragDropModule,
2937
- CdkTableModule,
2938
- FundamentalNgxCoreModule,
2939
- GridListModule,
2940
- ReactiveFormsModule,
2941
- BarsaNovinRayCoreModule,
2942
- BarsaSapUiModule,
2943
- BarsaEchartsModule] });
2944
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTilesModule, decorators: [{
2945
- type: NgModule,
2946
- args: [{
2947
- schemas: [NO_ERRORS_SCHEMA],
2948
- imports: [
2949
- CommonModule,
2950
- FormsModule,
2951
- DragDropModule,
2952
- CdkTableModule,
2953
- FundamentalNgxCoreModule,
2954
- GridListModule,
2955
- ReactiveFormsModule,
2956
- BarsaNovinRayCoreModule,
2957
- BarsaSapUiModule,
2958
- BarsaEchartsModule
2959
- ],
2960
- providers: [TilesService, AppFinderService, LowerCasePipe],
2961
- declarations: [
2962
- ...components,
2963
- ...pipes,
2964
- ...directives,
2965
- NotificationGroupComponent,
2966
- NotificationGroupHeaderComponent
2967
- ],
2968
- exports: [...components]
2969
- }]
2970
- }], ctorParameters: function () { return [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }]; } });
2971
-
2972
- /**
2973
- * Generated bundle index. Do not edit.
2974
- */
2975
-
2976
- export { ActionItemComponent, ActionsLinkComponent, AppFinderAppListComponent, AppFinderComponent, AppFinderGroupComponent, BarsaShellbarComponent, BarsaTilesModule, ChangeAppTileComponent, CreateAppGroupComponent, FeedTileComponent, FooterEditTileComponent, FooterTileComponent, FormAppFinderComponent, FormTileComponent, GroupTilesPipe, LogoTileComponent, MicroTileChartAreaComponent, MicroTileChartBarComponent, MicroTileChartBulletComponent, MicroTileChartCircularComponent, MicroTileChartComparisonComponent, MicroTileChartLineComponent, MicroTileChartStackbarComponent, NewsTileComponent, NumericTileComponent, PinTileComponent, ProfileTileComponent, ShellbarComponent, SimpleTileComponent, TileComponent, TileHomeFilterPipe, TilePropPipe, TilesService, TilesViewerComponent, TilesViewerContainerComponent, TilesViewerGroupComponent, TilesViewerService };
2977
- //# sourceMappingURL=barsa-tiles.mjs.map