barsa-tiles 2.1.1 → 2.1.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 (72) hide show
  1. package/fesm2022/barsa-tiles.mjs +59 -48
  2. package/fesm2022/barsa-tiles.mjs.map +1 -1
  3. package/package.json +3 -5
  4. package/esm2022/barsa-tiles.mjs +0 -5
  5. package/esm2022/lib/action-item/action-item.component.mjs +0 -17
  6. package/esm2022/lib/action-links.pipe.mjs +0 -16
  7. package/esm2022/lib/actions-link/actions-link.component.mjs +0 -49
  8. package/esm2022/lib/app-finder/app-finder.component.mjs +0 -52
  9. package/esm2022/lib/app-finder-app-list/app-finder-app-list.component.mjs +0 -39
  10. package/esm2022/lib/app-finder-group/app-finder-group.component.mjs +0 -41
  11. package/esm2022/lib/app-finder.service.mjs +0 -121
  12. package/esm2022/lib/barsa-pin-app/barsa-pin-app.component.mjs +0 -34
  13. package/esm2022/lib/barsa-shellbar/barsa-shellbar.component.mjs +0 -213
  14. package/esm2022/lib/barsa-tile-group-page/barsa-tile-group-page.component.mjs +0 -71
  15. package/esm2022/lib/barsa-tile-sidebar-page/barsa-tile-sidebar-page.component.mjs +0 -45
  16. package/esm2022/lib/barsa-tiles-routing.module.mjs +0 -58
  17. package/esm2022/lib/barsa-tiles.module.mjs +0 -278
  18. package/esm2022/lib/change-app-tile/change-app-tile.component.mjs +0 -46
  19. package/esm2022/lib/create-app-group/create-app-group.component.mjs +0 -43
  20. package/esm2022/lib/directives/emptylist.directive.mjs +0 -36
  21. package/esm2022/lib/feed-tile/feed-tile.component.mjs +0 -31
  22. package/esm2022/lib/footer-edit-tile/footer-edit-tile.component.mjs +0 -13
  23. package/esm2022/lib/footer-tile/footer-tile.component.mjs +0 -22
  24. package/esm2022/lib/form-app-finder/form-app-finder.component.mjs +0 -95
  25. package/esm2022/lib/form-tile/form-tile.component.mjs +0 -34
  26. package/esm2022/lib/logo-tile/logo-tile.component.mjs +0 -23
  27. package/esm2022/lib/micro-tile-chart-area/micro-tile-chart-area.component.mjs +0 -40
  28. package/esm2022/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.mjs +0 -16
  29. package/esm2022/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +0 -26
  30. package/esm2022/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.mjs +0 -20
  31. package/esm2022/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.mjs +0 -31
  32. package/esm2022/lib/micro-tile-chart-line/micro-tile-chart-line.component.mjs +0 -32
  33. package/esm2022/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.mjs +0 -27
  34. package/esm2022/lib/models/app-tile-footer-section.mjs +0 -2
  35. package/esm2022/lib/models/app-tile-footer.mjs +0 -2
  36. package/esm2022/lib/models/app-tile-group-pin.mjs +0 -2
  37. package/esm2022/lib/models/base-bt-tile-component.mjs +0 -26
  38. package/esm2022/lib/models/base-tile-component.mjs +0 -58
  39. package/esm2022/lib/models/base-tile-setting.mjs +0 -2
  40. package/esm2022/lib/models/feed-tile-setting.mjs +0 -2
  41. package/esm2022/lib/models/index.mjs +0 -14
  42. package/esm2022/lib/models/logo-tile-setting.mjs +0 -2
  43. package/esm2022/lib/models/micro-tile-chart-bullet-setting.mjs +0 -2
  44. package/esm2022/lib/models/news-tile-setting.mjs +0 -2
  45. package/esm2022/lib/models/numeric-tile-setting.mjs +0 -2
  46. package/esm2022/lib/models/profile-tile-setting.mjs +0 -2
  47. package/esm2022/lib/models/tile-setting.mjs +0 -2
  48. package/esm2022/lib/models/user-portal-settings.mjs +0 -2
  49. package/esm2022/lib/news-tile/news-tile.component.mjs +0 -53
  50. package/esm2022/lib/notification-group/notification-group.component.mjs +0 -116
  51. package/esm2022/lib/notification-group-header/notification-group-header.component.mjs +0 -38
  52. package/esm2022/lib/numeric-tile/numeric-tile.component.mjs +0 -64
  53. package/esm2022/lib/pin-tile/pin-tile.component.mjs +0 -110
  54. package/esm2022/lib/pipes/group-tiles.pipe.mjs +0 -31
  55. package/esm2022/lib/pipes/home-group.pipe.mjs +0 -17
  56. package/esm2022/lib/pipes/tile-home-filter.pipe.mjs +0 -28
  57. package/esm2022/lib/pipes/tile-prop.pipe.mjs +0 -50
  58. package/esm2022/lib/popover-app-finder/filter-apps-grouped.pipe.mjs +0 -36
  59. package/esm2022/lib/popover-app-finder/popover-app-finder.component.mjs +0 -102
  60. package/esm2022/lib/profile-tile/profile-tile.component.mjs +0 -34
  61. package/esm2022/lib/shellbar/shellbar.component.mjs +0 -235
  62. package/esm2022/lib/simple-tile/simple-tile.component.mjs +0 -27
  63. package/esm2022/lib/tile/tile.component.mjs +0 -95
  64. package/esm2022/lib/tile-renderer.directive.mjs +0 -82
  65. package/esm2022/lib/tile-size.directive.mjs +0 -30
  66. package/esm2022/lib/tile-style.directive.mjs +0 -29
  67. package/esm2022/lib/tiles-viewer/tiles-viewer.component.mjs +0 -188
  68. package/esm2022/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +0 -173
  69. package/esm2022/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +0 -89
  70. package/esm2022/lib/tiles-viewer.service.mjs +0 -130
  71. package/esm2022/lib/tiles.service.mjs +0 -614
  72. package/esm2022/public-api.mjs +0 -49
