barsa-tiles 1.0.456 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/barsa-tiles.mjs +4 -4
- package/esm2022/lib/action-item/action-item.component.mjs +17 -0
- package/{esm2020 → esm2022}/lib/action-links.pipe.mjs +16 -16
- package/esm2022/lib/actions-link/actions-link.component.mjs +41 -0
- package/esm2022/lib/app-finder/app-finder.component.mjs +52 -0
- package/esm2022/lib/app-finder-app-list/app-finder-app-list.component.mjs +39 -0
- package/esm2022/lib/app-finder-group/app-finder-group.component.mjs +41 -0
- package/esm2022/lib/app-finder.service.mjs +121 -0
- package/esm2022/lib/barsa-shellbar/barsa-shellbar.component.mjs +183 -0
- package/esm2022/lib/barsa-tiles.module.mjs +225 -0
- package/esm2022/lib/change-app-tile/change-app-tile.component.mjs +46 -0
- package/esm2022/lib/create-app-group/create-app-group.component.mjs +43 -0
- package/esm2022/lib/directives/emptylist.directive.mjs +36 -0
- package/esm2022/lib/feed-tile/feed-tile.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/footer-edit-tile/footer-edit-tile.component.mjs +13 -13
- package/esm2022/lib/footer-tile/footer-tile.component.mjs +27 -0
- package/esm2022/lib/form-app-finder/form-app-finder.component.mjs +95 -0
- package/esm2022/lib/form-tile/form-tile.component.mjs +34 -0
- package/esm2022/lib/logo-tile/logo-tile.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/micro-tile-chart-area/micro-tile-chart-area.component.mjs +40 -40
- package/{esm2020 → esm2022}/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.mjs +29 -29
- package/esm2022/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +26 -0
- package/{esm2020 → esm2022}/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.mjs +20 -20
- package/{esm2020 → esm2022}/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.mjs +31 -31
- package/{esm2020 → esm2022}/lib/micro-tile-chart-line/micro-tile-chart-line.component.mjs +32 -32
- package/{esm2020 → esm2022}/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.mjs +27 -27
- package/{esm2020 → esm2022}/lib/models/app-tile-footer-section.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/app-tile-footer.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/app-tile-group-pin.mjs +1 -1
- package/esm2022/lib/models/base-bt-tile-component.mjs +26 -0
- package/{esm2020 → esm2022}/lib/models/base-tile-component.mjs +58 -58
- package/{esm2020 → esm2022}/lib/models/base-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/feed-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/index.mjs +13 -13
- package/{esm2020 → esm2022}/lib/models/logo-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/micro-tile-chart-bullet-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/news-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/numeric-tile-setting.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/profile-tile-setting.mjs +1 -1
- package/esm2022/lib/models/tile-setting.mjs +2 -0
- package/{esm2020 → esm2022}/lib/models/user-portal-settings.mjs +1 -1
- package/esm2022/lib/news-tile/news-tile.component.mjs +53 -0
- package/esm2022/lib/notification-group/notification-group.component.mjs +116 -0
- package/esm2022/lib/notification-group-header/notification-group-header.component.mjs +38 -0
- package/esm2022/lib/numeric-tile/numeric-tile.component.mjs +64 -0
- package/esm2022/lib/pin-tile/pin-tile.component.mjs +110 -0
- package/esm2022/lib/pipes/group-tiles.pipe.mjs +31 -0
- package/{esm2020 → esm2022}/lib/pipes/home-group.pipe.mjs +17 -17
- package/esm2022/lib/pipes/tile-home-filter.pipe.mjs +28 -0
- package/esm2022/lib/pipes/tile-prop.pipe.mjs +32 -0
- package/esm2022/lib/popover-app-finder/filter-apps-grouped.pipe.mjs +36 -0
- package/esm2022/lib/popover-app-finder/popover-app-finder.component.mjs +112 -0
- package/esm2022/lib/profile-tile/profile-tile.component.mjs +25 -0
- package/esm2022/lib/shellbar/shellbar.component.mjs +201 -0
- package/esm2022/lib/simple-tile/simple-tile.component.mjs +22 -0
- package/esm2022/lib/tile/tile.component.mjs +70 -0
- package/esm2022/lib/tile-renderer.directive.mjs +70 -0
- package/esm2022/lib/tile-style.directive.mjs +29 -0
- package/esm2022/lib/tiles-viewer/tiles-viewer.component.mjs +167 -0
- package/esm2022/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +164 -0
- package/esm2022/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +88 -0
- package/esm2022/lib/tiles-viewer.service.mjs +130 -0
- package/esm2022/lib/tiles.service.mjs +589 -0
- package/{esm2020 → esm2022}/public-api.mjs +46 -45
- package/fesm2022/barsa-tiles.mjs +3179 -0
- package/fesm2022/barsa-tiles.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/action-item/action-item.component.d.ts +6 -6
- package/lib/action-links.pipe.d.ts +7 -7
- package/lib/actions-link/actions-link.component.d.ts +17 -17
- package/lib/app-finder/app-finder.component.d.ts +24 -24
- package/lib/app-finder-app-list/app-finder-app-list.component.d.ts +20 -20
- package/lib/app-finder-group/app-finder-group.component.d.ts +14 -14
- package/lib/app-finder.service.d.ts +33 -33
- package/lib/barsa-shellbar/barsa-shellbar.component.d.ts +104 -97
- package/lib/barsa-tiles.module.d.ts +91 -86
- package/lib/change-app-tile/change-app-tile.component.d.ts +20 -20
- package/lib/create-app-group/create-app-group.component.d.ts +19 -19
- package/lib/directives/emptylist.directive.d.ts +14 -14
- package/lib/feed-tile/feed-tile.component.d.ts +11 -11
- package/lib/footer-edit-tile/footer-edit-tile.component.d.ts +6 -6
- package/lib/footer-tile/footer-tile.component.d.ts +11 -11
- package/lib/form-app-finder/form-app-finder.component.d.ts +38 -38
- package/lib/form-tile/form-tile.component.d.ts +24 -24
- package/lib/logo-tile/logo-tile.component.d.ts +7 -7
- package/lib/micro-tile-chart-area/micro-tile-chart-area.component.d.ts +8 -8
- package/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.d.ts +12 -12
- package/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.d.ts +16 -16
- package/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.d.ts +7 -7
- package/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.d.ts +8 -8
- package/lib/micro-tile-chart-line/micro-tile-chart-line.component.d.ts +8 -8
- package/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.d.ts +8 -8
- package/lib/models/app-tile-footer-section.d.ts +6 -6
- package/lib/models/app-tile-footer.d.ts +8 -8
- package/lib/models/app-tile-group-pin.d.ts +5 -5
- package/lib/models/base-bt-tile-component.d.ts +9 -9
- package/lib/models/base-tile-component.d.ts +26 -26
- package/lib/models/base-tile-setting.d.ts +5 -5
- package/lib/models/feed-tile-setting.d.ts +7 -7
- package/lib/models/index.d.ts +13 -13
- package/lib/models/logo-tile-setting.d.ts +6 -6
- package/lib/models/micro-tile-chart-bullet-setting.d.ts +10 -10
- package/lib/models/news-tile-setting.d.ts +4 -4
- package/lib/models/numeric-tile-setting.d.ts +9 -9
- package/lib/models/profile-tile-setting.d.ts +7 -7
- package/lib/models/tile-setting.d.ts +10 -10
- package/lib/models/user-portal-settings.d.ts +9 -9
- package/lib/news-tile/news-tile.component.d.ts +19 -19
- package/lib/notification-group/notification-group.component.d.ts +54 -55
- package/lib/notification-group-header/notification-group-header.component.d.ts +15 -15
- package/lib/numeric-tile/numeric-tile.component.d.ts +16 -12
- package/lib/pin-tile/pin-tile.component.d.ts +30 -30
- package/lib/pipes/group-tiles.pipe.d.ts +14 -14
- package/lib/pipes/home-group.pipe.d.ts +9 -9
- package/lib/pipes/tile-home-filter.pipe.d.ts +8 -8
- package/lib/pipes/tile-prop.pipe.d.ts +8 -8
- package/lib/popover-app-finder/filter-apps-grouped.pipe.d.ts +13 -0
- package/lib/popover-app-finder/popover-app-finder.component.d.ts +39 -0
- package/lib/profile-tile/profile-tile.component.d.ts +7 -7
- package/lib/shellbar/shellbar.component.d.ts +94 -94
- package/lib/simple-tile/simple-tile.component.d.ts +10 -10
- package/lib/tile/tile.component.d.ts +22 -20
- package/lib/tile-renderer.directive.d.ts +28 -28
- package/lib/tile-style.directive.d.ts +12 -0
- package/lib/tiles-viewer/tiles-viewer.component.d.ts +65 -63
- package/lib/tiles-viewer-container/tiles-viewer-container.component.d.ts +59 -57
- package/lib/tiles-viewer-group/tiles-viewer-group.component.d.ts +39 -39
- package/lib/tiles-viewer.service.d.ts +42 -42
- package/lib/tiles.service.d.ts +75 -75
- package/package.json +7 -13
- package/public-api.d.ts +42 -41
- package/esm2020/lib/action-item/action-item.component.mjs +0 -18
- package/esm2020/lib/actions-link/actions-link.component.mjs +0 -42
- package/esm2020/lib/app-finder/app-finder.component.mjs +0 -53
- package/esm2020/lib/app-finder-app-list/app-finder-app-list.component.mjs +0 -40
- package/esm2020/lib/app-finder-group/app-finder-group.component.mjs +0 -42
- package/esm2020/lib/app-finder.service.mjs +0 -121
- package/esm2020/lib/barsa-shellbar/barsa-shellbar.component.mjs +0 -166
- package/esm2020/lib/barsa-tiles.module.mjs +0 -206
- package/esm2020/lib/change-app-tile/change-app-tile.component.mjs +0 -47
- package/esm2020/lib/create-app-group/create-app-group.component.mjs +0 -44
- package/esm2020/lib/directives/emptylist.directive.mjs +0 -36
- package/esm2020/lib/feed-tile/feed-tile.component.mjs +0 -32
- package/esm2020/lib/footer-tile/footer-tile.component.mjs +0 -28
- package/esm2020/lib/form-app-finder/form-app-finder.component.mjs +0 -95
- package/esm2020/lib/form-tile/form-tile.component.mjs +0 -35
- package/esm2020/lib/logo-tile/logo-tile.component.mjs +0 -23
- package/esm2020/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +0 -27
- package/esm2020/lib/models/base-bt-tile-component.mjs +0 -30
- package/esm2020/lib/models/tile-setting.mjs +0 -2
- package/esm2020/lib/news-tile/news-tile.component.mjs +0 -54
- package/esm2020/lib/notification-group/notification-group.component.mjs +0 -116
- package/esm2020/lib/notification-group-header/notification-group-header.component.mjs +0 -39
- package/esm2020/lib/numeric-tile/numeric-tile.component.mjs +0 -34
- package/esm2020/lib/pin-tile/pin-tile.component.mjs +0 -111
- package/esm2020/lib/pipes/group-tiles.pipe.mjs +0 -31
- package/esm2020/lib/pipes/tile-home-filter.pipe.mjs +0 -28
- package/esm2020/lib/pipes/tile-prop.pipe.mjs +0 -32
- package/esm2020/lib/profile-tile/profile-tile.component.mjs +0 -26
- package/esm2020/lib/shellbar/shellbar.component.mjs +0 -200
- package/esm2020/lib/simple-tile/simple-tile.component.mjs +0 -23
- package/esm2020/lib/tile/tile.component.mjs +0 -61
- package/esm2020/lib/tile-renderer.directive.mjs +0 -70
- package/esm2020/lib/tiles-viewer/tiles-viewer.component.mjs +0 -157
- package/esm2020/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +0 -158
- package/esm2020/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +0 -88
- package/esm2020/lib/tiles-viewer.service.mjs +0 -130
- package/esm2020/lib/tiles.service.mjs +0 -589
- package/fesm2015/barsa-tiles.mjs +0 -2977
- package/fesm2015/barsa-tiles.mjs.map +0 -1
- package/fesm2020/barsa-tiles.mjs +0 -2941
- package/fesm2020/barsa-tiles.mjs.map +0 -1
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject, TemplateRef, ViewChild } from '@angular/core';
|
|
2
|
-
import { forkJoin, of, Subject } from 'rxjs';
|
|
3
|
-
import { debounceTime, map, takeUntil, tap } from 'rxjs/operators';
|
|
4
|
-
import { ComboboxComponent } from '@fundamental-ngx/core';
|
|
5
|
-
import { BaseComponent, BarsaApi, 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 "../tiles.service";
|
|
9
|
-
import * as i3 from "@angular/platform-browser";
|
|
10
|
-
import * as i4 from "@angular/common";
|
|
11
|
-
import * as i5 from "../barsa-shellbar/barsa-shellbar.component";
|
|
12
|
-
export class ShellbarComponent extends BaseComponent {
|
|
13
|
-
constructor(_bbbTranslatePipe, _portalService, _breadCrumbService, _tilesService, _cdr, _domSanitizer, _notificationService, appVersion) {
|
|
14
|
-
super();
|
|
15
|
-
this._bbbTranslatePipe = _bbbTranslatePipe;
|
|
16
|
-
this._portalService = _portalService;
|
|
17
|
-
this._breadCrumbService = _breadCrumbService;
|
|
18
|
-
this._tilesService = _tilesService;
|
|
19
|
-
this._cdr = _cdr;
|
|
20
|
-
this._domSanitizer = _domSanitizer;
|
|
21
|
-
this._notificationService = _notificationService;
|
|
22
|
-
this.appVersion = appVersion;
|
|
23
|
-
this.isOpenNotificatoin = false;
|
|
24
|
-
this.user = {
|
|
25
|
-
initials: 'WW',
|
|
26
|
-
colorAccent: 1
|
|
27
|
-
};
|
|
28
|
-
this.allowAnonymous = true;
|
|
29
|
-
this.notifcationLoaded = false;
|
|
30
|
-
this._viewedNotifications$ = new Subject();
|
|
31
|
-
this._viewedNotifications = [];
|
|
32
|
-
this.bodyClick = ';$("body").click()';
|
|
33
|
-
this.onOpenNotification = () => {
|
|
34
|
-
this.isOpenNotificatoin = true;
|
|
35
|
-
this._handleOpenNotificationPanel();
|
|
36
|
-
};
|
|
37
|
-
this.onCultureChanged = (culture) => {
|
|
38
|
-
this._changeCulture(culture);
|
|
39
|
-
};
|
|
40
|
-
this.userLoggedIn$ = this._portalService.userLoggedIn$;
|
|
41
|
-
this.notifiationCountLoaded$ = this._notificationService.notificationCountLoaded$;
|
|
42
|
-
this._viewedNotifications$
|
|
43
|
-
.pipe(takeUntil(this._onDestroy$), tap((item) => this._viewedNotifications.push(item)), map((item) => this._viewedNotifications), debounceTime(2000), map((items) => items.map((item) => item.Tag)))
|
|
44
|
-
.subscribe((tags) => {
|
|
45
|
-
this._viewedNotifications = [];
|
|
46
|
-
this._notificationService.setNotificationViewed(tags);
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
get subtitle() {
|
|
50
|
-
if (!this.shellbarData) {
|
|
51
|
-
return '';
|
|
52
|
-
}
|
|
53
|
-
if (this._portalService.deviceSize === 's' && this.shellbarData.MobileSubtitle) {
|
|
54
|
-
return this.shellbarData.MobileSubtitle
|
|
55
|
-
? `${this.shellbarData.MobileSubtitle} ${typeof this.shellbarData?.calcSubtitle === 'string' ? this.shellbarData.calcSubtitle : ''}`
|
|
56
|
-
: '';
|
|
57
|
-
}
|
|
58
|
-
return this.shellbarData.Subtitle
|
|
59
|
-
? `${this.shellbarData?.Subtitle} ${typeof this.shellbarData?.calcSubtitle === 'string' ? this.shellbarData.calcSubtitle : ''}`
|
|
60
|
-
: '';
|
|
61
|
-
}
|
|
62
|
-
get logo() {
|
|
63
|
-
return this.shellbarData?.Logo;
|
|
64
|
-
}
|
|
65
|
-
get actions() {
|
|
66
|
-
return this.settings?.HideUserMenu ? [] : this.shellbarData?.ActionItems?.MoDataList ?? [];
|
|
67
|
-
}
|
|
68
|
-
get userMenu() {
|
|
69
|
-
const moDataList = BarsaApi.Common.Util.TryGetValue(this.shellbarData, 'UserMenuItems.MoDataList');
|
|
70
|
-
const items = moDataList ? [...moDataList] : [];
|
|
71
|
-
if (!items.length) {
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
items.forEach((c) => {
|
|
75
|
-
c.text = this._bbbTranslatePipe.transform(c.text);
|
|
76
|
-
c.callback = new Function(c.Code + this.bodyClick);
|
|
77
|
-
});
|
|
78
|
-
if (!BarsaApi.LoginFormData.IsAnonymous && BarsaApi.LoginFormData.IsUserLoggedIn) {
|
|
79
|
-
items.splice(0, 0, { Id: '-1', $Caption: '', text: BarsaApi.LoginFormData.UserDisplayName });
|
|
80
|
-
}
|
|
81
|
-
return this.settings?.HideUserMenu ? [] : items;
|
|
82
|
-
}
|
|
83
|
-
get productSwitcher() {
|
|
84
|
-
return (this.shellbarData?.ProductSwitchItems?.MoDataList ?? []);
|
|
85
|
-
}
|
|
86
|
-
get multiLanguages() {
|
|
87
|
-
return this.shellbarData?.MultiLanguages;
|
|
88
|
-
}
|
|
89
|
-
get productMenuItems() {
|
|
90
|
-
const items = this.shellbarData?.ProductMenuItems?.MoDataList ?? [];
|
|
91
|
-
items.forEach((c) => (c.callback = new Function(c.Code + this.bodyClick)));
|
|
92
|
-
return items;
|
|
93
|
-
}
|
|
94
|
-
ngOnInit() {
|
|
95
|
-
super.ngOnInit();
|
|
96
|
-
this.cultures = BarsaApi.LoginFormData.Cultures;
|
|
97
|
-
this.cssUrl$ = this._portalService.cssUrl$;
|
|
98
|
-
this.cssCustomUrl$ = this._portalService.cssCustomUrl$;
|
|
99
|
-
this.notificationsCount$ = this._notificationService.notificationCount$;
|
|
100
|
-
this._notificationService.notificationCount$.subscribe(() => this._cdr.detectChanges());
|
|
101
|
-
this.notificationLoading$ = this._notificationService.notificationLoading$;
|
|
102
|
-
this.notifications$ = this._notificationService.notifications$.pipe(takeUntil(this._onDestroy$), map((notifications) => this._mapNotifications(notifications)));
|
|
103
|
-
BarsaApi.Bw.SetUserPortalSettings = (userPortalSettings) => {
|
|
104
|
-
this._portalService.setUserPortalSettings(userPortalSettings);
|
|
105
|
-
};
|
|
106
|
-
BarsaApi.Bw.SetShellbarSubtitle = (calcSubtitle) => {
|
|
107
|
-
this.shellbarData.calcSubtitle = calcSubtitle;
|
|
108
|
-
this._cdr.detectChanges();
|
|
109
|
-
};
|
|
110
|
-
this.deviceSize$ = this._portalService.deviceSize$.pipe(takeUntil(this._onDestroy$));
|
|
111
|
-
this._breadCrumbService.breadcrumbs$.pipe(takeUntil(this._onDestroy$)).subscribe((breadCrumbs) => {
|
|
112
|
-
if (breadCrumbs.length > 0) {
|
|
113
|
-
this.productMenuControl = breadCrumbs[breadCrumbs.length - 1].label;
|
|
114
|
-
}
|
|
115
|
-
this._cdr.detectChanges();
|
|
116
|
-
});
|
|
117
|
-
this._tilesService.shellbar$.pipe(takeUntil(this._onDestroy$)).subscribe((mo) => {
|
|
118
|
-
this.shellbarData = mo;
|
|
119
|
-
// this._cdr.detectChanges();
|
|
120
|
-
forkJoin([of(this.productMenuItems), of([])]) // to append user defined
|
|
121
|
-
.pipe(takeUntil(this._onDestroy$), map(([s1, s2]) => [...s1, ...s2]))
|
|
122
|
-
.subscribe((c) => {
|
|
123
|
-
this.productMenuItems1 = c;
|
|
124
|
-
this._cdr.detectChanges();
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
if (this.allowAnonymous) {
|
|
128
|
-
this._tilesService.loadShellbar();
|
|
129
|
-
}
|
|
130
|
-
this._portalService.userLoggedIn$.pipe(takeUntil(this._onDestroy$)).subscribe((loggedIn) => {
|
|
131
|
-
if (!loggedIn) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
this._tilesService.loadShellbar();
|
|
135
|
-
this._notificationService.loadUnreadNotificationCount();
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
onCultureChange(culture) {
|
|
139
|
-
this._changeCulture(culture);
|
|
140
|
-
}
|
|
141
|
-
onShowNotification(e) {
|
|
142
|
-
this.isOpenNotificatoin = false;
|
|
143
|
-
this._notificationService.ShowNotificationRelatedMo(e);
|
|
144
|
-
}
|
|
145
|
-
onNotificationItemViewed(viewedMo) {
|
|
146
|
-
this._viewedNotifications$.next(viewedMo);
|
|
147
|
-
}
|
|
148
|
-
onRemoveNotifications(e) {
|
|
149
|
-
this._notificationService.removeNotification(e.items);
|
|
150
|
-
}
|
|
151
|
-
onNotificationAction(e) {
|
|
152
|
-
this._portalService.ExecuteNotificationAction(e.item.Tag, e.btn.Title);
|
|
153
|
-
}
|
|
154
|
-
onNotificationLoadMore() {
|
|
155
|
-
this._notificationService.loadMore();
|
|
156
|
-
}
|
|
157
|
-
onNotificationWorkflowChoiceSuccess(result) { }
|
|
158
|
-
onNotificationWorkflowChoiceFailed(err) { }
|
|
159
|
-
onHandleOpenNotificationPanel() {
|
|
160
|
-
this._handleOpenNotificationPanel();
|
|
161
|
-
}
|
|
162
|
-
_handleOpenNotificationPanel() {
|
|
163
|
-
if (this.notifcationLoaded) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
this.notifcationLoaded = true;
|
|
167
|
-
this._notificationService.loadNotifications();
|
|
168
|
-
}
|
|
169
|
-
_mapNotifications(notifications) {
|
|
170
|
-
return notifications.map((notification) => ({
|
|
171
|
-
...notification,
|
|
172
|
-
contentSafeHtml: notification.Content
|
|
173
|
-
? this._domSanitizer.bypassSecurityTrustHtml(notification.Content)
|
|
174
|
-
: ''
|
|
175
|
-
}));
|
|
176
|
-
}
|
|
177
|
-
_changeCulture(culture /* culture sample :English */) {
|
|
178
|
-
BarsaApi.Bw.SetCultureByDisplayName(culture);
|
|
179
|
-
BarsaApi.Bw.NavigateTo('/');
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
ShellbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ShellbarComponent, deps: [{ token: i1.BbbTranslatePipe }, { token: i1.PortalService }, { token: i1.BreadcrumbService }, { token: i2.TilesService }, { token: i0.ChangeDetectorRef }, { token: i3.DomSanitizer }, { token: i1.NotificationService }, { token: APP_VERSION }], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
-
ShellbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ShellbarComponent, selector: "bt-shellbar", viewQueries: [{ propertyName: "comboboxComponent", first: true, predicate: ComboboxComponent, descendants: true }, { propertyName: "popoverComponent", first: true, predicate: ["popoverComponent"], descendants: true }, { propertyName: "_notificationsDialog", first: true, predicate: ["notificationsDialog"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"userLoggedIn$ | async as userloggend; else noLoggedInShellbar\">\n <ng-container *ngIf=\"notifiationCountLoaded$ | async as notifiationCountLoaded\">\n <ng-container *ngIf=\"deviceSize$ | async as deviceSize\">\n <bt-barsa-shellbar\n *ngIf=\"shellbarData\"\n [cssUrl]=\"(cssUrl$ | async)!!\"\n [cssCustomUrl]=\"(cssCustomUrl$ | async)!!\"\n [userLoggedIn]=\"true\"\n [allowAnonymous]=\"allowAnonymous\"\n [deviceSize]=\"deviceSize\"\n [shellbarData]=\"shellbarData\"\n [productMenuControl]=\"productMenuControl\"\n [settings]=\"settings\"\n [multiLanguages]=\"multiLanguages\"\n [notificationCount]=\"(notificationsCount$ | async)!!\"\n [notifications]=\"(notifications$ | async) ?? []\"\n [notifcationLoaded]=\"notifcationLoaded\"\n [notificationLoading]=\"(notificationLoading$ | async) === true\"\n [cultures]=\"cultures\"\n [logo]=\"logo\"\n [actions]=\"actions\"\n [userMenu]=\"userMenu\"\n [productSwitcher]=\"productSwitcher\"\n [subtitle]=\"subtitle\"\n [productMenuItems1]=\"productMenuItems1\"\n (cultureChanged)=\"onCultureChanged($event)\"\n (notificationViewed)=\"onNotificationItemViewed($event)\"\n (notifiationActionClick)=\"onNotificationAction($event)\"\n (removeNotification)=\"onRemoveNotifications($event)\"\n (notificationLoadMore)=\"onNotificationLoadMore()\"\n (openNotificationPanel)=\"onHandleOpenNotificationPanel()\"\n >\n </bt-barsa-shellbar\n ></ng-container>\n </ng-container>\n</ng-container>\n<ng-template #noLoggedInShellbar>\n <bt-barsa-shellbar\n *ngIf=\"notificationsCount$ | async as notificationCount\"\n [cssUrl]=\"''\"\n [cssCustomUr]=\"''\"\n [userLoggedIn]=\"false\"\n [multiLanguages]=\"multiLanguages\"\n [userMenu]=\"userMenu\"\n [logo]=\"logo\"\n [productMenuItems1]=\"productMenuItems1\"\n [allowAnonymous]=\"allowAnonymous\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [shellbarData]=\"shellbarData\"\n [cultures]=\"cultures\"\n [logo]=\"logo\"\n [actions]=\"actions\"\n [userMenu]=\"userMenu\"\n [productMenuControl]=\"productMenuControl\"\n [productSwitcher]=\"productSwitcher\"\n [subtitle]=\"subtitle\"\n [settings]=\"settings\"\n [notificationCount]=\"{ unread: 0, all: 0 }\"\n [notifications]=\"[]\"\n [notifcationLoaded]=\"true\"\n [notificationLoading]=\"false\"\n [cultures]=\"cultures\"\n [productMenuItems1]=\"productMenuItems1\"\n (cultureChanged)=\"onCultureChanged($event)\"\n >\n </bt-barsa-shellbar>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.BarsaShellbarComponent, selector: "bt-barsa-shellbar", inputs: ["cssCustomUrl", "cssUrl", "allowAnonymous", "multiLanguages", "userLoggedIn", "settings", "productMenuControl", "deviceSize", "cultures", "shellbarData", "notificationCount", "notifcationLoaded", "notificationLoading", "notifications", "productMenuItems1", "bodyClick", "logo", "actions", "userMenu", "productSwitcher", "subtitle"], outputs: ["openNotificationPanel", "cultureChanged", "notificationLoadMore", "removeNotification", "notifiationActionClick", "notificationViewed"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ShellbarComponent, decorators: [{
|
|
185
|
-
type: Component,
|
|
186
|
-
args: [{ selector: 'bt-shellbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"userLoggedIn$ | async as userloggend; else noLoggedInShellbar\">\n <ng-container *ngIf=\"notifiationCountLoaded$ | async as notifiationCountLoaded\">\n <ng-container *ngIf=\"deviceSize$ | async as deviceSize\">\n <bt-barsa-shellbar\n *ngIf=\"shellbarData\"\n [cssUrl]=\"(cssUrl$ | async)!!\"\n [cssCustomUrl]=\"(cssCustomUrl$ | async)!!\"\n [userLoggedIn]=\"true\"\n [allowAnonymous]=\"allowAnonymous\"\n [deviceSize]=\"deviceSize\"\n [shellbarData]=\"shellbarData\"\n [productMenuControl]=\"productMenuControl\"\n [settings]=\"settings\"\n [multiLanguages]=\"multiLanguages\"\n [notificationCount]=\"(notificationsCount$ | async)!!\"\n [notifications]=\"(notifications$ | async) ?? []\"\n [notifcationLoaded]=\"notifcationLoaded\"\n [notificationLoading]=\"(notificationLoading$ | async) === true\"\n [cultures]=\"cultures\"\n [logo]=\"logo\"\n [actions]=\"actions\"\n [userMenu]=\"userMenu\"\n [productSwitcher]=\"productSwitcher\"\n [subtitle]=\"subtitle\"\n [productMenuItems1]=\"productMenuItems1\"\n (cultureChanged)=\"onCultureChanged($event)\"\n (notificationViewed)=\"onNotificationItemViewed($event)\"\n (notifiationActionClick)=\"onNotificationAction($event)\"\n (removeNotification)=\"onRemoveNotifications($event)\"\n (notificationLoadMore)=\"onNotificationLoadMore()\"\n (openNotificationPanel)=\"onHandleOpenNotificationPanel()\"\n >\n </bt-barsa-shellbar\n ></ng-container>\n </ng-container>\n</ng-container>\n<ng-template #noLoggedInShellbar>\n <bt-barsa-shellbar\n *ngIf=\"notificationsCount$ | async as notificationCount\"\n [cssUrl]=\"''\"\n [cssCustomUr]=\"''\"\n [userLoggedIn]=\"false\"\n [multiLanguages]=\"multiLanguages\"\n [userMenu]=\"userMenu\"\n [logo]=\"logo\"\n [productMenuItems1]=\"productMenuItems1\"\n [allowAnonymous]=\"allowAnonymous\"\n [deviceSize]=\"(deviceSize$ | async)!!\"\n [shellbarData]=\"shellbarData\"\n [cultures]=\"cultures\"\n [logo]=\"logo\"\n [actions]=\"actions\"\n [userMenu]=\"userMenu\"\n [productMenuControl]=\"productMenuControl\"\n [productSwitcher]=\"productSwitcher\"\n [subtitle]=\"subtitle\"\n [settings]=\"settings\"\n [notificationCount]=\"{ unread: 0, all: 0 }\"\n [notifications]=\"[]\"\n [notifcationLoaded]=\"true\"\n [notificationLoading]=\"false\"\n [cultures]=\"cultures\"\n [productMenuItems1]=\"productMenuItems1\"\n (cultureChanged)=\"onCultureChanged($event)\"\n >\n </bt-barsa-shellbar>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
|
|
187
|
-
}], ctorParameters: function () { return [{ type: i1.BbbTranslatePipe }, { type: i1.PortalService }, { type: i1.BreadcrumbService }, { type: i2.TilesService }, { type: i0.ChangeDetectorRef }, { type: i3.DomSanitizer }, { type: i1.NotificationService }, { type: undefined, decorators: [{
|
|
188
|
-
type: Inject,
|
|
189
|
-
args: [APP_VERSION]
|
|
190
|
-
}] }]; }, propDecorators: { comboboxComponent: [{
|
|
191
|
-
type: ViewChild,
|
|
192
|
-
args: [ComboboxComponent]
|
|
193
|
-
}], popoverComponent: [{
|
|
194
|
-
type: ViewChild,
|
|
195
|
-
args: ['popoverComponent', { static: false }]
|
|
196
|
-
}], _notificationsDialog: [{
|
|
197
|
-
type: ViewChild,
|
|
198
|
-
args: ['notificationsDialog', { static: true, read: TemplateRef }]
|
|
199
|
-
}] } });
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9zaGVsbGJhci9zaGVsbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3NoZWxsYmFyL3NoZWxsYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUNILGlCQUFpQixFQUtwQixNQUFNLHVCQUF1QixDQUFDO0FBRy9CLE9BQU8sRUFDSCxhQUFhLEVBQ2IsUUFBUSxFQU1SLFdBQVcsRUFLZCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBcUI5QixNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBYTtJQThFaEQsWUFDWSxpQkFBbUMsRUFDbkMsY0FBNkIsRUFDN0Isa0JBQXFDLEVBQ3JDLGFBQTJCLEVBQzNCLElBQXVCLEVBQ3ZCLGFBQTJCLEVBQzNCLG9CQUF5QyxFQUNyQixVQUFrQjtRQUU5QyxLQUFLLEVBQUUsQ0FBQztRQVRBLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixrQkFBYSxH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UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUNPLGlCQUFpQixDQUFDLGFBQWE7UUFDbkMsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLEdBQUcsWUFBWTtZQUNmLGVBQWUsRUFBRSxZQUFZLENBQUMsT0FBTztnQkFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztnQkFDbEUsQ0FBQyxDQUFDLEVBQUU7U0FDWCxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFDTyxjQUFjLENBQUMsT0FBZSxDQUFDLDZCQUE2QjtRQUNoRSxRQUFRLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OzhHQWxOUSxpQkFBaUIsNE9Bc0ZkLFdBQVc7a0dBdEZkLGlCQUFpQixzR0FDZixpQkFBaUIsZ1BBRTRCLFdBQVcsa0VDekR2RSxnL0ZBbUVBOzJGRGJhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDSSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07OzBCQXdGMUMsTUFBTTsyQkFBQyxXQUFXOzRDQXJGTyxpQkFBaUI7c0JBQTlDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNzQixnQkFBZ0I7c0JBQWpFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUN1QixvQkFBb0I7c0JBQTFGLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3QsXG4gICAgT25Jbml0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBDb21ib2JveENvbXBvbmVudCxcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgIFByb2R1Y3RTd2l0Y2hJdGVtLFxuICAgIFNoZWxsYmFyTWVudUl0ZW0sXG4gICAgU2hlbGxiYXJVc2VyXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHtcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIEJhcnNhQXBpLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgRmlsZVBpY3R1cmVJbmZvTW9kZWwsXG4gICAgTW9Gb3JSZXBvcnRNb2RlbCxcbiAgICBQb3J0YWxTZXJ2aWNlLFxuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIEFQUF9WRVJTSU9OLFxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgTm90aWZpY2F0aW9uSXRlbSxcbiAgICBOb3RpZmljYXRpb25BY3Rpb24sXG4gICAgQmJiVHJhbnNsYXRlUGlwZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbmltcG9ydCB7IFRpbGVzU2VydmljZSB9IGZyb20gJy4uL3RpbGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJicmV2YXRpb25EZXZpY2VTaXplIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5pbnRlcmZhY2UgU2hlbGxiYXJTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgc3VidGl0bGU6IHN0cmluZztcbiAgICBjYWxjU3VidGl0bGU6IHN0cmluZztcbiAgICBsb2dvOiBGaWxlUGljdHVyZUluZm9Nb2RlbDtcbiAgICBQcm9kdWN0U3dpdGNoSXRlbXM6IE1vRm9yUmVwb3J0TW9kZWw7XG4gICAgUHJvZHVjdE1lbnVJdGVtczogTW9Gb3JSZXBvcnRNb2RlbDtcbiAgICBVc2VyTWVudUl0ZW1zOiBNb0ZvclJlcG9ydE1vZGVsO1xuICAgIEFjdGlvbkl0ZW1zOiBNb0ZvclJlcG9ydE1vZGVsO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2J0LXNoZWxsYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2hlbGxiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NoZWxsYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2hlbGxiYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKENvbWJvYm94Q29tcG9uZW50KSBjb21ib2JveENvbXBvbmVudDogQ29tYm9ib3hDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgncG9wb3ZlckNvbXBvbmVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3BvdmVyQ29tcG9uZW50OiBQb3BvdmVyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ25vdGlmaWNhdGlvbnNEaWFsb2cnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVGVtcGxhdGVSZWYgfSkgX25vdGlmaWNhdGlvbnNEaWFsb2c6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgc2hlbGxiYXJEYXRhOiBTaGVsbGJhclNldHRpbmc7XG4gICAgc2V0dGluZ3M6IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgaXNPcGVuTm90aWZpY2F0b2luID0gZmFsc2U7XG4gICAgZGV2aWNlU2l6ZSQ6IE9ic2VydmFibGU8QWJicmV2YXRpb25EZXZpY2VTaXplPjtcbiAgICBwcm9kdWN0TWVudUNvbnRyb2w6IHN0cmluZztcbiAgICB1c2VyOiBTaGVsbGJhclVzZXIgPSB7XG4gICAgICAgIGluaXRpYWxzOiAnV1cnLFxuICAgICAgICBjb2xvckFjY2VudDogMVxuICAgIH07XG5cbiAgICBwcm9kdWN0TWVudUl0ZW1zMTogU2hlbGxiYXJNZW51SXRlbVtdO1xuICAgIHVzZXJMb2dnZWRJbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgY3NzVXJsJDogYW55O1xuICAgIGNzc0N1c3RvbVVybCQ6IGFueTtcbiAgICBhbGxvd0Fub255bW91cyA9IHRydWU7XG4gICAgY3VsdHVyZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgbm90aWZpY2F0aW9uc0NvdW50JDogT2JzZXJ2YWJsZTx7IHVucmVhZDogbnVtYmVyOyBhbGw6IG51bWJlciB9PjtcbiAgICBub3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25JdGVtW10+O1xuICAgIG5vdGlmaWNhdGlvbkxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIG5vdGlmY2F0aW9uTG9hZGVkID0gZmFsc2U7XG4gICAgbm90aWZpYXRpb25Db3VudExvYWRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgX3ZpZXdlZE5vdGlmaWNhdGlvbnMkID0gbmV3IFN1YmplY3Q8Tm90aWZpY2F0aW9uSXRlbT4oKTtcbiAgICBfdmlld2VkTm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uSXRlbVtdID0gW107XG4gICAgYm9keUNsaWNrID0gJzskKFwiYm9keVwiKS5jbGljaygpJztcbiAgICBnZXQgc3VidGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLnNoZWxsYmFyRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUgPT09ICdzJyAmJiB0aGlzLnNoZWxsYmFyRGF0YS5Nb2JpbGVTdWJ0aXRsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hlbGxiYXJEYXRhLk1vYmlsZVN1YnRpdGxlXG4gICAgICAgICAgICAgICAgPyBgJHt0aGlzLnNoZWxsYmFyRGF0YS5Nb2JpbGVTdWJ0aXRsZX0gJHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5zaGVsbGJhckRhdGE/LmNhbGNTdWJ0aXRsZSA9PT0gJ3N0cmluZycgPyB0aGlzLnNoZWxsYmFyRGF0YS5jYWxjU3VidGl0bGUgOiAnJ1xuICAgICAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNoZWxsYmFyRGF0YS5TdWJ0aXRsZVxuICAgICAgICAgICAgPyBgJHt0aGlzLnNoZWxsYmFyRGF0YT8uU3VidGl0bGV9ICR7XG4gICAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5zaGVsbGJhckRhdGE/LmNhbGNTdWJ0aXRsZSA9PT0gJ3N0cmluZycgPyB0aGlzLnNoZWxsYmFyRGF0YS5jYWxjU3VidGl0bGUgOiAnJ1xuICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgOiAnJztcbiAgICB9XG4gICAgZ2V0IGxvZ28oKTogeyBGaWxlSWQ6IHN0cmluZyB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hlbGxiYXJEYXRhPy5Mb2dvO1xuICAgIH1cbiAgICBnZXQgYWN0aW9ucygpOiBBcnJheTxNZXRhb2JqZWN0RGF0YU1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzPy5IaWRlVXNlck1lbnUgPyBbXSA6IHRoaXMuc2hlbGxiYXJEYXRhPy5BY3Rpb25JdGVtcz8uTW9EYXRhTGlzdCA/PyBbXTtcbiAgICB9XG4gICAgZ2V0IHVzZXJNZW51KCk6IHsgdGV4dDogc3RyaW5nOyBjYWxsYmFjazogKCkgPT4gdm9pZCB9W10ge1xuICAgICAgICBjb25zdCBtb0RhdGFMaXN0ID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5zaGVsbGJhckRhdGEsICdVc2VyTWVudUl0ZW1zLk1vRGF0YUxpc3QnKTtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBtb0RhdGFMaXN0ID8gWy4uLm1vRGF0YUxpc3RdIDogW107XG4gICAgICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgICAgYy50ZXh0ID0gdGhpcy5fYmJiVHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0oYy50ZXh0KTtcbiAgICAgICAgICAgIGMuY2FsbGJhY2sgPSBuZXcgRnVuY3Rpb24oYy5Db2RlICsgdGhpcy5ib2R5Q2xpY2spO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzQW5vbnltb3VzICYmIEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNVc2VyTG9nZ2VkSW4pIHtcbiAgICAgICAgICAgIGl0ZW1zLnNwbGljZSgwLCAwLCB7IElkOiAnLTEnLCAkQ2FwdGlvbjogJycsIHRleHQ6IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuVXNlckRpc3BsYXlOYW1lIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzPy5IaWRlVXNlck1lbnUgPyBbXSA6IChpdGVtcyBhcyBhbnkpO1xuICAgIH1cbiAgICBnZXQgcHJvZHVjdFN3aXRjaGVyKCk6IFByb2R1Y3RTd2l0Y2hJdGVtW10ge1xuICAgICAgICByZXR1cm4gKHRoaXMuc2hlbGxiYXJEYXRhPy5Qcm9kdWN0U3dpdGNoSXRlbXM/Lk1vRGF0YUxpc3QgPz8gW10pIGFzIHVua25vd24gYXMgUHJvZHVjdFN3aXRjaEl0ZW1bXTtcbiAgICB9XG4gICAgZ2V0IG11bHRpTGFuZ3VhZ2VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGVsbGJhckRhdGE/Lk11bHRpTGFuZ3VhZ2VzO1xuICAgIH1cbiAgICBnZXQgcHJvZHVjdE1lbnVJdGVtcygpOiBTaGVsbGJhck1lbnVJdGVtW10ge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuc2hlbGxiYXJEYXRhPy5Qcm9kdWN0TWVudUl0ZW1zPy5Nb0RhdGFMaXN0ID8/IFtdO1xuICAgICAgICBpdGVtcy5mb3JFYWNoKChjKSA9PiAoYy5jYWxsYmFjayA9IG5ldyBGdW5jdGlvbihjLkNvZGUgKyB0aGlzLmJvZHlDbGljaykpKTtcbiAgICAgICAgcmV0dXJuIGl0ZW1zIGFzIHVua25vd24gYXMgU2hlbGxiYXJNZW51SXRlbVtdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9iYmJUcmFuc2xhdGVQaXBlOiBCYmJUcmFuc2xhdGVQaXBlLFxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9icmVhZENydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3RpbGVzU2VydmljZTogVGlsZXNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgQEluamVjdChBUFBfVkVSU0lPTikgcHVibGljIGFwcFZlcnNpb246IHN0cmluZ1xuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbiQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnVzZXJMb2dnZWRJbiQ7XG4gICAgICAgIHRoaXMubm90aWZpYXRpb25Db3VudExvYWRlZCQgPSB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLm5vdGlmaWNhdGlvbkNvdW50TG9hZGVkJDtcbiAgICAgICAgdGhpcy5fdmlld2VkTm90aWZpY2F0aW9ucyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICB0YXAoKGl0ZW0pID0+IHRoaXMuX3ZpZXdlZE5vdGlmaWNhdGlvbnMucHVzaChpdGVtKSksXG4gICAgICAgICAgICAgICAgbWFwKChpdGVtKSA9PiB0aGlzLl92aWV3ZWROb3RpZmljYXRpb25zKSxcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMjAwMCksXG4gICAgICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLlRhZykpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh0YWdzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld2VkTm90aWZpY2F0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uuc2V0Tm90aWZpY2F0aW9uVmlld2VkKHRhZ3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuY3VsdHVyZXMgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkN1bHR1cmVzO1xuICAgICAgICB0aGlzLmNzc1VybCQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmNzc1VybCQ7XG4gICAgICAgIHRoaXMuY3NzQ3VzdG9tVXJsJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuY3NzQ3VzdG9tVXJsJDtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zQ291bnQkID0gdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5ub3RpZmljYXRpb25Db3VudCQ7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZpY2F0aW9uQ291bnQkLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpKTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25Mb2FkaW5nJCA9IHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZpY2F0aW9uTG9hZGluZyQ7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucyQgPSB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLm5vdGlmaWNhdGlvbnMkLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICBtYXAoKG5vdGlmaWNhdGlvbnMpID0+IHRoaXMuX21hcE5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucykpXG4gICAgICAgICk7XG4gICAgICAgIEJhcnNhQXBpLkJ3LlNldFVzZXJQb3J0YWxTZXR0aW5ncyA9ICh1c2VyUG9ydGFsU2V0dGluZ3M6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2Uuc2V0VXNlclBvcnRhbFNldHRpbmdzKHVzZXJQb3J0YWxTZXR0aW5ncyk7XG4gICAgICAgIH07XG4gICAgICAgIEJhcnNhQXBpLkJ3LlNldFNoZWxsYmFyU3VidGl0bGUgPSAoY2FsY1N1YnRpdGxlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hlbGxiYXJEYXRhLmNhbGNTdWJ0aXRsZSA9IGNhbGNTdWJ0aXRsZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcblxuICAgICAgICB0aGlzLl9icmVhZENydW1iU2VydmljZS5icmVhZGNydW1icyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoYnJlYWRDcnVtYnMpID0+IHtcbiAgICAgICAgICAgIGlmIChicmVhZENydW1icy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0TWVudUNvbnRyb2wgPSBicmVhZENydW1ic1ticmVhZENydW1icy5sZW5ndGggLSAxXS5sYWJlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3RpbGVzU2VydmljZS5zaGVsbGJhciQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgobW8pID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hlbGxiYXJEYXRhID0gbW8gYXMgU2hlbGxiYXJTZXR0aW5nO1xuICAgICAgICAgICAgLy8gdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIGZvcmtKb2luKFtvZih0aGlzLnByb2R1Y3RNZW51SXRlbXMpLCBvZihbXSldKSAvLyB0byBhcHBlbmQgdXNlciBkZWZpbmVkXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChbczEsIHMyXSkgPT4gWy4uLnMxLCAuLi5zMl0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0TWVudUl0ZW1zMSA9IGM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5hbGxvd0Fub255bW91cykge1xuICAgICAgICAgICAgdGhpcy5fdGlsZXNTZXJ2aWNlLmxvYWRTaGVsbGJhcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UudXNlckxvZ2dlZEluJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChsb2dnZWRJbikgPT4ge1xuICAgICAgICAgICAgaWYgKCFsb2dnZWRJbikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3RpbGVzU2VydmljZS5sb2FkU2hlbGxiYXIoKTtcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UubG9hZFVucmVhZE5vdGlmaWNhdGlvbkNvdW50KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ3VsdHVyZUNoYW5nZShjdWx0dXJlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZUN1bHR1cmUoY3VsdHVyZSk7XG4gICAgfVxuICAgIG9uU2hvd05vdGlmaWNhdGlvbihlOiB7IHRhZzogc3RyaW5nOyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgbmFtYTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW5Ob3RpZmljYXRvaW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5TaG93Tm90aWZpY2F0aW9uUmVsYXRlZE1vKGUpO1xuICAgIH1cbiAgICBvbk5vdGlmaWNhdGlvbkl0ZW1WaWV3ZWQodmlld2VkTW86IE5vdGlmaWNhdGlvbkl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmlld2VkTm90aWZpY2F0aW9ucyQubmV4dCh2aWV3ZWRNbyk7XG4gICAgfVxuXG4gICAgb25SZW1vdmVOb3RpZmljYXRpb25zKGU6IHsgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTsgc2lsZW50OiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5yZW1vdmVOb3RpZmljYXRpb24oZS5pdGVtcyk7XG4gICAgfVxuICAgIG9uT3Blbk5vdGlmaWNhdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5Ob3RpZmljYXRvaW4gPSB0cnVlO1xuICAgICAgICB0aGlzLl9oYW5kbGVPcGVuTm90aWZpY2F0aW9uUGFuZWwoKTtcbiAgICB9O1xuICAgIG9uTm90aWZpY2F0aW9uQWN0aW9uKGU6IHsgaXRlbTogTm90aWZpY2F0aW9uSXRlbTsgYnRuOiBOb3RpZmljYXRpb25BY3Rpb24gfSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLkV4ZWN1dGVOb3RpZmljYXRpb25BY3Rpb24oZS5pdGVtLlRhZywgZS5idG4uVGl0bGUpO1xuICAgIH1cbiAgICBvbkN1bHR1cmVDaGFuZ2VkID0gKGN1bHR1cmU6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLl9jaGFuZ2VDdWx0dXJlKGN1bHR1cmUpO1xuICAgIH07XG4gICAgb25Ob3RpZmljYXRpb25Mb2FkTW9yZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5sb2FkTW9yZSgpO1xuICAgIH1cbiAgICBvbk5vdGlmaWNhdGlvbldvcmtmbG93Q2hvaWNlU3VjY2VzcyhyZXN1bHQpOiB2b2lkIHt9XG4gICAgb25Ob3RpZmljYXRpb25Xb3JrZmxvd0Nob2ljZUZhaWxlZChlcnIpOiB2b2lkIHt9XG5cbiAgICBvbkhhbmRsZU9wZW5Ob3RpZmljYXRpb25QYW5lbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faGFuZGxlT3Blbk5vdGlmaWNhdGlvblBhbmVsKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlT3Blbk5vdGlmaWNhdGlvblBhbmVsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ub3RpZmNhdGlvbkxvYWRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubm90aWZjYXRpb25Mb2FkZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLmxvYWROb3RpZmljYXRpb25zKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX21hcE5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucyk6IE5vdGlmaWNhdGlvbkl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBub3RpZmljYXRpb25zLm1hcCgobm90aWZpY2F0aW9uKSA9PiAoe1xuICAgICAgICAgICAgLi4ubm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgY29udGVudFNhZmVIdG1sOiBub3RpZmljYXRpb24uQ29udGVudFxuICAgICAgICAgICAgICAgID8gdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKG5vdGlmaWNhdGlvbi5Db250ZW50KVxuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGFuZ2VDdWx0dXJlKGN1bHR1cmU6IHN0cmluZyAvKiBjdWx0dXJlIHNhbXBsZSA6RW5nbGlzaCAqLyk6IHZvaWQge1xuICAgICAgICBCYXJzYUFwaS5Cdy5TZXRDdWx0dXJlQnlEaXNwbGF5TmFtZShjdWx0dXJlKTtcbiAgICAgICAgQmFyc2FBcGkuQncuTmF2aWdhdGVUbygnLycpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VyTG9nZ2VkSW4kIHwgYXN5bmMgYXMgdXNlcmxvZ2dlbmQ7IGVsc2Ugbm9Mb2dnZWRJblNoZWxsYmFyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWF0aW9uQ291bnRMb2FkZWQkIHwgYXN5bmMgYXMgbm90aWZpYXRpb25Db3VudExvYWRlZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV2aWNlU2l6ZSQgfCBhc3luYyBhcyBkZXZpY2VTaXplXCI+XG4gICAgICAgICAgICA8YnQtYmFyc2Etc2hlbGxiYXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNoZWxsYmFyRGF0YVwiXG4gICAgICAgICAgICAgICAgW2Nzc1VybF09XCIoY3NzVXJsJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgICAgICAgICBbY3NzQ3VzdG9tVXJsXT1cIihjc3NDdXN0b21VcmwkIHwgYXN5bmMpISFcIlxuICAgICAgICAgICAgICAgIFt1c2VyTG9nZ2VkSW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2FsbG93QW5vbnltb3VzXT1cImFsbG93QW5vbnltb3VzXCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcbiAgICAgICAgICAgICAgICBbc2hlbGxiYXJEYXRhXT1cInNoZWxsYmFyRGF0YVwiXG4gICAgICAgICAgICAgICAgW3Byb2R1Y3RNZW51Q29udHJvbF09XCJwcm9kdWN0TWVudUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtzZXR0aW5nc109XCJzZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgW211bHRpTGFuZ3VhZ2VzXT1cIm11bHRpTGFuZ3VhZ2VzXCJcbiAgICAgICAgICAgICAgICBbbm90aWZpY2F0aW9uQ291bnRdPVwiKG5vdGlmaWNhdGlvbnNDb3VudCQgfCBhc3luYykhIVwiXG4gICAgICAgICAgICAgICAgW25vdGlmaWNhdGlvbnNdPVwiKG5vdGlmaWNhdGlvbnMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgICAgICAgICBbbm90aWZjYXRpb25Mb2FkZWRdPVwibm90aWZjYXRpb25Mb2FkZWRcIlxuICAgICAgICAgICAgICAgIFtub3RpZmljYXRpb25Mb2FkaW5nXT1cIihub3RpZmljYXRpb25Mb2FkaW5nJCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2N1bHR1cmVzXT1cImN1bHR1cmVzXCJcbiAgICAgICAgICAgICAgICBbbG9nb109XCJsb2dvXCJcbiAgICAgICAgICAgICAgICBbYWN0aW9uc109XCJhY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBbdXNlck1lbnVdPVwidXNlck1lbnVcIlxuICAgICAgICAgICAgICAgIFtwcm9kdWN0U3dpdGNoZXJdPVwicHJvZHVjdFN3aXRjaGVyXCJcbiAgICAgICAgICAgICAgICBbc3VidGl0bGVdPVwic3VidGl0bGVcIlxuICAgICAgICAgICAgICAgIFtwcm9kdWN0TWVudUl0ZW1zMV09XCJwcm9kdWN0TWVudUl0ZW1zMVwiXG4gICAgICAgICAgICAgICAgKGN1bHR1cmVDaGFuZ2VkKT1cIm9uQ3VsdHVyZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG5vdGlmaWNhdGlvblZpZXdlZCk9XCJvbk5vdGlmaWNhdGlvbkl0ZW1WaWV3ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG5vdGlmaWF0aW9uQWN0aW9uQ2xpY2spPVwib25Ob3RpZmljYXRpb25BY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHJlbW92ZU5vdGlmaWNhdGlvbik9XCJvblJlbW92ZU5vdGlmaWNhdGlvbnMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG5vdGlmaWNhdGlvbkxvYWRNb3JlKT1cIm9uTm90aWZpY2F0aW9uTG9hZE1vcmUoKVwiXG4gICAgICAgICAgICAgICAgKG9wZW5Ob3RpZmljYXRpb25QYW5lbCk9XCJvbkhhbmRsZU9wZW5Ob3RpZmljYXRpb25QYW5lbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYnQtYmFyc2Etc2hlbGxiYXJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI25vTG9nZ2VkSW5TaGVsbGJhcj5cbiAgICA8YnQtYmFyc2Etc2hlbGxiYXJcbiAgICAgICAgKm5nSWY9XCJub3RpZmljYXRpb25zQ291bnQkIHwgYXN5bmMgYXMgbm90aWZpY2F0aW9uQ291bnRcIlxuICAgICAgICBbY3NzVXJsXT1cIicnXCJcbiAgICAgICAgW2Nzc0N1c3RvbVVyXT1cIicnXCJcbiAgICAgICAgW3VzZXJMb2dnZWRJbl09XCJmYWxzZVwiXG4gICAgICAgIFttdWx0aUxhbmd1YWdlc109XCJtdWx0aUxhbmd1YWdlc1wiXG4gICAgICAgIFt1c2VyTWVudV09XCJ1c2VyTWVudVwiXG4gICAgICAgIFtsb2dvXT1cImxvZ29cIlxuICAgICAgICBbcHJvZHVjdE1lbnVJdGVtczFdPVwicHJvZHVjdE1lbnVJdGVtczFcIlxuICAgICAgICBbYWxsb3dBbm9ueW1vdXNdPVwiYWxsb3dBbm9ueW1vdXNcIlxuICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXG4gICAgICAgIFtzaGVsbGJhckRhdGFdPVwic2hlbGxiYXJEYXRhXCJcbiAgICAgICAgW2N1bHR1cmVzXT1cImN1bHR1cmVzXCJcbiAgICAgICAgW2xvZ29dPVwibG9nb1wiXG4gICAgICAgIFthY3Rpb25zXT1cImFjdGlvbnNcIlxuICAgICAgICBbdXNlck1lbnVdPVwidXNlck1lbnVcIlxuICAgICAgICBbcHJvZHVjdE1lbnVDb250cm9sXT1cInByb2R1Y3RNZW51Q29udHJvbFwiXG4gICAgICAgIFtwcm9kdWN0U3dpdGNoZXJdPVwicHJvZHVjdFN3aXRjaGVyXCJcbiAgICAgICAgW3N1YnRpdGxlXT1cInN1YnRpdGxlXCJcbiAgICAgICAgW3NldHRpbmdzXT1cInNldHRpbmdzXCJcbiAgICAgICAgW25vdGlmaWNhdGlvbkNvdW50XT1cInsgdW5yZWFkOiAwLCBhbGw6IDAgfVwiXG4gICAgICAgIFtub3RpZmljYXRpb25zXT1cIltdXCJcbiAgICAgICAgW25vdGlmY2F0aW9uTG9hZGVkXT1cInRydWVcIlxuICAgICAgICBbbm90aWZpY2F0aW9uTG9hZGluZ109XCJmYWxzZVwiXG4gICAgICAgIFtjdWx0dXJlc109XCJjdWx0dXJlc1wiXG4gICAgICAgIFtwcm9kdWN0TWVudUl0ZW1zMV09XCJwcm9kdWN0TWVudUl0ZW1zMVwiXG4gICAgICAgIChjdWx0dXJlQ2hhbmdlZCk9XCJvbkN1bHR1cmVDaGFuZ2VkKCRldmVudClcIlxuICAgID5cbiAgICA8L2J0LWJhcnNhLXNoZWxsYmFyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
-
import { BaseBtTileComponent } from '../models';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@fundamental-ngx/core/icon";
|
|
6
|
-
import * as i3 from "@fundamental-ngx/core/tile";
|
|
7
|
-
import * as i4 from "../tile/tile.component";
|
|
8
|
-
import * as i5 from "barsa-sap-ui";
|
|
9
|
-
import * as i6 from "../pipes/tile-prop.pipe";
|
|
10
|
-
export class SimpleTileComponent extends BaseBtTileComponent {
|
|
11
|
-
ngOnInit() {
|
|
12
|
-
super.ngOnInit();
|
|
13
|
-
this.icon = this.settings.Icon;
|
|
14
|
-
this.iconColor = this.settings.IconColor;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
SimpleTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SimpleTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
SimpleTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: SimpleTileComponent, selector: "bt-simple-tile", usesInheritance: true, ngImport: i0, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <fd-icon *ngIf=\"icon\" [glyph]=\"icon\" [font]=\"icon | sapFont\" [style.color]=\"iconColor\"></fd-icon>\r\n </div>\r\n</bt-tile>\r\n", styles: ["::ng-deep .fd-tile--launch .fd-tile__content{align-items:normal!important}fd-icon{font-size:3rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i3.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "component", type: i4.TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "dynamicCommand"] }, { kind: "pipe", type: i5.SapFontPipe, name: "sapFont" }, { kind: "pipe", type: i6.TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SimpleTileComponent, decorators: [{
|
|
20
|
-
type: Component,
|
|
21
|
-
args: [{ selector: 'bt-simple-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [subtitle]=\"data | tileProp: 'Subtitle':parameters\"\r\n [dynamicCommand]=\"data | tileProp: 'DynamicCommand':parameters\"\r\n [isDouble]=\"data | tileProp: 'IsDouble':parameters\"\r\n [footer]=\"data | tileProp: 'Footer':parameters\"\r\n (hideClick)=\"hideClick.emit()\"\r\n (renameClick)=\"renameClick.emit()\"\r\n (click)=\"onTileClick()\"\r\n>\r\n <div fd-tile-content>\r\n <fd-icon *ngIf=\"icon\" [glyph]=\"icon\" [font]=\"icon | sapFont\" [style.color]=\"iconColor\"></fd-icon>\r\n </div>\r\n</bt-tile>\r\n", styles: ["::ng-deep .fd-tile--launch .fd-tile__content{align-items:normal!important}fd-icon{font-size:3rem}\n"] }]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9zaW1wbGUtdGlsZS9zaW1wbGUtdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3NpbXBsZS10aWxlL3NpbXBsZS10aWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG1CQUFvQztJQUd6RSxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUM3QyxDQUFDOztnSEFQUSxtQkFBbUI7b0dBQW5CLG1CQUFtQiw2RUNUaEMsa3JCQWlCQTsyRkRSYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUJ0VGlsZUNvbXBvbmVudCwgQmFzZVRpbGVTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnQtc2ltcGxlLXRpbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaW1wbGUtdGlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2ltcGxlLXRpbGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTaW1wbGVUaWxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUJ0VGlsZUNvbXBvbmVudDxCYXNlVGlsZVNldHRpbmc+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgaWNvbkNvbG9yOiBzdHJpbmc7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaWNvbiA9IHRoaXMuc2V0dGluZ3MuSWNvbjtcbiAgICAgICAgdGhpcy5pY29uQ29sb3IgPSB0aGlzLnNldHRpbmdzLkljb25Db2xvcjtcbiAgICB9XG59XG4iLCI8YnQtdGlsZVxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbdHlwZV09XCInbGF1bmNoJ1wiXHJcbiAgICBbZWRpdF09XCJlZGl0XCJcclxuICAgIFt0aXRsZV09XCJkYXRhIHwgdGlsZVByb3A6ICdUaXRsZSc6cGFyYW1ldGVyc1wiXHJcbiAgICBbc3VidGl0bGVdPVwiZGF0YSB8IHRpbGVQcm9wOiAnU3VidGl0bGUnOnBhcmFtZXRlcnNcIlxyXG4gICAgW2R5bmFtaWNDb21tYW5kXT1cImRhdGEgfCB0aWxlUHJvcDogJ0R5bmFtaWNDb21tYW5kJzpwYXJhbWV0ZXJzXCJcclxuICAgIFtpc0RvdWJsZV09XCJkYXRhIHwgdGlsZVByb3A6ICdJc0RvdWJsZSc6cGFyYW1ldGVyc1wiXHJcbiAgICBbZm9vdGVyXT1cImRhdGEgfCB0aWxlUHJvcDogJ0Zvb3Rlcic6cGFyYW1ldGVyc1wiXHJcbiAgICAoaGlkZUNsaWNrKT1cImhpZGVDbGljay5lbWl0KClcIlxyXG4gICAgKHJlbmFtZUNsaWNrKT1cInJlbmFtZUNsaWNrLmVtaXQoKVwiXHJcbiAgICAoY2xpY2spPVwib25UaWxlQ2xpY2soKVwiXHJcbj5cclxuICAgIDxkaXYgZmQtdGlsZS1jb250ZW50PlxyXG4gICAgICAgIDxmZC1pY29uICpuZ0lmPVwiaWNvblwiIFtnbHlwaF09XCJpY29uXCIgW2ZvbnRdPVwiaWNvbiB8IHNhcEZvbnRcIiBbc3R5bGUuY29sb3JdPVwiaWNvbkNvbG9yXCI+PC9mZC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbjwvYnQtdGlsZT5cclxuIl19
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostListener, Input } from '@angular/core';
|
|
2
|
-
import { BarsaApi, PreventDefaulEvent, TilePropsComponent } from 'barsa-novin-ray-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@fundamental-ngx/core/button";
|
|
6
|
-
import * as i3 from "@fundamental-ngx/core/menu";
|
|
7
|
-
import * as i4 from "@fundamental-ngx/core/tile";
|
|
8
|
-
import * as i5 from "barsa-sap-ui";
|
|
9
|
-
import * as i6 from "../footer-tile/footer-tile.component";
|
|
10
|
-
import * as i7 from "barsa-novin-ray-core";
|
|
11
|
-
export class TileComponent extends TilePropsComponent {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.runningCommand = false;
|
|
15
|
-
}
|
|
16
|
-
onClick(ev) {
|
|
17
|
-
if (this.edit || this.disableClick || this.runningCommand || !this.dynamicCommand) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
PreventDefaulEvent(ev);
|
|
21
|
-
const command = this.dynamicCommand;
|
|
22
|
-
const e = { command, DynamicSetting: null };
|
|
23
|
-
this.runningCommand = true;
|
|
24
|
-
this._cdr.detectChanges();
|
|
25
|
-
BarsaApi.Common.CustomCodeManager.RunDynamicCommand(command.Id, e, () => {
|
|
26
|
-
this.runningCommand = false;
|
|
27
|
-
this._cdr.detectChanges();
|
|
28
|
-
});
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
TileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
TileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TileComponent, selector: "bt-tile", inputs: { type: "type", footerTemplate: "footerTemplate", footer: "footer", disableClick: "disableClick", title: "title", icon: "icon", subtitle: "subtitle", isDouble: "isDouble", edit: "edit", dynamicCommand: "dynamicCommand" }, host: { listeners: { "click": "onClick($event)" } }, usesInheritance: true, ngImport: i0, template: "<fd-tile [type]=\"type\" [double]=\"isDouble\" [action]=\"edit\">\n <ng-container *ngIf=\"edit && !data.Locked\">\n <button fd-button fd-tile-action-close fdType=\"transparent\" (click)=\"hideClick.emit()\"></button>\n <button fd-button fd-tile-action-indicator fdType=\"transparent\" [fdMenuTrigger]=\"menu\"></button>\n </ng-container>\n <div fd-tile-header>\n <h1 fd-tile-title>\n {{ title | bbbTranslate }}\n </h1>\n <h2 fd-tile-subtitle>\n {{ subtitle | bbbTranslate }}\n </h2>\n </div>\n <ng-content></ng-content>\n <ng-container [ngTemplateOutlet]=\"footerTemplate ? footerTemplate : defaultFooter\"></ng-container>\n</fd-tile>\n<ng-template #defaultFooter>\n <bt-footer-tile *ngIf=\"footer\" [settings]=\"footer\"></bt-footer-tile>\n</ng-template>\n<fd-menu #menu>\n <li fd-menu-item>\n <a (click)=\"menu.close(); renameClick.emit()\" fd-menu-interactive>\n <span fd-menu-title>{{ 'Rename' | bbbTranslate }}</span>\n </a>\n </li>\n</fd-menu>\n<bsu-mask *ngIf=\"runningCommand\"></bsu-mask>\n", styles: [":host,fd-tile{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i3.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i3.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i3.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "directive", type: i3.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i4.TileComponent, selector: "fd-tile", inputs: ["class", "size", "double", "type", "action", "clickable"], outputs: ["tileClick"] }, { kind: "directive", type: i4.TileHeaderDirective, selector: "[fdTileHeader], [fd-tile-header]", inputs: ["twoColumn"] }, { kind: "directive", type: i4.TileTitleDirective, selector: "[fdTileTitle], [fd-tile-title]" }, { kind: "directive", type: i4.TileSubtitleDirective, selector: "[fdTileTitle], [fd-tile-subtitle]" }, { kind: "directive", type: i4.TileActionCloseDirective, selector: "[fdTileActionClose], [fd-tile-action-close]", inputs: ["class"] }, { kind: "directive", type: i4.TileActionIndicatorDirective, selector: "[fdTileActionIndicator], [fd-tile-action-indicator]", inputs: ["class"] }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i6.FooterTileComponent, selector: "bt-footer-tile", inputs: ["settings"] }, { kind: "pipe", type: i7.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileComponent, decorators: [{
|
|
35
|
-
type: Component,
|
|
36
|
-
args: [{ selector: 'bt-tile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-tile [type]=\"type\" [double]=\"isDouble\" [action]=\"edit\">\n <ng-container *ngIf=\"edit && !data.Locked\">\n <button fd-button fd-tile-action-close fdType=\"transparent\" (click)=\"hideClick.emit()\"></button>\n <button fd-button fd-tile-action-indicator fdType=\"transparent\" [fdMenuTrigger]=\"menu\"></button>\n </ng-container>\n <div fd-tile-header>\n <h1 fd-tile-title>\n {{ title | bbbTranslate }}\n </h1>\n <h2 fd-tile-subtitle>\n {{ subtitle | bbbTranslate }}\n </h2>\n </div>\n <ng-content></ng-content>\n <ng-container [ngTemplateOutlet]=\"footerTemplate ? footerTemplate : defaultFooter\"></ng-container>\n</fd-tile>\n<ng-template #defaultFooter>\n <bt-footer-tile *ngIf=\"footer\" [settings]=\"footer\"></bt-footer-tile>\n</ng-template>\n<fd-menu #menu>\n <li fd-menu-item>\n <a (click)=\"menu.close(); renameClick.emit()\" fd-menu-interactive>\n <span fd-menu-title>{{ 'Rename' | bbbTranslate }}</span>\n </a>\n </li>\n</fd-menu>\n<bsu-mask *ngIf=\"runningCommand\"></bsu-mask>\n", styles: [":host,fd-tile{display:block}\n"] }]
|
|
37
|
-
}], propDecorators: { type: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}], footerTemplate: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], footer: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], disableClick: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], title: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], icon: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], subtitle: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], isDouble: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], edit: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], dynamicCommand: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}], onClick: [{
|
|
58
|
-
type: HostListener,
|
|
59
|
-
args: ['click', ['$event']]
|
|
60
|
-
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7QUFTeEYsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBa0I7SUFOckQ7O1FBa0JJLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0tBaUIxQjtJQWZHLE9BQU8sQ0FBQyxFQUFFO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDL0UsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLFFBQVEsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFO1lBQ3BFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzswR0E1QlEsYUFBYTs4RkFBYixhQUFhLGlXQ1YxQiw2bENBMkJBOzJGRGpCYSxhQUFhO2tCQU56QixTQUFTOytCQUNJLFNBQVMsbUJBR0YsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSU4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXJzYUFwaSwgUHJldmVudERlZmF1bEV2ZW50LCBUaWxlUHJvcHNDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBBcHBUaWxlRm9vdGVyIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdidC10aWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGlsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRpbGVDb21wb25lbnQgZXh0ZW5kcyBUaWxlUHJvcHNDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHR5cGU6ICdmZWVkJyB8ICdsYXVuY2gnIHwgJ2twaSc7XG4gICAgQElucHV0KCkgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQElucHV0KCkgZm9vdGVyOiBBcHBUaWxlRm9vdGVyO1xuICAgIEBJbnB1dCgpIGRpc2FibGVDbGljazogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGlzRG91YmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZHluYW1pY0NvbW1hbmQ6IGFueTtcblxuICAgIHJ1bm5pbmdDb21tYW5kID0gZmFsc2U7XG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2soZXYpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdCB8fCB0aGlzLmRpc2FibGVDbGljayB8fCB0aGlzLnJ1bm5pbmdDb21tYW5kIHx8ICF0aGlzLmR5bmFtaWNDb21tYW5kKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgUHJldmVudERlZmF1bEV2ZW50KGV2KTtcbiAgICAgICAgY29uc3QgY29tbWFuZCA9IHRoaXMuZHluYW1pY0NvbW1hbmQ7XG4gICAgICAgIGNvbnN0IGUgPSB7IGNvbW1hbmQsIER5bmFtaWNTZXR0aW5nOiBudWxsIH07XG4gICAgICAgIHRoaXMucnVubmluZ0NvbW1hbmQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBCYXJzYUFwaS5Db21tb24uQ3VzdG9tQ29kZU1hbmFnZXIuUnVuRHluYW1pY0NvbW1hbmQoY29tbWFuZC5JZCwgZSwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ydW5uaW5nQ29tbWFuZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCI8ZmQtdGlsZSBbdHlwZV09XCJ0eXBlXCIgW2RvdWJsZV09XCJpc0RvdWJsZVwiIFthY3Rpb25dPVwiZWRpdFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0ICYmICFkYXRhLkxvY2tlZFwiPlxuICAgICAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZC10aWxlLWFjdGlvbi1jbG9zZSBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIChjbGljayk9XCJoaWRlQ2xpY2suZW1pdCgpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkLXRpbGUtYWN0aW9uLWluZGljYXRvciBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIj48L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGZkLXRpbGUtaGVhZGVyPlxuICAgICAgICA8aDEgZmQtdGlsZS10aXRsZT5cbiAgICAgICAgICAgIHt7IHRpdGxlIHwgYmJiVHJhbnNsYXRlIH19XG4gICAgICAgIDwvaDE+XG4gICAgICAgIDxoMiBmZC10aWxlLXN1YnRpdGxlPlxuICAgICAgICAgICAge3sgc3VidGl0bGUgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9oMj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZSA/IGZvb3RlclRlbXBsYXRlIDogZGVmYXVsdEZvb3RlclwiPjwvbmctY29udGFpbmVyPlxuPC9mZC10aWxlPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Rm9vdGVyPlxuICAgIDxidC1mb290ZXItdGlsZSAqbmdJZj1cImZvb3RlclwiIFtzZXR0aW5nc109XCJmb290ZXJcIj48L2J0LWZvb3Rlci10aWxlPlxuPC9uZy10ZW1wbGF0ZT5cbjxmZC1tZW51ICNtZW51PlxuICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gICAgICAgIDxhIChjbGljayk9XCJtZW51LmNsb3NlKCk7IHJlbmFtZUNsaWNrLmVtaXQoKVwiIGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdSZW5hbWUnIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbjwvZmQtbWVudT5cbjxic3UtbWFzayAqbmdJZj1cInJ1bm5pbmdDb21tYW5kXCI+PC9ic3UtbWFzaz5cbiJdfQ==
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { BaseDirective } from 'barsa-novin-ray-core';
|
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "barsa-novin-ray-core";
|
|
6
|
-
export class TileRendererDirective extends BaseDirective {
|
|
7
|
-
constructor(_cdr, _portalService, _vcr, _injector, _el) {
|
|
8
|
-
super(_el);
|
|
9
|
-
this._cdr = _cdr;
|
|
10
|
-
this._portalService = _portalService;
|
|
11
|
-
this._vcr = _vcr;
|
|
12
|
-
this._injector = _injector;
|
|
13
|
-
this._el = _el;
|
|
14
|
-
this.hideClick = new EventEmitter();
|
|
15
|
-
this.renameClick = new EventEmitter();
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
super.ngOnInit();
|
|
19
|
-
if (!this.component) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
const { Module, ModuleFileName, Name, Selector } = this.component;
|
|
23
|
-
this._portalService
|
|
24
|
-
.getComponent(Module, ModuleFileName, Name, Selector, this._injector)
|
|
25
|
-
.pipe(takeUntil(this._onDestroy$))
|
|
26
|
-
.subscribe((componentRef) => {
|
|
27
|
-
const instance = componentRef.instance;
|
|
28
|
-
instance.data = this.data;
|
|
29
|
-
instance.edit = this.edit;
|
|
30
|
-
instance.hideClick.pipe(takeUntil(this._onDestroy$)).subscribe(() => {
|
|
31
|
-
this.hideClick.emit();
|
|
32
|
-
});
|
|
33
|
-
instance.renameClick.pipe(takeUntil(this._onDestroy$)).subscribe(() => this.renameClick.emit());
|
|
34
|
-
this._vcr.insert(componentRef.hostView);
|
|
35
|
-
this._tileRef = componentRef;
|
|
36
|
-
// this._cdr.detectChanges();
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
ngOnChanges(changes) {
|
|
40
|
-
const { edit } = changes;
|
|
41
|
-
if (edit && !edit.firstChange) {
|
|
42
|
-
this._tileRef.instance.setEditHome(edit.currentValue);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
ngOnDestroy() {
|
|
46
|
-
super.ngOnDestroy();
|
|
47
|
-
if (this._tileRef) {
|
|
48
|
-
this._tileRef.destroy();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
TileRendererDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileRendererDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PortalService }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
53
|
-
TileRendererDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: TileRendererDirective, selector: "[tileRenderer]", inputs: { component: "component", data: "data", edit: "edit" }, outputs: { hideClick: "hideClick", renameClick: "renameClick" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TileRendererDirective, decorators: [{
|
|
55
|
-
type: Directive,
|
|
56
|
-
args: [{
|
|
57
|
-
selector: '[tileRenderer]'
|
|
58
|
-
}]
|
|
59
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.PortalService }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { component: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], data: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], edit: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], hideClick: [{
|
|
66
|
-
type: Output
|
|
67
|
-
}], renameClick: [{
|
|
68
|
-
type: Output
|
|
69
|
-
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1yZW5kZXJlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGUtcmVuZGVyZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBR1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU0zQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQVlwRCxZQUNZLElBQXVCLEVBQ3ZCLGNBQTZCLEVBQzdCLElBQXNCLEVBQ3RCLFNBQW1CLEVBQ2pCLEdBQWU7UUFFekIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBTkgsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBUm5CLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVUzQyxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixPQUFPO1NBQ1Y7UUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNsRSxJQUFJLENBQUMsY0FBYzthQUNkLFlBQVksQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqQyxTQUFTLENBQUMsQ0FBQyxZQUE4RCxFQUFFLEVBQUU7WUFDMUUsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztZQUN2QyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDMUIsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNoRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO1lBQzdCLDZCQUE2QjtRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN6RDtJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDOztrSEF2RFEscUJBQXFCO3NHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3QjttTkFFWSxTQUFTO3NCQUFqQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlLCBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFzZVRpbGVDb21wb25lbnQsIEJhc2VUaWxlU2V0dGluZyB9IGZyb20gJy4vbW9kZWxzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGlsZVJlbmRlcmVyXSdcbn0pXG5leHBvcnQgY2xhc3MgVGlsZVJlbmRlcmVyRGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGNvbXBvbmVudDoge1xuICAgICAgICBNb2R1bGU6IHN0cmluZztcbiAgICAgICAgTW9kdWxlRmlsZU5hbWU6IHN0cmluZztcbiAgICAgICAgTmFtZTogc3RyaW5nO1xuICAgICAgICBTZWxlY3Rvcjogc3RyaW5nO1xuICAgIH07XG4gICAgQElucHV0KCkgZGF0YTogQmFzZVRpbGVTZXR0aW5nO1xuICAgIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIGhpZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcmVuYW1lQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgcHJpdmF0ZSBfdGlsZVJlZjogQ29tcG9uZW50UmVmPEJhc2VUaWxlQ29tcG9uZW50PEJhc2VUaWxlU2V0dGluZz4+O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF92Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihfZWwpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBNb2R1bGUsIE1vZHVsZUZpbGVOYW1lLCBOYW1lLCBTZWxlY3RvciB9ID0gdGhpcy5jb21wb25lbnQ7XG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRDb21wb25lbnQoTW9kdWxlLCBNb2R1bGVGaWxlTmFtZSwgTmFtZSwgU2VsZWN0b3IsIHRoaXMuX2luamVjdG9yKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8QmFzZVRpbGVDb21wb25lbnQ8QmFzZVRpbGVTZXR0aW5nPj4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICAgICAgICAgIGluc3RhbmNlLmVkaXQgPSB0aGlzLmVkaXQ7XG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuaGlkZUNsaWNrLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVDbGljay5lbWl0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaW5zdGFuY2UucmVuYW1lQ2xpY2sucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmFtZUNsaWNrLmVtaXQoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmNyLmluc2VydChjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RpbGVSZWYgPSBjb21wb25lbnRSZWY7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZWRpdCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKGVkaXQgJiYgIWVkaXQuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpbGVSZWYuaW5zdGFuY2Uuc2V0RWRpdEhvbWUoZWRpdC5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICBpZiAodGhpcy5fdGlsZVJlZikge1xuICAgICAgICAgICAgdGhpcy5fdGlsZVJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|