nuxeo-development-framework 4.5.0 → 4.5.1
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/bundles/nuxeo-development-framework.umd.js +11 -11
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +1 -1
- package/esm2015/lib/components/notifications/services/notifications.service.js +11 -11
- package/fesm2015/nuxeo-development-framework.js +11 -11
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/package.json +1 -1
|
@@ -107,7 +107,7 @@ export class NotificationsButtonComponent extends BaseNotification {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
NotificationsButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsButtonComponent, deps: [{ token: i0.Injector }, { token: i1.TranslationService }, { token: i2.CustomToastrService }, { token: i0.ChangeDetectorRef }, { token: NOTIFICATIONS_LIST_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
-
NotificationsButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationsButtonComponent, selector: "app-notifications-button", inputs: { styleClass: "styleClass", badgeOptions: "badgeOptions", shouldMarkAsUnread: "shouldMarkAsUnread", ignoredToastEvents: "ignoredToastEvents" }, outputs: { listItemClick: "listItemClick", openSettings: "openSettings", openNotifications: "openNotifications", onNotification: "onNotification" }, host: { classAttribute: "inline-flex justify-center items-center notification-button" }, queries: [{ propertyName: "customIconTemplate", first: true, predicate: NOTIFICATION_ICON, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<button\r\n *ngIf=\"panelMode === panelModeEnum.panel\"\r\n [matMenuTriggerFor]=\"notifications\"\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (menuOpened)=\"markAllAsUnread()\"\r\n>\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n</button>\r\n\r\n<mat-menu #notifications=\"matMenu\" class=\"notification-list-panel\">\r\n <ng-template matMenuContent>\r\n <app-notifications-list\r\n (itemClicked)=\"listItemClick.emit($event); notifications.closed.emit()\"\r\n (openSettings)=\"openSettings.emit($event); notifications.closed.emit()\"\r\n (openNotifications)=\"openNotifications.emit($event); notifications.closed.emit()\"\r\n (markAllRead)=\"refreshUnreadCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n <div class=\"notification-list-panel__footer flex justify-center\">\r\n <ng-content select=\"[notifications-footer]\"></ng-content>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-container *ngIf=\"panelMode === panelModeEnum.sidebar\">\r\n <button\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (click)=\"toggleSideBar(); markAllAsUnread()\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n </button>\r\n <app-notifications-sidebar\r\n [(visible)]=\"isSidebarOpened\"\r\n (visibleChange)=\"refreshUnreadCount()\"\r\n [position]=\"sidebarPosition$ | async\"\r\n >\r\n <ng-template appNotificationSidebarContent>\r\n <app-notifications-list\r\n class=\"notifications-sidebar\"\r\n (itemClicked)=\"\r\n listItemClick.emit($event); toggleSideBar(false); refreshUnreadCount()\r\n \"\r\n (openSettings)=\"openSettings.emit($event); toggleSideBar(false)\"\r\n (openNotifications)=\"openNotifications.emit($event); toggleSideBar(false)\"\r\n (markAllRead)=\"refreshUnreadCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n </app-notifications-sidebar>\r\n</ng-container>\r\n\r\n<ng-template #defaultIconTemplate>\r\n <i class=\"bi bi-bell bell\"></i>\r\n</ng-template>\r\n", styles: [".notification-button{font-size:var(--not-btn-font-size, 1.5rem);width:var(--not-btn-width, 40px)}.notification-list-panel{--width: var(--nos-panel-width, min(80vw, 450px));width:var(--width);border-radius:var(--nos-panel-radius, 5px);overflow:hidden;-webkit-overflow-scrolling:touch;outline:0;background:var(--nos-panel-background, #fff)}.notification-list-panel.mat-menu-panel{max-width:var(--width);max-height:var(--nos-panel-max-height, var(--height))}.notification-list-panel__navigate-btn{background:var(--not-btn-background, transparent);border-radius:var(--not-btn-radius, 5px);padding:var(--not-btn-padding, .5rem 1rem);margin:var(--not-btn-margin, .5rem 0);color:var(--not-btn-color, currentColor);width:var(--not-btn-width, 90%)}.notification-list-panel__navigate-btn:hover{--not-btn-background: var(--not-btn-hover-background, #f0f0f0);--not-btn-color: var(--not-btn-hover-color);-webkit-text-decoration:var(--not-btn-decoration, none);text-decoration:var(--not-btn-decoration, none)}.notification-list-panel__navigate-btn:active{--not-btn-background: var(--not-btn-active-background, #e2e2e2);--not-btn-color: var(--not-btn-active-color)}.notifications-sidebar{--nto-list-header-padding: var(--sidebar-list-header-padding
|
|
110
|
+
NotificationsButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationsButtonComponent, selector: "app-notifications-button", inputs: { styleClass: "styleClass", badgeOptions: "badgeOptions", shouldMarkAsUnread: "shouldMarkAsUnread", ignoredToastEvents: "ignoredToastEvents" }, outputs: { listItemClick: "listItemClick", openSettings: "openSettings", openNotifications: "openNotifications", onNotification: "onNotification" }, host: { classAttribute: "inline-flex justify-center items-center notification-button" }, queries: [{ propertyName: "customIconTemplate", first: true, predicate: NOTIFICATION_ICON, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<button\r\n *ngIf=\"panelMode === panelModeEnum.panel\"\r\n [matMenuTriggerFor]=\"notifications\"\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (menuOpened)=\"markAllAsUnread()\"\r\n>\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n</button>\r\n\r\n<mat-menu #notifications=\"matMenu\" class=\"notification-list-panel\">\r\n <ng-template matMenuContent>\r\n <app-notifications-list\r\n (itemClicked)=\"listItemClick.emit($event); notifications.closed.emit()\"\r\n (openSettings)=\"openSettings.emit($event); notifications.closed.emit()\"\r\n (openNotifications)=\"openNotifications.emit($event); notifications.closed.emit()\"\r\n (markAllRead)=\"refreshUnreadCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n <div class=\"notification-list-panel__footer flex justify-center\">\r\n <ng-content select=\"[notifications-footer]\"></ng-content>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-container *ngIf=\"panelMode === panelModeEnum.sidebar\">\r\n <button\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (click)=\"toggleSideBar(); markAllAsUnread()\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n </button>\r\n <app-notifications-sidebar\r\n [(visible)]=\"isSidebarOpened\"\r\n (visibleChange)=\"refreshUnreadCount()\"\r\n [position]=\"sidebarPosition$ | async\"\r\n >\r\n <ng-template appNotificationSidebarContent>\r\n <app-notifications-list\r\n class=\"notifications-sidebar\"\r\n (itemClicked)=\"\r\n listItemClick.emit($event); toggleSideBar(false); refreshUnreadCount()\r\n \"\r\n (openSettings)=\"openSettings.emit($event); toggleSideBar(false)\"\r\n (openNotifications)=\"openNotifications.emit($event); toggleSideBar(false)\"\r\n (markAllRead)=\"refreshUnreadCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n </app-notifications-sidebar>\r\n</ng-container>\r\n\r\n<ng-template #defaultIconTemplate>\r\n <i class=\"bi bi-bell bell\"></i>\r\n</ng-template>\r\n", styles: [".notification-button{font-size:var(--not-btn-font-size, 1.5rem);width:var(--not-btn-width, 40px)}.notification-button .mat-badge-content{text-overflow:unset;width:18px;height:18px;line-height:18px}.notification-list-panel{--width: var(--nos-panel-width, min(80vw, 450px));width:var(--width);border-radius:var(--nos-panel-radius, 5px);overflow:hidden;-webkit-overflow-scrolling:touch;outline:0;background:var(--nos-panel-background, #fff)}.notification-list-panel.mat-menu-panel{max-width:var(--width);max-height:var(--nos-panel-max-height, var(--height))}.notification-list-panel__navigate-btn{background:var(--not-btn-background, transparent);border-radius:var(--not-btn-radius, 5px);padding:var(--not-btn-padding, .5rem 1rem);margin:var(--not-btn-margin, .5rem 0);color:var(--not-btn-color, currentColor);width:var(--not-btn-width, 90%)}.notification-list-panel__navigate-btn:hover{--not-btn-background: var(--not-btn-hover-background, #f0f0f0);--not-btn-color: var(--not-btn-hover-color);-webkit-text-decoration:var(--not-btn-decoration, none);text-decoration:var(--not-btn-decoration, none)}.notification-list-panel__navigate-btn:active{--not-btn-background: var(--not-btn-active-background, #e2e2e2);--not-btn-color: var(--not-btn-active-color)}.notifications-sidebar{--nto-list-header-padding: var(--sidebar-list-header-padding, 1rem);--nto-list-height: var(--sidebar-list-height, calc(100vh - 100px))}\n"], components: [{ type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i4.NotificationsListComponent, selector: "app-notifications-list", outputs: ["openSettings", "openNotifications"] }, { type: i5.NotificationsSidebarComponent, selector: "app-notifications-sidebar", inputs: ["appendToBody", "clearOnCLose", "visible", "position"], outputs: ["visibleChange", "onShow", "onHide"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgePosition", "matBadgeSize", "matBadgeColor", "matBadgeOverlap", "matBadgeDescription", "matBadgeHidden", "matBadge"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.MatMenuContent, selector: "ng-template[matMenuContent]" }, { type: i8.NotificationSidebarContentDirective, selector: "[appNotificationSidebarContent]" }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
111
111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsButtonComponent, decorators: [{
|
|
112
112
|
type: Component,
|
|
113
113
|
args: [{
|
|
@@ -21,8 +21,7 @@ export class NotificationsService extends SocketService {
|
|
|
21
21
|
this._callApi = _callApi;
|
|
22
22
|
this._http = _http;
|
|
23
23
|
this.listenerObserver = new Subject();
|
|
24
|
-
if (((_b = (_a = this._nuxeoService.nuxeoClient) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.id) &&
|
|
25
|
-
((_c = this._environment) === null || _c === void 0 ? void 0 : _c.socketUrl)) {
|
|
24
|
+
if (((_b = (_a = this._nuxeoService.nuxeoClient) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.id) && ((_c = this._environment) === null || _c === void 0 ? void 0 : _c.socketUrl)) {
|
|
26
25
|
this.socketConnect()
|
|
27
26
|
.pipe(switchMap(() => this.onMessage$), catchError((error) => {
|
|
28
27
|
console.log(error);
|
|
@@ -34,7 +33,8 @@ export class NotificationsService extends SocketService {
|
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
get _tenantId() {
|
|
37
|
-
|
|
36
|
+
var _a;
|
|
37
|
+
return (_a = this._nuxeoService.nuxeoClient.user.properties.tenantId) !== null && _a !== void 0 ? _a : '';
|
|
38
38
|
}
|
|
39
39
|
get _appKey() {
|
|
40
40
|
var _a;
|
|
@@ -45,7 +45,7 @@ export class NotificationsService extends SocketService {
|
|
|
45
45
|
.query({
|
|
46
46
|
pageProvider: NotificationsService.providers.notificationsMango,
|
|
47
47
|
pageSize: 1,
|
|
48
|
-
notfnotificationcontent_company: this._tenantId
|
|
48
|
+
notfnotificationcontent_company: `${this._tenantId}`,
|
|
49
49
|
notfnotificationcontent_applicationKey: this._appKey,
|
|
50
50
|
notfnotificationcontent_status: NOTIFICATION_STATUS.new
|
|
51
51
|
}, {})
|
|
@@ -77,7 +77,7 @@ export class NotificationsService extends SocketService {
|
|
|
77
77
|
}
|
|
78
78
|
subscribe(id) {
|
|
79
79
|
return this._operation(id, 'subscribe', {
|
|
80
|
-
companyName: this._tenantId
|
|
80
|
+
companyName: `${this._tenantId}`
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
resetSubscriptions() {
|
|
@@ -86,7 +86,7 @@ export class NotificationsService extends SocketService {
|
|
|
86
86
|
url: `${this._environment.nuxeo}${this._environment.customAutomation}`
|
|
87
87
|
})
|
|
88
88
|
.params({
|
|
89
|
-
companyName: this._tenantId
|
|
89
|
+
companyName: `${this._tenantId}`,
|
|
90
90
|
applicationKey: this._appKey
|
|
91
91
|
})
|
|
92
92
|
.execute());
|
|
@@ -108,7 +108,7 @@ export class NotificationsService extends SocketService {
|
|
|
108
108
|
}
|
|
109
109
|
getSubscriptions(payload = {}) {
|
|
110
110
|
return this._callApi
|
|
111
|
-
.query(Object.assign({ pageProvider: NotificationsService.providers.subscription, notfsubscription_companyName: this._tenantId
|
|
111
|
+
.query(Object.assign({ pageProvider: NotificationsService.providers.subscription, notfsubscription_companyName: `${this._tenantId}`, notfsubscription_applicationKey: this._appKey, pageSize: Number.MAX_SAFE_INTEGER }, payload), {
|
|
112
112
|
headers: {
|
|
113
113
|
properties: '*'
|
|
114
114
|
}
|
|
@@ -117,7 +117,7 @@ export class NotificationsService extends SocketService {
|
|
|
117
117
|
}
|
|
118
118
|
_getNotifications(pageProvider, payload = {}) {
|
|
119
119
|
return this._callApi
|
|
120
|
-
.query(Object.assign({ pageProvider: pageProvider, notfnotificationcontent_company: this._tenantId
|
|
120
|
+
.query(Object.assign({ pageProvider: pageProvider, notfnotificationcontent_company: `${this._tenantId}`, notfnotificationcontent_applicationKey: this._appKey }, payload), {
|
|
121
121
|
headers: {
|
|
122
122
|
properties: '*'
|
|
123
123
|
}
|
|
@@ -129,7 +129,7 @@ export class NotificationsService extends SocketService {
|
|
|
129
129
|
const bearerToken = `Bearer ${token}`;
|
|
130
130
|
const headers = new HttpHeaders().set('Authorization', bearerToken);
|
|
131
131
|
return headers;
|
|
132
|
-
}), switchMap((headers) => this._http.get(url, { headers })), map((response) => response.entries), map((data) => data.sort((a, b) => b.properties['ordering'] < a.properties['ordering'] ? 1 : -1)));
|
|
132
|
+
}), switchMap((headers) => this._http.get(url, { headers })), map((response) => response.entries), map((data) => data.sort((a, b) => (b.properties['ordering'] < a.properties['ordering'] ? 1 : -1))));
|
|
133
133
|
}
|
|
134
134
|
_operation(id, option, params = {}) {
|
|
135
135
|
return from(this._nuxeoService.nuxeoClient
|
|
@@ -145,7 +145,7 @@ export class NotificationsService extends SocketService {
|
|
|
145
145
|
.operation(NotificationsService.operations[option], {
|
|
146
146
|
url: `${this._environment.nuxeo}${this._environment.customAutomation}`
|
|
147
147
|
})
|
|
148
|
-
.params(Object.assign({ companyName: this._tenantId
|
|
148
|
+
.params(Object.assign({ companyName: `${this._tenantId}`, applicationKey: this._appKey }, params))
|
|
149
149
|
.execute({}));
|
|
150
150
|
}
|
|
151
151
|
}
|
|
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
175
175
|
type: Inject,
|
|
176
176
|
args: ['environment']
|
|
177
177
|
}] }, { type: i1.NuxeoService }, { type: i2.CallApiService }, { type: i3.HttpClient }]; } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVF2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFTbkQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFFakQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUErQnREOztPQUVHO0lBQ0gsWUFDa0MsWUFBaUMsRUFDeEQsYUFBMkIsRUFDM0IsUUFBd0IsRUFDeEIsS0FBaUI7O1FBRTNCLEtBQUssQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFMRixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDeEQsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQXJDNUIscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7UUF5QzFELElBQ0MsQ0FBQSxNQUFBLE1BQUEs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aW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gIEFwaVJlc3BvbnNlTW9kZWwsXHJcbiAgQXV0b21hdGlvblJlc3BvbnNlTW9kZWxcclxufSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IENhbGxBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jYWxsQXBpL2NhbGwtYXBpLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTk9USUZJQ0FUSU9OX1NUQVRVUyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7XHJcbiAgTm90aWZpY2F0aW9uRGVmaW5pdGlvbk1vZGVsLFxyXG4gIE5vdGlmaWNhdGlvbk1lc3NhZ2VNb2RlbCxcclxuICBOb3RpZmljYXRpb25Nb2RlbCxcclxuICBOb3RpZmljYXRpb25TdWJzY3JpcHRpb25Nb2RlbCxcclxuICBQYXlsb2FkUGFyYW1zTW9kZWwsXHJcbiAgVm9jYWJ1bGFyeVR5cGVcclxufSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBtYXBOb3RpZmljYXRpb25zVG9QYWdpbmdSZXNwb25zZSB9IGZyb20gJy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IFNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3NvY2tldC5zZXJ2aWNlJztcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uc1NlcnZpY2UgZXh0ZW5kcyBTb2NrZXRTZXJ2aWNlIHtcclxuXHRsaXN0ZW5lck9ic2VydmVyID0gbmV3IFN1YmplY3Q8Tm90aWZpY2F0aW9uTWVzc2FnZU1vZGVsPigpO1xyXG5cdHN0YXRpYyByZWFkb25seSBzb3VyY2VUeXBlID0gJy9hcGkvdjEvZGlyZWN0b3J5L1ZPQ19Ob3RmX1NvdXJjZVR5cGVzJztcclxuXHRzdGF0aWMgcmVhZG9ubHkgY2hhbm5lbHMgPSAnL2FwaS92MS9kaXJlY3RvcnkvVk9DX05vdGZfTm90aWZpY2F0aW9uQ2hhbm5lbHMnO1xyXG5cclxuXHRzdGF0aWMgcmVhZG9ubHkgcHJvdmlkZXJzID0ge1xyXG5cdFx0bm90aWZpY2F0aW9uczogJ1BQX05vdGZOb3RpZmljYXRpb25Db250ZW50JyxcclxuXHRcdG5vdGlmaWNhdGlvbnNNYW5nbzogJ1BQX05vdGZOb3RpZmljYXRpb25Db250ZW50X01vbmdvJyxcclxuXHRcdHN1YnNjcmlwdGlvbjogJ1BQX05vdGZTdWJzY3JpcHRpb25fTW9uZ28nLFxyXG5cdFx0ZGVmaW5pdGlvbjogJ1BQX05vdGZOb3RpZmljYXRpb25EZWZpbml0aW9uX01vbmdvJ1xyXG5cdH07XHJcblxyXG5cdHN0YXRpYyByZWFkb25seSBvcGVyYXRpb25zID0ge1xyXG5cdFx0bWFya0FsbEFzUmVhZDogJ0FDX1VBX05vdGZOb3RpZmljYXRpb25fUmVhZEFsbCcsXHJcblx0XHRtYXJrQXNSZWFkOiAnQUNfVUFfTm90Zk5vdGlmaWNhdGlvbl9SZWFkJyxcclxuXHRcdG1hcmtBc1VucmVhZDogJ0FDX1VBX05vdGZOb3RpZmljYXRpb25fVW5yZWFkJyxcclxuXHRcdG1hcmtBc0RlbGV0ZWQ6ICdBQ19VQV9Ob3RmTm90aWZpY2F0aW9uX1RvRGVsZXRlZCcsXHJcblx0XHR1bnN1YnNjcmliZTogJ0FDX1VBX05vdGZOb3RpZmljYXRpb25fVW5zdWJzY3JpYmUnLFxyXG5cdFx0c3Vic2NyaWJlOiAnQUNfVUFfTm90Zk5vdGlmaWNhdGlvbl9TdWJzY3JpYmUnLFxyXG5cdFx0cmVzZXQ6ICdBQ19VQV9Ob3RmTm90aWZpY2F0aW9uX1Jlc2V0U3Vic2NyaXB0aW9uJyxcclxuXHRcdG1hcmtBbGxBc1VucmVhZDogJ0FDX1VBX05vdGZOb3RpZmljYXRpb25fVW5yZWFkQWxsJ1xyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgZ2V0IF90ZW5hbnRJZCgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlci5wcm9wZXJ0aWVzLnRlbmFudElkO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBnZXQgX2FwcEtleSgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9lbnZpcm9ubWVudD8uYXBwS2V5O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICpcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIF9lbnZpcm9ubWVudDogUmVjb3JkPHN0cmluZywgYW55PixcclxuXHRcdHByb3RlY3RlZCBfbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcblx0XHRwcm90ZWN0ZWQgX2NhbGxBcGk6IENhbGxBcGlTZXJ2aWNlLFxyXG5cdFx0cHJvdGVjdGVkIF9odHRwOiBIdHRwQ2xpZW50XHJcblx0KSB7XHJcblx0XHRzdXBlcihfZW52aXJvbm1lbnQsIF9udXhlb1NlcnZpY2UpO1xyXG5cclxuXHRcdGlmIChcclxuXHRcdFx0dGhpcy5fbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50Py51c2VyPy5pZCAmJlxyXG5cdFx0XHR0aGlzLl9lbnZpcm9ubWVudD8uc29ja2V0VXJsXHJcblx0XHQpIHtcclxuXHRcdFx0dGhpcy5zb2NrZXRDb25uZWN0KClcclxuXHRcdFx0XHQucGlwZShcclxuXHRcdFx0XHRcdHN3aXRjaE1hcCgoKSA9PiB0aGlzLm9uTWVzc2FnZSQpLFxyXG5cdFx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnJvcik7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxyXG5cdFx0XHRcdClcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMubGlzdGVuZXJPYnNlcnZlci5uZXh0KHJlcyk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXRVblJlYWRDb3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NhbGxBcGlcclxuXHRcdFx0LnF1ZXJ5KFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdHBhZ2VQcm92aWRlcjogTm90aWZpY2F0aW9uc1NlcnZpY2UucHJvdmlkZXJzLm5vdGlmaWNhdGlvbnNNYW5nbyxcclxuXHRcdFx0XHRcdHBhZ2VTaXplOiAxLFxyXG5cdFx0XHRcdFx0bm90Zm5vdGlmaWNhdGlvbmNvbnRlbnRfY29tcGFueTogdGhpcy5fdGVuYW50SWQsXHJcblx0XHRcdFx0XHRub3Rmbm90aWZpY2F0aW9uY29udGVudF9hcHBsaWNhdGlvbktleTogdGhpcy5fYXBwS2V5LFxyXG5cdFx0XHRcdFx0bm90Zm5vdGlmaWNhdGlvbmNvbnRlbnRfc3RhdHVzOiBOT1RJRklDQVRJT05fU1RBVFVTLm5ld1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0e31cclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoKGRhdGE6IEFwaVJlc3BvbnNlTW9kZWw8Tm90aWZpY2F0aW9uTW9kZWw+KSA9PiBkYXRhLnRvdGFsU2l6ZSA/PyAwKVxyXG5cdFx0XHQpO1xyXG5cdH1cclxuXHJcblx0Z2V0Tm90aWZpY2F0aW9uc01vbmdvKHBheWxvYWQ6IFBheWxvYWRQYXJhbXNNb2RlbCA9IHt9KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZ2V0Tm90aWZpY2F0aW9ucyhcclxuXHRcdFx0Tm90aWZpY2F0aW9uc1NlcnZpY2UucHJvdmlkZXJzLm5vdGlmaWNhdGlvbnNNYW5nbyxcclxuXHRcdFx0cGF5bG9hZFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldE5vdGlmaWNhdGlvbnMocGF5bG9hZDogUGF5bG9hZFBhcmFtc01vZGVsID0ge30pIHtcclxuXHRcdHJldHVybiB0aGlzLl9nZXROb3RpZmljYXRpb25zKFxyXG5cdFx0XHROb3RpZmljYXRpb25zU2VydmljZS5wcm92aWRlcnMubm90aWZpY2F0aW9ucyxcclxuXHRcdFx0cGF5bG9hZFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdG1hcmtBbGxBc1JlYWQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZ2xvYmFsT3BlcmF0aW9uKCdtYXJrQWxsQXNSZWFkJyk7XHJcblx0fVxyXG5cclxuXHRtYXJrQWxsTmV3QXNVbnJlYWQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZ2xvYmFsT3BlcmF0aW9uKCdtYXJrQWxsQXNVbnJlYWQnKTtcclxuXHR9XHJcblxyXG5cdG1hcmtBc1JlYWQoaWQ6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuX29wZXJhdGlvbihpZCwgJ21hcmtBc1JlYWQnKTtcclxuXHR9XHJcblxyXG5cdG1hcmtBc1VucmVhZChpZDogc3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fb3BlcmF0aW9uKGlkLCAnbWFya0FzVW5yZWFkJyk7XHJcblx0fVxyXG5cclxuXHRtYXJrQXNEZWxldGVkKGlkOiBzdHJpbmcpIHtcclxuXHRcdHJldHVybiB0aGlzLl9vcGVyYXRpb24oaWQsICdtYXJrQXNEZWxldGVkJyk7XHJcblx0fVxyXG5cclxuXHR1bnN1YnNjcmliZShpZDogc3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fb3BlcmF0aW9uKGlkLCAndW5zdWJzY3JpYmUnKTtcclxuXHR9XHJcblxyXG5cdHN1YnNjcmliZShpZDogc3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fb3BlcmF0aW9uKGlkLCAnc3Vic2NyaWJlJywge1xyXG5cdFx0XHRjb21wYW55TmFtZTogdGhpcy5fdGVuYW50SWRcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cmVzZXRTdWJzY3JpcHRpb25zKCkge1xyXG5cdFx0cmV0dXJuIGZyb20oXHJcblx0XHRcdHRoaXMuX251eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG5cdFx0XHRcdC5vcGVyYXRpb24oTm90aWZpY2F0aW9uc1NlcnZpY2Uub3BlcmF0aW9ucy5yZXNldCwge1xyXG5cdFx0XHRcdFx0dXJsOiBgJHt0aGlzLl9lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuX2Vudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0LnBhcmFtcyh7XHJcblx0XHRcdFx0XHRjb21wYW55TmFtZTogdGhpcy5fdGVuYW50SWQsXHJcblx0XHRcdFx0XHRhcHBsaWNhdGlvbktleTogdGhpcy5fYXBwS2V5XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHQuZXhlY3V0ZSgpXHJcblx0XHQpIGFzIE9ic2VydmFibGU8QXV0b21hdGlvblJlc3BvbnNlTW9kZWw8UmVjb3JkPFByb3BlcnR5S2V5LCBhbnk+Pj47XHJcblx0fVxyXG5cclxuXHRnZXRTb3VyY2VUeXBlcygpIHtcclxuXHRcdHJldHVybiB0aGlzLl9nZXRWb2NhYnVsYXJ5KFxyXG5cdFx0XHRgJHt0aGlzLl9lbnZpcm9ubWVudC5udXhlb30ke05vdGlmaWNhdGlvbnNTZXJ2aWNlLnNvdXJjZVR5cGV9YFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldENoYW5uZWxzKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2dldFZvY2FidWxhcnkoXHJcblx0XHRcdGAke3RoaXMuX2Vudmlyb25tZW50Lm51eGVvfSR7Tm90aWZpY2F0aW9uc1NlcnZpY2UuY2hhbm5lbHN9YFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldERlZmluaXRpb25zKHBheWxvYWQ6IFBheWxvYWRQYXJhbXNNb2RlbCA9IHt9KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY2FsbEFwaVxyXG5cdFx0XHQucXVlcnkoXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0cGFnZVByb3ZpZGVyOiBOb3RpZmljYXRpb25zU2VydmljZS5wcm92aWRlcnMuZGVmaW5pdGlvbixcclxuXHRcdFx0XHRcdG5vdGZub3RpZmljYXRpb25kZWZfYXBwbGljYXRpb25LZXk6IHRoaXMuX2FwcEtleSxcclxuXHRcdFx0XHRcdHBhZ2VTaXplOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcclxuXHRcdFx0XHRcdG5vdGZub3RpZmljYXRpb25kZWZfaXNBY3RpdmU6IHRydWUsXHJcblx0XHRcdFx0XHQuLi5wYXlsb2FkXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRoZWFkZXJzOiB7XHJcblx0XHRcdFx0XHRcdHByb3BlcnRpZXM6ICcqJ1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoXHJcblx0XHRcdFx0XHQoZGF0YTogQXBpUmVzcG9uc2VNb2RlbDxOb3RpZmljYXRpb25EZWZpbml0aW9uTW9kZWw+KSA9PiBkYXRhLmVudHJpZXNcclxuXHRcdFx0XHQpXHJcblx0XHRcdCk7XHJcblx0fVxyXG5cclxuXHRnZXRTdWJzY3JpcHRpb25zKHBheWxvYWQ6IFBheWxvYWRQYXJhbXNNb2RlbCA9IHt9KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY2FsbEFwaVxyXG5cdFx0XHQucXVlcnkoXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0cGFnZVByb3ZpZGVyOiBOb3RpZmljYXRpb25zU2VydmljZS5wcm92aWRlcnMuc3Vic2NyaXB0aW9uLFxyXG5cdFx0XHRcdFx0bm90ZnN1YnNjcmlwdGlvbl9jb21wYW55TmFtZTogdGhpcy5fdGVuYW50SWQsXHJcblx0XHRcdFx0XHRub3Rmc3Vic2NyaXB0aW9uX2FwcGxpY2F0aW9uS2V5OiB0aGlzLl9hcHBLZXksXHJcblx0XHRcdFx0XHRwYWdlU2l6ZTogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXHJcblx0XHRcdFx0XHQuLi5wYXlsb2FkXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRoZWFkZXJzOiB7XHJcblx0XHRcdFx0XHRcdHByb3BlcnRpZXM6ICcqJ1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoXHJcblx0XHRcdFx0XHQoZGF0YTogQXBpUmVzcG9uc2VNb2RlbDxOb3RpZmljYXRpb25TdWJzY3JpcHRpb25Nb2RlbD4pID0+XHJcblx0XHRcdFx0XHRcdGRhdGEuZW50cmllc1xyXG5cdFx0XHRcdClcclxuXHRcdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2dldE5vdGlmaWNhdGlvbnMoXHJcblx0XHRwYWdlUHJvdmlkZXI6IHN0cmluZyxcclxuXHRcdHBheWxvYWQ6IFBheWxvYWRQYXJhbXNNb2RlbCA9IHt9XHJcblx0KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY2FsbEFwaVxyXG5cdFx0XHQucXVlcnkoXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0cGFnZVByb3ZpZGVyOiBwYWdlUHJvdmlkZXIsXHJcblx0XHRcdFx0XHRub3Rmbm90aWZpY2F0aW9uY29udGVudF9jb21wYW55OiB0aGlzLl90ZW5hbnRJZCxcclxuXHRcdFx0XHRcdG5vdGZub3RpZmljYXRpb25jb250ZW50X2FwcGxpY2F0aW9uS2V5OiB0aGlzLl9hcHBLZXksXHJcblx0XHRcdFx0XHQuLi5wYXlsb2FkXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRoZWFkZXJzOiB7XHJcblx0XHRcdFx0XHRcdHByb3BlcnRpZXM6ICcqJ1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoKGRhdGE6IEFwaVJlc3BvbnNlTW9kZWw8Tm90aWZpY2F0aW9uTW9kZWw+KSA9PlxyXG5cdFx0XHRcdFx0bWFwTm90aWZpY2F0aW9uc1RvUGFnaW5nUmVzcG9uc2UoZGF0YSlcclxuXHRcdFx0XHQpXHJcblx0XHRcdCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9nZXRWb2NhYnVsYXJ5KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxWb2NhYnVsYXJ5VHlwZVtdPiB7XHJcblx0XHRyZXR1cm4gZnJvbSh0aGlzLl9udXhlb1NlcnZpY2UuZ2V0VG9rZW4oKSkucGlwZShcclxuXHRcdFx0bWFwKCh0b2tlbikgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGJlYXJlclRva2VuID0gYEJlYXJlciAke3Rva2VufWA7XHJcblx0XHRcdFx0Y29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIGJlYXJlclRva2VuKTtcclxuXHRcdFx0XHRyZXR1cm4gaGVhZGVycztcclxuXHRcdFx0fSksXHJcblx0XHRcdHN3aXRjaE1hcCgoaGVhZGVycykgPT5cclxuXHRcdFx0XHR0aGlzLl9odHRwLmdldDxBcGlSZXNwb25zZU1vZGVsPFZvY2FidWxhcnlUeXBlPj4odXJsLCB7IGhlYWRlcnMgfSlcclxuXHRcdFx0KSxcclxuXHRcdFx0bWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZW50cmllcyksXHJcblx0XHRcdG1hcCgoZGF0YSkgPT5cclxuXHRcdFx0XHRkYXRhLnNvcnQoKGEsIGIpID0+XHJcblx0XHRcdFx0XHRiLnByb3BlcnRpZXNbJ29yZGVyaW5nJ10gPCBhLnByb3BlcnRpZXNbJ29yZGVyaW5nJ10gPyAxIDogLTFcclxuXHRcdFx0XHQpXHJcblx0XHRcdClcclxuXHRcdCk7XHJcblx0fVxyXG5cdHByaXZhdGUgX29wZXJhdGlvbjxUUmVzcG9uc2UgPSBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT4+KFxyXG5cdFx0aWQ6IHN0cmluZyxcclxuXHRcdG9wdGlvbjoga2V5b2YgdHlwZW9mIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLm9wZXJhdGlvbnMsXHJcblx0XHRwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxyXG5cdCkge1xyXG5cdFx0cmV0dXJuIGZyb20oXHJcblx0XHRcdHRoaXMuX251eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG5cdFx0XHRcdC5vcGVyYXRpb24oTm90aWZpY2F0aW9uc1NlcnZpY2Uub3BlcmF0aW9uc1tvcHRpb25dLCB7XHJcblx0XHRcdFx0XHR1cmw6IGAke3RoaXMuX2Vudmlyb25tZW50Lm51eGVvfSR7dGhpcy5fZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHQucGFyYW1zKHBhcmFtcylcclxuXHRcdFx0XHQuaW5wdXQoaWQpXHJcblx0XHRcdFx0LmV4ZWN1dGUoKVxyXG5cdFx0KSBhcyBPYnNlcnZhYmxlPEF1dG9tYXRpb25SZXNwb25zZU1vZGVsPFRSZXNwb25zZT4+O1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZ2xvYmFsT3BlcmF0aW9uKFxyXG5cdFx0b3B0aW9uOiBrZXlvZiB0eXBlb2YgTm90aWZpY2F0aW9uc1NlcnZpY2Uub3BlcmF0aW9ucyxcclxuXHRcdHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LFxyXG5cdFx0aGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XHJcblx0KSB7XHJcblx0XHRyZXR1cm4gZnJvbShcclxuXHRcdFx0dGhpcy5fbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcblx0XHRcdFx0Lm9wZXJhdGlvbihOb3RpZmljYXRpb25zU2VydmljZS5vcGVyYXRpb25zW29wdGlvbl0sIHtcclxuXHRcdFx0XHRcdHVybDogYCR7dGhpcy5fZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLl9lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWBcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdC5wYXJhbXMoe1xyXG5cdFx0XHRcdFx0Y29tcGFueU5hbWU6IHRoaXMuX3RlbmFudElkLFxyXG5cdFx0XHRcdFx0YXBwbGljYXRpb25LZXk6IHRoaXMuX2FwcEtleSxcclxuXHRcdFx0XHRcdC4uLnBhcmFtc1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0LmV4ZWN1dGUoe30pXHJcblx0XHQpIGFzIE9ic2VydmFibGU8QXV0b21hdGlvblJlc3BvbnNlTW9kZWw8UmVjb3JkPFByb3BlcnR5S2V5LCBhbnk+Pj47XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUt2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFTbkQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFFakQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUErQnREOztPQUVHO0lBQ0gsWUFDa0MsWUFBaUMsRUFDeEQsYUFBMkIsRUFDM0IsUUFBd0IsRUFDeEIsS0FBaUI7O1FBRTNCLEtBQUssQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFMRixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDeEQsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQXJDNUIscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7UUF5QzFELElBQUksQ0FBQSxNQUFBLE1BQUEs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b0JBQW9COzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVU7OzBCQW9DUixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwaVJlc3BvbnNlTW9kZWwsIEF1dG9tYXRpb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDYWxsQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvY2FsbEFwaS9jYWxsLWFwaS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IE5PVElGSUNBVElPTl9TVEFUVVMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG5cdE5vdGlmaWNhdGlvbkRlZmluaXRpb25Nb2RlbCxcclxuXHROb3RpZmljYXRpb25NZXNzYWdlTW9kZWwsXHJcblx0Tm90aWZpY2F0aW9uTW9kZWwsXHJcblx0Tm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uTW9kZWwsXHJcblx0UGF5bG9hZFBhcmFtc01vZGVsLFxyXG5cdFZvY2FidWxhcnlUeXBlXHJcbn0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgbWFwTm90aWZpY2F0aW9uc1RvUGFnaW5nUmVzcG9uc2UgfSBmcm9tICcuLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBTb2NrZXRTZXJ2aWNlIH0gZnJvbSAnLi9zb2NrZXQuc2VydmljZSc7XHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNTZXJ2aWNlIGV4dGVuZHMgU29ja2V0U2VydmljZSB7XHJcblx0bGlzdGVuZXJPYnNlcnZlciA9IG5ldyBTdWJqZWN0PE5vdGlmaWNhdGlvbk1lc3NhZ2VNb2RlbD4oKTtcclxuXHRzdGF0aWMgcmVhZG9ubHkgc291cmNlVHlwZSA9ICcvYXBpL3YxL2RpcmVjdG9yeS9WT0NfTm90Zl9Tb3VyY2VUeXBlcyc7XHJcblx0c3RhdGljIHJlYWRvbmx5IGNoYW5uZWxzID0gJy9hcGkvdjEvZGlyZWN0b3J5L1ZPQ19Ob3RmX05vdGlmaWNhdGlvbkNoYW5uZWxzJztcclxuXHJcblx0c3RhdGljIHJlYWRvbmx5IHByb3ZpZGVycyA9IHtcclxuXHRcdG5vdGlmaWNhdGlvbnM6ICdQUF9Ob3RmTm90aWZpY2F0aW9uQ29udGVudCcsXHJcblx0XHRub3RpZmljYXRpb25zTWFuZ286ICdQUF9Ob3RmTm90aWZpY2F0aW9uQ29udGVudF9Nb25nbycsXHJcblx0XHRzdWJzY3JpcHRpb246ICdQUF9Ob3RmU3Vic2NyaXB0aW9uX01vbmdvJyxcclxuXHRcdGRlZmluaXRpb246ICdQUF9Ob3RmTm90aWZpY2F0aW9uRGVmaW5pdGlvbl9Nb25nbydcclxuXHR9O1xyXG5cclxuXHRzdGF0aWMgcmVhZG9ubHkgb3BlcmF0aW9ucyA9IHtcclxuXHRcdG1hcmtBbGxBc1JlYWQ6ICdBQ19VQV9Ob3RmTm90aWZpY2F0aW9uX1JlYWRBbGwnLFxyXG5cdFx0bWFya0FzUmVhZDogJ0FDX1VBX05vdGZOb3RpZmljYXRpb25fUmVhZCcsXHJcblx0XHRtYXJrQXNVbnJlYWQ6ICdBQ19VQV9Ob3RmTm90aWZpY2F0aW9uX1VucmVhZCcsXHJcblx0XHRtYXJrQXNEZWxldGVkOiAnQUNfVUFfTm90Zk5vdGlmaWNhdGlvbl9Ub0RlbGV0ZWQnLFxyXG5cdFx0dW5zdWJzY3JpYmU6ICdBQ19VQV9Ob3RmTm90aWZpY2F0aW9uX1Vuc3Vic2NyaWJlJyxcclxuXHRcdHN1YnNjcmliZTogJ0FDX1VBX05vdGZOb3RpZmljYXRpb25fU3Vic2NyaWJlJyxcclxuXHRcdHJlc2V0OiAnQUNfVUFfTm90Zk5vdGlmaWNhdGlvbl9SZXNldFN1YnNjcmlwdGlvbicsXHJcblx0XHRtYXJrQWxsQXNVbnJlYWQ6ICdBQ19VQV9Ob3RmTm90aWZpY2F0aW9uX1VucmVhZEFsbCdcclxuXHR9O1xyXG5cclxuXHRwcml2YXRlIGdldCBfdGVuYW50SWQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy50ZW5hbnRJZCA/PyAnJztcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0IF9hcHBLZXkoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZW52aXJvbm1lbnQ/LmFwcEtleTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBfZW52aXJvbm1lbnQ6IFJlY29yZDxzdHJpbmcsIGFueT4sXHJcblx0XHRwcm90ZWN0ZWQgX251eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG5cdFx0cHJvdGVjdGVkIF9jYWxsQXBpOiBDYWxsQXBpU2VydmljZSxcclxuXHRcdHByb3RlY3RlZCBfaHR0cDogSHR0cENsaWVudFxyXG5cdCkge1xyXG5cdFx0c3VwZXIoX2Vudmlyb25tZW50LCBfbnV4ZW9TZXJ2aWNlKTtcclxuXHJcblx0XHRpZiAodGhpcy5fbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50Py51c2VyPy5pZCAmJiB0aGlzLl9lbnZpcm9ubWVudD8uc29ja2V0VXJsKSB7XHJcblx0XHRcdHRoaXMuc29ja2V0Q29ubmVjdCgpXHJcblx0XHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0XHRzd2l0Y2hNYXAoKCkgPT4gdGhpcy5vbk1lc3NhZ2UkKSxcclxuXHRcdFx0XHRcdGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyb3IpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcclxuXHRcdFx0XHQpXHJcblx0XHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmxpc3RlbmVyT2JzZXJ2ZXIubmV4dChyZXMpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0VW5SZWFkQ291bnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuXHRcdHJldHVybiB0aGlzLl9jYWxsQXBpXHJcblx0XHRcdC5xdWVyeShcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRwYWdlUHJvdmlkZXI6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLnByb3ZpZGVycy5ub3RpZmljYXRpb25zTWFuZ28sXHJcblx0XHRcdFx0XHRwYWdlU2l6ZTogMSxcclxuXHRcdFx0XHRcdG5vdGZub3RpZmljYXRpb25jb250ZW50X2NvbXBhbnk6IGAke3RoaXMuX3RlbmFudElkfWAsXHJcblx0XHRcdFx0XHRub3Rmbm90aWZpY2F0aW9uY29udGVudF9hcHBsaWNhdGlvbktleTogdGhpcy5fYXBwS2V5LFxyXG5cdFx0XHRcdFx0bm90Zm5vdGlmaWNhdGlvbmNvbnRlbnRfc3RhdHVzOiBOT1RJRklDQVRJT05fU1RBVFVTLm5ld1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0e31cclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShtYXAoKGRhdGE6IEFwaVJlc3BvbnNlTW9kZWw8Tm90aWZpY2F0aW9uTW9kZWw+KSA9PiBkYXRhLnRvdGFsU2l6ZSA/PyAwKSk7XHJcblx0fVxyXG5cclxuXHRnZXROb3RpZmljYXRpb25zTW9uZ28ocGF5bG9hZDogUGF5bG9hZFBhcmFtc01vZGVsID0ge30pIHtcclxuXHRcdHJldHVybiB0aGlzLl9nZXROb3RpZmljYXRpb25zKE5vdGlmaWNhdGlvbnNTZXJ2aWNlLnByb3ZpZGVycy5ub3RpZmljYXRpb25zTWFuZ28sIHBheWxvYWQpO1xyXG5cdH1cclxuXHJcblx0Z2V0Tm90aWZpY2F0aW9ucyhwYXlsb2FkOiBQYXlsb2FkUGFyYW1zTW9kZWwgPSB7fSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2dldE5vdGlmaWNhdGlvbnMoTm90aWZpY2F0aW9uc1NlcnZpY2UucHJvdmlkZXJzLm5vdGlmaWNhdGlvbnMsIHBheWxvYWQpO1xyXG5cdH1cclxuXHJcblx0bWFya0FsbEFzUmVhZCgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9nbG9iYWxPcGVyYXRpb24oJ21hcmtBbGxBc1JlYWQnKTtcclxuXHR9XHJcblxyXG5cdG1hcmtBbGxOZXdBc1VucmVhZCgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9nbG9iYWxPcGVyYXRpb24oJ21hcmtBbGxBc1VucmVhZCcpO1xyXG5cdH1cclxuXHJcblx0bWFya0FzUmVhZChpZDogc3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fb3BlcmF0aW9uKGlkLCAnbWFya0FzUmVhZCcpO1xyXG5cdH1cclxuXHJcblx0bWFya0FzVW5yZWFkKGlkOiBzdHJpbmcpIHtcclxuXHRcdHJldHVybiB0aGlzLl9vcGVyYXRpb24oaWQsICdtYXJrQXNVbnJlYWQnKTtcclxuXHR9XHJcblxyXG5cdG1hcmtBc0RlbGV0ZWQoaWQ6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuX29wZXJhdGlvbihpZCwgJ21hcmtBc0RlbGV0ZWQnKTtcclxuXHR9XHJcblxyXG5cdHVuc3Vic2NyaWJlKGlkOiBzdHJpbmcpIHtcclxuXHRcdHJldHVybiB0aGlzLl9vcGVyYXRpb24oaWQsICd1bnN1YnNjcmliZScpO1xyXG5cdH1cclxuXHJcblx0c3Vic2NyaWJlKGlkOiBzdHJpbmcpIHtcclxuXHRcdHJldHVybiB0aGlzLl9vcGVyYXRpb24oaWQsICdzdWJzY3JpYmUnLCB7XHJcblx0XHRcdGNvbXBhbnlOYW1lOiBgJHt0aGlzLl90ZW5hbnRJZH1gXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHJlc2V0U3Vic2NyaXB0aW9ucygpIHtcclxuXHRcdHJldHVybiBmcm9tKFxyXG5cdFx0XHR0aGlzLl9udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuXHRcdFx0XHQub3BlcmF0aW9uKE5vdGlmaWNhdGlvbnNTZXJ2aWNlLm9wZXJhdGlvbnMucmVzZXQsIHtcclxuXHRcdFx0XHRcdHVybDogYCR7dGhpcy5fZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLl9lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWBcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdC5wYXJhbXMoe1xyXG5cdFx0XHRcdFx0Y29tcGFueU5hbWU6IGAke3RoaXMuX3RlbmFudElkfWAsXHJcblx0XHRcdFx0XHRhcHBsaWNhdGlvbktleTogdGhpcy5fYXBwS2V5XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHQuZXhlY3V0ZSgpXHJcblx0XHQpIGFzIE9ic2VydmFibGU8QXV0b21hdGlvblJlc3BvbnNlTW9kZWw8UmVjb3JkPFByb3BlcnR5S2V5LCBhbnk+Pj47XHJcblx0fVxyXG5cclxuXHRnZXRTb3VyY2VUeXBlcygpIHtcclxuXHRcdHJldHVybiB0aGlzLl9nZXRWb2NhYnVsYXJ5KGAke3RoaXMuX2Vudmlyb25tZW50Lm51eGVvfSR7Tm90aWZpY2F0aW9uc1NlcnZpY2Uuc291cmNlVHlwZX1gKTtcclxuXHR9XHJcblxyXG5cdGdldENoYW5uZWxzKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2dldFZvY2FidWxhcnkoYCR7dGhpcy5fZW52aXJvbm1lbnQubnV4ZW99JHtOb3RpZmljYXRpb25zU2VydmljZS5jaGFubmVsc31gKTtcclxuXHR9XHJcblxyXG5cdGdldERlZmluaXRpb25zKHBheWxvYWQ6IFBheWxvYWRQYXJhbXNNb2RlbCA9IHt9KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY2FsbEFwaVxyXG5cdFx0XHQucXVlcnkoXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0cGFnZVByb3ZpZGVyOiBOb3RpZmljYXRpb25zU2VydmljZS5wcm92aWRlcnMuZGVmaW5pdGlvbixcclxuXHRcdFx0XHRcdG5vdGZub3RpZmljYXRpb25kZWZfYXBwbGljYXRpb25LZXk6IHRoaXMuX2FwcEtleSxcclxuXHRcdFx0XHRcdHBhZ2VTaXplOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcclxuXHRcdFx0XHRcdG5vdGZub3RpZmljYXRpb25kZWZfaXNBY3RpdmU6IHRydWUsXHJcblx0XHRcdFx0XHQuLi5wYXlsb2FkXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRoZWFkZXJzOiB7XHJcblx0XHRcdFx0XHRcdHByb3BlcnRpZXM6ICcqJ1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShtYXAoKGRhdGE6IEFwaVJlc3BvbnNlTW9kZWw8Tm90aWZpY2F0aW9uRGVmaW5pdGlvbk1vZGVsPikgPT4gZGF0YS5lbnRyaWVzKSk7XHJcblx0fVxyXG5cclxuXHRnZXRTdWJzY3JpcHRpb25zKHBheWxvYWQ6IFBheWxvYWRQYXJhbXNNb2RlbCA9IHt9KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY2FsbEFwaVxyXG5cdFx0XHQucXVlcnkoXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0cGFnZVByb3ZpZGVyOiBOb3RpZmljYXRpb25zU2VydmljZS5wcm92aWRlcnMuc3Vic2NyaXB0aW9uLFxyXG5cdFx0XHRcdFx0bm90ZnN1YnNjcmlwdGlvbl9jb21wYW55TmFtZTogYCR7dGhpcy5fdGVuYW50SWR9YCxcclxuXHRcdFx0XHRcdG5vdGZzdWJzY3JpcHRpb25fYXBwbGljYXRpb25LZXk6IHRoaXMuX2FwcEtleSxcclxuXHRcdFx0XHRcdHBhZ2VTaXplOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcclxuXHRcdFx0XHRcdC4uLnBheWxvYWRcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdGhlYWRlcnM6IHtcclxuXHRcdFx0XHRcdFx0cHJvcGVydGllczogJyonXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpXHJcblx0XHRcdC5waXBlKG1hcCgoZGF0YTogQXBpUmVzcG9uc2VNb2RlbDxOb3RpZmljYXRpb25TdWJzY3JpcHRpb25Nb2RlbD4pID0+IGRhdGEuZW50cmllcykpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZ2V0Tm90aWZpY2F0aW9ucyhwYWdlUHJvdmlkZXI6IHN0cmluZywgcGF5bG9hZDogUGF5bG9hZFBhcmFtc01vZGVsID0ge30pIHtcclxuXHRcdHJldHVybiB0aGlzLl9jYWxsQXBpXHJcblx0XHRcdC5xdWVyeShcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRwYWdlUHJvdmlkZXI6IHBhZ2VQcm92aWRlcixcclxuXHRcdFx0XHRcdG5vdGZub3RpZmljYXRpb25jb250ZW50X2NvbXBhbnk6IGAke3RoaXMuX3RlbmFudElkfWAsXHJcblx0XHRcdFx0XHRub3Rmbm90aWZpY2F0aW9uY29udGVudF9hcHBsaWNhdGlvbktleTogdGhpcy5fYXBwS2V5LFxyXG5cdFx0XHRcdFx0Li4ucGF5bG9hZFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0aGVhZGVyczoge1xyXG5cdFx0XHRcdFx0XHRwcm9wZXJ0aWVzOiAnKidcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdClcclxuXHRcdFx0LnBpcGUobWFwKChkYXRhOiBBcGlSZXNwb25zZU1vZGVsPE5vdGlmaWNhdGlvbk1vZGVsPikgPT4gbWFwTm90aWZpY2F0aW9uc1RvUGFnaW5nUmVzcG9uc2UoZGF0YSkpKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2dldFZvY2FidWxhcnkodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFZvY2FidWxhcnlUeXBlW10+IHtcclxuXHRcdHJldHVybiBmcm9tKHRoaXMuX251eGVvU2VydmljZS5nZXRUb2tlbigpKS5waXBlKFxyXG5cdFx0XHRtYXAoKHRva2VuKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgYmVhcmVyVG9rZW4gPSBgQmVhcmVyICR7dG9rZW59YDtcclxuXHRcdFx0XHRjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgYmVhcmVyVG9rZW4pO1xyXG5cdFx0XHRcdHJldHVybiBoZWFkZXJzO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0c3dpdGNoTWFwKChoZWFkZXJzKSA9PiB0aGlzLl9odHRwLmdldDxBcGlSZXNwb25zZU1vZGVsPFZvY2FidWxhcnlUeXBlPj4odXJsLCB7IGhlYWRlcnMgfSkpLFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5lbnRyaWVzKSxcclxuXHRcdFx0bWFwKChkYXRhKSA9PiBkYXRhLnNvcnQoKGEsIGIpID0+IChiLnByb3BlcnRpZXNbJ29yZGVyaW5nJ10gPCBhLnByb3BlcnRpZXNbJ29yZGVyaW5nJ10gPyAxIDogLTEpKSlcclxuXHRcdCk7XHJcblx0fVxyXG5cdHByaXZhdGUgX29wZXJhdGlvbjxUUmVzcG9uc2UgPSBSZWNvcmQ8UHJvcGVydHlLZXksIGFueT4+KFxyXG5cdFx0aWQ6IHN0cmluZyxcclxuXHRcdG9wdGlvbjoga2V5b2YgdHlwZW9mIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLm9wZXJhdGlvbnMsXHJcblx0XHRwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxyXG5cdCkge1xyXG5cdFx0cmV0dXJuIGZyb20oXHJcblx0XHRcdHRoaXMuX251eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG5cdFx0XHRcdC5vcGVyYXRpb24oTm90aWZpY2F0aW9uc1NlcnZpY2Uub3BlcmF0aW9uc1tvcHRpb25dLCB7XHJcblx0XHRcdFx0XHR1cmw6IGAke3RoaXMuX2Vudmlyb25tZW50Lm51eGVvfSR7dGhpcy5fZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHQucGFyYW1zKHBhcmFtcylcclxuXHRcdFx0XHQuaW5wdXQoaWQpXHJcblx0XHRcdFx0LmV4ZWN1dGUoKVxyXG5cdFx0KSBhcyBPYnNlcnZhYmxlPEF1dG9tYXRpb25SZXNwb25zZU1vZGVsPFRSZXNwb25zZT4+O1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZ2xvYmFsT3BlcmF0aW9uKFxyXG5cdFx0b3B0aW9uOiBrZXlvZiB0eXBlb2YgTm90aWZpY2F0aW9uc1NlcnZpY2Uub3BlcmF0aW9ucyxcclxuXHRcdHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LFxyXG5cdFx0aGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XHJcblx0KSB7XHJcblx0XHRyZXR1cm4gZnJvbShcclxuXHRcdFx0dGhpcy5fbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcblx0XHRcdFx0Lm9wZXJhdGlvbihOb3RpZmljYXRpb25zU2VydmljZS5vcGVyYXRpb25zW29wdGlvbl0sIHtcclxuXHRcdFx0XHRcdHVybDogYCR7dGhpcy5fZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLl9lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWBcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdC5wYXJhbXMoe1xyXG5cdFx0XHRcdFx0Y29tcGFueU5hbWU6IGAke3RoaXMuX3RlbmFudElkfWAsXHJcblx0XHRcdFx0XHRhcHBsaWNhdGlvbktleTogdGhpcy5fYXBwS2V5LFxyXG5cdFx0XHRcdFx0Li4ucGFyYW1zXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHQuZXhlY3V0ZSh7fSlcclxuXHRcdCkgYXMgT2JzZXJ2YWJsZTxBdXRvbWF0aW9uUmVzcG9uc2VNb2RlbDxSZWNvcmQ8UHJvcGVydHlLZXksIGFueT4+PjtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -31042,8 +31042,7 @@ class NotificationsService extends SocketService {
|
|
|
31042
31042
|
this._callApi = _callApi;
|
|
31043
31043
|
this._http = _http;
|
|
31044
31044
|
this.listenerObserver = new Subject();
|
|
31045
|
-
if (((_b = (_a = this._nuxeoService.nuxeoClient) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.id) &&
|
|
31046
|
-
((_c = this._environment) === null || _c === void 0 ? void 0 : _c.socketUrl)) {
|
|
31045
|
+
if (((_b = (_a = this._nuxeoService.nuxeoClient) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.id) && ((_c = this._environment) === null || _c === void 0 ? void 0 : _c.socketUrl)) {
|
|
31047
31046
|
this.socketConnect()
|
|
31048
31047
|
.pipe(switchMap(() => this.onMessage$), catchError((error) => {
|
|
31049
31048
|
console.log(error);
|
|
@@ -31055,7 +31054,8 @@ class NotificationsService extends SocketService {
|
|
|
31055
31054
|
}
|
|
31056
31055
|
}
|
|
31057
31056
|
get _tenantId() {
|
|
31058
|
-
|
|
31057
|
+
var _a;
|
|
31058
|
+
return (_a = this._nuxeoService.nuxeoClient.user.properties.tenantId) !== null && _a !== void 0 ? _a : '';
|
|
31059
31059
|
}
|
|
31060
31060
|
get _appKey() {
|
|
31061
31061
|
var _a;
|
|
@@ -31066,7 +31066,7 @@ class NotificationsService extends SocketService {
|
|
|
31066
31066
|
.query({
|
|
31067
31067
|
pageProvider: NotificationsService.providers.notificationsMango,
|
|
31068
31068
|
pageSize: 1,
|
|
31069
|
-
notfnotificationcontent_company: this._tenantId
|
|
31069
|
+
notfnotificationcontent_company: `${this._tenantId}`,
|
|
31070
31070
|
notfnotificationcontent_applicationKey: this._appKey,
|
|
31071
31071
|
notfnotificationcontent_status: NOTIFICATION_STATUS.new
|
|
31072
31072
|
}, {})
|
|
@@ -31098,7 +31098,7 @@ class NotificationsService extends SocketService {
|
|
|
31098
31098
|
}
|
|
31099
31099
|
subscribe(id) {
|
|
31100
31100
|
return this._operation(id, 'subscribe', {
|
|
31101
|
-
companyName: this._tenantId
|
|
31101
|
+
companyName: `${this._tenantId}`
|
|
31102
31102
|
});
|
|
31103
31103
|
}
|
|
31104
31104
|
resetSubscriptions() {
|
|
@@ -31107,7 +31107,7 @@ class NotificationsService extends SocketService {
|
|
|
31107
31107
|
url: `${this._environment.nuxeo}${this._environment.customAutomation}`
|
|
31108
31108
|
})
|
|
31109
31109
|
.params({
|
|
31110
|
-
companyName: this._tenantId
|
|
31110
|
+
companyName: `${this._tenantId}`,
|
|
31111
31111
|
applicationKey: this._appKey
|
|
31112
31112
|
})
|
|
31113
31113
|
.execute());
|
|
@@ -31129,7 +31129,7 @@ class NotificationsService extends SocketService {
|
|
|
31129
31129
|
}
|
|
31130
31130
|
getSubscriptions(payload = {}) {
|
|
31131
31131
|
return this._callApi
|
|
31132
|
-
.query(Object.assign({ pageProvider: NotificationsService.providers.subscription, notfsubscription_companyName: this._tenantId
|
|
31132
|
+
.query(Object.assign({ pageProvider: NotificationsService.providers.subscription, notfsubscription_companyName: `${this._tenantId}`, notfsubscription_applicationKey: this._appKey, pageSize: Number.MAX_SAFE_INTEGER }, payload), {
|
|
31133
31133
|
headers: {
|
|
31134
31134
|
properties: '*'
|
|
31135
31135
|
}
|
|
@@ -31138,7 +31138,7 @@ class NotificationsService extends SocketService {
|
|
|
31138
31138
|
}
|
|
31139
31139
|
_getNotifications(pageProvider, payload = {}) {
|
|
31140
31140
|
return this._callApi
|
|
31141
|
-
.query(Object.assign({ pageProvider: pageProvider, notfnotificationcontent_company: this._tenantId
|
|
31141
|
+
.query(Object.assign({ pageProvider: pageProvider, notfnotificationcontent_company: `${this._tenantId}`, notfnotificationcontent_applicationKey: this._appKey }, payload), {
|
|
31142
31142
|
headers: {
|
|
31143
31143
|
properties: '*'
|
|
31144
31144
|
}
|
|
@@ -31150,7 +31150,7 @@ class NotificationsService extends SocketService {
|
|
|
31150
31150
|
const bearerToken = `Bearer ${token}`;
|
|
31151
31151
|
const headers = new HttpHeaders().set('Authorization', bearerToken);
|
|
31152
31152
|
return headers;
|
|
31153
|
-
}), switchMap((headers) => this._http.get(url, { headers })), map((response) => response.entries), map((data) => data.sort((a, b) => b.properties['ordering'] < a.properties['ordering'] ? 1 : -1)));
|
|
31153
|
+
}), switchMap((headers) => this._http.get(url, { headers })), map((response) => response.entries), map((data) => data.sort((a, b) => (b.properties['ordering'] < a.properties['ordering'] ? 1 : -1))));
|
|
31154
31154
|
}
|
|
31155
31155
|
_operation(id, option, params = {}) {
|
|
31156
31156
|
return from(this._nuxeoService.nuxeoClient
|
|
@@ -31166,7 +31166,7 @@ class NotificationsService extends SocketService {
|
|
|
31166
31166
|
.operation(NotificationsService.operations[option], {
|
|
31167
31167
|
url: `${this._environment.nuxeo}${this._environment.customAutomation}`
|
|
31168
31168
|
})
|
|
31169
|
-
.params(Object.assign({ companyName: this._tenantId
|
|
31169
|
+
.params(Object.assign({ companyName: `${this._tenantId}`, applicationKey: this._appKey }, params))
|
|
31170
31170
|
.execute({}));
|
|
31171
31171
|
}
|
|
31172
31172
|
}
|
|
@@ -31997,7 +31997,7 @@ class NotificationsButtonComponent extends BaseNotification {
|
|
|
31997
31997
|
}
|
|
31998
31998
|
}
|
|
31999
31999
|
NotificationsButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsButtonComponent, deps: [{ token: i0.Injector }, { token: TranslationService }, { token: CustomToastrService }, { token: i0.ChangeDetectorRef }, { token: NOTIFICATIONS_LIST_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
32000
|
-
NotificationsButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationsButtonComponent, selector: "app-notifications-button", inputs: { styleClass: "styleClass", badgeOptions: "badgeOptions", shouldMarkAsUnread: "shouldMarkAsUnread", ignoredToastEvents: "ignoredToastEvents" }, outputs: { listItemClick: "listItemClick", openSettings: "openSettings", openNotifications: "openNotifications", onNotification: "onNotification" }, host: { classAttribute: "inline-flex justify-center items-center notification-button" }, queries: [{ propertyName: "customIconTemplate", first: true, predicate: NOTIFICATION_ICON, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<button\r\n *ngIf=\"panelMode === panelModeEnum.panel\"\r\n [matMenuTriggerFor]=\"notifications\"\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (menuOpened)=\"markAllAsUnread()\"\r\n>\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n</button>\r\n\r\n<mat-menu #notifications=\"matMenu\" class=\"notification-list-panel\">\r\n <ng-template matMenuContent>\r\n <app-notifications-list\r\n (itemClicked)=\"listItemClick.emit($event); notifications.closed.emit()\"\r\n (openSettings)=\"openSettings.emit($event); notifications.closed.emit()\"\r\n (openNotifications)=\"openNotifications.emit($event); notifications.closed.emit()\"\r\n (markAllRead)=\"refreshUnreadCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n <div class=\"notification-list-panel__footer flex justify-center\">\r\n <ng-content select=\"[notifications-footer]\"></ng-content>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-container *ngIf=\"panelMode === panelModeEnum.sidebar\">\r\n <button\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (click)=\"toggleSideBar(); markAllAsUnread()\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n </button>\r\n <app-notifications-sidebar\r\n [(visible)]=\"isSidebarOpened\"\r\n (visibleChange)=\"refreshUnreadCount()\"\r\n [position]=\"sidebarPosition$ | async\"\r\n >\r\n <ng-template appNotificationSidebarContent>\r\n <app-notifications-list\r\n class=\"notifications-sidebar\"\r\n (itemClicked)=\"\r\n listItemClick.emit($event); toggleSideBar(false); refreshUnreadCount()\r\n \"\r\n (openSettings)=\"openSettings.emit($event); toggleSideBar(false)\"\r\n (openNotifications)=\"openNotifications.emit($event); toggleSideBar(false)\"\r\n (markAllRead)=\"refreshUnreadCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n </app-notifications-sidebar>\r\n</ng-container>\r\n\r\n<ng-template #defaultIconTemplate>\r\n <i class=\"bi bi-bell bell\"></i>\r\n</ng-template>\r\n", styles: [".notification-button{font-size:var(--not-btn-font-size, 1.5rem);width:var(--not-btn-width, 40px)}.notification-list-panel{--width: var(--nos-panel-width, min(80vw, 450px));width:var(--width);border-radius:var(--nos-panel-radius, 5px);overflow:hidden;-webkit-overflow-scrolling:touch;outline:0;background:var(--nos-panel-background, #fff)}.notification-list-panel.mat-menu-panel{max-width:var(--width);max-height:var(--nos-panel-max-height, var(--height))}.notification-list-panel__navigate-btn{background:var(--not-btn-background, transparent);border-radius:var(--not-btn-radius, 5px);padding:var(--not-btn-padding, .5rem 1rem);margin:var(--not-btn-margin, .5rem 0);color:var(--not-btn-color, currentColor);width:var(--not-btn-width, 90%)}.notification-list-panel__navigate-btn:hover{--not-btn-background: var(--not-btn-hover-background, #f0f0f0);--not-btn-color: var(--not-btn-hover-color);-webkit-text-decoration:var(--not-btn-decoration, none);text-decoration:var(--not-btn-decoration, none)}.notification-list-panel__navigate-btn:active{--not-btn-background: var(--not-btn-active-background, #e2e2e2);--not-btn-color: var(--not-btn-active-color)}.notifications-sidebar{--nto-list-header-padding: var(--sidebar-list-header-padding
|
|
32000
|
+
NotificationsButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationsButtonComponent, selector: "app-notifications-button", inputs: { styleClass: "styleClass", badgeOptions: "badgeOptions", shouldMarkAsUnread: "shouldMarkAsUnread", ignoredToastEvents: "ignoredToastEvents" }, outputs: { listItemClick: "listItemClick", openSettings: "openSettings", openNotifications: "openNotifications", onNotification: "onNotification" }, host: { classAttribute: "inline-flex justify-center items-center notification-button" }, queries: [{ propertyName: "customIconTemplate", first: true, predicate: NOTIFICATION_ICON, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<button\r\n *ngIf=\"panelMode === panelModeEnum.panel\"\r\n [matMenuTriggerFor]=\"notifications\"\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (menuOpened)=\"markAllAsUnread()\"\r\n>\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n</button>\r\n\r\n<mat-menu #notifications=\"matMenu\" class=\"notification-list-panel\">\r\n <ng-template matMenuContent>\r\n <app-notifications-list\r\n (itemClicked)=\"listItemClick.emit($event); notifications.closed.emit()\"\r\n (openSettings)=\"openSettings.emit($event); notifications.closed.emit()\"\r\n (openNotifications)=\"openNotifications.emit($event); notifications.closed.emit()\"\r\n (markAllRead)=\"refreshUnreadCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n <div class=\"notification-list-panel__footer flex justify-center\">\r\n <ng-content select=\"[notifications-footer]\"></ng-content>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-container *ngIf=\"panelMode === panelModeEnum.sidebar\">\r\n <button\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (click)=\"toggleSideBar(); markAllAsUnread()\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n </button>\r\n <app-notifications-sidebar\r\n [(visible)]=\"isSidebarOpened\"\r\n (visibleChange)=\"refreshUnreadCount()\"\r\n [position]=\"sidebarPosition$ | async\"\r\n >\r\n <ng-template appNotificationSidebarContent>\r\n <app-notifications-list\r\n class=\"notifications-sidebar\"\r\n (itemClicked)=\"\r\n listItemClick.emit($event); toggleSideBar(false); refreshUnreadCount()\r\n \"\r\n (openSettings)=\"openSettings.emit($event); toggleSideBar(false)\"\r\n (openNotifications)=\"openNotifications.emit($event); toggleSideBar(false)\"\r\n (markAllRead)=\"refreshUnreadCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n </app-notifications-sidebar>\r\n</ng-container>\r\n\r\n<ng-template #defaultIconTemplate>\r\n <i class=\"bi bi-bell bell\"></i>\r\n</ng-template>\r\n", styles: [".notification-button{font-size:var(--not-btn-font-size, 1.5rem);width:var(--not-btn-width, 40px)}.notification-button .mat-badge-content{text-overflow:unset;width:18px;height:18px;line-height:18px}.notification-list-panel{--width: var(--nos-panel-width, min(80vw, 450px));width:var(--width);border-radius:var(--nos-panel-radius, 5px);overflow:hidden;-webkit-overflow-scrolling:touch;outline:0;background:var(--nos-panel-background, #fff)}.notification-list-panel.mat-menu-panel{max-width:var(--width);max-height:var(--nos-panel-max-height, var(--height))}.notification-list-panel__navigate-btn{background:var(--not-btn-background, transparent);border-radius:var(--not-btn-radius, 5px);padding:var(--not-btn-padding, .5rem 1rem);margin:var(--not-btn-margin, .5rem 0);color:var(--not-btn-color, currentColor);width:var(--not-btn-width, 90%)}.notification-list-panel__navigate-btn:hover{--not-btn-background: var(--not-btn-hover-background, #f0f0f0);--not-btn-color: var(--not-btn-hover-color);-webkit-text-decoration:var(--not-btn-decoration, none);text-decoration:var(--not-btn-decoration, none)}.notification-list-panel__navigate-btn:active{--not-btn-background: var(--not-btn-active-background, #e2e2e2);--not-btn-color: var(--not-btn-active-color)}.notifications-sidebar{--nto-list-header-padding: var(--sidebar-list-header-padding, 1rem);--nto-list-height: var(--sidebar-list-height, calc(100vh - 100px))}\n"], components: [{ type: i3$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: NotificationsListComponent, selector: "app-notifications-list", outputs: ["openSettings", "openNotifications"] }, { type: NotificationsSidebarComponent, selector: "app-notifications-sidebar", inputs: ["appendToBody", "clearOnCLose", "visible", "position"], outputs: ["visibleChange", "onShow", "onHide"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i7$3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgePosition", "matBadgeSize", "matBadgeColor", "matBadgeOverlap", "matBadgeDescription", "matBadgeHidden", "matBadge"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$2.MatMenuContent, selector: "ng-template[matMenuContent]" }, { type: NotificationSidebarContentDirective, selector: "[appNotificationSidebarContent]" }], pipes: { "async": i4$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
32001
32001
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsButtonComponent, decorators: [{
|
|
32002
32002
|
type: Component,
|
|
32003
32003
|
args: [{
|