@@ -1,213 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, inject, Inject, Input, Output, TemplateRef, ViewChild } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
- import { Subject } from 'rxjs';
4
- import { ComboboxComponent } from '@fundamental-ngx/core';
5
- import { BaseComponent, APP_VERSION } from 'barsa-novin-ray-core';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "barsa-novin-ray-core";
8
- import * as i2 from "@fundamental-ngx/core";
9
- import * as i3 from "@angular/router";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@fundamental-ngx/core/button";
12
- import * as i6 from "@fundamental-ngx/core/list";
13
- import * as i7 from "@fundamental-ngx/core/menu";
14
- import * as i8 from "@fundamental-ngx/core/dialog";
15
- import * as i9 from "@fundamental-ngx/core/title";
16
- import * as i10 from "@fundamental-ngx/core/product-switch";
17
- import * as i11 from "@fundamental-ngx/core/popover";
18
- import * as i12 from "@fundamental-ngx/core/shellbar";
19
- import * as i13 from "barsa-sap-ui";
20
- import * as i14 from "../notification-group/notification-group.component";
21
- export class BarsaShellbarComponent extends BaseComponent {
22
- constructor(_notificationService, _dialogService, _router, _portalService, _document, appVersion) {
23
- super();
24
- this._notificationService = _notificationService;
25
- this._dialogService = _dialogService;
26
- this._router = _router;
27
- this._portalService = _portalService;
28
- this._document = _document;
29
- this.appVersion = appVersion;
30
- this.isServiceDesk = false;
31
- this.isOpenQuickAccessChanged = new EventEmitter(false);
32
- this.openNotificationPanel = new EventEmitter();
33
- this.openQuickAccessPanel = new EventEmitter();
34
- this.cultureChanged = new EventEmitter();
35
- this.notificationLoadMore = new EventEmitter();
36
- this.removeNotification = new EventEmitter();
37
- this.notifiationActionClick = new EventEmitter();
38
- this.notificationViewed = new EventEmitter();
39
- this._cdr = inject(ChangeDetectorRef);
40
- this.Array = Array;
41
- this.isOpenNotificatoin = false;
42
- this.user = {
43
- initials: 'WW',
44
- colorAccent: 1
45
- };
46
- this.searchTerms = ['مرخصی', 'ماموریت', 'تیکت', 'پروژه'];
47
- this.showVersion = false;
48
- this._viewedNotifications$ = new Subject();
49
- this.onBellNotification = () => {
50
- this._document?.body && this._document.body.click();
51
- this._dialogService
52
- .open(this._notificationsDialog, {
53
- mobile: true,
54
- verticalPadding: false,
55
- closeOnNavigation: true
56
- })
57
- .afterLoaded.subscribe(() => {
58
- this.openNotificationPanel.emit();
59
- });
60
- };
61
- this._viewedNotifications = [];
62
- this.onOpenQuickAccess = () => {
63
- this.isOpenQuickAccessChanged.emit(true);
64
- this.openQuickAccessPanel.emit();
65
- };
66
- this.onOpenNotification = () => {
67
- this.isOpenNotificatoin = true;
68
- this.openNotificationPanel.emit();
69
- };
70
- this.onLanguage = (e) => {
71
- const culture = e.currentTarget.textContent.trim();
72
- this._changeCulture(culture);
73
- };
74
- this.showVersion = false;
75
- }
76
- ngOnChanges(changes) {
77
- super.ngOnChanges(changes);
78
- const { userProfileImageUrl } = changes;
79
- if (userProfileImageUrl) {
80
- this.user.image = userProfileImageUrl.currentValue;
81
- }
82
- }
83
- onRouteFormStateChange() {
84
- this._closeSideMenu();
85
- }
86
- onCultureChange(culture) {
87
- this._changeCulture(culture);
88
- }
89
- onShowNotification(e) {
90
- this.isOpenNotificatoin = false;
91
- this._notificationService.ShowNotificationRelatedMo(e);
92
- }
93
- onNotificationItemViewed(viewedMo) {
94
- this.notificationViewed.emit(viewedMo);
95
- }
96
- onRemoveNotifications(e) {
97
- this.removeNotification.emit(e);
98
- }
99
- onNotificationAction(e) {
100
- this.notifiationActionClick.emit(e);
101
- }
102
- onNotificationLoadMore() {
103
- this.notificationLoadMore.emit();
104
- }
105
- _closeSideMenu() {
106
- if (!this.isOpenQuickAccess) {
107
- return;
108
- }
109
- this.isOpenQuickAccessChanged.emit(false);
110
- this._cdr.detectChanges();
111
- }
112
- _changeCulture(culture) {
113
- this.cultureChanged.emit(culture);
114
- }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaShellbarComponent, deps: [{ token: i1.NotificationService }, { token: i2.DialogService }, { token: i3.Router }, { token: i1.PortalService }, { token: DOCUMENT }, { token: APP_VERSION }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaShellbarComponent, selector: "bt-barsa-shellbar", inputs: { cssCustomUrl: "cssCustomUrl", cssUrl: "cssUrl", cssVariableUrl: "cssVariableUrl", 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", isMobile: "isMobile", hideShellbarActions: "hideShellbarActions", showExtraButton: "showExtraButton", isTablet: "isTablet", userProfileImageUrl: "userProfileImageUrl", isDesktop: "isDesktop", isServiceDesk: "isServiceDesk", isOpenQuickAccess: "isOpenQuickAccess", sideMenuTemplate: "sideMenuTemplate" }, outputs: { isOpenQuickAccessChanged: "isOpenQuickAccessChanged", openNotificationPanel: "openNotificationPanel", openQuickAccessPanel: "openQuickAccessPanel", 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, usesOnChanges: true, ngImport: i0, template: "@if (cssVariableUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssVariableUrl\" />\n} @if (cssUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssUrl\" />\n} @if (cssCustomUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssCustomUrl\" />\n}\n<fd-shellbar\n [size]=\"deviceSize\"\n [ngClass]=\"deviceSize\"\n routeFormChange\n (stateChanged)=\"onRouteFormStateChange()\"\n [handleBodyClick]=\"true\"\n>\n @if (sideMenuTemplate) {\n <fd-shellbar-action\n [glyph]=\"'apps'\"\n [label]=\"'Quick Access' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Quick Access' | bbbTranslate\"\n [callback]=\"onOpenQuickAccess\"\n >\n </fd-shellbar-action>\n } @if (sideMenuTemplate) {\n <button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"menu2\"\n style=\"width: 2.75rem\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccessChanged.emit(!isOpenQuickAccess)\"\n ></button>\n } @if (logo) {\n <fd-shellbar-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 } @if (!settings?.HideProductMenu && productMenuItems1 && productMenuItems1.length > 0) {\n <fd-product-menu [control]=\"productMenuControl\" [closePopoverOnSelect]=\"true\" [items]=\"productMenuItems1\">\n </fd-product-menu>\n }\n <fd-shellbar-subtitle> {{ subtitle | bbbTranslate }}{{ showVersion ? appVersion : '' }}</fd-shellbar-subtitle>\n @if (!hideShellbarActions&& user && (userMenu?.length || !settings?.HideLanguage)) {\n <fd-shellbar-actions [user]=\"user\" [userMenu]=\"userMenu\" #langRef>\n @for (action of actions; track action) {\n <fd-shellbar-action\n [glyph]=\"action.Icon\"\n [callback]=\"action.Callback\"\n [label]=\"action.Label\"\n notificationLabel=\"login\"\n >\n </fd-shellbar-action>\n } @if (deviceSize === 's' && userLoggedIn && !settings?.HideNotifications) {\n <fd-shellbar-action\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 } @if (!settings?.HideNotifications && userLoggedIn) {\n <fd-popover\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 } @if (!settings?.HideLanguage && deviceSize !== 's' && multiLanguages) {\n <fd-shellbar-action [glyph]=\"'world'\" [label]=\"'language'\" [fdMenuTrigger]=\"menu\" (callback)=\"(onLanguage)\">\n </fd-shellbar-action>\n } @if (!settings?.HideLanguage && deviceSize === 's' && multiLanguages) { @for (culture of cultures | keyvalue;\n track culture) {\n <fd-shellbar-action\n [label]=\"culture.value\"\n [callback]=\"onLanguage\"\n class=\"culture-abbrivation\"\n [glyph]=\"culture.key\"\n [ngClass]=\"'flags'\"\n >\n </fd-shellbar-action>\n } } @if (productSwitcher?.length) {\n <fd-product-switch>\n <fd-product-switch-body [products]=\"productSwitcher\" [forceListMode]=\"deviceSize === 's'\">\n </fd-product-switch-body>\n </fd-product-switch>\n }\n </fd-shellbar-actions>\n }\n</fd-shellbar>\n@if(showExtraButton){\n<div\n [class.fd-shellbar--xl]=\"isDesktop\"\n [class.fd-shellbar--m]=\"isTablet\"\n [class.fd-shellbar--s]=\"isMobile\"\n class=\"extra-button-wrapper\"\n [class.service-desk]=\"isServiceDesk\"\n>\n <ng-content select=\"button\"></ng-content>\n</div>\n}\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<div\n *ngIf=\"sideMenuTemplate\"\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[100] tw-shadow-2xl tw-overflow-auto\"\n [class.tw-w-screen]=\"isMobile\"\n [class.-tw-right-full]=\"isMobile\"\n [class.tw-w-96]=\"!isMobile\"\n [class.-tw-right-96]=\"!isMobile\"\n [class.!tw-right-0]=\"isOpenQuickAccess\"\n (click)=\"$event.stopPropagation()\"\n>\n <ng-container *ngTemplateOutlet=\"sideMenuTemplate\"></ng-container>\n</div>\n\n@if(isOpenQuickAccess) {\n<div\n class=\"sidemenu-h tw-fixed tw-right-0 tw-bg-slate-800/[.5] tw-z-[90] tw-w-screen tw-backdrop-blur-sm\"\n (click)=\"isOpenQuickAccessChanged.emit(false)\"\n></div>\n}\n<fd-menu #menu>\n <ul fd-list>\n @for (culture of cultures | keyvalue; track culture) {\n <li fd-list-item>\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 }\n </ul>\n</fd-menu>\n<ng-template #notificationGroupTpl let-notificationCount=\"notificationCount\">\n @if (!notifcationLoaded && notificationLoading === true) {\n <div style=\"position: relative; height: 100px\">\n <bsu-mask size=\"s\"></bsu-mask>\n </div>\n }\n <bt-notification-group\n [notifications]=\"notifications\"\n [notificationCount]=\"notificationCount\"\n [loading]=\"notificationLoading === true\"\n (viewed)=\"onNotificationItemViewed($event)\"\n (remove)=\"onRemoveNotifications($event)\"\n (showEvent)=\"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:block;position:relative}: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 ::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}.extra-button-wrapper{display:flex;height:100%;align-items:center;position:absolute;left:10px;top:0;gap:.285rem}.sidemenu-h{top:var(--fdShellbar_Height);height:calc(100vh - var(--fdShellbar_Height))}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i7.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "directive", type: i7.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i8.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i8.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i8.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i8.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title", "ariaLabel"] }, { kind: "component", type: i9.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i10.ProductSwitchComponent, selector: "fd-product-switch", inputs: ["placement", "disabled"] }, { kind: "component", type: i10.ProductSwitchBodyComponent, selector: "fd-product-switch-body", inputs: ["dragAndDropEnabled", "products", "forceListMode"], outputs: ["productsChange", "itemClicked"] }, { kind: "component", type: i11.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i11.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i11.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: i12.ShellbarComponent, selector: "fd-shellbar", inputs: ["size", "breakpoints", "sideNav", "groupFlex"] }, { kind: "component", type: i12.ProductMenuComponent, selector: "fd-product-menu", inputs: ["closeOnEscapeKey", "closeOnOutsideClick", "triggers", "placement", "disabled", "fillControlMode", "control", "items", "closePopoverOnSelect"] }, { kind: "component", type: i12.ShellbarSubtitleComponent, selector: "fd-shellbar-subtitle" }, { kind: "component", type: i12.ShellbarActionsComponent, selector: "fd-shellbar-actions", inputs: ["user", "userMenu", "closePopoverOnSelect"], outputs: ["searchOpen"] }, { kind: "component", type: i12.ShellbarActionComponent, selector: "fd-shellbar-action", inputs: ["glyph", "glyphFont", "callback", "label", "notificationLabel", "notificationCount"] }, { kind: "component", type: i12.ShellbarLogoComponent, selector: "fd-shellbar-logo" }, { kind: "directive", type: i12.ShellbarSidenavDirective, selector: "[fdShellbarSidenav], [fd-shellbar-side-nav]" }, { kind: "directive", type: i1.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i1.RouteFormChangeDirective, selector: "[routeFormChange]", inputs: ["handleBodyClick"], outputs: ["stateChanged"] }, { kind: "component", type: i13.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i14.NotificationGroupComponent, selector: "bt-notification-group", inputs: ["notifications", "loading", "deviceSize", "notificationCount"], outputs: ["viewed", "remove", "actionClick", "showEvent", "loadMore"] }, { kind: "pipe", type: i4.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
117
- }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaShellbarComponent, decorators: [{
119
- type: Component,
120
- args: [{ selector: 'bt-barsa-shellbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (cssVariableUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssVariableUrl\" />\n} @if (cssUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssUrl\" />\n} @if (cssCustomUrl) {\n<link type=\"text/css\" rel=\"stylesheet\" [href]=\"cssCustomUrl\" />\n}\n<fd-shellbar\n [size]=\"deviceSize\"\n [ngClass]=\"deviceSize\"\n routeFormChange\n (stateChanged)=\"onRouteFormStateChange()\"\n [handleBodyClick]=\"true\"\n>\n @if (sideMenuTemplate) {\n <fd-shellbar-action\n [glyph]=\"'apps'\"\n [label]=\"'Quick Access' | bbbTranslate\"\n [notificationCount]=\"notificationCount.unread ?? 0\"\n [notificationLabel]=\"'Quick Access' | bbbTranslate\"\n [callback]=\"onOpenQuickAccess\"\n >\n </fd-shellbar-action>\n } @if (sideMenuTemplate) {\n <button\n fd-shellbar-side-nav\n fd-button\n fdType=\"transparent\"\n glyph=\"menu2\"\n style=\"width: 2.75rem\"\n (click)=\"$event.stopPropagation(); isOpenQuickAccessChanged.emit(!isOpenQuickAccess)\"\n ></button>\n } @if (logo) {\n <fd-shellbar-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 } @if (!settings?.HideProductMenu && productMenuItems1 && productMenuItems1.length > 0) {\n <fd-product-menu [control]=\"productMenuControl\" [closePopoverOnSelect]=\"true\" [items]=\"productMenuItems1\">\n </fd-product-menu>\n }\n <fd-shellbar-subtitle> {{ subtitle | bbbTranslate }}{{ showVersion ? appVersion : '' }}</fd-shellbar-subtitle>\n @if (!hideShellbarActions&& user && (userMenu?.length || !settings?.HideLanguage)) {\n <fd-shellbar-actions [user]=\"user\" [userMenu]=\"userMenu\" #langRef>\n @for (action of actions; track action) {\n <fd-shellbar-action\n [glyph]=\"action.Icon\"\n [callback]=\"action.Callback\"\n [label]=\"action.Label\"\n notificationLabel=\"login\"\n >\n </fd-shellbar-action>\n } @if (deviceSize === 's' && userLoggedIn && !settings?.HideNotifications) {\n <fd-shellbar-action\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 } @if (!settings?.HideNotifications && userLoggedIn) {\n <fd-popover\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 } @if (!settings?.HideLanguage && deviceSize !== 's' && multiLanguages) {\n <fd-shellbar-action [glyph]=\"'world'\" [label]=\"'language'\" [fdMenuTrigger]=\"menu\" (callback)=\"(onLanguage)\">\n </fd-shellbar-action>\n } @if (!settings?.HideLanguage && deviceSize === 's' && multiLanguages) { @for (culture of cultures | keyvalue;\n track culture) {\n <fd-shellbar-action\n [label]=\"culture.value\"\n [callback]=\"onLanguage\"\n class=\"culture-abbrivation\"\n [glyph]=\"culture.key\"\n [ngClass]=\"'flags'\"\n >\n </fd-shellbar-action>\n } } @if (productSwitcher?.length) {\n <fd-product-switch>\n <fd-product-switch-body [products]=\"productSwitcher\" [forceListMode]=\"deviceSize === 's'\">\n </fd-product-switch-body>\n </fd-product-switch>\n }\n </fd-shellbar-actions>\n }\n</fd-shellbar>\n@if(showExtraButton){\n<div\n [class.fd-shellbar--xl]=\"isDesktop\"\n [class.fd-shellbar--m]=\"isTablet\"\n [class.fd-shellbar--s]=\"isMobile\"\n class=\"extra-button-wrapper\"\n [class.service-desk]=\"isServiceDesk\"\n>\n <ng-content select=\"button\"></ng-content>\n</div>\n}\n<ng-template #loading>\n <bsu-mask></bsu-mask>\n</ng-template>\n\n<div\n *ngIf=\"sideMenuTemplate\"\n class=\"sidemenu-h tw-fixed tw-bg-white tw-transition-all tw-z-[100] tw-shadow-2xl tw-overflow-auto\"\n [class.tw-w-screen]=\"isMobile\"\n [class.-tw-right-full]=\"isMobile\"\n [class.tw-w-96]=\"!isMobile\"\n [class.-tw-right-96]=\"!isMobile\"\n [class.!tw-right-0]=\"isOpenQuickAccess\"\n (click)=\"$event.stopPropagation()\"\n>\n <ng-container *ngTemplateOutlet=\"sideMenuTemplate\"></ng-container>\n</div>\n\n@if(isOpenQuickAccess) {\n<div\n class=\"sidemenu-h tw-fixed tw-right-0 tw-bg-slate-800/[.5] tw-z-[90] tw-w-screen tw-backdrop-blur-sm\"\n (click)=\"isOpenQuickAccessChanged.emit(false)\"\n></div>\n}\n<fd-menu #menu>\n <ul fd-list>\n @for (culture of cultures | keyvalue; track culture) {\n <li fd-list-item>\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 }\n </ul>\n</fd-menu>\n<ng-template #notificationGroupTpl let-notificationCount=\"notificationCount\">\n @if (!notifcationLoaded && notificationLoading === true) {\n <div style=\"position: relative; height: 100px\">\n <bsu-mask size=\"s\"></bsu-mask>\n </div>\n }\n <bt-notification-group\n [notifications]=\"notifications\"\n [notificationCount]=\"notificationCount\"\n [loading]=\"notificationLoading === true\"\n (viewed)=\"onNotificationItemViewed($event)\"\n (remove)=\"onRemoveNotifications($event)\"\n (showEvent)=\"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:block;position:relative}: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 ::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}.extra-button-wrapper{display:flex;height:100%;align-items:center;position:absolute;left:10px;top:0;gap:.285rem}.sidemenu-h{top:var(--fdShellbar_Height);height:calc(100vh - var(--fdShellbar_Height))}\n"] }]
121
- }], ctorParameters: () => [{ type: i1.NotificationService }, { type: i2.DialogService }, { type: i3.Router }, { type: i1.PortalService }, { type: Document, decorators: [{
122
- type: Inject,
123
- args: [DOCUMENT]
124
- }] }, { type: undefined, decorators: [{
125
- type: Inject,
126
- args: [APP_VERSION]
127
- }] }], propDecorators: { cssCustomUrl: [{
128
- type: Input
129
- }], cssUrl: [{
130
- type: Input
131
- }], cssVariableUrl: [{
132
- type: Input
133
- }], multiLanguages: [{
134
- type: Input
135
- }], userLoggedIn: [{
136
- type: Input
137
- }], settings: [{
138
- type: Input
139
- }], productMenuControl: [{
140
- type: Input
141
- }], deviceSize: [{
142
- type: Input
143
- }], cultures: [{
144
- type: Input
145
- }], shellbarData: [{
146
- type: Input
147
- }], notificationCount: [{
148
- type: Input
149
- }], notifcationLoaded: [{
150
- type: Input
151
- }], notificationLoading: [{
152
- type: Input
153
- }], notifications: [{
154
- type: Input
155
- }], productMenuItems1: [{
156
- type: Input
157
- }], bodyClick: [{
158
- type: Input
159
- }], logo: [{
160
- type: Input
161
- }], actions: [{
162
- type: Input
163
- }], userMenu: [{
164
- type: Input
165
- }], productSwitcher: [{
166
- type: Input
167
- }], subtitle: [{
168
- type: Input
169
- }], isMobile: [{
170
- type: Input
171
- }], hideShellbarActions: [{
172
- type: Input
173
- }], showExtraButton: [{
174
- type: Input
175
- }], isTablet: [{
176
- type: Input
177
- }], userProfileImageUrl: [{
178
- type: Input
179
- }], isDesktop: [{
180
- type: Input
181
- }], isServiceDesk: [{
182
- type: Input
183
- }], isOpenQuickAccess: [{
184
- type: Input
185
- }], sideMenuTemplate: [{
186
- type: Input
187
- }], isOpenQuickAccessChanged: [{
188
- type: Output
189
- }], openNotificationPanel: [{
190
- type: Output
191
- }], openQuickAccessPanel: [{
192
- type: Output
193
- }], cultureChanged: [{
194
- type: Output
195
- }], notificationLoadMore: [{
196
- type: Output
197
- }], removeNotification: [{
198
- type: Output
199
- }], notifiationActionClick: [{
200
- type: Output
201
- }], notificationViewed: [{
202
- type: Output
203
- }], comboboxComponent: [{
204
- type: ViewChild,
205
- args: [ComboboxComponent]
206
- }], popoverComponent: [{
207
- type: ViewChild,
208
- args: ['popoverComponent', { static: false }]
209
- }], _notificationsDialog: [{
210
- type: ViewChild,
211
- args: ['notificationsDialog', { static: true, read: TemplateRef }]
212
- }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etc2hlbGxiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9iYXJzYS1zaGVsbGJhci9iYXJzYS1zaGVsbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL2JhcnNhLXNoZWxsYmFyL2JhcnNhLXNoZWxsYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUNILGlCQUFpQixFQU1wQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFDSCxhQUFhLEVBSWIsV0FBVyxFQU1kLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQjlCLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBMEVyRCxZQUNZLG9CQUF5QyxFQUN6QyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsY0FBNkIsRUFDWCxTQUFtQixFQUNqQixVQUFrQjtRQUU5QyxLQUFLLEVBQUUsQ0FBQztRQVBBLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQ1gsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNqQixlQUFVLEdBQVYsVUFB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LGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUV1QixpQkFBaUI7c0JBQTlDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNzQixnQkFBZ0I7c0JBQWpFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUN1QixvQkFBb0I7c0JBQTFGLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBDb21ib2JveENvbXBvbmVudCxcbiAgICBEaWFsb2dTZXJ2aWNlLFxuICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgUHJvZHVjdFN3aXRjaEl0ZW0sXG4gICAgU2hlbGxiYXJNZW51SXRlbSxcbiAgICBTaGVsbGJhclVzZXJcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgRmlsZVBpY3R1cmVJbmZvTW9kZWwsXG4gICAgTW9Gb3JSZXBvcnRNb2RlbCxcbiAgICBBUFBfVkVSU0lPTixcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIE5vdGlmaWNhdGlvbkl0ZW0sXG4gICAgTm90aWZpY2F0aW9uQWN0aW9uLFxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcbiAgICBQb3J0YWxTZXJ2aWNlXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmludGVyZmFjZSBTaGVsbGJhclNldHRpbmcgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICBzdWJ0aXRsZTogc3RyaW5nO1xuICAgIGNhbGNTdWJ0aXRsZTogc3RyaW5nO1xuICAgIGxvZ286IEZpbGVQaWN0dXJlSW5mb01vZGVsO1xuICAgIFByb2R1Y3RTd2l0Y2hJdGVtczogTW9Gb3JSZXBvcnRNb2RlbDtcbiAgICBQcm9kdWN0TWVudUl0ZW1zOiBNb0ZvclJlcG9ydE1vZGVsO1xuICAgIFVzZXJNZW51SXRlbXM6IE1vRm9yUmVwb3J0TW9kZWw7XG4gICAgQWN0aW9uSXRlbXM6IE1vRm9yUmVwb3J0TW9kZWw7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnQtYmFyc2Etc2hlbGxiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1zaGVsbGJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2Etc2hlbGxiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVNoZWxsYmFyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgY3NzQ3VzdG9tVXJsOiBTYWZlUmVzb3VyY2VVcmwgfCBudWxsO1xuICAgIEBJbnB1dCgpIGNzc1VybDogU2FmZVJlc291cmNlVXJsIHwgbnVsbDtcbiAgICBASW5wdXQoKSBjc3NWYXJpYWJsZVVybDogU2FmZVJlc291cmNlVXJsIHwgbnVsbDtcbiAgICBASW5wdXQoKSBtdWx0aUxhbmd1YWdlczogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB1c2VyTG9nZ2VkSW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2V0dGluZ3M6IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgQElucHV0KCkgcHJvZHVjdE1lbnVDb250cm9sOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIGN1bHR1cmVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIEBJbnB1dCgpIHNoZWxsYmFyRGF0YTogU2hlbGxiYXJTZXR0aW5nO1xuICAgIEBJbnB1dCgpIG5vdGlmaWNhdGlvbkNvdW50OiB7IHVucmVhZDogbnVtYmVyOyBhbGw6IG51bWJlciB9O1xuICAgIEBJbnB1dCgpIG5vdGlmY2F0aW9uTG9hZGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5vdGlmaWNhdGlvbkxvYWRpbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uSXRlbVtdO1xuICAgIEBJbnB1dCgpIHByb2R1Y3RNZW51SXRlbXMxOiBTaGVsbGJhck1lbnVJdGVtW107XG4gICAgQElucHV0KCkgYm9keUNsaWNrOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbG9nbzogeyBGaWxlSWQ6IHN0cmluZyB9O1xuICAgIEBJbnB1dCgpIGFjdGlvbnM6IEFycmF5PE1ldGFvYmplY3REYXRhTW9kZWw+O1xuICAgIEBJbnB1dCgpIHVzZXJNZW51OiB7IHRleHQ6IHN0cmluZzsgY2FsbGJhY2s6ICgpID0+IHZvaWQgfVtdO1xuICAgIEBJbnB1dCgpIHByb2R1Y3RTd2l0Y2hlcjogUHJvZHVjdFN3aXRjaEl0ZW1bXTtcbiAgICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVTaGVsbGJhckFjdGlvbnM6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd0V4dHJhQnV0dG9uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzVGFibGV0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHVzZXJQcm9maWxlSW1hZ2VVcmw6IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KCkgaXNEZXNrdG9wOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzU2VydmljZURlc2sgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc09wZW5RdWlja0FjY2VzcztcbiAgICBASW5wdXQoKSBzaWRlTWVudVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcblxuICAgIEBPdXRwdXQoKSBpc09wZW5RdWlja0FjY2Vzc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBAT3V0cHV0KCkgb3Blbk5vdGlmaWNhdGlvblBhbmVsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBvcGVuUXVpY2tBY2Nlc3NQYW5lbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgY3VsdHVyZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uTG9hZE1vcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHJlbW92ZU5vdGlmaWNhdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdOyBzaWxlbnQ6IGJvb2xlYW4gfT4oKTtcbiAgICBAT3V0cHV0KCkgbm90aWZpYXRpb25BY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtOiBOb3RpZmljYXRpb25JdGVtOyBidG46IE5vdGlmaWNhdGlvbkFjdGlvbiB9PigpO1xuICAgIEBPdXRwdXQoKSBub3RpZmljYXRpb25WaWV3ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5vdGlmaWNhdGlvbkl0ZW0+KCk7XG5cbiAgICBAVmlld0NoaWxkKENvbWJvYm94Q29tcG9uZW50KSBjb21ib2JveENvbXBvbmVudDogQ29tYm9ib3hDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgncG9wb3ZlckNvbXBvbmVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3BvdmVyQ29tcG9uZW50OiBQb3BvdmVyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ25vdGlmaWNhdGlvbnNEaWFsb2cnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVGVtcGxhdGVSZWYgfSkgX25vdGlmaWNhdGlvbnNEaWFsb2c6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcml2YXRlIF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgQXJyYXkgPSBBcnJheTtcbiAgICBpc09wZW5Ob3RpZmljYXRvaW4gPSBmYWxzZTtcblxuICAgIHVzZXI6IFNoZWxsYmFyVXNlciA9IHtcbiAgICAgICAgaW5pdGlhbHM6ICdXVycsXG4gICAgICAgIGNvbG9yQWNjZW50OiAxXG4gICAgfTtcbiAgICBzZWFyY2hUZXJtcyA9IFsn2YXYsdiu2LXbjCcsICfZhdin2YXZiNix24zYqicsICfYqtuM2qnYqicsICfZvtix2YjamNmHJ107XG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xuICAgIGFjdGlvbnMkOiBPYnNlcnZhYmxlPFNoZWxsYmFyTWVudUl0ZW1bXT47XG5cbiAgICBzaG93VmVyc2lvbiA9IGZhbHNlO1xuXG4gICAgX3ZpZXdlZE5vdGlmaWNhdGlvbnMkID0gbmV3IFN1YmplY3Q8Tm90aWZpY2F0aW9uSXRlbT4oKTtcbiAgICBvbkJlbGxOb3RpZmljYXRpb24gPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuX2RvY3VtZW50Py5ib2R5ICYmIHRoaXMuX2RvY3VtZW50LmJvZHkuY2xpY2soKTtcbiAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW4odGhpcy5fbm90aWZpY2F0aW9uc0RpYWxvZywge1xuICAgICAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbFBhZGRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFmdGVyTG9hZGVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTm90aWZpY2F0aW9uUGFuZWwuZW1pdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfTtcbiAgICBfdmlld2VkTm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uSXRlbVtdID0gW107XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX25vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoQVBQX1ZFUlNJT04pIHB1YmxpYyBhcHBWZXJzaW9uOiBzdHJpbmdcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zaG93VmVyc2lvbiA9IGZhbHNlO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IHVzZXJQcm9maWxlSW1hZ2VVcmwgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh1c2VyUHJvZmlsZUltYWdlVXJsKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIuaW1hZ2UgPSB1c2VyUHJvZmlsZUltYWdlVXJsLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblJvdXRlRm9ybVN0YXRlQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbG9zZVNpZGVNZW51KCk7XG4gICAgfVxuICAgIG9uQ3VsdHVyZUNoYW5nZShjdWx0dXJlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZUN1bHR1cmUoY3VsdHVyZSk7XG4gICAgfVxuICAgIG9uU2hvd05vdGlmaWNhdGlvbihlOiB7IHRhZzogc3RyaW5nOyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgbmFtYTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW5Ob3RpZmljYXRvaW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5TaG93Tm90aWZpY2F0aW9uUmVsYXRlZE1vKGUpO1xuICAgIH1cbiAgICBvbk5vdGlmaWNhdGlvbkl0ZW1WaWV3ZWQodmlld2VkTW86IE5vdGlmaWNhdGlvbkl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25WaWV3ZWQuZW1pdCh2aWV3ZWRNbyk7XG4gICAgfVxuXG4gICAgb25SZW1vdmVOb3RpZmljYXRpb25zKGU6IHsgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTsgc2lsZW50OiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVOb3RpZmljYXRpb24uZW1pdChlKTtcbiAgICB9XG4gICAgb25PcGVuUXVpY2tBY2Nlc3MgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNPcGVuUXVpY2tBY2Nlc3NDaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMub3BlblF1aWNrQWNjZXNzUGFuZWwuZW1pdCgpO1xuICAgIH07XG4gICAgb25PcGVuTm90aWZpY2F0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3Blbk5vdGlmaWNhdG9pbiA9IHRydWU7XG4gICAgICAgIHRoaXMub3Blbk5vdGlmaWNhdGlvblBhbmVsLmVtaXQoKTtcbiAgICB9O1xuICAgIG9uTm90aWZpY2F0aW9uQWN0aW9uKGU6IHsgaXRlbTogTm90aWZpY2F0aW9uSXRlbTsgYnRuOiBOb3RpZmljYXRpb25BY3Rpb24gfSk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vdGlmaWF0aW9uQWN0aW9uQ2xpY2suZW1pdChlKTtcbiAgICB9XG4gICAgb25MYW5ndWFnZSA9IChlKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IGN1bHR1cmUgPSBlLmN1cnJlbnRUYXJnZXQudGV4dENvbnRlbnQudHJpbSgpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VDdWx0dXJlKGN1bHR1cmUpO1xuICAgIH07XG4gICAgb25Ob3RpZmljYXRpb25Mb2FkTW9yZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25Mb2FkTW9yZS5lbWl0KCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2Nsb3NlU2lkZU1lbnUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc09wZW5RdWlja0FjY2Vzcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNPcGVuUXVpY2tBY2Nlc3NDaGFuZ2VkLmVtaXQoZmFsc2UpO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGFuZ2VDdWx0dXJlKGN1bHR1cmU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1bHR1cmVDaGFuZ2VkLmVtaXQoY3VsdHVyZSk7XG4gICAgfVxufVxuIiwiQGlmIChjc3NWYXJpYWJsZVVybCkge1xuPGxpbmsgdHlwZT1cInRleHQvY3NzXCIgcmVsPVwic3R5bGVzaGVldFwiIFtocmVmXT1cImNzc1ZhcmlhYmxlVXJsXCIgLz5cbn0gQGlmIChjc3NVcmwpIHtcbjxsaW5rIHR5cGU9XCJ0ZXh0L2Nzc1wiIHJlbD1cInN0eWxlc2hlZXRcIiBbaHJlZl09XCJjc3NVcmxcIiAvPlxufSBAaWYgKGNzc0N1c3RvbVVybCkge1xuPGxpbmsgdHlwZT1cInRleHQvY3NzXCIgcmVsPVwic3R5bGVzaGVldFwiIFtocmVmXT1cImNzc0N1c3RvbVVybFwiIC8+XG59XG48ZmQtc2hlbGxiYXJcbiAgICBbc2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICBbbmdDbGFzc109XCJkZXZpY2VTaXplXCJcbiAgICByb3V0ZUZvcm1DaGFuZ2VcbiAgICAoc3RhdGVDaGFuZ2VkKT1cIm9uUm91dGVGb3JtU3RhdGVDaGFuZ2UoKVwiXG4gICAgW2hhbmRsZUJvZHlDbGlja109XCJ0cnVlXCJcbj5cbiAgICBAaWYgKHNpZGVNZW51VGVtcGxhdGUpIHtcbiAgICA8ZmQtc2hlbGxiYXItYWN0aW9uXG4gICAgICAgIFtnbHlwaF09XCInYXBwcydcIlxuICAgICAgICBbbGFiZWxdPVwiJ1F1aWNrIEFjY2VzcycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICBbbm90aWZpY2F0aW9uQ291bnRdPVwibm90aWZpY2F0aW9uQ291bnQudW5yZWFkID8/IDBcIlxuICAgICAgICBbbm90aWZpY2F0aW9uTGFiZWxdPVwiJ1F1aWNrIEFjY2VzcycgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICBbY2FsbGJhY2tdPVwib25PcGVuUXVpY2tBY2Nlc3NcIlxuICAgID5cbiAgICA8L2ZkLXNoZWxsYmFyLWFjdGlvbj5cbiAgICB9IEBpZiAoc2lkZU1lbnVUZW1wbGF0ZSkge1xuICAgIDxidXR0b25cbiAgICAgICAgZmQtc2hlbGxiYXItc2lkZS1uYXZcbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgZ2x5cGg9XCJtZW51MlwiXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDIuNzVyZW1cIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpc09wZW5RdWlja0FjY2Vzc0NoYW5nZWQuZW1pdCghaXNPcGVuUXVpY2tBY2Nlc3MpXCJcbiAgICA+PC9idXR0b24+XG4gICAgfSBAaWYgKGxvZ28pIHtcbiAgICA8ZmQtc2hlbGxiYXItbG9nbz5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kSW1hZ2VdPVwiJ3VybCgnICsgKGxvZ28/LkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnR2V0UGljdHVyZUZyb21GaWxlSW5mbyc6bnVsbCkgKyAnKSdcIlxuICAgICAgICAgICAgaHJlZj1cIi9cIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1zaGVsbGJhcl9fbG9nbyBmZC1zaGVsbGJhcl9fbG9nby0taW1hZ2UtcmVwbGFjZWRcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkJhcnNhIE5vdmluIFJheVwiXG4gICAgICAgID48L2E+XG4gICAgPC9mZC1zaGVsbGJhci1sb2dvPlxuICAgIH0gQGlmICghc2V0dGluZ3M/LkhpZGVQcm9kdWN0TWVudSAmJiBwcm9kdWN0TWVudUl0ZW1zMSAmJiBwcm9kdWN0TWVudUl0ZW1zMS5sZW5ndGggPiAwKSB7XG4gICAgPGZkLXByb2R1Y3QtbWVudSBbY29udHJvbF09XCJwcm9kdWN0TWVudUNvbnRyb2xcIiBbY2xvc2VQb3BvdmVyT25TZWxlY3RdPVwidHJ1ZVwiIFtpdGVtc109XCJwcm9kdWN0TWVudUl0ZW1zMVwiPlxuICAgIDwvZmQtcHJvZHVjdC1tZW51PlxuICAgIH1cbiAgICA8ZmQtc2hlbGxiYXItc3VidGl0bGU+IHt7IHN1YnRpdGxlIHwgYmJiVHJhbnNsYXRlIH19e3sgc2hvd1ZlcnNpb24gPyBhcHBWZXJzaW9uIDogJycgfX08L2ZkLXNoZWxsYmFyLXN1YnRpdGxlPlxuICAgIEBpZiAoIWhpZGVTaGVsbGJhckFjdGlvbnMmJiB1c2VyICYmICh1c2VyTWVudT8ubGVuZ3RoIHx8ICFzZXR0aW5ncz8uSGlkZUxhbmd1YWdlKSkge1xuICAgIDxmZC1zaGVsbGJhci1hY3Rpb25zIFt1c2VyXT1cInVzZXJcIiBbdXNlck1lbnVdPVwidXNlck1lbnVcIiAjbGFuZ1JlZj5cbiAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnM7IHRyYWNrIGFjdGlvbikge1xuICAgICAgICA8ZmQtc2hlbGxiYXItYWN0aW9uXG4gICAgICAgICAgICBbZ2x5cGhdPVwiYWN0aW9uLkljb25cIlxuICAgICAgICAgICAgW2NhbGxiYWNrXT1cImFjdGlvbi5DYWxsYmFja1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiYWN0aW9uLkxhYmVsXCJcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbkxhYmVsPVwibG9naW5cIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtc2hlbGxiYXItYWN0aW9uPlxuICAgICAgICB9IEBpZiAoZGV2aWNlU2l6ZSA9PT0gJ3MnICYmIHVzZXJMb2dnZWRJbiAmJiAhc2V0dGluZ3M/LkhpZGVOb3RpZmljYXRpb25zKSB7XG4gICAgICAgIDxmZC1zaGVsbGJhci1hY3Rpb25cbiAgICAgICAgICAgIFtnbHlwaF09XCInYmVsbCdcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidOb3RpZmljYXRpb25zJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbbm90aWZpY2F0aW9uQ291bnRdPVwibm90aWZpY2F0aW9uQ291bnQudW5yZWFkID8/IDBcIlxuICAgICAgICAgICAgW25vdGlmaWNhdGlvbkxhYmVsXT1cIidOb3RpZmljYXRpb25zJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbY2FsbGJhY2tdPVwib25CZWxsTm90aWZpY2F0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLXNoZWxsYmFyLWFjdGlvbj5cbiAgICAgICAgfSBAaWYgKCFzZXR0aW5ncz8uSGlkZU5vdGlmaWNhdGlvbnMgJiYgdXNlckxvZ2dlZEluKSB7XG4gICAgICAgIDxmZC1wb3BvdmVyXG4gICAgICAgICAgICBbKGlzT3BlbildPVwiaXNPcGVuTm90aWZpY2F0b2luXCJcbiAgICAgICAgICAgIFt0cmlnZ2Vyc109XCJbXVwiXG4gICAgICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW25vQXJyb3ddPVwidHJ1ZVwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgICAgdGl0bGU9XCJOb3RpZmljYXRpb24gUG9wb3ZlclwiXG4gICAgICAgICAgICBbZm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttb2JpbGVdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCJcbiAgICAgICAgICAgICNwb3BvdmVyQ29tcG9uZW50XG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPGZkLXNoZWxsYmFyLWFjdGlvblxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ2JlbGwnXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidOb3RpZmljYXRpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgW25vdGlmaWNhdGlvbkNvdW50XT1cIm5vdGlmaWNhdGlvbkNvdW50LnVucmVhZFwiXG4gICAgICAgICAgICAgICAgICAgIFtub3RpZmljYXRpb25MYWJlbF09XCInTm90aWZpY2F0aW9uIExhYmVsJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsYmFja109XCJvbk9wZW5Ob3RpZmljYXRpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2ZkLXNoZWxsYmFyLWFjdGlvbj5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keSBzdHlsZT1cIm1pbi13aWR0aDogMzIwcHg7IG92ZXJmbG93LXg6IGF1dG87IGJveC1zaGFkb3c6IHZhcigtLXNhcENvbnRlbnRfU2hhZG93MClcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibm90aWZpY2F0aW9uR3JvdXBUcGw7IGNvbnRleHQ6IHsgbm90aWZpY2F0aW9uQ291bnQ6IG5vdGlmaWNhdGlvbkNvdW50IH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgIH0gQGlmICghc2V0dGluZ3M/LkhpZGVMYW5ndWFnZSAmJiBkZXZpY2VTaXplICE9PSAncycgJiYgbXVsdGlMYW5ndWFnZXMpIHtcbiAgICAgICAgPGZkLXNoZWxsYmFyLWFjdGlvbiBbZ2x5cGhdPVwiJ3dvcmxkJ1wiIFtsYWJlbF09XCInbGFuZ3VhZ2UnXCIgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiIChjYWxsYmFjayk9XCIob25MYW5ndWFnZSlcIj5cbiAgICAgICAgPC9mZC1zaGVsbGJhci1hY3Rpb24+XG4gICAgICAgIH0gQGlmICghc2V0dGluZ3M/LkhpZGVMYW5ndWFnZSAmJiBkZXZpY2VTaXplID09PSAncycgJiYgbXVsdGlMYW5ndWFnZXMpIHsgQGZvciAoY3VsdHVyZSBvZiBjdWx0dXJlcyB8IGtleXZhbHVlO1xuICAgICAgICB0cmFjayBjdWx0dXJlKSB7XG4gICAgICAgIDxmZC1zaGVsbGJhci1hY3Rpb25cbiAgICAgICAgICAgIFtsYWJlbF09XCJjdWx0dXJlLnZhbHVlXCJcbiAgICAgICAgICAgIFtjYWxsYmFja109XCJvbkxhbmd1YWdlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3VsdHVyZS1hYmJyaXZhdGlvblwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiY3VsdHVyZS5rZXlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ2ZsYWdzJ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1zaGVsbGJhci1hY3Rpb24+XG4gICAgICAgIH0gfSBAaWYgKHByb2R1Y3RTd2l0Y2hlcj8ubGVuZ3RoKSB7XG4gICAgICAgIDxmZC1wcm9kdWN0LXN3aXRjaD5cbiAgICAgICAgICAgIDxmZC1wcm9kdWN0LXN3aXRjaC1ib2R5IFtwcm9kdWN0c109XCJwcm9kdWN0U3dpdGNoZXJcIiBbZm9yY2VMaXN0TW9kZV09XCJkZXZpY2VTaXplID09PSAncydcIj5cbiAgICAgICAgICAgIDwvZmQtcHJvZHVjdC1zd2l0Y2gtYm9keT5cbiAgICAgICAgPC9mZC1wcm9kdWN0LXN3aXRjaD5cbiAgICAgICAgfVxuICAgIDwvZmQtc2hlbGxiYXItYWN0aW9ucz5cbiAgICB9XG48L2ZkLXNoZWxsYmFyPlxuQGlmKHNob3dFeHRyYUJ1dHRvbil7XG48ZGl2XG4gICAgW2NsYXNzLmZkLXNoZWxsYmFyLS14bF09XCJpc0Rlc2t0b3BcIlxuICAgIFtjbGFzcy5mZC1zaGVsbGJhci0tbV09XCJpc1RhYmxldFwiXG4gICAgW2NsYXNzLmZkLXNoZWxsYmFyLS1zXT1cImlzTW9iaWxlXCJcbiAgICBjbGFzcz1cImV4dHJhLWJ1dHRvbi13cmFwcGVyXCJcbiAgICBbY2xhc3Muc2VydmljZS1kZXNrXT1cImlzU2VydmljZURlc2tcIlxuPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvblwiPjwvbmctY29udGVudD5cbjwvZGl2PlxufVxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgIDxic3UtbWFzaz48L2JzdS1tYXNrPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdlxuICAgICpuZ0lmPVwic2lkZU1lbnVUZW1wbGF0ZVwiXG4gICAgY2xhc3M9XCJzaWRlbWVudS1oIHR3LWZpeGVkIHR3LWJnLXdoaXRlIHR3LXRyYW5zaXRpb24tYWxsIHR3LXotWzEwMF0gdHctc2hhZG93LTJ4bCB0dy1vdmVyZmxvdy1hdXRvXCJcbiAgICBbY2xhc3MudHctdy1zY3JlZW5dPVwiaXNNb2JpbGVcIlxuICAgIFtjbGFzcy4tdHctcmlnaHQtZnVsbF09XCJpc01vYmlsZVwiXG4gICAgW2NsYXNzLnR3LXctOTZdPVwiIWlzTW9iaWxlXCJcbiAgICBbY2xhc3MuLXR3LXJpZ2h0LTk2XT1cIiFpc01vYmlsZVwiXG4gICAgW2NsYXNzLiF0dy1yaWdodC0wXT1cImlzT3BlblF1aWNrQWNjZXNzXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZU1lbnVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbkBpZihpc09wZW5RdWlja0FjY2Vzcykge1xuPGRpdlxuICAgIGNsYXNzPVwic2lkZW1lbnUtaCB0dy1maXhlZCB0dy1yaWdodC0wIHR3LWJnLXNsYXRlLTgwMC9bLjVdIHR3LXotWzkwXSB0dy13LXNjcmVlbiB0dy1iYWNrZHJvcC1ibHVyLXNtXCJcbiAgICAoY2xpY2spPVwiaXNPcGVuUXVpY2tBY2Nlc3NDaGFuZ2VkLmVtaXQoZmFsc2UpXCJcbj48L2Rpdj5cbn1cbjxmZC1tZW51ICNtZW51PlxuICAgIDx1bCBmZC1saXN0PlxuICAgICAgICBAZm9yIChjdWx0dXJlIG9mIGN1bHR1cmVzIHwga2V5dmFsdWU7IHRyYWNrIGN1bHR1cmUpIHtcbiAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25DdWx0dXJlQ2hhbmdlKGN1bHR1cmUudmFsdWUpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGltZyB3aWR0aD1cIjE0cHhcIiBoZWlnaHQ9XCIxMnB4XCIgW3NyY109XCInL2Fzc2V0cy9mbGFncy8nICsgY3VsdHVyZS5rZXkgKyAnLnBuZydcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1bHR1cmUtYWJicml2YXRpb25cIiBbbmdDbGFzc109XCJjdWx0dXJlLmtleVwiPiB7eyBjdWx0dXJlLmtleSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICA8L3VsPlxuPC9mZC1tZW51PlxuPG5nLXRlbXBsYXRlICNub3RpZmljYXRpb25Hcm91cFRwbCBsZXQtbm90aWZpY2F0aW9uQ291bnQ9XCJub3RpZmljYXRpb25Db3VudFwiPlxuICAgIEBpZiAoIW5vdGlmY2F0aW9uTG9hZGVkICYmIG5vdGlmaWNhdGlvbkxvYWRpbmcgPT09IHRydWUpIHtcbiAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDEwMHB4XCI+XG4gICAgICAgIDxic3UtbWFzayBzaXplPVwic1wiPjwvYnN1LW1hc2s+XG4gICAgPC9kaXY+XG4gICAgfVxuICAgIDxidC1ub3RpZmljYXRpb24tZ3JvdXBcbiAgICAgICAgW25vdGlmaWNhdGlvbnNdPVwibm90aWZpY2F0aW9uc1wiXG4gICAgICAgIFtub3RpZmljYXRpb25Db3VudF09XCJub3RpZmljYXRpb25Db3VudFwiXG4gICAgICAgIFtsb2FkaW5nXT1cIm5vdGlmaWNhdGlvbkxvYWRpbmcgPT09IHRydWVcIlxuICAgICAgICAodmlld2VkKT1cIm9uTm90aWZpY2F0aW9uSXRlbVZpZXdlZCgkZXZlbnQpXCJcbiAgICAgICAgKHJlbW92ZSk9XCJvblJlbW92ZU5vdGlmaWNhdGlvbnMoJGV2ZW50KVwiXG4gICAgICAgIChzaG93RXZlbnQpPVwicG9wb3ZlckNvbXBvbmVudC5jbG9zZSgpOyBvblNob3dOb3RpZmljYXRpb24oJGV2ZW50KVwiXG4gICAgICAgIChhY3Rpb25DbGljayk9XCJwb3BvdmVyQ29tcG9uZW50LmNsb3NlKCk7IG9uTm90aWZpY2F0aW9uQWN0aW9uKCRldmVudClcIlxuICAgICAgICAobG9hZE1vcmUpPVwib25Ob3RpZmljYXRpb25Mb2FkTW9yZSgpXCJcbiAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgPjwvYnQtbm90aWZpY2F0aW9uLWdyb3VwPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNub3RpZmljYXRpb25zRGlhbG9nPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItMTBcIiBmZC10aXRsZT57eyAnTm90aWZpY2F0aW9uJyB8IGJiYlRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgICAgICA8YnV0dG9uIGZkLWRpYWxvZy1jbG9zZS1idXR0b24gKGNsaWNrKT1cImRpYWxvZy5kaXNtaXNzKClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHkgY2xhc3M9XCJtb2JpbGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm5vdGlmaWNhdGlvbkdyb3VwVHBsOyBjb250ZXh0OiB7IG5vdGlmaWNhdGlvbkNvdW50OiBub3RpZmljYXRpb25Db3VudCB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,71 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, inject, signal, ViewChild, ViewContainerRef } from '@angular/core';
2
- import { ActivatedRoute, Router } from '@angular/router';
3
- import { BarsaApi, BaseComponent, getDeviceIsMobile, LogService, LocalStorageService, BreadcrumbService, RoutingService, PortalService } from 'barsa-novin-ray-core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/cdk/scrolling";
7
- import * as i3 from "@fundamental-ngx/core/breadcrumb";
8
- import * as i4 from "@fundamental-ngx/core/button";
9
- import * as i5 from "@fundamental-ngx/core/dynamic-page";
10
- import * as i6 from "@fundamental-ngx/core/toolbar";
11
- import * as i7 from "barsa-sap-ui";
12
- import * as i8 from "../tile-renderer.directive";
13
- import * as i9 from "barsa-novin-ray-core";
14
- export class BarsaTileGroupPageComponent extends BaseComponent {
15
- constructor() {
16
- super(...arguments);
17
- this._position = 'absolute';
18
- this.moList = signal([]);
19
- this.isMobile = getDeviceIsMobile();
20
- this.rtl = BarsaApi.LoginFormData.IsRtl;
21
- this._logService = inject(LogService);
22
- this._activatedRoute = inject(ActivatedRoute);
23
- this._cdr = inject(ChangeDetectorRef);
24
- this._router = inject(Router);
25
- this._localStorage = inject(LocalStorageService);
26
- this._breadCrumbService = inject(BreadcrumbService);
27
- this._portalService = inject(PortalService);
28
- this.loading = signal(false);
29
- }
30
- ngOnInit() {
31
- super.ngOnInit();
32
- this.breadcrumbs$ = this._breadCrumbService.breadcrumbs$;
33
- this.title = localStorage.getItem('ActiveTile');
34
- this.isSimple = this.parameters?.IsSimple || this.settings?.IsSimple;
35
- this.listMode = this.parameters?.ListMode || this.settings?.ListMode;
36
- if (this.isSimple) {
37
- this._position = 'relative';
38
- }
39
- this.deviceSize = this._portalService.deviceSize;
40
- const id = this._activatedRoute.snapshot.params['id'];
41
- BarsaApi.Bw.RunBlMethodAsync({
42
- Parameters: [id],
43
- Method: 'GetTileGroupApps',
44
- SuccessFn: (e) => {
45
- this.moList.set(e.MoDataList);
46
- },
47
- FailFn: (e) => {
48
- this._logService.error(e);
49
- }
50
- });
51
- }
52
- ngOnChanges(changes) {
53
- super.ngOnChanges(changes);
54
- }
55
- onClose() {
56
- this._router.navigate(['../']);
57
- }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaTileGroupPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaTileGroupPageComponent, selector: "bt-barsa-tile-group-page", host: { properties: { "style.position": "this._position" } }, providers: [RoutingService], viewQueries: [{ propertyName: "_containerRef", first: true, predicate: ["containerRef"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isSimple ){\n<fd-dynamic-page [autoResponsive]=\"true\">\n <fd-dynamic-page-header\n [class.simple-title]=\"true\"\n [title]=\"title | bbbTranslate\"\n [class.p-b0]=\"true\"\n [class.hide-title]=\"false\"\n >\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\n <fd-breadcrumb>\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs | slice:\n 0:breadCrumbs.length; track breadCrumb.url; let i = $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n } }\n </fd-breadcrumb>\n </fd-dynamic-page-breadcrumb>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n\n <fd-dynamic-page-content cdkScrollable>\n <ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\n </fd-dynamic-page-content>\n</fd-dynamic-page>\n} @else {\n<ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\n}\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n<ng-template #tilesTpl>\n <div class=\"tw-flex tw-gap-1 tw-flex-wrap\">\n @for(app of moList();track app.Id){\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app, deviceSize: deviceSize }\"></ng-container>\n }\n </div>\n</ng-template>\n<ng-template #tile let-app let-listMode=\"listMode\" let-navigateBack=\"navigateBack\" let-deviceSize=\"deviceSize\">\n <span\n [dynamicCommand]=\"app.DynamicCommand\"\n [setToStorage]=\"false\"\n [listMode]=\"false\"\n [navigateBackOnClick]=\"listMode ? false : isSimple ? true : false\"\n [enableCommand]=\"app.Component\"\n tileRenderer\n [data]=\"app\"\n [edit]=\"false\"\n [deviceSize]=\"deviceSize\"\n [component]=\"app.Component\"\n >\n </span>\n</ng-template>\n", styles: [":host{width:100%;display:block}.app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i3.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i3.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i5.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "titleId"] }, { kind: "component", type: i5.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i5.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i5.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i6.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i7.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i7.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "directive", type: i8.TileRendererDirective, selector: "[tileRenderer]", inputs: ["component", "data", "edit", "deviceSize", "setToStorage", "listMode", "navigateBackOnClick"], outputs: ["hideClick", "renameClick"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i9.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60
- }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaTileGroupPageComponent, decorators: [{
62
- type: Component,
63
- args: [{ selector: 'bt-barsa-tile-group-page', changeDetection: ChangeDetectionStrategy.OnPush, providers: [RoutingService], template: "@if(!isSimple ){\n<fd-dynamic-page [autoResponsive]=\"true\">\n <fd-dynamic-page-header\n [class.simple-title]=\"true\"\n [title]=\"title | bbbTranslate\"\n [class.p-b0]=\"true\"\n [class.hide-title]=\"false\"\n >\n <fd-dynamic-page-breadcrumb [class.hide]=\"isMobile\">\n <fd-breadcrumb>\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs | slice:\n 0:breadCrumbs.length; track breadCrumb.url; let i = $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n } }\n </fd-breadcrumb>\n </fd-dynamic-page-breadcrumb>\n <fd-dynamic-page-layout-actions>\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"onClose()\" title=\"Close\">\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\n </button>\n </fd-toolbar>\n </fd-dynamic-page-layout-actions>\n </fd-dynamic-page-header>\n\n <fd-dynamic-page-content cdkScrollable>\n <ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\n </fd-dynamic-page-content>\n</fd-dynamic-page>\n} @else {\n<ng-container *ngTemplateOutlet=\"tilesTpl\"> </ng-container>\n}\n<ng-template #loadingTpl>\n <bsu-mask></bsu-mask>\n</ng-template>\n<ng-template #tilesTpl>\n <div class=\"tw-flex tw-gap-1 tw-flex-wrap\">\n @for(app of moList();track app.Id){\n <ng-container *ngTemplateOutlet=\"tile; context: { $implicit: app, deviceSize: deviceSize }\"></ng-container>\n }\n </div>\n</ng-template>\n<ng-template #tile let-app let-listMode=\"listMode\" let-navigateBack=\"navigateBack\" let-deviceSize=\"deviceSize\">\n <span\n [dynamicCommand]=\"app.DynamicCommand\"\n [setToStorage]=\"false\"\n [listMode]=\"false\"\n [navigateBackOnClick]=\"listMode ? false : isSimple ? true : false\"\n [enableCommand]=\"app.Component\"\n tileRenderer\n [data]=\"app\"\n [edit]=\"false\"\n [deviceSize]=\"deviceSize\"\n [component]=\"app.Component\"\n >\n </span>\n</ng-template>\n", styles: [":host{width:100%;display:block}.app-groups{width:25vw;border-left:.0625rem solid var(--sapGroup_TitleBorderColor, #d9d9d9)}\n"] }]
64
- }], propDecorators: { _containerRef: [{
65
- type: ViewChild,
66
- args: ['containerRef', { read: ViewContainerRef }]
67
- }], _position: [{
68
- type: HostBinding,
69
- args: ['style.position']
70
- }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGlsZS1ncm91cC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXRpbGVzL3NyYy9saWIvYmFyc2EtdGlsZS1ncm91cC1wYWdlL2JhcnNhLXRpbGUtZ3JvdXAtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL2JhcnNhLXRpbGUtZ3JvdXAtcGFnZS9iYXJzYS10aWxlLWdyb3VwLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBRU4sTUFBTSxFQUVOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQ0gsUUFBUSxFQUNSLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLG1CQUFtQixFQUVuQixpQkFBaUIsRUFFakIsY0FBYyxFQUVkLGFBQWEsRUFFaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFXOUIsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGFBQWE7SUFQOUQ7O1FBU21DLGNBQVMsR0FBRyxVQUFVLENBQUM7UUFDdEQsV0FBTSxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDL0IsUUFBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBS3pCLGdCQUFXLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLFNBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDNUMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MsbUJBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFLakQsWUFBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQWdDM0I7SUE5QkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7UUFFekQsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztRQUNyRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztRQUNqRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEQsUUFBUSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN6QixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEIsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixTQUFTLEVBQUUsQ0FBQyxDQUFtQixFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFvQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU87UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0FwRFEsMkJBQTJCO21HQUEzQiwyQkFBMkIsaUhBRnpCLENBQUMsY0FBYyxDQUFDLG9IQUdRLGdCQUFnQix5RUN2Q3ZELDJpRkFnRUE7OzRGRDFCYSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyxDQUFDOzhCQUc0QixhQUFhO3NCQUFuRSxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDdEIsU0FBUztzQkFBdkMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgT25DaGFuZ2VzLFxuICAgIHNpZ25hbCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7XG4gICAgQmFyc2FBcGksXG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBnZXREZXZpY2VJc01vYmlsZSxcbiAgICBMb2dTZXJ2aWNlLFxuICAgIExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICBCcmVhZGNydW1iU2VydmljZSxcbiAgICBCcmVhZENydW1iSW5mbyxcbiAgICBSb3V0aW5nU2VydmljZSxcbiAgICBNb0ZvclJlcG9ydE1vZGVsLFxuICAgIFBvcnRhbFNlcnZpY2UsXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IEJhc2VUaWxlU2V0dGluZyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnQtYmFyc2EtdGlsZS1ncm91cC1wYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFyc2EtdGlsZS1ncm91cC1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS10aWxlLWdyb3VwLXBhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtSb3V0aW5nU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FUaWxlR3JvdXBQYWdlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyUmVmJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIF9jb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb3NpdGlvbicpIF9wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgbW9MaXN0ID0gc2lnbmFsPEJhc2VUaWxlU2V0dGluZ1tdPihbXSk7XG4gICAgaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgIHJ0bCA9IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNSdGw7XG4gICAgdGl0bGU6IHN0cmluZyB8IG51bGw7XG4gICAgZGlhbG9nUmVmOiBhbnk7XG4gICAgcGFyYW1ldGVyczogQmFyc2FUaWxlR3JvdXBQYWdlU2V0dGluZ3M7XG4gICAgc2V0dGluZ3M6IEJhcnNhVGlsZUdyb3VwUGFnZVNldHRpbmdzO1xuICAgIHByb3RlY3RlZCBfbG9nU2VydmljZTogTG9nU2VydmljZSA9IGluamVjdChMb2dTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICBwcm90ZWN0ZWQgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJvdGVjdGVkIF9yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwcm90ZWN0ZWQgX2xvY2FsU3RvcmFnZSA9IGluamVjdChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgX2JyZWFkQ3J1bWJTZXJ2aWNlID0gaW5qZWN0KEJyZWFkY3J1bWJTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2UgPSBpbmplY3QoUG9ydGFsU2VydmljZSk7XG4gICAgaXNTaW1wbGU6IGJvb2xlYW47XG4gICAgbGlzdE1vZGU6IGJvb2xlYW47XG4gICAgYnJlYWRjcnVtYnMkOiBPYnNlcnZhYmxlPEJyZWFkQ3J1bWJJbmZvW10+O1xuICAgIHJlcG9ydElkOiBzdHJpbmc7XG4gICAgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gICAgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmJyZWFkY3J1bWJzJCA9IHRoaXMuX2JyZWFkQ3J1bWJTZXJ2aWNlLmJyZWFkY3J1bWJzJDtcblxuICAgICAgICB0aGlzLnRpdGxlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0FjdGl2ZVRpbGUnKTtcbiAgICAgICAgdGhpcy5pc1NpbXBsZSA9IHRoaXMucGFyYW1ldGVycz8uSXNTaW1wbGUgfHwgdGhpcy5zZXR0aW5ncz8uSXNTaW1wbGU7XG4gICAgICAgIHRoaXMubGlzdE1vZGUgPSB0aGlzLnBhcmFtZXRlcnM/Lkxpc3RNb2RlIHx8IHRoaXMuc2V0dGluZ3M/Lkxpc3RNb2RlO1xuICAgICAgICBpZiAodGhpcy5pc1NpbXBsZSkge1xuICAgICAgICAgICAgdGhpcy5fcG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZTtcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ107XG5cbiAgICAgICAgQmFyc2FBcGkuQncuUnVuQmxNZXRob2RBc3luYyh7XG4gICAgICAgICAgICBQYXJhbWV0ZXJzOiBbaWRdLFxuICAgICAgICAgICAgTWV0aG9kOiAnR2V0VGlsZUdyb3VwQXBwcycsXG4gICAgICAgICAgICBTdWNjZXNzRm46IChlOiBNb0ZvclJlcG9ydE1vZGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb0xpc3Quc2V0KGUuTW9EYXRhTGlzdCBhcyBBcnJheTxCYXNlVGlsZVNldHRpbmc+KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBGYWlsRm46IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nU2VydmljZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgfVxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJy4uLyddKTtcbiAgICB9XG59XG5pbnRlcmZhY2UgQmFyc2FUaWxlR3JvdXBQYWdlU2V0dGluZ3MgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICBJc1NpbXBsZTogYm9vbGVhbjtcbiAgICBMaXN0TW9kZTogYm9vbGVhbjtcbn1cbiIsIkBpZighaXNTaW1wbGUgKXtcbjxmZC1keW5hbWljLXBhZ2UgW2F1dG9SZXNwb25zaXZlXT1cInRydWVcIj5cbiAgICA8ZmQtZHluYW1pYy1wYWdlLWhlYWRlclxuICAgICAgICBbY2xhc3Muc2ltcGxlLXRpdGxlXT1cInRydWVcIlxuICAgICAgICBbdGl0bGVdPVwidGl0bGUgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICBbY2xhc3MucC1iMF09XCJ0cnVlXCJcbiAgICAgICAgW2NsYXNzLmhpZGUtdGl0bGVdPVwiZmFsc2VcIlxuICAgID5cbiAgICAgICAgPGZkLWR5bmFtaWMtcGFnZS1icmVhZGNydW1iIFtjbGFzcy5oaWRlXT1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICA8ZmQtYnJlYWRjcnVtYj5cbiAgICAgICAgICAgICAgICBAaWYgKGJyZWFkY3J1bWJzJCB8IGFzeW5jOyBhcyBicmVhZENydW1icykgeyBAZm9yICggYnJlYWRDcnVtYiBvZiBicmVhZENydW1icyB8IHNsaWNlOlxuICAgICAgICAgICAgICAgIDA6YnJlYWRDcnVtYnMubGVuZ3RoOyB0cmFjayBicmVhZENydW1iLnVybDsgbGV0IGkgPSAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgICAgICAgICA8ZmQtYnJlYWRjcnVtYi1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8YnN1LWJyZWFkY3J1bWJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0xhc3RdPVwibGFzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnJlYWRDcnVtYl09XCJicmVhZENydW1iXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnN1LWJyZWFkY3J1bWI+XG4gICAgICAgICAgICAgICAgPC9mZC1icmVhZGNydW1iLWl0ZW0+XG4gICAgICAgICAgICAgICAgfSB9XG4gICAgICAgICAgICA8L2ZkLWJyZWFkY3J1bWI+XG4gICAgICAgIDwvZmQtZHluYW1pYy1wYWdlLWJyZWFkY3J1bWI+XG4gICAgICAgIDxmZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgICAgICAgICA8ZmQtdG9vbGJhciBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtjbGVhckJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwib25DbG9zZSgpXCIgdGl0bGU9XCJDbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ3NhcC1pY29uLS0nICsgKGlzTW9iaWxlID8gKHJ0bCA/ICdhcnJvdy1yaWdodCcgOiAnYXJyb3ctbGVmdCcpIDogJ2RlY2xpbmUnKVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cbiAgICAgICAgPC9mZC1keW5hbWljLXBhZ2UtbGF5b3V0LWFjdGlvbnM+XG4gICAgPC9mZC1keW5hbWljLXBhZ2UtaGVhZGVyPlxuXG4gICAgPGZkLWR5bmFtaWMtcGFnZS1jb250ZW50IGNka1Njcm9sbGFibGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aWxlc1RwbFwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2ZkLWR5bmFtaWMtcGFnZS1jb250ZW50PlxuPC9mZC1keW5hbWljLXBhZ2U+XG59IEBlbHNlIHtcbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aWxlc1RwbFwiPiA8L25nLWNvbnRhaW5lcj5cbn1cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ1RwbD5cbiAgICA8YnN1LW1hc2s+PC9ic3UtbWFzaz5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RpbGVzVHBsPlxuICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWdhcC0xIHR3LWZsZXgtd3JhcFwiPlxuICAgICAgICBAZm9yKGFwcCBvZiBtb0xpc3QoKTt0cmFjayBhcHAuSWQpe1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGlsZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGFwcCwgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RpbGUgbGV0LWFwcCBsZXQtbGlzdE1vZGU9XCJsaXN0TW9kZVwiIGxldC1uYXZpZ2F0ZUJhY2s9XCJuYXZpZ2F0ZUJhY2tcIiBsZXQtZGV2aWNlU2l6ZT1cImRldmljZVNpemVcIj5cbiAgICA8c3BhblxuICAgICAgICBbZHluYW1pY0NvbW1hbmRdPVwiYXBwLkR5bmFtaWNDb21tYW5kXCJcbiAgICAgICAgW3NldFRvU3RvcmFnZV09XCJmYWxzZVwiXG4gICAgICAgIFtsaXN0TW9kZV09XCJmYWxzZVwiXG4gICAgICAgIFtuYXZpZ2F0ZUJhY2tPbkNsaWNrXT1cImxpc3RNb2RlID8gZmFsc2UgOiBpc1NpbXBsZSA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgIFtlbmFibGVDb21tYW5kXT1cImFwcC5Db21wb25lbnRcIlxuICAgICAgICB0aWxlUmVuZGVyZXJcbiAgICAgICAgW2RhdGFdPVwiYXBwXCJcbiAgICAgICAgW2VkaXRdPVwiZmFsc2VcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgW2NvbXBvbmVudF09XCJhcHAuQ29tcG9uZW50XCJcbiAgICA+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { BarsaApi, getDeviceIsMobile, LocalStorageService, BreadcrumbService, RoutingService, EmptyPageComponent } from 'barsa-novin-ray-core';
4
- import { takeUntil } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/router";
7
- import * as i2 from "@fundamental-ngx/core/bar";
8
- import * as i3 from "@fundamental-ngx/core/breadcrumb";
9
- import * as i4 from "@fundamental-ngx/core/dynamic-side-content";
10
- import * as i5 from "@fundamental-ngx/core/message-page";
11
- import * as i6 from "barsa-novin-ray-core";
12
- import * as i7 from "barsa-sap-ui";
13
- import * as i8 from "@angular/common";
14
- export class BarsaTileSidebarPageComponent extends EmptyPageComponent {
15
- constructor() {
16
- super(...arguments);
17
- this.isMobile = getDeviceIsMobile();
18
- this.rtl = BarsaApi.LoginFormData.IsRtl;
19
- this._router = inject(Router);
20
- this._localStorage = inject(LocalStorageService);
21
- this._breadCrumbService = inject(BreadcrumbService);
22
- this._routingService = inject(RoutingService); // create new routing service to handle sidebar navigation
23
- this.firstReportLoaded = signal(false);
24
- }
25
- ngOnInit() {
26
- super.ngOnInit();
27
- this.isFirstPage = false;
28
- this._portalService.navigationEnd$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => {
29
- c && c.url.indexOf('mainside:report') > 0 && this.firstReportLoaded.set(true);
30
- });
31
- this.breadcrumbs$ = this._breadCrumbService.breadcrumbs$;
32
- this._routingService.isSidebar = true;
33
- this.title = localStorage.getItem('ActiveTile');
34
- }
35
- onClose() {
36
- this._router.navigate(['../']);
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaTileSidebarPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaTileSidebarPageComponent, selector: "bt-barsa-tile-sidebar-page", providers: [RoutingService], usesInheritance: true, ngImport: i0, template: "<div fd-bar>\n <div fd-bar-left style=\"flex: 1; width: 100%\">\n <fd-breadcrumb style=\"width: 100%\">\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs ;track breadCrumb.url; let i =\n $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n } }\n </fd-breadcrumb>\n </div>\n</div>\n\n<fd-dynamic-side-content class=\"tiles-sidebar-wrapper\" fillEmptySpace style=\"overflow: auto\">\n <fd-dynamic-side-content-side>\n <ng-container #containerRef></ng-container>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main style=\"margin: 2rem\">\n @if(firstReportLoaded()===false){\n <fd-message-page type=\"no-items\" style=\"align-self: center; background: transparent\">\n <fd-message-page-title>{{ 'SearchInReports' | bbbTranslate }}</fd-message-page-title>\n </fd-message-page>\n }\n <router-outlet name=\"mainside\"> </router-outlet>\n </fd-dynamic-side-content-main>\n</fd-dynamic-side-content>\n<div class=\"sidbar-outlet\">\n <router-outlet></router-outlet>\n</div>\n", styles: [":host{width:100%;display:block}fd-dynamic-page ::ng-deep article fd-dynamic-page-content{padding:0}fd-dynamic-page ::ng-deep article fd-layout-panel{background-color:var(--sapBackgroundColor)}fd-dynamic-page ::ng-deep article li{border:none}.tiles-sidebar-wrapper>fd-dynamic-side-content-side{max-width:20svw;width:20svw;overflow-y:auto;padding:0;background-color:var(--sapBaseColor);border:.0625rem solid var(--sapTile_SeparatorColor, #ccc);border-top:none}.tiles-sidebar-wrapper>fd-dynamic-side-content-side ::ng-deep li span.haschildren{font-family:BarsaFont Medium}.tiles-sidebar-wrapper>fd-dynamic-side-content-side ::ng-deep bsu-barsa-ulv-main,.tiles-sidebar-wrapper>fd-dynamic-side-content-main ::ng-deep bsu-barsa-ulv-main{margin:0!important}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:80svw;max-width:80svw;background-color:var(--sapBaseColor)}@media (max-width: 799px){.tiles-sidebar-wrapper{flex-direction:column}.tiles-sidebar-wrapper>fd-dynamic-side-content-side{width:100svw;max-width:100svw;overflow:hidden}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:100svw;max-width:100svw}}@media (min-width: 800px) and (max-width: 1439px){.tiles-sidebar-wrapper>fd-dynamic-side-content-side{width:35svw;max-width:35svw;overflow:hidden}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:65svw;max-width:65svw}}\n"], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "component", type: i3.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i3.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i4.DynamicSideContentComponent, selector: "fd-dynamic-side-content", inputs: ["position", "size", "id"] }, { kind: "component", type: i4.DynamicSideContentSideComponent, selector: "fd-dynamic-side-content-side", inputs: ["id"] }, { kind: "component", type: i4.DynamicSideContentMainComponent, selector: "fd-dynamic-side-content-main", inputs: ["id"] }, { kind: "component", type: i5.MessagePageComponent, selector: "fd-message-page", inputs: ["class", "type", "hasIcon", "glyphFont", "glyph"] }, { kind: "component", type: i5.MessagePageTitleComponent, selector: "fd-message-page-title" }, { kind: "directive", type: i6.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], exportAs: ["fillEmptySpace"] }, { kind: "component", type: i7.BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaTileSidebarPageComponent, decorators: [{
42
- type: Component,
43
- args: [{ selector: 'bt-barsa-tile-sidebar-page', changeDetection: ChangeDetectionStrategy.OnPush, providers: [RoutingService], template: "<div fd-bar>\n <div fd-bar-left style=\"flex: 1; width: 100%\">\n <fd-breadcrumb style=\"width: 100%\">\n @if (breadcrumbs$ | async; as breadCrumbs) { @for ( breadCrumb of breadCrumbs ;track breadCrumb.url; let i =\n $index; let last = $last) {\n <fd-breadcrumb-item>\n <bsu-breadcrumb\n [index]=\"i\"\n [isLast]=\"last\"\n [breadCrumb]=\"breadCrumb\"\n [allBreadCrumb]=\"breadCrumbs\"\n ></bsu-breadcrumb>\n </fd-breadcrumb-item>\n } }\n </fd-breadcrumb>\n </div>\n</div>\n\n<fd-dynamic-side-content class=\"tiles-sidebar-wrapper\" fillEmptySpace style=\"overflow: auto\">\n <fd-dynamic-side-content-side>\n <ng-container #containerRef></ng-container>\n </fd-dynamic-side-content-side>\n <fd-dynamic-side-content-main style=\"margin: 2rem\">\n @if(firstReportLoaded()===false){\n <fd-message-page type=\"no-items\" style=\"align-self: center; background: transparent\">\n <fd-message-page-title>{{ 'SearchInReports' | bbbTranslate }}</fd-message-page-title>\n </fd-message-page>\n }\n <router-outlet name=\"mainside\"> </router-outlet>\n </fd-dynamic-side-content-main>\n</fd-dynamic-side-content>\n<div class=\"sidbar-outlet\">\n <router-outlet></router-outlet>\n</div>\n", styles: [":host{width:100%;display:block}fd-dynamic-page ::ng-deep article fd-dynamic-page-content{padding:0}fd-dynamic-page ::ng-deep article fd-layout-panel{background-color:var(--sapBackgroundColor)}fd-dynamic-page ::ng-deep article li{border:none}.tiles-sidebar-wrapper>fd-dynamic-side-content-side{max-width:20svw;width:20svw;overflow-y:auto;padding:0;background-color:var(--sapBaseColor);border:.0625rem solid var(--sapTile_SeparatorColor, #ccc);border-top:none}.tiles-sidebar-wrapper>fd-dynamic-side-content-side ::ng-deep li span.haschildren{font-family:BarsaFont Medium}.tiles-sidebar-wrapper>fd-dynamic-side-content-side ::ng-deep bsu-barsa-ulv-main,.tiles-sidebar-wrapper>fd-dynamic-side-content-main ::ng-deep bsu-barsa-ulv-main{margin:0!important}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:80svw;max-width:80svw;background-color:var(--sapBaseColor)}@media (max-width: 799px){.tiles-sidebar-wrapper{flex-direction:column}.tiles-sidebar-wrapper>fd-dynamic-side-content-side{width:100svw;max-width:100svw;overflow:hidden}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:100svw;max-width:100svw}}@media (min-width: 800px) and (max-width: 1439px){.tiles-sidebar-wrapper>fd-dynamic-side-content-side{width:35svw;max-width:35svw;overflow:hidden}.tiles-sidebar-wrapper>fd-dynamic-side-content-main{width:65svw;max-width:65svw}}\n"] }]
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGlsZS1zaWRlYmFyLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9iYXJzYS10aWxlLXNpZGViYXItcGFnZS9iYXJzYS10aWxlLXNpZGViYXItcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL2JhcnNhLXRpbGUtc2lkZWJhci1wYWdlL2JhcnNhLXRpbGUtc2lkZWJhci1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUNILFFBQVEsRUFDUixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUVqQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ3JCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7OztBQVM3QyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCO0lBUHJFOztRQVFJLGFBQVEsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQy9CLFFBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUN6QixZQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDNUMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0Msb0JBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQywwREFBMEQ7UUFHOUcsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBY3JDO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pGLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELE9BQU87UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0F0QlEsNkJBQTZCO21HQUE3Qiw2QkFBNkIscURBRjNCLENBQUMsY0FBYyxDQUFDLGlEQ25CL0IsZzVDQWtDQTs7NEZEYmEsNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNJLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgT25DaGFuZ2VzLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7XG4gICAgQmFyc2FBcGksXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXG4gICAgTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICBCcmVhZGNydW1iU2VydmljZSxcbiAgICBCcmVhZENydW1iSW5mbyxcbiAgICBSb3V0aW5nU2VydmljZSxcbiAgICBFbXB0eVBhZ2VDb21wb25lbnRcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnQtYmFyc2EtdGlsZS1zaWRlYmFyLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10aWxlLXNpZGViYXItcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtdGlsZS1zaWRlYmFyLXBhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtSb3V0aW5nU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FUaWxlU2lkZWJhclBhZ2VDb21wb25lbnQgZXh0ZW5kcyBFbXB0eVBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIGlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICBydGwgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzUnRsO1xuICAgIHByb3RlY3RlZCBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJvdGVjdGVkIF9sb2NhbFN0b3JhZ2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIF9icmVhZENydW1iU2VydmljZSA9IGluamVjdChCcmVhZGNydW1iU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIF9yb3V0aW5nU2VydmljZSA9IGluamVjdChSb3V0aW5nU2VydmljZSk7IC8vIGNyZWF0ZSBuZXcgcm91dGluZyBzZXJ2aWNlIHRvIGhhbmRsZSBzaWRlYmFyIG5hdmlnYXRpb25cbiAgICBicmVhZGNydW1icyQ6IE9ic2VydmFibGU8QnJlYWRDcnVtYkluZm9bXT47XG4gICAgdGl0bGU6IHN0cmluZyB8IG51bGw7XG4gICAgZmlyc3RSZXBvcnRMb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmlzRmlyc3RQYWdlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UubmF2aWdhdGlvbkVuZCQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICAgICAgYyAmJiBjLnVybC5pbmRleE9mKCdtYWluc2lkZTpyZXBvcnQnKSA+IDAgJiYgdGhpcy5maXJzdFJlcG9ydExvYWRlZC5zZXQodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmJyZWFkY3J1bWJzJCA9IHRoaXMuX2JyZWFkQ3J1bWJTZXJ2aWNlLmJyZWFkY3J1bWJzJDtcbiAgICAgICAgdGhpcy5fcm91dGluZ1NlcnZpY2UuaXNTaWRlYmFyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50aXRsZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdBY3RpdmVUaWxlJyk7XG4gICAgfVxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJy4uLyddKTtcbiAgICB9XG59XG4iLCI8ZGl2IGZkLWJhcj5cbiAgICA8ZGl2IGZkLWJhci1sZWZ0IHN0eWxlPVwiZmxleDogMTsgd2lkdGg6IDEwMCVcIj5cbiAgICAgICAgPGZkLWJyZWFkY3J1bWIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuICAgICAgICAgICAgQGlmIChicmVhZGNydW1icyQgfCBhc3luYzsgYXMgYnJlYWRDcnVtYnMpIHsgQGZvciAoIGJyZWFkQ3J1bWIgb2YgYnJlYWRDcnVtYnMgO3RyYWNrIGJyZWFkQ3J1bWIudXJsOyBsZXQgaSA9XG4gICAgICAgICAgICAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgICAgIDxmZC1icmVhZGNydW1iLWl0ZW0+XG4gICAgICAgICAgICAgICAgPGJzdS1icmVhZGNydW1iXG4gICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzTGFzdF09XCJsYXN0XCJcbiAgICAgICAgICAgICAgICAgICAgW2JyZWFkQ3J1bWJdPVwiYnJlYWRDcnVtYlwiXG4gICAgICAgICAgICAgICAgICAgIFthbGxCcmVhZENydW1iXT1cImJyZWFkQ3J1bWJzXCJcbiAgICAgICAgICAgICAgICA+PC9ic3UtYnJlYWRjcnVtYj5cbiAgICAgICAgICAgIDwvZmQtYnJlYWRjcnVtYi1pdGVtPlxuICAgICAgICAgICAgfSB9XG4gICAgICAgIDwvZmQtYnJlYWRjcnVtYj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZmQtZHluYW1pYy1zaWRlLWNvbnRlbnQgY2xhc3M9XCJ0aWxlcy1zaWRlYmFyLXdyYXBwZXJcIiBmaWxsRW1wdHlTcGFjZSBzdHlsZT1cIm92ZXJmbG93OiBhdXRvXCI+XG4gICAgPGZkLWR5bmFtaWMtc2lkZS1jb250ZW50LXNpZGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgI2NvbnRhaW5lclJlZj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2ZkLWR5bmFtaWMtc2lkZS1jb250ZW50LXNpZGU+XG4gICAgPGZkLWR5bmFtaWMtc2lkZS1jb250ZW50LW1haW4gc3R5bGU9XCJtYXJnaW46IDJyZW1cIj5cbiAgICAgICAgQGlmKGZpcnN0UmVwb3J0TG9hZGVkKCk9PT1mYWxzZSl7XG4gICAgICAgIDxmZC1tZXNzYWdlLXBhZ2UgdHlwZT1cIm5vLWl0ZW1zXCIgc3R5bGU9XCJhbGlnbi1zZWxmOiBjZW50ZXI7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50XCI+XG4gICAgICAgICAgICA8ZmQtbWVzc2FnZS1wYWdlLXRpdGxlPnt7ICdTZWFyY2hJblJlcG9ydHMnIHwgYmJiVHJhbnNsYXRlIH19PC9mZC1tZXNzYWdlLXBhZ2UtdGl0bGU+XG4gICAgICAgIDwvZmQtbWVzc2FnZS1wYWdlPlxuICAgICAgICB9XG4gICAgICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJtYWluc2lkZVwiPiA8L3JvdXRlci1vdXRsZXQ+XG4gICAgPC9mZC1keW5hbWljLXNpZGUtY29udGVudC1tYWluPlxuPC9mZC1keW5hbWljLXNpZGUtY29udGVudD5cbjxkaXYgY2xhc3M9XCJzaWRiYXItb3V0bGV0XCI+XG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG4iXX0=
@@ -1,58 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { RouterModule } from '@angular/router';
3
- import { AuthGuard, PortalPageResolver, TileGroupBreadcrumResolver } from 'barsa-novin-ray-core';
4
- import { BarsaTileSidebarPageComponent } from './barsa-tile-sidebar-page/barsa-tile-sidebar-page.component';
5
- import { ReportNavigatorComponent } from 'barsa-sap-ui';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
- export const extendHomeRouter = [
9
- {
10
- path: 'appgroupsidebar',
11
- component: BarsaTileSidebarPageComponent,
12
- canActivate: [AuthGuard],
13
- data: {
14
- pageData: {
15
- Module: 'BarsaHomePage',
16
- HasAuthorize: true,
17
- Route: '/appgroupsidebar'
18
- }
19
- },
20
- resolve: { pageData: PortalPageResolver, breadcrumb: TileGroupBreadcrumResolver },
21
- children: [
22
- {
23
- path: 'report/:id',
24
- outlet: 'mainside',
25
- component: ReportNavigatorComponent,
26
- data: {
27
- pageData: {
28
- HasAuthorize: false,
29
- Route: '/report',
30
- Module: 'BarsaReportPage'
31
- }
32
- }
33
- },
34
- {
35
- path: 'popup',
36
- loadChildren: () => import('barsa-novin-ray-core').then((c) => c.BarsaSapUiFormPageModule)
37
- },
38
- {
39
- path: 'formfieldshow',
40
- loadChildren: () => import('barsa-novin-ray-core').then((c) => c.BarsaSapUiFormPageModule)
41
- }
42
- ]
43
- }
44
- ];
45
- const routes = [];
46
- export class BarsaTilesRoutingModule {
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaTilesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
48
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BarsaTilesRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
49
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaTilesRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
50
- }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaTilesRoutingModule, decorators: [{
52
- type: NgModule,
53
- args: [{
54
- imports: [RouterModule.forChild(routes)],
55
- exports: [RouterModule]
56
- }]
57
- }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGlsZXMtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL2JhcnNhLXRpbGVzLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM1RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUV4RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QjtRQUNJLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsU0FBUyxFQUFFLDZCQUE2QjtRQUN4QyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEIsSUFBSSxFQUFFO1lBQ0YsUUFBUSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxlQUFlO2dCQUN2QixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsS0FBSyxFQUFFLGtCQUFrQjthQUM1QjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRTtRQUNqRixRQUFRLEVBQUU7WUFDTjtnQkFDSSxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsTUFBTSxFQUFFLFVBQVU7Z0JBQ2xCLFNBQVMsRUFBRSx3QkFBd0I7Z0JBQ25DLElBQUksRUFBRTtvQkFDRixRQUFRLEVBQUU7d0JBQ04sWUFBWSxFQUFFLEtBQUs7d0JBQ25CLEtBQUssRUFBRSxTQUFTO3dCQUNoQixNQUFNLEVBQUUsaUJBQWlCO3FCQUM1QjtpQkFDSjthQUNKO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLE9BQU87Z0JBQ2IsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO2FBQzdGO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQzthQUM3RjtTQUNKO0tBQ0o7Q0FDSixDQUFDO0FBQ0YsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDO0FBSzFCLE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLHdDQUZ0QixZQUFZO2dIQUViLHVCQUF1QixZQUh0QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzs0RkFFYix1QkFBdUI7a0JBSm5DLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoR3VhcmQsIFBvcnRhbFBhZ2VSZXNvbHZlciwgVGlsZUdyb3VwQnJlYWRjcnVtUmVzb2x2ZXIgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBCYXJzYVRpbGVTaWRlYmFyUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtdGlsZS1zaWRlYmFyLXBhZ2UvYmFyc2EtdGlsZS1zaWRlYmFyLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydE5hdmlnYXRvckNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLXNhcC11aSc7XG5cbmV4cG9ydCBjb25zdCBleHRlbmRIb21lUm91dGVyID0gW1xuICAgIHtcbiAgICAgICAgcGF0aDogJ2FwcGdyb3Vwc2lkZWJhcicsXG4gICAgICAgIGNvbXBvbmVudDogQmFyc2FUaWxlU2lkZWJhclBhZ2VDb21wb25lbnQsXG4gICAgICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgcGFnZURhdGE6IHtcbiAgICAgICAgICAgICAgICBNb2R1bGU6ICdCYXJzYUhvbWVQYWdlJyxcbiAgICAgICAgICAgICAgICBIYXNBdXRob3JpemU6IHRydWUsXG4gICAgICAgICAgICAgICAgUm91dGU6ICcvYXBwZ3JvdXBzaWRlYmFyJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiB7IHBhZ2VEYXRhOiBQb3J0YWxQYWdlUmVzb2x2ZXIsIGJyZWFkY3J1bWI6IFRpbGVHcm91cEJyZWFkY3J1bVJlc29sdmVyIH0sXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aDogJ3JlcG9ydC86aWQnLFxuICAgICAgICAgICAgICAgIG91dGxldDogJ21haW5zaWRlJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFJlcG9ydE5hdmlnYXRvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBIYXNBdXRob3JpemU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgUm91dGU6ICcvcmVwb3J0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZTogJ0JhcnNhUmVwb3J0UGFnZSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aDogJ3BvcHVwJyxcbiAgICAgICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnYmFyc2Etbm92aW4tcmF5LWNvcmUnKS50aGVuKChjKSA9PiBjLkJhcnNhU2FwVWlGb3JtUGFnZU1vZHVsZSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aDogJ2Zvcm1maWVsZHNob3cnLFxuICAgICAgICAgICAgICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCdiYXJzYS1ub3Zpbi1yYXktY29yZScpLnRoZW4oKGMpID0+IGMuQmFyc2FTYXBVaUZvcm1QYWdlTW9kdWxlKVxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfVxuXTtcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW107XG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gICAgZXhwb3J0czogW1JvdXRlck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FUaWxlc1JvdXRpbmdNb2R1bGUge31cbiJdfQ==