barsa-tiles 2.2.1 → 2.2.3
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/esm2022/barsa-tiles.mjs +5 -0
- package/esm2022/lib/action-item/action-item.component.mjs +17 -0
- package/esm2022/lib/action-links.pipe.mjs +17 -0
- package/esm2022/lib/actions-link/actions-link.component.mjs +49 -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-pin-app/barsa-pin-app.component.mjs +34 -0
- package/esm2022/lib/barsa-shellbar/barsa-shellbar.component.mjs +183 -0
- package/esm2022/lib/barsa-tile-group-page/barsa-tile-group-page.component.mjs +71 -0
- package/esm2022/lib/barsa-tile-sidebar-page/barsa-tile-sidebar-page.component.mjs +45 -0
- package/esm2022/lib/barsa-tiles-routing.module.mjs +58 -0
- package/esm2022/lib/barsa-tiles.module.mjs +278 -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 +37 -0
- package/esm2022/lib/feed-tile/feed-tile.component.mjs +31 -0
- package/esm2022/lib/footer-edit-tile/footer-edit-tile.component.mjs +13 -0
- package/esm2022/lib/footer-tile/footer-tile.component.mjs +22 -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/esm2022/lib/micro-tile-chart-area/micro-tile-chart-area.component.mjs +40 -0
- package/esm2022/lib/micro-tile-chart-bar/micro-tile-chart-bar.component.mjs +16 -0
- package/esm2022/lib/micro-tile-chart-bullet/micro-tile-chart-bullet.component.mjs +26 -0
- package/esm2022/lib/micro-tile-chart-circular/micro-tile-chart-circular.component.mjs +20 -0
- package/esm2022/lib/micro-tile-chart-comparison/micro-tile-chart-comparison.component.mjs +31 -0
- package/esm2022/lib/micro-tile-chart-line/micro-tile-chart-line.component.mjs +32 -0
- package/esm2022/lib/micro-tile-chart-stackbar/micro-tile-chart-stackbar.component.mjs +27 -0
- package/esm2022/lib/models/app-tile-footer-section.mjs +2 -0
- package/esm2022/lib/models/app-tile-footer.mjs +2 -0
- package/esm2022/lib/models/app-tile-group-pin.mjs +2 -0
- package/esm2022/lib/models/base-bt-tile-component.mjs +27 -0
- package/esm2022/lib/models/base-tile-component.mjs +59 -0
- package/esm2022/lib/models/base-tile-setting.mjs +2 -0
- package/esm2022/lib/models/feed-tile-setting.mjs +2 -0
- package/esm2022/lib/models/index.mjs +14 -0
- package/esm2022/lib/models/logo-tile-setting.mjs +2 -0
- package/esm2022/lib/models/micro-tile-chart-bullet-setting.mjs +2 -0
- package/esm2022/lib/models/news-tile-setting.mjs +2 -0
- package/esm2022/lib/models/numeric-tile-setting.mjs +2 -0
- package/esm2022/lib/models/profile-tile-setting.mjs +2 -0
- package/esm2022/lib/models/tile-setting.mjs +2 -0
- package/esm2022/lib/models/user-portal-settings.mjs +2 -0
- package/esm2022/lib/news-tile/news-tile.component.mjs +53 -0
- package/esm2022/lib/notification-group/notification-group.component.mjs +111 -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 +32 -0
- package/esm2022/lib/pipes/home-group.pipe.mjs +18 -0
- package/esm2022/lib/pipes/tile-home-filter.pipe.mjs +29 -0
- package/esm2022/lib/pipes/tile-prop.pipe.mjs +51 -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 +102 -0
- package/esm2022/lib/profile-tile/profile-tile.component.mjs +34 -0
- package/esm2022/lib/shellbar/shellbar.component.mjs +237 -0
- package/esm2022/lib/simple-tile/simple-tile.component.mjs +27 -0
- package/esm2022/lib/tile/tile.component.mjs +95 -0
- package/esm2022/lib/tile-renderer.directive.mjs +83 -0
- package/esm2022/lib/tile-size.directive.mjs +31 -0
- package/esm2022/lib/tile-style.directive.mjs +30 -0
- package/esm2022/lib/tiles-viewer/tiles-viewer.component.mjs +188 -0
- package/esm2022/lib/tiles-viewer-container/tiles-viewer-container.component.mjs +173 -0
- package/esm2022/lib/tiles-viewer-group/tiles-viewer-group.component.mjs +89 -0
- package/esm2022/lib/tiles-viewer.service.mjs +130 -0
- package/esm2022/lib/tiles.service.mjs +614 -0
- package/esm2022/public-api.mjs +49 -0
- package/package.json +3 -1
|
@@ -0,0 +1,237 @@
|
|
|
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, getDeviceIsMobile, getDeviceIsDesktop, getDeviceIsTablet } 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 "@fundamental-ngx/core/button";
|
|
12
|
+
import * as i6 from "../barsa-shellbar/barsa-shellbar.component";
|
|
13
|
+
export class ShellbarComponent extends BaseComponent {
|
|
14
|
+
get repIdProfileImage() {
|
|
15
|
+
return this.shellbarData?.ProfileImageReport?.Id;
|
|
16
|
+
}
|
|
17
|
+
get notificationReport() {
|
|
18
|
+
return this.shellbarData?.NotificationReport;
|
|
19
|
+
}
|
|
20
|
+
get subtitle() {
|
|
21
|
+
if (!this.shellbarData) {
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
if (this._portalService.deviceSize === 's' && this.shellbarData.MobileSubtitle) {
|
|
25
|
+
return this.shellbarData.MobileSubtitle
|
|
26
|
+
? `${this.shellbarData.MobileSubtitle} ${typeof this.shellbarData?.calcSubtitle === 'string' ? this.shellbarData.calcSubtitle : ''}`
|
|
27
|
+
: '';
|
|
28
|
+
}
|
|
29
|
+
return this.shellbarData.Subtitle
|
|
30
|
+
? `${this.shellbarData?.Subtitle} ${typeof this.shellbarData?.calcSubtitle === 'string' ? this.shellbarData.calcSubtitle : ''}`
|
|
31
|
+
: '';
|
|
32
|
+
}
|
|
33
|
+
get logo() {
|
|
34
|
+
return this.shellbarData?.Logo;
|
|
35
|
+
}
|
|
36
|
+
get cssStyles() {
|
|
37
|
+
return this.shellbarData?.CssStyles;
|
|
38
|
+
}
|
|
39
|
+
get actions() {
|
|
40
|
+
return this.settings?.HideUserMenu ? [] : this.shellbarData?.ActionItems?.MoDataList ?? [];
|
|
41
|
+
}
|
|
42
|
+
get sidebarSettings() {
|
|
43
|
+
if (!this.shellbarData?.SidebarReport?.Id) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
RelatedReport: { Id: this.shellbarData?.SidebarReport?.Id, $Caption: '' },
|
|
48
|
+
RowClick: '',
|
|
49
|
+
DataOnly: false
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
get userMenu() {
|
|
53
|
+
const moDataList = BarsaApi.Common.Util.TryGetValue(this.shellbarData, 'UserMenuItems.MoDataList');
|
|
54
|
+
const items = moDataList ? [...moDataList] : [];
|
|
55
|
+
if (!items.length) {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
items.forEach((c) => {
|
|
59
|
+
c.text = this._bbbTranslatePipe.transform(c.text);
|
|
60
|
+
c.callback = new Function(c.Code + this.bodyClick);
|
|
61
|
+
});
|
|
62
|
+
if (!this.IsUserAnonymous && this.IsUserLoggedIn) {
|
|
63
|
+
items.splice(0, 0, { Id: '-1', $Caption: '', text: BarsaApi.LoginFormData.UserDisplayName });
|
|
64
|
+
}
|
|
65
|
+
return this.settings?.HideUserMenu ? [] : items;
|
|
66
|
+
}
|
|
67
|
+
get productSwitcher() {
|
|
68
|
+
return (this.shellbarData?.ProductSwitchItems?.MoDataList ?? []);
|
|
69
|
+
}
|
|
70
|
+
get multiLanguages() {
|
|
71
|
+
return this.shellbarData?.MultiLanguages;
|
|
72
|
+
}
|
|
73
|
+
get productMenuItems() {
|
|
74
|
+
const items = this.shellbarData?.ProductMenuItems?.MoDataList ?? [];
|
|
75
|
+
items.forEach((c) => (c.callback = new Function(c.Code + this.bodyClick)));
|
|
76
|
+
return items;
|
|
77
|
+
}
|
|
78
|
+
get IsUserLoggedIn() {
|
|
79
|
+
return BarsaApi.LoginFormData.IsUserLoggedIn;
|
|
80
|
+
}
|
|
81
|
+
get IsUserAnonymous() {
|
|
82
|
+
return BarsaApi.LoginFormData.IsAnonymous;
|
|
83
|
+
}
|
|
84
|
+
constructor(_bbbTranslatePipe, _portalService, _breadCrumbService, _tilesService, _cdr, _domSanitizer, _notificationService, appVersion) {
|
|
85
|
+
super();
|
|
86
|
+
this._bbbTranslatePipe = _bbbTranslatePipe;
|
|
87
|
+
this._portalService = _portalService;
|
|
88
|
+
this._breadCrumbService = _breadCrumbService;
|
|
89
|
+
this._tilesService = _tilesService;
|
|
90
|
+
this._cdr = _cdr;
|
|
91
|
+
this._domSanitizer = _domSanitizer;
|
|
92
|
+
this._notificationService = _notificationService;
|
|
93
|
+
this.appVersion = appVersion;
|
|
94
|
+
this.isOpenNotificatoin = false;
|
|
95
|
+
this.user = {
|
|
96
|
+
initials: 'WW',
|
|
97
|
+
colorAccent: 1
|
|
98
|
+
};
|
|
99
|
+
this.notifcationLoaded = false;
|
|
100
|
+
this._viewedNotifications$ = new Subject();
|
|
101
|
+
this._viewedNotifications = [];
|
|
102
|
+
this.bodyClick = ';$("body").click()';
|
|
103
|
+
this.isMobile = getDeviceIsMobile();
|
|
104
|
+
this.isDesktop = getDeviceIsDesktop();
|
|
105
|
+
this.isTablet = getDeviceIsTablet();
|
|
106
|
+
this.isServiceDesk = false;
|
|
107
|
+
this.isOpenQuickAccess = false;
|
|
108
|
+
this.onOpenNotification = () => {
|
|
109
|
+
this.isOpenNotificatoin = true;
|
|
110
|
+
this._handleOpenNotificationPanel();
|
|
111
|
+
};
|
|
112
|
+
this.onCultureChanged = (culture) => {
|
|
113
|
+
this._changeCulture(culture);
|
|
114
|
+
};
|
|
115
|
+
this.userLoggedIn$ = this._portalService.userLoggedIn$;
|
|
116
|
+
this.notifiationCountLoaded$ = this._notificationService.notificationCountLoaded$;
|
|
117
|
+
this._viewedNotifications$
|
|
118
|
+
.pipe(takeUntil(this._onDestroy$), tap((item) => this._viewedNotifications.push(item)), map((item) => this._viewedNotifications), debounceTime(2000), map((items) => items.map((item) => item.Tag)))
|
|
119
|
+
.subscribe((tags) => {
|
|
120
|
+
this._viewedNotifications = [];
|
|
121
|
+
this._notificationService.setNotificationViewed(tags);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
ngOnInit() {
|
|
125
|
+
super.ngOnInit();
|
|
126
|
+
this.isServiceDesk = BarsaApi.LoginFormData.IsServiceDesk;
|
|
127
|
+
this.cultures = BarsaApi.LoginFormData.Cultures;
|
|
128
|
+
this.cssUrl$ = this._portalService.cssUrl$;
|
|
129
|
+
this.cssVariableUrl$ = this._portalService.cssVariableUrl$;
|
|
130
|
+
this.cssCustomUrl$ = this._portalService.cssCustomUrl$;
|
|
131
|
+
this.loginRouterLink$ = this._portalService.loginRoute$;
|
|
132
|
+
this.notificationsCount$ = this._notificationService.notificationCount$;
|
|
133
|
+
this._notificationService.notificationCount$.subscribe(() => this._cdr.detectChanges());
|
|
134
|
+
this.notificationLoading$ = this._notificationService.notificationLoading$;
|
|
135
|
+
this.notifications$ = this._notificationService.notifications$.pipe(takeUntil(this._onDestroy$), map((notifications) => this._mapNotifications(notifications)));
|
|
136
|
+
BarsaApi.Bw.SetUserPortalSettings = (userPortalSettings) => {
|
|
137
|
+
this._portalService.setUserPortalSettings(userPortalSettings);
|
|
138
|
+
};
|
|
139
|
+
BarsaApi.Bw.SetShellbarSubtitle = (calcSubtitle) => {
|
|
140
|
+
this.shellbarData.calcSubtitle = calcSubtitle;
|
|
141
|
+
this._cdr.detectChanges();
|
|
142
|
+
};
|
|
143
|
+
this.deviceSize$ = this._portalService.deviceSize$.pipe(takeUntil(this._onDestroy$));
|
|
144
|
+
this._breadCrumbService.breadcrumbs$.pipe(takeUntil(this._onDestroy$)).subscribe((breadCrumbs) => {
|
|
145
|
+
if (breadCrumbs.length > 0) {
|
|
146
|
+
this.productMenuControl = breadCrumbs[breadCrumbs.length - 1].label;
|
|
147
|
+
}
|
|
148
|
+
this._cdr.detectChanges();
|
|
149
|
+
});
|
|
150
|
+
this.userProfileImageUrl$ = this._tilesService.userProfileImageUrl$;
|
|
151
|
+
this._tilesService.shellbar$.pipe(takeUntil(this._onDestroy$)).subscribe((mo) => {
|
|
152
|
+
this.shellbarData = mo;
|
|
153
|
+
if (this.IsUserLoggedIn) {
|
|
154
|
+
this._tilesService.loadUserProfileImage(this.repIdProfileImage);
|
|
155
|
+
}
|
|
156
|
+
// this._cdr.detectChanges();
|
|
157
|
+
forkJoin([of(this.productMenuItems), of([])]) // to append user defined
|
|
158
|
+
.pipe(takeUntil(this._onDestroy$), map(([s1, s2]) => [...s1, ...s2]))
|
|
159
|
+
.subscribe((c) => {
|
|
160
|
+
this.productMenuItems1 = c;
|
|
161
|
+
this._cdr.detectChanges();
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
if (this.settings?.AllowAnonymous) {
|
|
165
|
+
this._tilesService.loadShellbar();
|
|
166
|
+
}
|
|
167
|
+
this._portalService.userLoggedIn$.pipe(takeUntil(this._onDestroy$)).subscribe((loggedIn) => {
|
|
168
|
+
if (!loggedIn) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
this._tilesService.loadShellbar();
|
|
172
|
+
this._notificationService.loadUnreadNotificationCount();
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
onCultureChange(culture) {
|
|
176
|
+
this._changeCulture(culture);
|
|
177
|
+
}
|
|
178
|
+
onShowNotification(e) {
|
|
179
|
+
this.isOpenNotificatoin = false;
|
|
180
|
+
this._notificationService.ShowNotificationRelatedMo(e);
|
|
181
|
+
}
|
|
182
|
+
onNotificationItemViewed(viewedMo) {
|
|
183
|
+
this._viewedNotifications$.next(viewedMo);
|
|
184
|
+
}
|
|
185
|
+
onNotificationAction(e) {
|
|
186
|
+
this._portalService.ExecuteNotificationAction(e.item.Tag, e.btn.Title);
|
|
187
|
+
}
|
|
188
|
+
onRemoveNotifications(e) {
|
|
189
|
+
this._notificationService.removeNotification(e.items);
|
|
190
|
+
}
|
|
191
|
+
onNotificationLoadMore() {
|
|
192
|
+
this._notificationService.loadMore();
|
|
193
|
+
}
|
|
194
|
+
onNotificationWorkflowChoiceSuccess(result) { }
|
|
195
|
+
onNotificationWorkflowChoiceFailed(err) { }
|
|
196
|
+
onHandleOpenNotificationPanel() {
|
|
197
|
+
this._handleOpenNotificationPanel();
|
|
198
|
+
}
|
|
199
|
+
_handleOpenNotificationPanel() {
|
|
200
|
+
if (this.notifcationLoaded) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
this.notifcationLoaded = true;
|
|
204
|
+
// this._notificationService.loadNotifications();
|
|
205
|
+
}
|
|
206
|
+
_mapNotifications(notifications) {
|
|
207
|
+
return notifications.map((notification) => ({
|
|
208
|
+
...notification,
|
|
209
|
+
contentSafeHtml: notification.Content
|
|
210
|
+
? this._domSanitizer.bypassSecurityTrustHtml(notification.Content)
|
|
211
|
+
: ''
|
|
212
|
+
}));
|
|
213
|
+
}
|
|
214
|
+
_changeCulture(culture /* culture sample :English */) {
|
|
215
|
+
BarsaApi.Bw.SetCultureByDisplayName(culture);
|
|
216
|
+
BarsaApi.Bw.NavigateTo('/');
|
|
217
|
+
}
|
|
218
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", 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 }); }
|
|
219
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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: "@if (userLoggedIn$ | async; as userloggend) { @if (notifiationCountLoaded$ | async; as notifiationCountLoaded) { @if\r\n(deviceSize$ | async; as deviceSize) { @if (shellbarData) {\r\n<bt-barsa-shellbar\r\n [class.service-desk]=\"isServiceDesk\"\r\n [notificationReport]=\"notificationReport\"\r\n [cssUrl]=\"cssUrl$ | async\"\r\n [cssVariableUrl]=\"cssVariableUrl$ | async\"\r\n [userProfileImageUrl]=\"userProfileImageUrl$ | async\"\r\n [cssCustomUrl]=\"cssCustomUrl$ | async\"\r\n [userLoggedIn]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [shellbarData]=\"shellbarData\"\r\n [cssStyle]=\"cssStyles\"\r\n [productMenuControl]=\"productMenuControl\"\r\n [settings]=\"settings\"\r\n [isMobile]=\"isMobile\"\r\n [isTablet]=\"isTablet\"\r\n [isDesktop]=\"isDesktop\"\r\n [multiLanguages]=\"multiLanguages\"\r\n [notificationCount]=\"(notificationsCount$ | async)!!\"\r\n [cultures]=\"cultures\"\r\n [logo]=\"logo\"\r\n [actions]=\"actions\"\r\n [userMenu]=\"userMenu\"\r\n [productSwitcher]=\"productSwitcher\"\r\n [subtitle]=\"subtitle\"\r\n [isServiceDesk]=\"isServiceDesk\"\r\n [sideMenuTemplate]=\"QuickAccessTemplate\"\r\n [productMenuItems1]=\"productMenuItems1\"\r\n [isOpenQuickAccess]=\"isOpenQuickAccess\"\r\n (isOpenQuickAccessChanged)=\"isOpenQuickAccess = $event\"\r\n (cultureChanged)=\"onCultureChanged($event)\"\r\n (notifiationActionClick)=\"onNotificationAction($event)\"\r\n (openNotificationPanel)=\"onHandleOpenNotificationPanel()\"\r\n>\r\n</bt-barsa-shellbar>\r\n} } } } @else { @if (notificationsCount$ | async; as notificationCount) {\r\n<bt-barsa-shellbar\r\n [class.service-desk]=\"isServiceDesk\"\r\n [notificationReport]=\"notificationReport\"\r\n [cssUrl]=\"''\"\r\n [cssStyle]=\"cssStyles\"\r\n [cssVariableUrl]=\"''\"\r\n [cssCustomUr]=\"''\"\r\n [userLoggedIn]=\"false\"\r\n [multiLanguages]=\"multiLanguages\"\r\n [userMenu]=\"userMenu\"\r\n [logo]=\"logo\"\r\n [productMenuItems1]=\"productMenuItems1\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [shellbarData]=\"shellbarData\"\r\n [cultures]=\"cultures\"\r\n [logo]=\"logo\"\r\n [isMobile]=\"isMobile\"\r\n [isTablet]=\"isTablet\"\r\n [isDesktop]=\"isDesktop\"\r\n [isServiceDesk]=\"isServiceDesk\"\r\n [actions]=\"actions\"\r\n [userMenu]=\"userMenu\"\r\n [productMenuControl]=\"productMenuControl\"\r\n [productSwitcher]=\"productSwitcher\"\r\n [subtitle]=\"subtitle\"\r\n [settings]=\"settings\"\r\n [notificationCount]=\"{ unread: 0, all: 0 }\"\r\n [hideShellbarActions]=\"true\"\r\n [showExtraButton]=\"true\"\r\n [cultures]=\"cultures\"\r\n [productMenuItems1]=\"productMenuItems1\"\r\n (cultureChanged)=\"onCultureChanged($event)\"\r\n>\r\n @for(btn of userMenu;track btn){\r\n <button\r\n class=\"extra_btn\"\r\n fd-button\r\n [label]=\"btn.text\"\r\n [glyph]=\"btn.text === ('Login' | bbbTranslate) ? 'person-placeholder' : null\"\r\n fdType=\"emphasized\"\r\n (click)=\"btn.callback()\"\r\n ></button>\r\n }\r\n</bt-barsa-shellbar>\r\n} }\r\n<ng-template #QuickAccessTemplate>\r\n <bnrc-report-container *ngIf=\"sidebarSettings\" [settings]=\"sidebarSettings\"> </bnrc-report-container>\r\n <!-- <bt-popover-app-finder (closeMenu)=\"isOpenQuickAccess = false\"></bt-popover-app-finder> -->\r\n</ng-template>\r\n", styles: [":host{display:block;position:relative}:host .extra_btn{background-color:transparent;border-color:transparent}:host #menu_btn{background-color:transparent;border-color:transparent}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i1.ReportContainerComponent, selector: "bnrc-report-container", inputs: ["settings"] }, { kind: "directive", type: i1.DynamicStyleDirective, selector: "[cssStyle]", inputs: ["cssStyle"] }, { kind: "component", type: i6.BarsaShellbarComponent, selector: "bt-barsa-shellbar", inputs: ["cssCustomUrl", "cssUrl", "cssVariableUrl", "multiLanguages", "userLoggedIn", "settings", "productMenuControl", "deviceSize", "cultures", "shellbarData", "notificationCount", "productMenuItems1", "bodyClick", "logo", "actions", "userMenu", "productSwitcher", "subtitle", "isMobile", "hideShellbarActions", "showExtraButton", "isTablet", "userProfileImageUrl", "isDesktop", "isServiceDesk", "isOpenQuickAccess", "sideMenuTemplate", "notificationReport"], outputs: ["isOpenQuickAccessChanged", "openNotificationPanel", "openQuickAccessPanel", "cultureChanged", "notifiationActionClick"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
220
|
+
}
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShellbarComponent, decorators: [{
|
|
222
|
+
type: Component,
|
|
223
|
+
args: [{ selector: 'bt-shellbar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (userLoggedIn$ | async; as userloggend) { @if (notifiationCountLoaded$ | async; as notifiationCountLoaded) { @if\r\n(deviceSize$ | async; as deviceSize) { @if (shellbarData) {\r\n<bt-barsa-shellbar\r\n [class.service-desk]=\"isServiceDesk\"\r\n [notificationReport]=\"notificationReport\"\r\n [cssUrl]=\"cssUrl$ | async\"\r\n [cssVariableUrl]=\"cssVariableUrl$ | async\"\r\n [userProfileImageUrl]=\"userProfileImageUrl$ | async\"\r\n [cssCustomUrl]=\"cssCustomUrl$ | async\"\r\n [userLoggedIn]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [shellbarData]=\"shellbarData\"\r\n [cssStyle]=\"cssStyles\"\r\n [productMenuControl]=\"productMenuControl\"\r\n [settings]=\"settings\"\r\n [isMobile]=\"isMobile\"\r\n [isTablet]=\"isTablet\"\r\n [isDesktop]=\"isDesktop\"\r\n [multiLanguages]=\"multiLanguages\"\r\n [notificationCount]=\"(notificationsCount$ | async)!!\"\r\n [cultures]=\"cultures\"\r\n [logo]=\"logo\"\r\n [actions]=\"actions\"\r\n [userMenu]=\"userMenu\"\r\n [productSwitcher]=\"productSwitcher\"\r\n [subtitle]=\"subtitle\"\r\n [isServiceDesk]=\"isServiceDesk\"\r\n [sideMenuTemplate]=\"QuickAccessTemplate\"\r\n [productMenuItems1]=\"productMenuItems1\"\r\n [isOpenQuickAccess]=\"isOpenQuickAccess\"\r\n (isOpenQuickAccessChanged)=\"isOpenQuickAccess = $event\"\r\n (cultureChanged)=\"onCultureChanged($event)\"\r\n (notifiationActionClick)=\"onNotificationAction($event)\"\r\n (openNotificationPanel)=\"onHandleOpenNotificationPanel()\"\r\n>\r\n</bt-barsa-shellbar>\r\n} } } } @else { @if (notificationsCount$ | async; as notificationCount) {\r\n<bt-barsa-shellbar\r\n [class.service-desk]=\"isServiceDesk\"\r\n [notificationReport]=\"notificationReport\"\r\n [cssUrl]=\"''\"\r\n [cssStyle]=\"cssStyles\"\r\n [cssVariableUrl]=\"''\"\r\n [cssCustomUr]=\"''\"\r\n [userLoggedIn]=\"false\"\r\n [multiLanguages]=\"multiLanguages\"\r\n [userMenu]=\"userMenu\"\r\n [logo]=\"logo\"\r\n [productMenuItems1]=\"productMenuItems1\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [shellbarData]=\"shellbarData\"\r\n [cultures]=\"cultures\"\r\n [logo]=\"logo\"\r\n [isMobile]=\"isMobile\"\r\n [isTablet]=\"isTablet\"\r\n [isDesktop]=\"isDesktop\"\r\n [isServiceDesk]=\"isServiceDesk\"\r\n [actions]=\"actions\"\r\n [userMenu]=\"userMenu\"\r\n [productMenuControl]=\"productMenuControl\"\r\n [productSwitcher]=\"productSwitcher\"\r\n [subtitle]=\"subtitle\"\r\n [settings]=\"settings\"\r\n [notificationCount]=\"{ unread: 0, all: 0 }\"\r\n [hideShellbarActions]=\"true\"\r\n [showExtraButton]=\"true\"\r\n [cultures]=\"cultures\"\r\n [productMenuItems1]=\"productMenuItems1\"\r\n (cultureChanged)=\"onCultureChanged($event)\"\r\n>\r\n @for(btn of userMenu;track btn){\r\n <button\r\n class=\"extra_btn\"\r\n fd-button\r\n [label]=\"btn.text\"\r\n [glyph]=\"btn.text === ('Login' | bbbTranslate) ? 'person-placeholder' : null\"\r\n fdType=\"emphasized\"\r\n (click)=\"btn.callback()\"\r\n ></button>\r\n }\r\n</bt-barsa-shellbar>\r\n} }\r\n<ng-template #QuickAccessTemplate>\r\n <bnrc-report-container *ngIf=\"sidebarSettings\" [settings]=\"sidebarSettings\"> </bnrc-report-container>\r\n <!-- <bt-popover-app-finder (closeMenu)=\"isOpenQuickAccess = false\"></bt-popover-app-finder> -->\r\n</ng-template>\r\n", styles: [":host{display:block;position:relative}:host .extra_btn{background-color:transparent;border-color:transparent}:host #menu_btn{background-color:transparent;border-color:transparent}\n"] }]
|
|
224
|
+
}], ctorParameters: () => [{ type: i1.BbbTranslatePipe }, { type: i1.PortalService }, { type: i1.BreadcrumbService }, { type: i2.TilesService }, { type: i0.ChangeDetectorRef }, { type: i3.DomSanitizer }, { type: i1.NotificationService }, { type: undefined, decorators: [{
|
|
225
|
+
type: Inject,
|
|
226
|
+
args: [APP_VERSION]
|
|
227
|
+
}] }], propDecorators: { comboboxComponent: [{
|
|
228
|
+
type: ViewChild,
|
|
229
|
+
args: [ComboboxComponent]
|
|
230
|
+
}], popoverComponent: [{
|
|
231
|
+
type: ViewChild,
|
|
232
|
+
args: ['popoverComponent', { static: false }]
|
|
233
|
+
}], _notificationsDialog: [{
|
|
234
|
+
type: ViewChild,
|
|
235
|
+
args: ['notificationsDialog', { static: true, read: TemplateRef }]
|
|
236
|
+
}] } });
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9zaGVsbGJhci9zaGVsbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3NoZWxsYmFyL3NoZWxsYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUNILGlCQUFpQixFQUtwQixNQUFNLHVCQUF1QixDQUFDO0FBRy9CLE9BQU8sRUFDSCxhQUFhLEVBQ2IsUUFBUSxFQU1SLFdBQVcsRUFNWCxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNwQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQXdCOUIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGFBQWE7SUFtQ2hELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUNELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzdFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjO2dCQUNuQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsSUFDL0IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUMzRixFQUFFO2dCQUNKLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDYixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVE7WUFDN0IsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLElBQzFCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDM0YsRUFBRTtZQUNKLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDYixDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO0lBQy9GLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU87WUFDSCxhQUFhLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7WUFDekUsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsS0FBSztTQUNsQixDQUFDO0lBQ04sQ0FBQztJQUNELElBQUksUUFBUTtRQUNSLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDbkcsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoQixDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDakcsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUUsS0FBYSxDQUFDO0lBQzdELENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFtQyxDQUFDO0lBQ3ZHLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDO0lBQzdDLENBQUM7SUFDRCxJQUFJLGdCQUFnQjtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDcEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxPQUFPLEtBQXNDLENBQUM7SUFDbEQsQ0FBQztJQUNELElBQUksY0FBYztRQUNkLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7SUFDakQsQ0FBQztJQUNELElBQUksZUFBZTtRQUNmLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQ1ksaUJBQW1DLEVBQ25DLGNBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxhQUEyQixFQUMzQixJQUF1QixFQUN2QixhQUEyQixFQUMzQixvQkFBeUMsRUFDckIsVUFBa0I7UUFFOUMsS0FBSyxFQUFFLENBQUM7UUFUQSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBaEhsRCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFHM0IsU0FBSSxHQUFpQjtZQUNqQixRQUFRLEVBQUUsSUFBSTtZQUNkLFdBQVcsRUFBRSxDQUFDO1NBQ2pCLENBQUM7UUFXRixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQW9CLENBQUM7UUFDeEQseUJBQW9CLEdBQXVCLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsb0JBQW9CLENBQUM7UUFDakMsYUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDL0IsY0FBUyxHQUFHLGtCQUFrQixFQUFFLENBQUM7UUFDakMsYUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFFL0Isa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBd0wxQix1QkFBa0IsR0FBRyxHQUFTLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMvQixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUM7UUFFRixxQkFBZ0IsR0FBRyxDQUFDLE9BQWUsRUFBUSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO1FBdEdFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDdkQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0IsQ0FBQztRQUNsRixJQUFJLENBQUMscUJBQXFCO2FBQ3JCLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUMzQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDbkQsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFDeEMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUNsQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNoRDthQUNBLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUUxRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUN4RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDO1FBQ3hFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUM7UUFDM0UsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDL0QsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDM0IsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FDaEUsQ0FBQztRQUNGLFFBQVEsQ0FBQyxFQUFFLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxrQkFBdUMsRUFBUSxFQUFFO1lBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFDRixRQUFRLENBQUMsRUFBRSxDQUFDLG1CQUFtQixHQUFHLENBQUMsWUFBb0IsRUFBUSxFQUFFO1lBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUVyRixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDN0YsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3hFLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUM1RSxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQXFCLENBQUM7WUFDMUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDcEUsQ0FBQztZQUVELDZCQUE2QjtZQUM3QixRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7aUJBQ2xFLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUMzQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQ3BDO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDWixPQUFPO1lBQ1gsQ0FBQztZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQU87UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsQ0FBeUQ7UUFDeEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELHdCQUF3QixDQUFDLFFBQTBCO1FBQy9DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELG9CQUFvQixDQUFDLENBQXNEO1FBQ3ZFLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQscUJBQXFCLENBQUMsQ0FBb0Q7UUFDdEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBU0Qsc0JBQXNCO1FBQ2xCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsbUNBQW1DLENBQUMsTUFBTSxJQUFTLENBQUM7SUFDcEQsa0NBQWtDLENBQUMsR0FBRyxJQUFTLENBQUM7SUFFaEQsNkJBQTZCO1FBQ3pCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyw0QkFBNEI7UUFDaEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIsaURBQWlEO0lBQ3JELENBQUM7SUFDTyxpQkFBaUIsQ0FBQyxhQUFhO1FBQ25DLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4QyxHQUFHLFlBQVk7WUFDZixlQUFlLEVBQUUsWUFBWSxDQUFDLE9BQU87Z0JBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7Z0JBQ2xFLENBQUMsQ0FBQyxFQUFFO1NBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBQ08sY0FBYyxDQUFDLE9BQWUsQ0FBQyw2QkFBNkI7UUFDaEUsUUFBUSxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDOytHQTdQUSxpQkFBaUIsNE9Bc0hkLFdBQVc7bUdBdEhkLGlCQUFpQixzR0FDZixpQkFBaUIsZ1BBRTRCLFdBQVcsa0VDaEV2RSxvNEdBc0ZBOzs0RkR6QmEsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNJLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzswQkF3SFosTUFBTTsyQkFBQyxXQUFXO3lDQXJITyxpQkFBaUI7c0JBQTlDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNzQixnQkFBZ0I7c0JBQWpFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUN1QixvQkFBb0I7c0JBQTFGLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEluamVjdCxcclxuICAgIE9uSW5pdCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgICBDb21ib2JveENvbXBvbmVudCxcclxuICAgIFBvcG92ZXJDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0U3dpdGNoSXRlbSxcclxuICAgIFNoZWxsYmFyTWVudUl0ZW0sXHJcbiAgICBTaGVsbGJhclVzZXJcclxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBCYXJzYUFwaSxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBGaWxlUGljdHVyZUluZm9Nb2RlbCxcclxuICAgIE1vRm9yUmVwb3J0TW9kZWwsXHJcbiAgICBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgQnJlYWRjcnVtYlNlcnZpY2UsXHJcbiAgICBBUFBfVkVSU0lPTixcclxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25JdGVtLFxyXG4gICAgTm90aWZpY2F0aW9uQWN0aW9uLFxyXG4gICAgQmJiVHJhbnNsYXRlUGlwZSxcclxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcclxuICAgIGdldERldmljZUlzTW9iaWxlLFxyXG4gICAgZ2V0RGV2aWNlSXNEZXNrdG9wLFxyXG4gICAgZ2V0RGV2aWNlSXNUYWJsZXRcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5pbXBvcnQgeyBUaWxlc1NlcnZpY2UgfSBmcm9tICcuLi90aWxlcy5zZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBTaGVsbGJhclNldHRpbmcgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIENzc1N0eWxlczogc3RyaW5nO1xyXG4gICAgc3VidGl0bGU6IHN0cmluZztcclxuICAgIGNhbGNTdWJ0aXRsZTogc3RyaW5nO1xyXG4gICAgbG9nbzogRmlsZVBpY3R1cmVJbmZvTW9kZWw7XHJcbiAgICBQcm9kdWN0U3dpdGNoSXRlbXM6IE1vRm9yUmVwb3J0TW9kZWw7XHJcbiAgICBQcm9kdWN0TWVudUl0ZW1zOiBNb0ZvclJlcG9ydE1vZGVsO1xyXG4gICAgVXNlck1lbnVJdGVtczogTW9Gb3JSZXBvcnRNb2RlbDtcclxuICAgIEFjdGlvbkl0ZW1zOiBNb0ZvclJlcG9ydE1vZGVsO1xyXG4gICAgU2lkZWJhclJlcG9ydDogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIFByb2ZpbGVJbWFnZVJlcG9ydDogTWV0YW9iamVjdERhdGFNb2RlbDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2J0LXNoZWxsYmFyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaGVsbGJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zaGVsbGJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hlbGxiYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoQ29tYm9ib3hDb21wb25lbnQpIGNvbWJvYm94Q29tcG9uZW50OiBDb21ib2JveENvbXBvbmVudDtcclxuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXJDb21wb25lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcG9wb3ZlckNvbXBvbmVudDogUG9wb3ZlckNvbXBvbmVudDtcclxuICAgIEBWaWV3Q2hpbGQoJ25vdGlmaWNhdGlvbnNEaWFsb2cnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVGVtcGxhdGVSZWYgfSkgX25vdGlmaWNhdGlvbnNEaWFsb2c6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBzaGVsbGJhckRhdGE6IFNoZWxsYmFyU2V0dGluZztcclxuICAgIHNldHRpbmdzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgaXNPcGVuTm90aWZpY2F0b2luID0gZmFsc2U7XHJcbiAgICBkZXZpY2VTaXplJDogT2JzZXJ2YWJsZTxBYmJyZXZhdGlvbkRldmljZVNpemU+O1xyXG4gICAgcHJvZHVjdE1lbnVDb250cm9sOiBzdHJpbmc7XHJcbiAgICB1c2VyOiBTaGVsbGJhclVzZXIgPSB7XHJcbiAgICAgICAgaW5pdGlhbHM6ICdXVycsXHJcbiAgICAgICAgY29sb3JBY2NlbnQ6IDFcclxuICAgIH07XHJcblxyXG4gICAgcHJvZHVjdE1lbnVJdGVtczE6IFNoZWxsYmFyTWVudUl0ZW1bXTtcclxuICAgIHVzZXJMb2dnZWRJbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBjc3NVcmwkOiBPYnNlcnZhYmxlPFNhZmVSZXNvdXJjZVVybCB8IG51bGw+O1xyXG4gICAgY3NzVmFyaWFibGVVcmwkOiBPYnNlcnZhYmxlPFNhZmVSZXNvdXJjZVVybCB8IG51bGw+O1xyXG4gICAgY3NzQ3VzdG9tVXJsJDogT2JzZXJ2YWJsZTxTYWZlUmVzb3VyY2VVcmwgfCBudWxsPjtcclxuICAgIGN1bHR1cmVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gICAgbm90aWZpY2F0aW9uc0NvdW50JDogT2JzZXJ2YWJsZTx7IHVucmVhZDogbnVtYmVyOyBhbGw6IG51bWJlciB9PjtcclxuICAgIG5vdGlmaWNhdGlvbnMkOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbkl0ZW1bXT47XHJcbiAgICBub3RpZmljYXRpb25Mb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIG5vdGlmY2F0aW9uTG9hZGVkID0gZmFsc2U7XHJcbiAgICBub3RpZmlhdGlvbkNvdW50TG9hZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIF92aWV3ZWROb3RpZmljYXRpb25zJCA9IG5ldyBTdWJqZWN0PE5vdGlmaWNhdGlvbkl0ZW0+KCk7XHJcbiAgICBfdmlld2VkTm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uSXRlbVtdID0gW107XHJcbiAgICBib2R5Q2xpY2sgPSAnOyQoXCJib2R5XCIpLmNsaWNrKCknO1xyXG4gICAgaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xyXG4gICAgaXNEZXNrdG9wID0gZ2V0RGV2aWNlSXNEZXNrdG9wKCk7XHJcbiAgICBpc1RhYmxldCA9IGdldERldmljZUlzVGFibGV0KCk7XHJcbiAgICBsb2dpblJvdXRlckxpbmskOiBPYnNlcnZhYmxlPHN0cmluZz47XHJcbiAgICBpc1NlcnZpY2VEZXNrID0gZmFsc2U7XHJcbiAgICBpc09wZW5RdWlja0FjY2VzcyA9IGZhbHNlO1xyXG4gICAgdXNlclByb2ZpbGVJbWFnZVVybCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD47XHJcbiAgICBnZXQgcmVwSWRQcm9maWxlSW1hZ2UoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaGVsbGJhckRhdGE/LlByb2ZpbGVJbWFnZVJlcG9ydD8uSWQ7XHJcbiAgICB9XHJcbiAgICBnZXQgbm90aWZpY2F0aW9uUmVwb3J0KCk6IE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNoZWxsYmFyRGF0YT8uTm90aWZpY2F0aW9uUmVwb3J0O1xyXG4gICAgfVxyXG4gICAgZ2V0IHN1YnRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNoZWxsYmFyRGF0YSkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUgPT09ICdzJyAmJiB0aGlzLnNoZWxsYmFyRGF0YS5Nb2JpbGVTdWJ0aXRsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaGVsbGJhckRhdGEuTW9iaWxlU3VidGl0bGVcclxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5zaGVsbGJhckRhdGEuTW9iaWxlU3VidGl0bGV9ICR7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5zaGVsbGJhckRhdGE/LmNhbGNTdWJ0aXRsZSA9PT0gJ3N0cmluZycgPyB0aGlzLnNoZWxsYmFyRGF0YS5jYWxjU3VidGl0bGUgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICB9YFxyXG4gICAgICAgICAgICAgICAgOiAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hlbGxiYXJEYXRhLlN1YnRpdGxlXHJcbiAgICAgICAgICAgID8gYCR7dGhpcy5zaGVsbGJhckRhdGE/LlN1YnRpdGxlfSAke1xyXG4gICAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5zaGVsbGJhckRhdGE/LmNhbGNTdWJ0aXRsZSA9PT0gJ3N0cmluZycgPyB0aGlzLnNoZWxsYmFyRGF0YS5jYWxjU3VidGl0bGUgOiAnJ1xyXG4gICAgICAgICAgICAgIH1gXHJcbiAgICAgICAgICAgIDogJyc7XHJcbiAgICB9XHJcbiAgICBnZXQgbG9nbygpOiB7IEZpbGVJZDogc3RyaW5nIH0ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNoZWxsYmFyRGF0YT8uTG9nbztcclxuICAgIH1cclxuICAgIGdldCBjc3NTdHlsZXMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaGVsbGJhckRhdGE/LkNzc1N0eWxlcztcclxuICAgIH1cclxuICAgIGdldCBhY3Rpb25zKCk6IEFycmF5PE1ldGFvYmplY3REYXRhTW9kZWw+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncz8uSGlkZVVzZXJNZW51ID8gW10gOiB0aGlzLnNoZWxsYmFyRGF0YT8uQWN0aW9uSXRlbXM/Lk1vRGF0YUxpc3QgPz8gW107XHJcbiAgICB9XHJcbiAgICBnZXQgc2lkZWJhclNldHRpbmdzKCk6IG51bGwgfCBhbnkge1xyXG4gICAgICAgIGlmICghdGhpcy5zaGVsbGJhckRhdGE/LlNpZGViYXJSZXBvcnQ/LklkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBSZWxhdGVkUmVwb3J0OiB7IElkOiB0aGlzLnNoZWxsYmFyRGF0YT8uU2lkZWJhclJlcG9ydD8uSWQsICRDYXB0aW9uOiAnJyB9LFxyXG4gICAgICAgICAgICBSb3dDbGljazogJycsXHJcbiAgICAgICAgICAgIERhdGFPbmx5OiBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBnZXQgdXNlck1lbnUoKTogeyB0ZXh0OiBzdHJpbmc7IGNhbGxiYWNrOiAoKSA9PiB2b2lkIH1bXSB7XHJcbiAgICAgICAgY29uc3QgbW9EYXRhTGlzdCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuc2hlbGxiYXJEYXRhLCAnVXNlck1lbnVJdGVtcy5Nb0RhdGFMaXN0Jyk7XHJcbiAgICAgICAgY29uc3QgaXRlbXMgPSBtb0RhdGFMaXN0ID8gWy4uLm1vRGF0YUxpc3RdIDogW107XHJcbiAgICAgICAgaWYgKCFpdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpdGVtcy5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgICAgIGMudGV4dCA9IHRoaXMuX2JiYlRyYW5zbGF0ZVBpcGUudHJhbnNmb3JtKGMudGV4dCk7XHJcbiAgICAgICAgICAgIGMuY2FsbGJhY2sgPSBuZXcgRnVuY3Rpb24oYy5Db2RlICsgdGhpcy5ib2R5Q2xpY2spO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICghdGhpcy5Jc1VzZXJBbm9ueW1vdXMgJiYgdGhpcy5Jc1VzZXJMb2dnZWRJbikge1xyXG4gICAgICAgICAgICBpdGVtcy5zcGxpY2UoMCwgMCwgeyBJZDogJy0xJywgJENhcHRpb246ICcnLCB0ZXh0OiBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLlVzZXJEaXNwbGF5TmFtZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3M/LkhpZGVVc2VyTWVudSA/IFtdIDogKGl0ZW1zIGFzIGFueSk7XHJcbiAgICB9XHJcbiAgICBnZXQgcHJvZHVjdFN3aXRjaGVyKCk6IFByb2R1Y3RTd2l0Y2hJdGVtW10ge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5zaGVsbGJhckRhdGE/LlByb2R1Y3RTd2l0Y2hJdGVtcz8uTW9EYXRhTGlzdCA/PyBbXSkgYXMgdW5rbm93biBhcyBQcm9kdWN0U3dpdGNoSXRlbVtdO1xyXG4gICAgfVxyXG4gICAgZ2V0IG11bHRpTGFuZ3VhZ2VzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNoZWxsYmFyRGF0YT8uTXVsdGlMYW5ndWFnZXM7XHJcbiAgICB9XHJcbiAgICBnZXQgcHJvZHVjdE1lbnVJdGVtcygpOiBTaGVsbGJhck1lbnVJdGVtW10ge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5zaGVsbGJhckRhdGE/LlByb2R1Y3RNZW51SXRlbXM/Lk1vRGF0YUxpc3QgPz8gW107XHJcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoYykgPT4gKGMuY2FsbGJhY2sgPSBuZXcgRnVuY3Rpb24oYy5Db2RlICsgdGhpcy5ib2R5Q2xpY2spKSk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zIGFzIHVua25vd24gYXMgU2hlbGxiYXJNZW51SXRlbVtdO1xyXG4gICAgfVxyXG4gICAgZ2V0IElzVXNlckxvZ2dlZEluKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzVXNlckxvZ2dlZEluO1xyXG4gICAgfVxyXG4gICAgZ2V0IElzVXNlckFub255bW91cygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5Jc0Fub255bW91cztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9iYmJUcmFuc2xhdGVQaXBlOiBCYmJUcmFuc2xhdGVQaXBlLFxyXG4gICAgICAgIHByaXZhdGUgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfYnJlYWRDcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3RpbGVzU2VydmljZTogVGlsZXNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KEFQUF9WRVJTSU9OKSBwdWJsaWMgYXBwVmVyc2lvbjogc3RyaW5nXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICB0aGlzLnVzZXJMb2dnZWRJbiQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnVzZXJMb2dnZWRJbiQ7XHJcbiAgICAgICAgdGhpcy5ub3RpZmlhdGlvbkNvdW50TG9hZGVkJCA9IHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZpY2F0aW9uQ291bnRMb2FkZWQkO1xyXG4gICAgICAgIHRoaXMuX3ZpZXdlZE5vdGlmaWNhdGlvbnMkXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgdGFwKChpdGVtKSA9PiB0aGlzLl92aWV3ZWROb3RpZmljYXRpb25zLnB1c2goaXRlbSkpLFxyXG4gICAgICAgICAgICAgICAgbWFwKChpdGVtKSA9PiB0aGlzLl92aWV3ZWROb3RpZmljYXRpb25zKSxcclxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgyMDAwKSxcclxuICAgICAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5UYWcpKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHRhZ3MpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdlZE5vdGlmaWNhdGlvbnMgPSBbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uuc2V0Tm90aWZpY2F0aW9uVmlld2VkKHRhZ3MpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLmlzU2VydmljZURlc2sgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzU2VydmljZURlc2s7XHJcblxyXG4gICAgICAgIHRoaXMuY3VsdHVyZXMgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkN1bHR1cmVzO1xyXG4gICAgICAgIHRoaXMuY3NzVXJsJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuY3NzVXJsJDtcclxuICAgICAgICB0aGlzLmNzc1ZhcmlhYmxlVXJsJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuY3NzVmFyaWFibGVVcmwkO1xyXG4gICAgICAgIHRoaXMuY3NzQ3VzdG9tVXJsJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuY3NzQ3VzdG9tVXJsJDtcclxuICAgICAgICB0aGlzLmxvZ2luUm91dGVyTGluayQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmxvZ2luUm91dGUkO1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc0NvdW50JCA9IHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZpY2F0aW9uQ291bnQkO1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZpY2F0aW9uQ291bnQkLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpKTtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkxvYWRpbmckID0gdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5ub3RpZmljYXRpb25Mb2FkaW5nJDtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMkID0gdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5ub3RpZmljYXRpb25zJC5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXHJcbiAgICAgICAgICAgIG1hcCgobm90aWZpY2F0aW9ucykgPT4gdGhpcy5fbWFwTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25zKSlcclxuICAgICAgICApO1xyXG4gICAgICAgIEJhcnNhQXBpLkJ3LlNldFVzZXJQb3J0YWxTZXR0aW5ncyA9ICh1c2VyUG9ydGFsU2V0dGluZ3M6IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5zZXRVc2VyUG9ydGFsU2V0dGluZ3ModXNlclBvcnRhbFNldHRpbmdzKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIEJhcnNhQXBpLkJ3LlNldFNoZWxsYmFyU3VidGl0bGUgPSAoY2FsY1N1YnRpdGxlOiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaGVsbGJhckRhdGEuY2FsY1N1YnRpdGxlID0gY2FsY1N1YnRpdGxlO1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xyXG5cclxuICAgICAgICB0aGlzLl9icmVhZENydW1iU2VydmljZS5icmVhZGNydW1icyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoYnJlYWRDcnVtYnMpID0+IHtcclxuICAgICAgICAgICAgaWYgKGJyZWFkQ3J1bWJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdE1lbnVDb250cm9sID0gYnJlYWRDcnVtYnNbYnJlYWRDcnVtYnMubGVuZ3RoIC0gMV0ubGFiZWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnVzZXJQcm9maWxlSW1hZ2VVcmwkID0gdGhpcy5fdGlsZXNTZXJ2aWNlLnVzZXJQcm9maWxlSW1hZ2VVcmwkO1xyXG4gICAgICAgIHRoaXMuX3RpbGVzU2VydmljZS5zaGVsbGJhciQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgobW8pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaGVsbGJhckRhdGEgPSBtbyBhcyBTaGVsbGJhclNldHRpbmc7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLklzVXNlckxvZ2dlZEluKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90aWxlc1NlcnZpY2UubG9hZFVzZXJQcm9maWxlSW1hZ2UodGhpcy5yZXBJZFByb2ZpbGVJbWFnZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIGZvcmtKb2luKFtvZih0aGlzLnByb2R1Y3RNZW51SXRlbXMpLCBvZihbXSldKSAvLyB0byBhcHBlbmQgdXNlciBkZWZpbmVkXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwKChbczEsIHMyXSkgPT4gWy4uLnMxLCAuLi5zMl0pXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChjKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0TWVudUl0ZW1zMSA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzPy5BbGxvd0Fub255bW91cykge1xyXG4gICAgICAgICAgICB0aGlzLl90aWxlc1NlcnZpY2UubG9hZFNoZWxsYmFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UudXNlckxvZ2dlZEluJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChsb2dnZWRJbikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWxvZ2dlZEluKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fdGlsZXNTZXJ2aWNlLmxvYWRTaGVsbGJhcigpO1xyXG4gICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLmxvYWRVbnJlYWROb3RpZmljYXRpb25Db3VudCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ3VsdHVyZUNoYW5nZShjdWx0dXJlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlQ3VsdHVyZShjdWx0dXJlKTtcclxuICAgIH1cclxuICAgIG9uU2hvd05vdGlmaWNhdGlvbihlOiB7IHRhZzogc3RyaW5nOyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgbmFtYTogc3RyaW5nIH0pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzT3Blbk5vdGlmaWNhdG9pbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuU2hvd05vdGlmaWNhdGlvblJlbGF0ZWRNbyhlKTtcclxuICAgIH1cclxuICAgIG9uTm90aWZpY2F0aW9uSXRlbVZpZXdlZCh2aWV3ZWRNbzogTm90aWZpY2F0aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3ZpZXdlZE5vdGlmaWNhdGlvbnMkLm5leHQodmlld2VkTW8pO1xyXG4gICAgfVxyXG4gICAgb25Ob3RpZmljYXRpb25BY3Rpb24oZTogeyBpdGVtOiBOb3RpZmljYXRpb25JdGVtOyBidG46IE5vdGlmaWNhdGlvbkFjdGlvbiB9KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5FeGVjdXRlTm90aWZpY2F0aW9uQWN0aW9uKGUuaXRlbS5UYWcsIGUuYnRuLlRpdGxlKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJlbW92ZU5vdGlmaWNhdGlvbnMoZTogeyBpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdOyBzaWxlbnQ6IGJvb2xlYW4gfSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UucmVtb3ZlTm90aWZpY2F0aW9uKGUuaXRlbXMpO1xyXG4gICAgfVxyXG4gICAgb25PcGVuTm90aWZpY2F0aW9uID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNPcGVuTm90aWZpY2F0b2luID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9oYW5kbGVPcGVuTm90aWZpY2F0aW9uUGFuZWwoKTtcclxuICAgIH07XHJcblxyXG4gICAgb25DdWx0dXJlQ2hhbmdlZCA9IChjdWx0dXJlOiBzdHJpbmcpOiB2b2lkID0+IHtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VDdWx0dXJlKGN1bHR1cmUpO1xyXG4gICAgfTtcclxuICAgIG9uTm90aWZpY2F0aW9uTG9hZE1vcmUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5sb2FkTW9yZSgpO1xyXG4gICAgfVxyXG4gICAgb25Ob3RpZmljYXRpb25Xb3JrZmxvd0Nob2ljZVN1Y2Nlc3MocmVzdWx0KTogdm9pZCB7fVxyXG4gICAgb25Ob3RpZmljYXRpb25Xb3JrZmxvd0Nob2ljZUZhaWxlZChlcnIpOiB2b2lkIHt9XHJcblxyXG4gICAgb25IYW5kbGVPcGVuTm90aWZpY2F0aW9uUGFuZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlT3Blbk5vdGlmaWNhdGlvblBhbmVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaGFuZGxlT3Blbk5vdGlmaWNhdGlvblBhbmVsKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm5vdGlmY2F0aW9uTG9hZGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ub3RpZmNhdGlvbkxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5sb2FkTm90aWZpY2F0aW9ucygpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfbWFwTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25zKTogTm90aWZpY2F0aW9uSXRlbVtdIHtcclxuICAgICAgICByZXR1cm4gbm90aWZpY2F0aW9ucy5tYXAoKG5vdGlmaWNhdGlvbikgPT4gKHtcclxuICAgICAgICAgICAgLi4ubm90aWZpY2F0aW9uLFxyXG4gICAgICAgICAgICBjb250ZW50U2FmZUh0bWw6IG5vdGlmaWNhdGlvbi5Db250ZW50XHJcbiAgICAgICAgICAgICAgICA/IHRoaXMuX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChub3RpZmljYXRpb24uQ29udGVudClcclxuICAgICAgICAgICAgICAgIDogJydcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9jaGFuZ2VDdWx0dXJlKGN1bHR1cmU6IHN0cmluZyAvKiBjdWx0dXJlIHNhbXBsZSA6RW5nbGlzaCAqLyk6IHZvaWQge1xyXG4gICAgICAgIEJhcnNhQXBpLkJ3LlNldEN1bHR1cmVCeURpc3BsYXlOYW1lKGN1bHR1cmUpO1xyXG4gICAgICAgIEJhcnNhQXBpLkJ3Lk5hdmlnYXRlVG8oJy8nKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKHVzZXJMb2dnZWRJbiQgfCBhc3luYzsgYXMgdXNlcmxvZ2dlbmQpIHsgQGlmIChub3RpZmlhdGlvbkNvdW50TG9hZGVkJCB8IGFzeW5jOyBhcyBub3RpZmlhdGlvbkNvdW50TG9hZGVkKSB7IEBpZlxyXG4oZGV2aWNlU2l6ZSQgfCBhc3luYzsgYXMgZGV2aWNlU2l6ZSkgeyBAaWYgKHNoZWxsYmFyRGF0YSkge1xyXG48YnQtYmFyc2Etc2hlbGxiYXJcclxuICAgIFtjbGFzcy5zZXJ2aWNlLWRlc2tdPVwiaXNTZXJ2aWNlRGVza1wiXHJcbiAgICBbbm90aWZpY2F0aW9uUmVwb3J0XT1cIm5vdGlmaWNhdGlvblJlcG9ydFwiXHJcbiAgICBbY3NzVXJsXT1cImNzc1VybCQgfCBhc3luY1wiXHJcbiAgICBbY3NzVmFyaWFibGVVcmxdPVwiY3NzVmFyaWFibGVVcmwkIHwgYXN5bmNcIlxyXG4gICAgW3VzZXJQcm9maWxlSW1hZ2VVcmxdPVwidXNlclByb2ZpbGVJbWFnZVVybCQgfCBhc3luY1wiXHJcbiAgICBbY3NzQ3VzdG9tVXJsXT1cImNzc0N1c3RvbVVybCQgfCBhc3luY1wiXHJcbiAgICBbdXNlckxvZ2dlZEluXT1cInRydWVcIlxyXG4gICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICBbc2hlbGxiYXJEYXRhXT1cInNoZWxsYmFyRGF0YVwiXHJcbiAgICBbY3NzU3R5bGVdPVwiY3NzU3R5bGVzXCJcclxuICAgIFtwcm9kdWN0TWVudUNvbnRyb2xdPVwicHJvZHVjdE1lbnVDb250cm9sXCJcclxuICAgIFtzZXR0aW5nc109XCJzZXR0aW5nc1wiXHJcbiAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxyXG4gICAgW2lzVGFibGV0XT1cImlzVGFibGV0XCJcclxuICAgIFtpc0Rlc2t0b3BdPVwiaXNEZXNrdG9wXCJcclxuICAgIFttdWx0aUxhbmd1YWdlc109XCJtdWx0aUxhbmd1YWdlc1wiXHJcbiAgICBbbm90aWZpY2F0aW9uQ291bnRdPVwiKG5vdGlmaWNhdGlvbnNDb3VudCQgfCBhc3luYykhIVwiXHJcbiAgICBbY3VsdHVyZXNdPVwiY3VsdHVyZXNcIlxyXG4gICAgW2xvZ29dPVwibG9nb1wiXHJcbiAgICBbYWN0aW9uc109XCJhY3Rpb25zXCJcclxuICAgIFt1c2VyTWVudV09XCJ1c2VyTWVudVwiXHJcbiAgICBbcHJvZHVjdFN3aXRjaGVyXT1cInByb2R1Y3RTd2l0Y2hlclwiXHJcbiAgICBbc3VidGl0bGVdPVwic3VidGl0bGVcIlxyXG4gICAgW2lzU2VydmljZURlc2tdPVwiaXNTZXJ2aWNlRGVza1wiXHJcbiAgICBbc2lkZU1lbnVUZW1wbGF0ZV09XCJRdWlja0FjY2Vzc1RlbXBsYXRlXCJcclxuICAgIFtwcm9kdWN0TWVudUl0ZW1zMV09XCJwcm9kdWN0TWVudUl0ZW1zMVwiXHJcbiAgICBbaXNPcGVuUXVpY2tBY2Nlc3NdPVwiaXNPcGVuUXVpY2tBY2Nlc3NcIlxyXG4gICAgKGlzT3BlblF1aWNrQWNjZXNzQ2hhbmdlZCk9XCJpc09wZW5RdWlja0FjY2VzcyA9ICRldmVudFwiXHJcbiAgICAoY3VsdHVyZUNoYW5nZWQpPVwib25DdWx0dXJlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgIChub3RpZmlhdGlvbkFjdGlvbkNsaWNrKT1cIm9uTm90aWZpY2F0aW9uQWN0aW9uKCRldmVudClcIlxyXG4gICAgKG9wZW5Ob3RpZmljYXRpb25QYW5lbCk9XCJvbkhhbmRsZU9wZW5Ob3RpZmljYXRpb25QYW5lbCgpXCJcclxuPlxyXG48L2J0LWJhcnNhLXNoZWxsYmFyPlxyXG59IH0gfSB9IEBlbHNlIHsgQGlmIChub3RpZmljYXRpb25zQ291bnQkIHwgYXN5bmM7IGFzIG5vdGlmaWNhdGlvbkNvdW50KSB7XHJcbjxidC1iYXJzYS1zaGVsbGJhclxyXG4gICAgW2NsYXNzLnNlcnZpY2UtZGVza109XCJpc1NlcnZpY2VEZXNrXCJcclxuICAgIFtub3RpZmljYXRpb25SZXBvcnRdPVwibm90aWZpY2F0aW9uUmVwb3J0XCJcclxuICAgIFtjc3NVcmxdPVwiJydcIlxyXG4gICAgW2Nzc1N0eWxlXT1cImNzc1N0eWxlc1wiXHJcbiAgICBbY3NzVmFyaWFibGVVcmxdPVwiJydcIlxyXG4gICAgW2Nzc0N1c3RvbVVyXT1cIicnXCJcclxuICAgIFt1c2VyTG9nZ2VkSW5dPVwiZmFsc2VcIlxyXG4gICAgW211bHRpTGFuZ3VhZ2VzXT1cIm11bHRpTGFuZ3VhZ2VzXCJcclxuICAgIFt1c2VyTWVudV09XCJ1c2VyTWVudVwiXHJcbiAgICBbbG9nb109XCJsb2dvXCJcclxuICAgIFtwcm9kdWN0TWVudUl0ZW1zMV09XCJwcm9kdWN0TWVudUl0ZW1zMVwiXHJcbiAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXHJcbiAgICBbc2hlbGxiYXJEYXRhXT1cInNoZWxsYmFyRGF0YVwiXHJcbiAgICBbY3VsdHVyZXNdPVwiY3VsdHVyZXNcIlxyXG4gICAgW2xvZ29dPVwibG9nb1wiXHJcbiAgICBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIlxyXG4gICAgW2lzVGFibGV0XT1cImlzVGFibGV0XCJcclxuICAgIFtpc0Rlc2t0b3BdPVwiaXNEZXNrdG9wXCJcclxuICAgIFtpc1NlcnZpY2VEZXNrXT1cImlzU2VydmljZURlc2tcIlxyXG4gICAgW2FjdGlvbnNdPVwiYWN0aW9uc1wiXHJcbiAgICBbdXNlck1lbnVdPVwidXNlck1lbnVcIlxyXG4gICAgW3Byb2R1Y3RNZW51Q29udHJvbF09XCJwcm9kdWN0TWVudUNvbnRyb2xcIlxyXG4gICAgW3Byb2R1Y3RTd2l0Y2hlcl09XCJwcm9kdWN0U3dpdGNoZXJcIlxyXG4gICAgW3N1YnRpdGxlXT1cInN1YnRpdGxlXCJcclxuICAgIFtzZXR0aW5nc109XCJzZXR0aW5nc1wiXHJcbiAgICBbbm90aWZpY2F0aW9uQ291bnRdPVwieyB1bnJlYWQ6IDAsIGFsbDogMCB9XCJcclxuICAgIFtoaWRlU2hlbGxiYXJBY3Rpb25zXT1cInRydWVcIlxyXG4gICAgW3Nob3dFeHRyYUJ1dHRvbl09XCJ0cnVlXCJcclxuICAgIFtjdWx0dXJlc109XCJjdWx0dXJlc1wiXHJcbiAgICBbcHJvZHVjdE1lbnVJdGVtczFdPVwicHJvZHVjdE1lbnVJdGVtczFcIlxyXG4gICAgKGN1bHR1cmVDaGFuZ2VkKT1cIm9uQ3VsdHVyZUNoYW5nZWQoJGV2ZW50KVwiXHJcbj5cclxuICAgIEBmb3IoYnRuIG9mIHVzZXJNZW51O3RyYWNrIGJ0bil7XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJleHRyYV9idG5cIlxyXG4gICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgIFtsYWJlbF09XCJidG4udGV4dFwiXHJcbiAgICAgICAgW2dseXBoXT1cImJ0bi50ZXh0ID09PSAoJ0xvZ2luJyB8IGJiYlRyYW5zbGF0ZSkgPyAncGVyc29uLXBsYWNlaG9sZGVyJyA6IG51bGxcIlxyXG4gICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJidG4uY2FsbGJhY2soKVwiXHJcbiAgICA+PC9idXR0b24+XHJcbiAgICB9XHJcbjwvYnQtYmFyc2Etc2hlbGxiYXI+XHJcbn0gfVxyXG48bmctdGVtcGxhdGUgI1F1aWNrQWNjZXNzVGVtcGxhdGU+XHJcbiAgICA8Ym5yYy1yZXBvcnQtY29udGFpbmVyICpuZ0lmPVwic2lkZWJhclNldHRpbmdzXCIgW3NldHRpbmdzXT1cInNpZGViYXJTZXR0aW5nc1wiPiA8L2JucmMtcmVwb3J0LWNvbnRhaW5lcj5cclxuICAgIDwhLS0gPGJ0LXBvcG92ZXItYXBwLWZpbmRlciAoY2xvc2VNZW51KT1cImlzT3BlblF1aWNrQWNjZXNzID0gZmFsc2VcIj48L2J0LXBvcG92ZXItYXBwLWZpbmRlcj4gLS0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { BaseBtTileComponent } from '../models';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@fundamental-ngx/core/icon";
|
|
5
|
+
import * as i2 from "@fundamental-ngx/core/tile";
|
|
6
|
+
import * as i3 from "../tile/tile.component";
|
|
7
|
+
import * as i4 from "barsa-novin-ray-core";
|
|
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.pictureIcon = this.settings.PictureIcon;
|
|
15
|
+
if (this.icon && this.icon.toLowerCase().startsWith('ih')) {
|
|
16
|
+
this.iconCalc = this.icon;
|
|
17
|
+
}
|
|
18
|
+
this.iconColor = this.settings.IconColor;
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpleTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 [setToStorage]=\"setToStorage\"\r\n [listMode]=\"listMode\"\r\n [navigateBackOnClick]=\"navigateBackOnClick\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [backColor]=\"backColor\"\r\n [deviceSize]=\"deviceSize\"\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 [class.picture-icon]=\"pictureIcon || iconCalc\">\r\n @if(pictureIcon || iconCalc){\r\n <span\r\n class=\"tile-picture-icon\"\r\n fd-tile-profile-img\r\n [backgroundImage]=\"iconCalc || (pictureIcon.FileId | picFieldSrc: 'GetPictureFromFileInfo':null)\"\r\n ></span>\r\n } @else if (icon) {\r\n <div class=\"fd-numeric-content__launch-icon-container\" style=\"justify-content: center\">\r\n <fd-icon\r\n class=\"fd-numeric-content__launch-icon\"\r\n fd-numeric-content-launch-icon\r\n [glyph]=\"icon\"\r\n [font]=\"icon | sapFont\"\r\n [style.color]=\"iconColor\"\r\n ></fd-icon>\r\n </div>\r\n }\r\n </div>\r\n</bt-tile>\r\n", styles: ["fd-icon{font-size:2rem}.tile-picture-icon{background-size:contain;background-position:center;background-repeat:no-repeat;max-width:5rem;width:100%;max-height:5rem;height:100%}\n"], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: i2.TileContentDirective, selector: "[fdTileContent], [fd-tile-content]", inputs: ["twoColumn"] }, { kind: "directive", type: i2.TileProfileImgDirective, selector: "[fdTileProfileImg], [fd-tile-profile-img]", inputs: ["id", "ariaLabel", "ariaLabelledby", "backgroundImage"] }, { kind: "directive", type: i2.NumericContentLaunchIconDirective, selector: "[fd-numeric-content-launch-icon]", inputs: ["class", "glyph", "glyphFont"] }, { kind: "component", type: i3.TileComponent, selector: "bt-tile", inputs: ["type", "footerTemplate", "footer", "disableClick", "title", "icon", "subtitle", "isDouble", "edit", "backColor", "dynamicCommand", "hideHeader", "setToStorage", "listMode", "navigateBackOnClick"] }, { kind: "pipe", type: i4.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i5.SapFontPipe, name: "sapFont" }, { kind: "pipe", type: i6.TilePropPipe, name: "tileProp" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpleTileComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'bt-simple-tile', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<bt-tile\r\n [data]=\"data\"\r\n [type]=\"'launch'\"\r\n [edit]=\"edit\"\r\n [setToStorage]=\"setToStorage\"\r\n [listMode]=\"listMode\"\r\n [navigateBackOnClick]=\"navigateBackOnClick\"\r\n [title]=\"data | tileProp: 'Title':parameters\"\r\n [backColor]=\"backColor\"\r\n [deviceSize]=\"deviceSize\"\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 [class.picture-icon]=\"pictureIcon || iconCalc\">\r\n @if(pictureIcon || iconCalc){\r\n <span\r\n class=\"tile-picture-icon\"\r\n fd-tile-profile-img\r\n [backgroundImage]=\"iconCalc || (pictureIcon.FileId | picFieldSrc: 'GetPictureFromFileInfo':null)\"\r\n ></span>\r\n } @else if (icon) {\r\n <div class=\"fd-numeric-content__launch-icon-container\" style=\"justify-content: center\">\r\n <fd-icon\r\n class=\"fd-numeric-content__launch-icon\"\r\n fd-numeric-content-launch-icon\r\n [glyph]=\"icon\"\r\n [font]=\"icon | sapFont\"\r\n [style.color]=\"iconColor\"\r\n ></fd-icon>\r\n </div>\r\n }\r\n </div>\r\n</bt-tile>\r\n", styles: ["fd-icon{font-size:2rem}.tile-picture-icon{background-size:contain;background-position:center;background-repeat:no-repeat;max-width:5rem;width:100%;max-height:5rem;height:100%}\n"] }]
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtdGlsZXMvc3JjL2xpYi9zaW1wbGUtdGlsZS9zaW1wbGUtdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3NpbXBsZS10aWxlL3NpbXBsZS10aWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFTakUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG1CQUFvQztJQUt6RSxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDN0MsQ0FBQzsrR0FiUSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw2RUNYaEMsbWdEQXNDQTs7NEZEM0JhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQnRUaWxlQ29tcG9uZW50LCBCYXNlVGlsZVNldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGaWxlUGljdHVyZUluZm9Nb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2J0LXNpbXBsZS10aWxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaW1wbGUtdGlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zaW1wbGUtdGlsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2ltcGxlVGlsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VCdFRpbGVDb21wb25lbnQ8QmFzZVRpbGVTZXR0aW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbiAgICBpY29uQ2FsYzogc3RyaW5nO1xyXG4gICAgaWNvbkNvbG9yOiBzdHJpbmc7XHJcbiAgICBwaWN0dXJlSWNvbjogRmlsZVBpY3R1cmVJbmZvTW9kZWw7XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuaWNvbiA9IHRoaXMuc2V0dGluZ3MuSWNvbjtcclxuICAgICAgICB0aGlzLnBpY3R1cmVJY29uID0gdGhpcy5zZXR0aW5ncy5QaWN0dXJlSWNvbjtcclxuICAgICAgICBpZiAodGhpcy5pY29uICYmIHRoaXMuaWNvbi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJ2loJykpIHtcclxuICAgICAgICAgICAgdGhpcy5pY29uQ2FsYyA9IHRoaXMuaWNvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pY29uQ29sb3IgPSB0aGlzLnNldHRpbmdzLkljb25Db2xvcjtcclxuICAgIH1cclxufVxyXG4iLCI8YnQtdGlsZVxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbdHlwZV09XCInbGF1bmNoJ1wiXHJcbiAgICBbZWRpdF09XCJlZGl0XCJcclxuICAgIFtzZXRUb1N0b3JhZ2VdPVwic2V0VG9TdG9yYWdlXCJcclxuICAgIFtsaXN0TW9kZV09XCJsaXN0TW9kZVwiXHJcbiAgICBbbmF2aWdhdGVCYWNrT25DbGlja109XCJuYXZpZ2F0ZUJhY2tPbkNsaWNrXCJcclxuICAgIFt0aXRsZV09XCJkYXRhIHwgdGlsZVByb3A6ICdUaXRsZSc6cGFyYW1ldGVyc1wiXHJcbiAgICBbYmFja0NvbG9yXT1cImJhY2tDb2xvclwiXHJcbiAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgIFtzdWJ0aXRsZV09XCJkYXRhIHwgdGlsZVByb3A6ICdTdWJ0aXRsZSc6cGFyYW1ldGVyc1wiXHJcbiAgICBbZHluYW1pY0NvbW1hbmRdPVwiZGF0YSB8IHRpbGVQcm9wOiAnRHluYW1pY0NvbW1hbmQnOnBhcmFtZXRlcnNcIlxyXG4gICAgW2lzRG91YmxlXT1cImRhdGEgfCB0aWxlUHJvcDogJ0lzRG91YmxlJzpwYXJhbWV0ZXJzXCJcclxuICAgIFtmb290ZXJdPVwiZGF0YSB8IHRpbGVQcm9wOiAnRm9vdGVyJzpwYXJhbWV0ZXJzXCJcclxuICAgIChoaWRlQ2xpY2spPVwiaGlkZUNsaWNrLmVtaXQoKVwiXHJcbiAgICAocmVuYW1lQ2xpY2spPVwicmVuYW1lQ2xpY2suZW1pdCgpXCJcclxuICAgIChjbGljayk9XCJvblRpbGVDbGljaygpXCJcclxuPlxyXG4gICAgPGRpdiBmZC10aWxlLWNvbnRlbnQgW2NsYXNzLnBpY3R1cmUtaWNvbl09XCJwaWN0dXJlSWNvbiB8fCBpY29uQ2FsY1wiPlxyXG4gICAgICAgIEBpZihwaWN0dXJlSWNvbiB8fCBpY29uQ2FsYyl7XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJ0aWxlLXBpY3R1cmUtaWNvblwiXHJcbiAgICAgICAgICAgIGZkLXRpbGUtcHJvZmlsZS1pbWdcclxuICAgICAgICAgICAgW2JhY2tncm91bmRJbWFnZV09XCJpY29uQ2FsYyB8fCAocGljdHVyZUljb24uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdHZXRQaWN0dXJlRnJvbUZpbGVJbmZvJzpudWxsKVwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICB9IEBlbHNlIGlmIChpY29uKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkLW51bWVyaWMtY29udGVudF9fbGF1bmNoLWljb24tY29udGFpbmVyXCIgc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZmQtaWNvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1udW1lcmljLWNvbnRlbnRfX2xhdW5jaC1pY29uXCJcclxuICAgICAgICAgICAgICAgIGZkLW51bWVyaWMtY29udGVudC1sYXVuY2gtaWNvblxyXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cImljb25cIlxyXG4gICAgICAgICAgICAgICAgW2ZvbnRdPVwiaWNvbiB8IHNhcEZvbnRcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImljb25Db2xvclwiXHJcbiAgICAgICAgICAgID48L2ZkLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbjwvYnQtdGlsZT5cclxuIl19
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostListener, inject, Input } from '@angular/core';
|
|
2
|
+
import { BarsaApi, PreventDefaulEvent, TilePropsComponent, LocalStorageService } from 'barsa-novin-ray-core';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@fundamental-ngx/core/button";
|
|
7
|
+
import * as i3 from "@fundamental-ngx/core/list";
|
|
8
|
+
import * as i4 from "@fundamental-ngx/core/menu";
|
|
9
|
+
import * as i5 from "@fundamental-ngx/core/tile";
|
|
10
|
+
import * as i6 from "barsa-sap-ui";
|
|
11
|
+
import * as i7 from "../footer-tile/footer-tile.component";
|
|
12
|
+
import * as i8 from "../tile-style.directive";
|
|
13
|
+
import * as i9 from "barsa-novin-ray-core";
|
|
14
|
+
export class TileComponent extends TilePropsComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this._localStorage = inject(LocalStorageService);
|
|
18
|
+
this._router = inject(Router);
|
|
19
|
+
this.runningCommand = false;
|
|
20
|
+
}
|
|
21
|
+
onClick(ev) {
|
|
22
|
+
if (this.edit || this.disableClick || this.runningCommand || !this.dynamicCommand) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
PreventDefaulEvent(ev);
|
|
26
|
+
if (this.setToStorage) {
|
|
27
|
+
this._localStorage.setItem('ActiveTile', this.title);
|
|
28
|
+
}
|
|
29
|
+
const command = this.dynamicCommand;
|
|
30
|
+
const e = { command, DynamicSetting: null };
|
|
31
|
+
this.runningCommand = true;
|
|
32
|
+
if (this.navigateBackOnClick) {
|
|
33
|
+
this._router.navigate(['../']);
|
|
34
|
+
setTimeout(() => {
|
|
35
|
+
this.executeCommand(command, e);
|
|
36
|
+
});
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return this.executeCommand(command, e);
|
|
40
|
+
}
|
|
41
|
+
executeCommand(command, e) {
|
|
42
|
+
this._cdr.detectChanges();
|
|
43
|
+
BarsaApi.Common.CustomCodeManager.RunDynamicCommand(command.Id, e, (res) => {
|
|
44
|
+
this.runningCommand = false;
|
|
45
|
+
if (res && typeof res.Detail !== 'undefined') {
|
|
46
|
+
BarsaApi.Bw.Msg.Error(res.message || res.Text);
|
|
47
|
+
}
|
|
48
|
+
this._cdr.detectChanges();
|
|
49
|
+
});
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
ngOnInit() {
|
|
53
|
+
super.ngOnInit();
|
|
54
|
+
}
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TileComponent, selector: "bt-tile", inputs: { type: "type", footerTemplate: "footerTemplate", footer: "footer", disableClick: "disableClick", title: "title", icon: "icon", subtitle: "subtitle", isDouble: "isDouble", edit: "edit", backColor: "backColor", dynamicCommand: "dynamicCommand", hideHeader: "hideHeader", setToStorage: "setToStorage", listMode: "listMode", navigateBackOnClick: "navigateBackOnClick" }, host: { listeners: { "click": "onClick($event)" } }, usesInheritance: true, ngImport: i0, template: "@if(!listMode) {\r\n<fd-tile [type]=\"type\" [double]=\"isDouble\" [action]=\"edit\" tileStyle [backColor]=\"backColor\" [size]=\"'s'\">\r\n @if (edit && !data.Locked) {\r\n <button fd-button fd-tile-action-close fdType=\"transparent\" (click)=\"hideClick.emit()\"></button>\r\n } @if (edit && !data.Locked) {\r\n <button fd-button fd-tile-action-indicator fdType=\"transparent\" [fdMenuTrigger]=\"menu\"></button>\r\n } @if(!hideHeader){\r\n <div fd-tile-header>\r\n <h1 fd-tile-title>\r\n {{ title | bbbTranslate }}\r\n </h1>\r\n <h2 fd-tile-subtitle>\r\n {{ subtitle | bbbTranslate }}\r\n </h2>\r\n </div>\r\n }\r\n <ng-content></ng-content>\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate ? footerTemplate : defaultFooter\"></ng-container>\r\n</fd-tile>\r\n}@else{\r\n<span fd-list-title> {{ title | bbbTranslate }} </span>\r\n<span fd-list-secondary> {{ subtitle | bbbTranslate }} </span>\r\n@if(icon){ <i fd-list-icon [glyph]=\"icon\"></i>} }\r\n<ng-template #defaultFooter>\r\n @if (footer) {\r\n <div\r\n fd-tile-footer\r\n bt-footer-tile\r\n [secondSection]=\"footer.SecondSection\"\r\n [twoColumn]=\"footer.twoColumn\"\r\n [firstSection]=\"footer.FirstSection\"\r\n ></div>\r\n\r\n }\r\n</ng-template>\r\n<fd-menu #menu>\r\n <li fd-menu-item>\r\n <a (click)=\"menu.close(); renameClick.emit()\" fd-menu-interactive>\r\n <span fd-menu-title>{{ 'Rename' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n</fd-menu>\r\n@if (runningCommand) {\r\n<bsu-mask></bsu-mask>\r\n}\r\n", styles: [":host,fd-tile{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i3.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i3.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i3.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "component", type: i4.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i4.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i4.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i4.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "directive", type: i4.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i5.TileComponent, selector: "fd-tile", inputs: ["class", "size", "double", "type", "action", "clickable"], outputs: ["tileClick"] }, { kind: "directive", type: i5.TileHeaderDirective, selector: "[fdTileHeader], [fd-tile-header]", inputs: ["twoColumn"] }, { kind: "directive", type: i5.TileFooterDirective, selector: "[fdTileFooter], [fd-tile-footer]", inputs: ["twoColumn"] }, { kind: "directive", type: i5.TileTitleDirective, selector: "[fdTileTitle], [fd-tile-title]" }, { kind: "directive", type: i5.TileSubtitleDirective, selector: "[fdTileTitle], [fd-tile-subtitle]" }, { kind: "directive", type: i5.TileActionCloseDirective, selector: "[fdTileActionClose], [fd-tile-action-close]", inputs: ["class"] }, { kind: "directive", type: i5.TileActionIndicatorDirective, selector: "[fdTileActionIndicator], [fd-tile-action-indicator]", inputs: ["class"] }, { kind: "component", type: i6.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i7.FooterTileComponent, selector: "bt-footer-tile,div[bt-footer-tile]", inputs: ["firstSection", "secondSection", "twoColumn"] }, { kind: "directive", type: i8.TileStyleDirective, selector: "[tileStyle]", inputs: ["backColor"] }, { kind: "pipe", type: i9.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{ selector: 'bt-tile', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if(!listMode) {\r\n<fd-tile [type]=\"type\" [double]=\"isDouble\" [action]=\"edit\" tileStyle [backColor]=\"backColor\" [size]=\"'s'\">\r\n @if (edit && !data.Locked) {\r\n <button fd-button fd-tile-action-close fdType=\"transparent\" (click)=\"hideClick.emit()\"></button>\r\n } @if (edit && !data.Locked) {\r\n <button fd-button fd-tile-action-indicator fdType=\"transparent\" [fdMenuTrigger]=\"menu\"></button>\r\n } @if(!hideHeader){\r\n <div fd-tile-header>\r\n <h1 fd-tile-title>\r\n {{ title | bbbTranslate }}\r\n </h1>\r\n <h2 fd-tile-subtitle>\r\n {{ subtitle | bbbTranslate }}\r\n </h2>\r\n </div>\r\n }\r\n <ng-content></ng-content>\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate ? footerTemplate : defaultFooter\"></ng-container>\r\n</fd-tile>\r\n}@else{\r\n<span fd-list-title> {{ title | bbbTranslate }} </span>\r\n<span fd-list-secondary> {{ subtitle | bbbTranslate }} </span>\r\n@if(icon){ <i fd-list-icon [glyph]=\"icon\"></i>} }\r\n<ng-template #defaultFooter>\r\n @if (footer) {\r\n <div\r\n fd-tile-footer\r\n bt-footer-tile\r\n [secondSection]=\"footer.SecondSection\"\r\n [twoColumn]=\"footer.twoColumn\"\r\n [firstSection]=\"footer.FirstSection\"\r\n ></div>\r\n\r\n }\r\n</ng-template>\r\n<fd-menu #menu>\r\n <li fd-menu-item>\r\n <a (click)=\"menu.close(); renameClick.emit()\" fd-menu-interactive>\r\n <span fd-menu-title>{{ 'Rename' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n</fd-menu>\r\n@if (runningCommand) {\r\n<bsu-mask></bsu-mask>\r\n}\r\n", styles: [":host,fd-tile{display:block}\n"] }]
|
|
61
|
+
}], propDecorators: { type: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], footerTemplate: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], footer: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], disableClick: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], title: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], icon: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], subtitle: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], isDouble: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], edit: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], backColor: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], dynamicCommand: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], hideHeader: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], setToStorage: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], listMode: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], navigateBackOnClick: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], onClick: [{
|
|
92
|
+
type: HostListener,
|
|
93
|
+
args: ['click', ['$event']]
|
|
94
|
+
}] } });
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBU3pDLE1BQU0sT0FBTyxhQUFjLFNBQVEsa0JBQWtCO0lBUHJEOztRQXVCSSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0FzQzFCO0lBcENHLE9BQU8sQ0FBQyxFQUFFO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoRixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0Qsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNwQyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDTyxjQUFjLENBQUMsT0FBWSxFQUFFLENBQXlDO1FBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLElBQUksR0FBRyxJQUFJLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDM0MsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQzsrR0F2RFEsYUFBYTttR0FBYixhQUFhLG1mQ1oxQiw2bURBNkNBOzs0RkRqQ2EsYUFBYTtrQkFQekIsU0FBUzsrQkFDSSxTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFHUixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFLTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBpbmplY3QsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXJzYUFwaSwgUHJldmVudERlZmF1bEV2ZW50LCBUaWxlUHJvcHNDb21wb25lbnQsIExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IEFwcFRpbGVGb290ZXIgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2J0LXRpbGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGlsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlsZUNvbXBvbmVudCBleHRlbmRzIFRpbGVQcm9wc0NvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSB0eXBlOiAnZmVlZCcgfCAnbGF1bmNoJyB8ICdrcGknO1xyXG4gICAgQElucHV0KCkgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBASW5wdXQoKSBmb290ZXI6IEFwcFRpbGVGb290ZXI7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlQ2xpY2s6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGlzRG91YmxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZWRpdDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGJhY2tDb2xvcjogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZHluYW1pY0NvbW1hbmQ6IGFueTtcclxuICAgIEBJbnB1dCgpIGhpZGVIZWFkZXI6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzZXRUb1N0b3JhZ2U6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBsaXN0TW9kZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIG5hdmlnYXRlQmFja09uQ2xpY2s6IGJvb2xlYW47XHJcbiAgICBfbG9jYWxTdG9yYWdlID0gaW5qZWN0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xyXG4gICAgX3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gICAgcnVubmluZ0NvbW1hbmQgPSBmYWxzZTtcclxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuICAgIG9uQ2xpY2soZXYpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5lZGl0IHx8IHRoaXMuZGlzYWJsZUNsaWNrIHx8IHRoaXMucnVubmluZ0NvbW1hbmQgfHwgIXRoaXMuZHluYW1pY0NvbW1hbmQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZXYpO1xyXG4gICAgICAgIGlmICh0aGlzLnNldFRvU3RvcmFnZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnQWN0aXZlVGlsZScsIHRoaXMudGl0bGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjb21tYW5kID0gdGhpcy5keW5hbWljQ29tbWFuZDtcclxuICAgICAgICBjb25zdCBlID0geyBjb21tYW5kLCBEeW5hbWljU2V0dGluZzogbnVsbCB9O1xyXG4gICAgICAgIHRoaXMucnVubmluZ0NvbW1hbmQgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRlQmFja09uQ2xpY2spIHtcclxuICAgICAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnLi4vJ10pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZCwgZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQsIGUpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBleGVjdXRlQ29tbWFuZChjb21tYW5kOiBhbnksIGU6IHsgY29tbWFuZDogYW55OyBEeW5hbWljU2V0dGluZzogbnVsbCB9KTogYm9vbGVhbiB7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBCYXJzYUFwaS5Db21tb24uQ3VzdG9tQ29kZU1hbmFnZXIuUnVuRHluYW1pY0NvbW1hbmQoY29tbWFuZC5JZCwgZSwgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bm5pbmdDb21tYW5kID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChyZXMgJiYgdHlwZW9mIHJlcy5EZXRhaWwgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBCYXJzYUFwaS5Cdy5Nc2cuRXJyb3IocmVzLm1lc3NhZ2UgfHwgcmVzLlRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiQGlmKCFsaXN0TW9kZSkge1xyXG48ZmQtdGlsZSBbdHlwZV09XCJ0eXBlXCIgW2RvdWJsZV09XCJpc0RvdWJsZVwiIFthY3Rpb25dPVwiZWRpdFwiIHRpbGVTdHlsZSBbYmFja0NvbG9yXT1cImJhY2tDb2xvclwiIFtzaXplXT1cIidzJ1wiPlxyXG4gICAgQGlmIChlZGl0ICYmICFkYXRhLkxvY2tlZCkge1xyXG4gICAgPGJ1dHRvbiBmZC1idXR0b24gZmQtdGlsZS1hY3Rpb24tY2xvc2UgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiAoY2xpY2spPVwiaGlkZUNsaWNrLmVtaXQoKVwiPjwvYnV0dG9uPlxyXG4gICAgfSBAaWYgKGVkaXQgJiYgIWRhdGEuTG9ja2VkKSB7XHJcbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBmZC10aWxlLWFjdGlvbi1pbmRpY2F0b3IgZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBbZmRNZW51VHJpZ2dlcl09XCJtZW51XCI+PC9idXR0b24+XHJcbiAgICB9IEBpZighaGlkZUhlYWRlcil7XHJcbiAgICA8ZGl2IGZkLXRpbGUtaGVhZGVyPlxyXG4gICAgICAgIDxoMSBmZC10aWxlLXRpdGxlPlxyXG4gICAgICAgICAgICB7eyB0aXRsZSB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvaDE+XHJcbiAgICAgICAgPGgyIGZkLXRpbGUtc3VidGl0bGU+XHJcbiAgICAgICAgICAgIHt7IHN1YnRpdGxlIHwgYmJiVHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9oMj5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZSA/IGZvb3RlclRlbXBsYXRlIDogZGVmYXVsdEZvb3RlclwiPjwvbmctY29udGFpbmVyPlxyXG48L2ZkLXRpbGU+XHJcbn1AZWxzZXtcclxuPHNwYW4gZmQtbGlzdC10aXRsZT4ge3sgdGl0bGUgfCBiYmJUcmFuc2xhdGUgfX0gPC9zcGFuPlxyXG48c3BhbiBmZC1saXN0LXNlY29uZGFyeT4ge3sgc3VidGl0bGUgfCBiYmJUcmFuc2xhdGUgfX0gPC9zcGFuPlxyXG5AaWYoaWNvbil7IDxpIGZkLWxpc3QtaWNvbiBbZ2x5cGhdPVwiaWNvblwiPjwvaT59IH1cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Rm9vdGVyPlxyXG4gICAgQGlmIChmb290ZXIpIHtcclxuICAgIDxkaXZcclxuICAgICAgICBmZC10aWxlLWZvb3RlclxyXG4gICAgICAgIGJ0LWZvb3Rlci10aWxlXHJcbiAgICAgICAgW3NlY29uZFNlY3Rpb25dPVwiZm9vdGVyLlNlY29uZFNlY3Rpb25cIlxyXG4gICAgICAgIFt0d29Db2x1bW5dPVwiZm9vdGVyLnR3b0NvbHVtblwiXHJcbiAgICAgICAgW2ZpcnN0U2VjdGlvbl09XCJmb290ZXIuRmlyc3RTZWN0aW9uXCJcclxuICAgID48L2Rpdj5cclxuXHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxmZC1tZW51ICNtZW51PlxyXG4gICAgPGxpIGZkLW1lbnUtaXRlbT5cclxuICAgICAgICA8YSAoY2xpY2spPVwibWVudS5jbG9zZSgpOyByZW5hbWVDbGljay5lbWl0KClcIiBmZC1tZW51LWludGVyYWN0aXZlPlxyXG4gICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdSZW5hbWUnIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuICAgIDwvbGk+XHJcbjwvZmQtbWVudT5cclxuQGlmIChydW5uaW5nQ29tbWFuZCkge1xyXG48YnN1LW1hc2s+PC9ic3UtbWFzaz5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,83 @@
|
|
|
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.deviceSize = this.deviceSize;
|
|
31
|
+
instance.setToStorage = this.setToStorage;
|
|
32
|
+
instance.listMode = this.listMode;
|
|
33
|
+
instance.navigateBackOnClick = this.navigateBackOnClick;
|
|
34
|
+
instance.hideClick?.pipe(takeUntil(this._onDestroy$)).subscribe(() => {
|
|
35
|
+
this.hideClick.emit();
|
|
36
|
+
});
|
|
37
|
+
instance.renameClick?.pipe(takeUntil(this._onDestroy$)).subscribe(() => this.renameClick.emit());
|
|
38
|
+
this._vcr.insert(componentRef.hostView);
|
|
39
|
+
this._tileRef = componentRef;
|
|
40
|
+
// this._cdr.detectChanges();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
ngOnChanges(changes) {
|
|
44
|
+
const { edit } = changes;
|
|
45
|
+
if (edit && !edit.firstChange) {
|
|
46
|
+
this._tileRef.instance.setEditHome(edit.currentValue);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
ngOnDestroy() {
|
|
50
|
+
super.ngOnDestroy();
|
|
51
|
+
if (this._tileRef) {
|
|
52
|
+
this._tileRef.destroy();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileRendererDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PortalService }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
56
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TileRendererDirective, selector: "[tileRenderer]", inputs: { component: "component", data: "data", edit: "edit", deviceSize: "deviceSize", setToStorage: "setToStorage", listMode: "listMode", navigateBackOnClick: "navigateBackOnClick" }, outputs: { hideClick: "hideClick", renameClick: "renameClick" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileRendererDirective, decorators: [{
|
|
59
|
+
type: Directive,
|
|
60
|
+
args: [{
|
|
61
|
+
selector: '[tileRenderer]',
|
|
62
|
+
standalone: false
|
|
63
|
+
}]
|
|
64
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.PortalService }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i0.ElementRef }], propDecorators: { component: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], data: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], edit: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], deviceSize: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], setToStorage: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], listMode: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], navigateBackOnClick: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], hideClick: [{
|
|
79
|
+
type: Output
|
|
80
|
+
}], renameClick: [{
|
|
81
|
+
type: Output
|
|
82
|
+
}] } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1yZW5kZXJlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS10aWxlcy9zcmMvbGliL3RpbGUtcmVuZGVyZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBR1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVEzQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQWdCcEQsWUFDWSxJQUF1QixFQUN2QixjQUE2QixFQUM3QixJQUFzQixFQUN0QixTQUFtQixFQUNqQixHQUFlO1FBRXpCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQU5ILFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQVJuQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFVM0MsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxjQUFjO2FBQ2QsWUFBWSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3BFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2pDLFNBQVMsQ0FBQyxDQUFDLFlBQThELEVBQUUsRUFBRTtZQUMxRSxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3ZDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMxQixRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDMUIsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3RDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUMxQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDbEMsUUFBUSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUN4RCxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDakUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUNILFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztZQUM3Qiw2QkFBNkI7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDekIsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzsrR0EvRFEscUJBQXFCO21HQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLEtBQUs7aUJBQ3BCO2lNQUVZLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50UmVmLFxyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlLCBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VUaWxlQ29tcG9uZW50LCBCYXNlVGlsZVNldHRpbmcgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IEFiYnJldmF0aW9uRGV2aWNlU2l6ZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbdGlsZVJlbmRlcmVyXScsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlsZVJlbmRlcmVyRGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgY29tcG9uZW50OiB7XHJcbiAgICAgICAgTW9kdWxlOiBzdHJpbmc7XHJcbiAgICAgICAgTW9kdWxlRmlsZU5hbWU6IHN0cmluZztcclxuICAgICAgICBOYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgU2VsZWN0b3I6IHN0cmluZztcclxuICAgIH07XHJcbiAgICBASW5wdXQoKSBkYXRhOiBCYXNlVGlsZVNldHRpbmc7XHJcbiAgICBASW5wdXQoKSBlZGl0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xyXG4gICAgQElucHV0KCkgc2V0VG9TdG9yYWdlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbGlzdE1vZGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBuYXZpZ2F0ZUJhY2tPbkNsaWNrOiBib29sZWFuO1xyXG4gICAgQE91dHB1dCgpIGhpZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSByZW5hbWVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIHByaXZhdGUgX3RpbGVSZWY6IENvbXBvbmVudFJlZjxCYXNlVGlsZUNvbXBvbmVudDxCYXNlVGlsZVNldHRpbmc+PjtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF92Y3I6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWZcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9lbCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgeyBNb2R1bGUsIE1vZHVsZUZpbGVOYW1lLCBOYW1lLCBTZWxlY3RvciB9ID0gdGhpcy5jb21wb25lbnQ7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZ2V0Q29tcG9uZW50KE1vZHVsZSwgTW9kdWxlRmlsZU5hbWUsIE5hbWUsIFNlbGVjdG9yLCB0aGlzLl9pbmplY3RvcilcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxCYXNlVGlsZUNvbXBvbmVudDxCYXNlVGlsZVNldHRpbmc+PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5kYXRhID0gdGhpcy5kYXRhO1xyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuZWRpdCA9IHRoaXMuZWRpdDtcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlLmRldmljZVNpemUgPSB0aGlzLmRldmljZVNpemU7XHJcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5zZXRUb1N0b3JhZ2UgPSB0aGlzLnNldFRvU3RvcmFnZTtcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlLmxpc3RNb2RlID0gdGhpcy5saXN0TW9kZTtcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlLm5hdmlnYXRlQmFja09uQ2xpY2sgPSB0aGlzLm5hdmlnYXRlQmFja09uQ2xpY2s7XHJcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5oaWRlQ2xpY2s/LnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZUNsaWNrLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UucmVuYW1lQ2xpY2s/LnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZW5hbWVDbGljay5lbWl0KCkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmNyLmluc2VydChjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdGlsZVJlZiA9IGNvbXBvbmVudFJlZjtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHsgZWRpdCB9ID0gY2hhbmdlcztcclxuICAgICAgICBpZiAoZWRpdCAmJiAhZWRpdC5maXJzdENoYW5nZSkge1xyXG4gICAgICAgICAgICB0aGlzLl90aWxlUmVmLmluc3RhbmNlLnNldEVkaXRIb21lKGVkaXQuY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIGlmICh0aGlzLl90aWxlUmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RpbGVSZWYuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|