@eo-sdk/client 10.0.0-beta.5 → 10.0.0-rc.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/app/eo-client/about-state/about-state.component.d.ts +0 -5
- package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/dashboard.component.d.ts +23 -30
- package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts +19 -0
- package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.d.ts +24 -0
- package/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts +20 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.d.ts +19 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.d.ts +4 -0
- package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts +25 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.d.ts +20 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.d.ts +4 -0
- package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts +28 -0
- package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +44 -0
- package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -0
- package/app/eo-client/eo-client.module.d.ts +24 -13
- package/app/eo-client/eo-client.module.d.ts.map +1 -1
- package/app/eo-client/login/login.component.d.ts +8 -3
- package/app/eo-client/login/login.component.d.ts.map +1 -1
- package/app/eo-framework/actions/action.module.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts +9 -2
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +1 -0
- package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +30 -1
- package/assets/_default/i18n/en.json +30 -1
- package/assets/_default/svg/ic_noUrl.svg +1 -0
- package/assets/dashboard.json +47 -0
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +5 -11
- package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +133 -91
- package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +59 -0
- package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +39 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +53 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +42 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.mjs +2 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +65 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +43 -0
- package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.mjs +2 -0
- package/esm2020/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +117 -0
- package/esm2020/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +115 -0
- package/esm2020/app/eo-client/eo-client.module.mjs +44 -6
- package/esm2020/app/eo-client/login/login.component.mjs +33 -13
- package/esm2020/app/eo-client/settings/settings.component.mjs +3 -3
- package/esm2020/app/eo-framework/actions/action.module.mjs +1 -1
- package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +2 -1
- package/esm2020/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +2 -2
- package/esm2020/app/eo-framework/frame/frame.component.mjs +2 -2
- package/esm2020/app/eo-framework/object-details/object-details.component.mjs +27 -13
- package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +2 -2
- package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +1 -1
- package/esm2020/app/eo-framework/result-list/result-list.component.mjs +4 -2
- package/esm2020/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
- package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +20 -12
- package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
- package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +24 -30
- package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.mjs +1 -1
- package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.mjs +8 -6
- package/esm2020/projects/eo-sdk/core/lib/service/config/config.service.mjs +1 -1
- package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +12 -6
- package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +11 -1
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +925 -914
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2015/eo-sdk-client.mjs +766 -229
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +925 -914
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +770 -228
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/package.json +5 -4
- package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts +14 -20
- package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts +4 -0
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts +3 -1
- package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/config/config.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +4 -1
- package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +6 -0
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +1 -1
- package/scss/_eo-variables.scss +1 -0
- package/styles.css +1 -0
|
@@ -1,59 +1,120 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { Component, HostListener, ViewChild } from '@angular/core';
|
|
3
3
|
import { Utils } from '@eo-sdk/core';
|
|
4
|
+
import { PictureWidgetComponent, PictureWidgetSetupComponent, TodoWidgetComponent, TodoWidgetSetupComponent } from '@yuuvis/widget-grid';
|
|
5
|
+
import { switchMap } from 'rxjs/operators';
|
|
6
|
+
import { listAnimation } from '../../eo-framework';
|
|
7
|
+
import { SearchWidgetComponent } from './widgets/search-widget/search-widget.component';
|
|
8
|
+
import { IframeSetupComponent } from './widgets/iframe-widget/iframe-setup/iframe-setup.component';
|
|
9
|
+
import { LastEditedAndCreatedComponent } from './widgets/last-edited-widget/last-edited-and-created.component';
|
|
10
|
+
import { IframeWidgetComponent } from './widgets/iframe-widget/iframe-widget.component';
|
|
11
|
+
import { InfoIntrayWidgetComponent } from './widgets/info-intray-widget/info-intray-widget.component';
|
|
12
|
+
import { InfoIntraySetupComponent } from './widgets/info-intray-widget/info-intray-setup/info-intray-setup.component';
|
|
13
|
+
import { InfoInboxWidgetComponent } from './widgets/info-inbox-widget/info-inbox-widget.component';
|
|
14
|
+
import { InfoInboxSetupComponent } from './widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component';
|
|
4
15
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
5
|
-
import { listAnimation } from '../../eo-framework/animations/animations';
|
|
6
16
|
import * as i0 from "@angular/core";
|
|
7
17
|
import * as i1 from "@eo-sdk/core";
|
|
8
|
-
import * as i2 from "
|
|
9
|
-
import * as i3 from "
|
|
10
|
-
import * as i4 from "@angular/
|
|
11
|
-
import * as i5 from "@angular/
|
|
12
|
-
import * as i6 from "@ngx-translate/core";
|
|
13
|
-
import * as i7 from "../../eo-framework/ui/eo-icon/eo-icon.component";
|
|
14
|
-
import * as i8 from "../../eo-framework/ui/router-link/router-link.directive";
|
|
15
|
-
import * as i9 from "../../eo-framework/tree/tree.component";
|
|
16
|
-
import * as i10 from "../../eo-framework/quick-search/quick-search/quick-search.component";
|
|
17
|
-
import * as i11 from "../../eo-framework/stored-query/stored-query/stored-query.component";
|
|
18
|
-
import * as i12 from "../../eo-framework-core/pipes/locale-date.pipe";
|
|
19
|
-
import * as i13 from "../../eo-framework-core/pipes/locale-number.pipe";
|
|
20
|
-
import * as i14 from "../../eo-framework-core/pipes/keys.pipe";
|
|
18
|
+
import * as i2 from "@yuuvis/widget-grid";
|
|
19
|
+
import * as i3 from "../../eo-framework-core";
|
|
20
|
+
import * as i4 from "@angular/router";
|
|
21
|
+
import * as i5 from "@angular/common/http";
|
|
21
22
|
let DashboardComponent = class DashboardComponent {
|
|
22
23
|
onKey(event) {
|
|
23
24
|
if (event.which === 27) {
|
|
24
25
|
this.selectStoredQuery(null);
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
constructor(userService, titleService, router,
|
|
28
|
+
constructor(userService, widgetGridRegistry, titleService, router, http, config, storageService, translate, capabilityService, storedQueriesService) {
|
|
28
29
|
this.userService = userService;
|
|
30
|
+
this.widgetGridRegistry = widgetGridRegistry;
|
|
29
31
|
this.titleService = titleService;
|
|
30
32
|
this.router = router;
|
|
31
|
-
this.
|
|
33
|
+
this.http = http;
|
|
32
34
|
this.config = config;
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.systemService = systemService;
|
|
36
|
-
this.inboxService = inboxService;
|
|
37
|
-
this.prepareService = prepareService;
|
|
38
|
-
this.envService = envService;
|
|
35
|
+
this.storageService = storageService;
|
|
36
|
+
this.translate = translate;
|
|
39
37
|
this.capabilityService = capabilityService;
|
|
40
38
|
this.storedQueriesService = storedQueriesService;
|
|
41
|
-
this.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
this.workspaceOptions = {
|
|
40
|
+
gridConfig: {
|
|
41
|
+
rows: 30,
|
|
42
|
+
newItemWidth: 2,
|
|
43
|
+
newItemHeight: 5
|
|
44
|
+
}
|
|
45
45
|
};
|
|
46
|
+
this.savedWorkspace = [];
|
|
47
|
+
this.storedQueries = [];
|
|
46
48
|
this.tree = {};
|
|
47
|
-
this.
|
|
48
|
-
size: 10,
|
|
49
|
-
total: 0,
|
|
50
|
-
lately: []
|
|
51
|
-
};
|
|
49
|
+
this.STORAGE_KEY = 'eo.client.dashboard.currentWorkspace';
|
|
52
50
|
this.titleService.setDefaultTitle();
|
|
53
51
|
this.backgroundImage = `url(${this.config.getDashboardBackgroundImage()})`;
|
|
52
|
+
this.setWidgetGridLabels();
|
|
54
53
|
}
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
onWorkspacesConfigChange(c) {
|
|
55
|
+
this.saveWorkspacesConfig(c);
|
|
56
|
+
}
|
|
57
|
+
setWidgetGridLabels() {
|
|
58
|
+
this.widgetGridRegistry.updateWidgetGridLabels({
|
|
59
|
+
widgetPickerTitle: this.translate.instant('eo.workspace.widgetGrid.widgetPickerTitle'),
|
|
60
|
+
addWorkspaceTooltip: this.translate.instant('eo.workspace.widgetGrid.addWorkspace'),
|
|
61
|
+
noopWidgetLabel: this.translate.instant('eo.workspace.widgetGrid.noopWidgetLabel'),
|
|
62
|
+
workspacesEmptyMessage: this.translate.instant('eo.workspace.widgetGrid.workspacesEmptyMessage'),
|
|
63
|
+
newWorkspaceDefaultLabel: this.translate.instant('eo.workspace.widgetGrid.newWorkspaceDefaultLabel'),
|
|
64
|
+
workspaceRemoveConfirmMessage: this.translate.instant('eo.workspace.widgetGrid.workspaceRemoveConfirmMessage'),
|
|
65
|
+
workspaceEditDone: this.translate.instant('eo.workspace.widgetGrid.workspaceEditDone'),
|
|
66
|
+
workspaceEditCancel: this.translate.instant('eo.workspace.widgetGrid.cancel'),
|
|
67
|
+
save: this.translate.instant('eo.workspace.widgetGrid.save'),
|
|
68
|
+
cancel: this.translate.instant('eo.workspace.widgetGrid.cancel'),
|
|
69
|
+
confirm: this.translate.instant('eo.workspace.widgetGrid.confirm'),
|
|
70
|
+
widgetTodoHeadlineLabel: this.translate.instant('eo.workspace.widgetGrid.widgetTodoHeadlineLabel'),
|
|
71
|
+
widgetTodoTaskTitleLabel: this.translate.instant('eo.workspace.widgetGrid.widgetTitleLabel')
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
registerWidgets() {
|
|
75
|
+
// register the two "baked in" widgets
|
|
76
|
+
this.widgetGridRegistry.registerGridWidgets([
|
|
77
|
+
{
|
|
78
|
+
name: 'yuv.widget.picture',
|
|
79
|
+
label: this.translate.instant('eo.workspace.widget.picture.label'),
|
|
80
|
+
setupComponent: PictureWidgetSetupComponent,
|
|
81
|
+
widgetComponent: PictureWidgetComponent,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'yuv.widget.todo',
|
|
85
|
+
label: this.translate.instant('eo.workspace.widgetGrid.widgetTodoHeadlineLabel'),
|
|
86
|
+
setupComponent: TodoWidgetSetupComponent,
|
|
87
|
+
widgetComponent: TodoWidgetComponent,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: 'yuv.widget.LastEdited',
|
|
91
|
+
label: this.translate.instant('eo.workspace.widget.lastEditedOrLastCreated.label'),
|
|
92
|
+
widgetComponent: LastEditedAndCreatedComponent,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'yuv.widget.iframe',
|
|
96
|
+
label: this.translate.instant('eo.workspace.widget.iframe.label'),
|
|
97
|
+
widgetComponent: IframeWidgetComponent,
|
|
98
|
+
setupComponent: IframeSetupComponent,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'yuv.widget.infoIntray',
|
|
102
|
+
label: this.translate.instant('eo.workspace.widget.infoIntray.label'),
|
|
103
|
+
widgetComponent: InfoIntrayWidgetComponent,
|
|
104
|
+
setupComponent: InfoIntraySetupComponent
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'yuv.widget.infoInbox',
|
|
108
|
+
label: this.translate.instant('eo.workspace.widget.infoInbox.label'),
|
|
109
|
+
widgetComponent: InfoInboxWidgetComponent,
|
|
110
|
+
setupComponent: InfoInboxSetupComponent
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: 'yuv.widget.quickSearch',
|
|
114
|
+
label: this.translate.instant('eo.workspace.widget.quicksearch.label'),
|
|
115
|
+
widgetComponent: SearchWidgetComponent,
|
|
116
|
+
},
|
|
117
|
+
]);
|
|
57
118
|
}
|
|
58
119
|
selectStoredQuery(q) {
|
|
59
120
|
this.selectedQuery = q;
|
|
@@ -77,9 +138,6 @@ let DashboardComponent = class DashboardComponent {
|
|
|
77
138
|
const uriParamQuery = { queryParams: { 'query': uriParam } };
|
|
78
139
|
this.router.navigate(['/result'], uriParamQuery);
|
|
79
140
|
}
|
|
80
|
-
executeSearch(objectType) {
|
|
81
|
-
this.quickSearchEl.executeSearch(objectType);
|
|
82
|
-
}
|
|
83
141
|
getTreeNodes(key) {
|
|
84
142
|
return this.quickSearchResult.groups[key].map(group => ({
|
|
85
143
|
id: group.data.id,
|
|
@@ -89,69 +147,53 @@ let DashboardComponent = class DashboardComponent {
|
|
|
89
147
|
badges: [{ value: group.count }]
|
|
90
148
|
}));
|
|
91
149
|
}
|
|
92
|
-
trackByFn(index, item) {
|
|
93
|
-
return item.id;
|
|
94
|
-
}
|
|
95
|
-
captureObjectLists() {
|
|
96
|
-
const q = {
|
|
97
|
-
filters: {
|
|
98
|
-
modifier: {
|
|
99
|
-
o: 'eq',
|
|
100
|
-
v1: this.user.name
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
fields: ['title', 'description', 'modified', 'type'],
|
|
104
|
-
options: {
|
|
105
|
-
sort: {
|
|
106
|
-
modified: {
|
|
107
|
-
order: 'desc'
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
this.searchService
|
|
113
|
-
.executeQuery(q, false, this.modifiedByMe.size)
|
|
114
|
-
.subscribe(res => {
|
|
115
|
-
this.modifiedByMe.total = res.hits.total;
|
|
116
|
-
this.modifiedByMe.lately = res.hits.hits.map(item => {
|
|
117
|
-
const { id, title, description, type, modified } = item._source;
|
|
118
|
-
return {
|
|
119
|
-
id,
|
|
120
|
-
type: this.systemService.getObjectType(type),
|
|
121
|
-
title,
|
|
122
|
-
description,
|
|
123
|
-
modified
|
|
124
|
-
};
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
150
|
ngOnInit() {
|
|
129
|
-
this.
|
|
130
|
-
|
|
131
|
-
.subscribe(user => {
|
|
132
|
-
this.user = user;
|
|
133
|
-
this.captureObjectLists();
|
|
134
|
-
});
|
|
151
|
+
this.loadWorkspacesConfig();
|
|
152
|
+
this.registerWidgets();
|
|
135
153
|
this.capabilities = this.capabilityService.getCapabilities();
|
|
136
154
|
if (this.capabilities.storedqueries) {
|
|
137
155
|
this.storedQueriesService.getStoredQueries$()
|
|
138
156
|
.pipe(untilDestroyed(this))
|
|
139
157
|
.subscribe(queriesSubscription => this.storedQueries = queriesSubscription.queries.filter(q => q.favorite).sort(Utils.sortValues('name')));
|
|
140
158
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
159
|
+
}
|
|
160
|
+
loadWorkspacesConfig() {
|
|
161
|
+
if (!this.userService.getCurrentUser().userSettings.workspaceOptions || this.userService.getCurrentUser().userSettings.workspaceOptions.workspaces.length === 0) {
|
|
162
|
+
this.http.get('assets/dashboard.json').subscribe({
|
|
163
|
+
next: (res) => {
|
|
164
|
+
this.workspaceConfig = res;
|
|
165
|
+
this.workspaceConfig.workspaces[0].label = this.translate.instant(this.workspaceConfig.workspaces[0].label);
|
|
166
|
+
this.workspaceConfig.workspaces[0].grid.forEach(grid => {
|
|
167
|
+
if (grid.widgetConfig) {
|
|
168
|
+
grid.widgetConfig.title = this.translate.instant(grid.widgetConfig.title);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
},
|
|
172
|
+
error: () => {
|
|
173
|
+
// no config file found
|
|
174
|
+
}
|
|
175
|
+
});
|
|
145
176
|
}
|
|
146
|
-
|
|
147
|
-
this.
|
|
148
|
-
|
|
149
|
-
|
|
177
|
+
else {
|
|
178
|
+
this.workspaceConfig = this.userService.getCurrentUser().userSettings.workspaceOptions;
|
|
179
|
+
const currentWorkspace = this.storageService.getItem(this.STORAGE_KEY);
|
|
180
|
+
if (currentWorkspace && this.workspaceConfig.workspaces.map((w) => w.id).includes(currentWorkspace)) {
|
|
181
|
+
this.workspaceConfig.currentWorkspace = currentWorkspace;
|
|
182
|
+
}
|
|
183
|
+
else if (!!this.workspaceConfig.workspaces.length) {
|
|
184
|
+
this.workspaceConfig.currentWorkspace = this.workspaceConfig.workspaces[0].id;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
saveWorkspacesConfig(c) {
|
|
189
|
+
// the selected workspace is saved on the device while the workspaces themselves are stored on the user service
|
|
190
|
+
if (c) {
|
|
191
|
+
this.userService.saveChangeWorkspace(c).pipe(switchMap(async () => this.storageService.setItem(this.STORAGE_KEY, c.currentWorkspace))).subscribe();
|
|
150
192
|
}
|
|
151
193
|
}
|
|
152
194
|
};
|
|
153
|
-
DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.UserService }, { token: i2.
|
|
154
|
-
DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: DashboardComponent, selector: "eo-dashboard", host: { listeners: { "window:keyup": "onKey($event)" } }, viewQueries: [{ propertyName: "quickSearchEl", first: true, predicate: ["quickSearch"], descendants: true }], ngImport: i0, template: "<div class=\"fade\"></div>\n<div class=\"dashboard\" [style.background-image]=\"backgroundImage\">\n\n <div class=\"db-content\" [ngClass]=\"{centerFocus: (quickSearchResult && quickSearchResult.total > 0) || selectedQuery}\">\n\n <!-- info area --->\n <div class=\"db-left\">\n <a class=\"info\" *ngIf=\"capabilities.inbox && inboxState && inboxState.totalmessages > 0\"\n [routerLink]=\"['/inbox']\">\n <div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"count\">{{inboxState.totalmessages}}</div>\n </div>\n <div class=\"msg\" translate>eo.dashboard.info.inbox.msg</div>\n </a>\n <a class=\"info\" *ngIf=\"capabilities.intray && preparedItemsCount > 0\"\n [routerLink]=\"['/prepare']\">\n <div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"count\">{{preparedItemsCount}}</div>\n </div>\n <div class=\"msg\" translate>eo.dashboard.info.intray.msg</div>\n </a>\n </div>\n\n <!-- main content area -->\n <div class=\"db-center\">\n\n <div class=\"top\">\n <div class=\"quick-search\" [ngClass]=\"{disabled: selectedQuery}\">\n\n <div class=\"count\" *ngIf=\"quickSearchResult && quickSearchResult.total !== -1\" (click)=\"executeSearch()\">\n <div *ngIf=\"quickSearchResult.total\">\n <span class=\"count-total\">{{quickSearchResult.total | localeDecimal}}</span>\n <span class=\"label\" translate>eo.quicksearch.hits</span>\n </div>\n <span class=\"label\" *ngIf=\"!quickSearchResult.total\" translate>eo.quicksearch.reults.empty</span>\n </div>\n\n <div class=\"input\">\n <eo-quick-search (onResult)=\"onQuickSearchResult($event)\"\n (onInputChange)=\"onQuickSearchInputChange($event)\"\n #quickSearch></eo-quick-search>\n </div>\n </div>\n </div>\n\n <div class=\"bottom\">\n\n <div class=\"quick-search-results\" *ngIf=\"quickSearchResult && quickSearchResult.total > 0; else storedqueries\">\n\n <div class=\"group\" *ngFor=\"let key of quickSearchResult.groups | keys; index as i\">\n <h2 *ngIf=\"key !== '0'; else maingroup\">{{key}}</h2>\n <ng-template #maingroup>\n <h2 translate>eo.quicksearch.result.group.global</h2>\n </ng-template>\n\n <eo-tree [tree]=\"tree[key]\" [(ngModel)]=\"selectedQuickSearchResultItem\" (onSelected)=\"executeSearch($event.data)\" (expandedNodesChanged)=\"executeSearch($event.data)\" [selectionKey]=\"'Enter'\">\n </eo-tree>\n </div>\n </div>\n\n <ng-template #storedqueries>\n\n <div class=\"stored-queries\" *ngIf=\"capabilities.storedqueries && storedQueries.length\">\n\n <div class=\"query\" *ngIf=\"selectedQuery; else querylist\">\n <div>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"selectStoredQuery(null)\"></eo-icon>\n </div>\n <eo-stored-query [query]=\"selectedQuery\"\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </div>\n\n\n <ng-template #querylist>\n <div class=\"queries\" [@listAnimation]=\"storedQueries.length\">\n <a class=\"sq lead\" [routerLink]=\"['/stored-queries']\" translate>eo.view.navigation.storedqueries</a>\n\n <div class=\"sq\" *ngFor=\"let q of storedQueries; trackBy: trackByFn\" (click)=\"selectStoredQuery(q)\" (keyup.enter)=\"selectStoredQuery(q)\" tabindex=\"0\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\n <span>{{q.name}}</span>\n </div>\n </div>\n </ng-template>\n </div>\n </ng-template>\n\n </div>\n\n </div>\n\n <!-- files area -->\n <div class=\"db-right\">\n\n <div class=\"lastEdits\" *ngIf=\"modifiedByMe?.lately.length\">\n <div class=\"header\">\n <h2 translate>eo.dashboard.modified.title</h2>\n </div>\n <div class=\"body\">\n\n <a class=\"item\" *ngFor=\"let item of modifiedByMe.lately\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{item.modified | localeDate}}</div>\n <div class=\"title\">{{item.title}}</div>\n <div class=\"description\">{{item.description}}</div>\n </div>\n </a>\n\n </div>\n </div>\n\n </div>\n\n </div>\n</div>\n\n\n\n", styles: [".fade{position:absolute;opacity:.3;left:0;right:0;top:0;z-index:1;height:500px;background:linear-gradient(to bottom,rgba(var(--color-black-rgb),1) 0,transparent 100%)}.dashboard{position:absolute;inset:0;background-size:cover;background-position:center center}.dashboard .db-content{position:absolute;top:calc(var(--app-bar-height) + var(--app-pane-padding));right:0;left:0;bottom:0;z-index:1;display:flex;flex-flow:row nowrap;align-items:stretch}@media screen and (max-width: 800px){.dashboard .db-content{flex-flow:column}}.dashboard .db-content.centerFocus .db-left,.dashboard .db-content.centerFocus .db-right{opacity:.3}.dashboard .db-content .db-left{flex:0 1 20%;padding-top:10vh;display:flex;flex-flow:column;align-items:flex-start}.dashboard .db-content .db-left .info{color:var(--color-primary-2);padding:0 var(--app-pane-padding);margin-bottom:calc(var(--app-pane-padding) * 2);text-decoration:none;cursor:pointer}.dashboard .db-content .db-left .info:focus,.dashboard .db-content .db-left .info:hover{color:var(--color-accent)}.dashboard .db-content .db-left .info:focus eo-icon,.dashboard .db-content .db-left .info:hover eo-icon{background-color:var(--color-accent)}.dashboard .db-content .db-left .info>div{display:flex;align-items:center}.dashboard .db-content .db-left .info eo-icon{border-radius:2px;background-color:var(--color-primary-2);color:#ffffffb3;padding:2px}.dashboard .db-content .db-left .info .count{font-size:40px;line-height:1em;padding:0 var(--app-pane-padding);text-align:right}.dashboard .db-content .db-center{flex:1 1 auto;display:flex;flex-flow:column;padding:0 calc(var(--app-pane-padding) * 2)}.dashboard .db-content .db-center .top{flex:0 0 30%;box-sizing:border-box;padding-bottom:var(--app-pane-padding);flex-flow:column;display:flex;justify-content:flex-end;align-items:center}.dashboard .db-content .db-center .bottom{flex:1 1 auto;overflow-y:auto;display:flex;justify-content:center;align-items:baseline}.dashboard .db-content .db-right{flex:0 0 20%;padding:10vh var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding);box-sizing:border-box;min-width:300px}@media screen and (max-width: 800px){.dashboard .db-content .db-right{height:40%;padding:0 var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}}.dashboard .db-content .db-right .lastEdits{display:flex;flex-flow:column;max-height:100%}.dashboard .db-content .db-right .lastEdits .header{flex:0 0 auto;border-radius:2px;color:#fff;background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}.dashboard .db-content .db-right .lastEdits .header h2{margin:0;padding:0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal)}.dashboard .db-content .db-right .lastEdits .header .total{font-size:var(--font-caption);opacity:.7}.dashboard .db-content .db-right .lastEdits .body{flex:1 1 auto;overflow-y:auto}.dashboard .db-content .db-right .lastEdits .body .item{border-radius:2px;display:flex;flex-flow:row nowrap;color:var(--text-color-caption);padding:calc(var(--app-pane-padding) / 2);margin:calc(var(--app-pane-padding) / 4) 0;align-items:center;background-color:var(--panel-background);text-decoration:none;cursor:pointer}.dashboard .db-content .db-right .lastEdits .body .item:focus,.dashboard .db-content .db-right .lastEdits .body .item:hover{background-color:var(--list-item-hover-background)}.dashboard .db-content .db-right .lastEdits .body .item eo-icon{flex:0 0 auto;padding:0 calc(var(--app-pane-padding) / 2)}.dashboard .db-content .db-right .lastEdits .body .item>div{flex:1 1 auto;padding:0 calc(var(--app-pane-padding) / 2)}.dashboard .db-content .db-right .lastEdits .body .item .title{font-weight:var(--font-weight-bold)}.dashboard .db-content .db-right .lastEdits .body .item .modified,.dashboard .db-content .db-right .lastEdits .body .item .description{font-size:var(--font-hint)}.dashboard .db-content .stored-queries .query{display:flex;max-height:45vh}.dashboard .db-content .stored-queries .query>div{background-color:var(--panel-background);padding:calc(var(--app-pane-padding) / 2);margin:0 1px;border-radius:2px 0 0 2px}.dashboard .db-content .stored-queries .query>div eo-icon{padding:calc(var(--app-pane-padding) / 4);color:var(--text-color-caption)}.dashboard .db-content .stored-queries .query eo-stored-query{border-radius:0 2px 2px 0;background-color:var(--panel-background);padding:calc(var(--app-pane-padding) / 2);overflow-y:auto}.dashboard .db-content .stored-queries .queries{display:flex;flex-flow:row wrap;padding:0 calc(var(--app-pane-padding) / 4)}.dashboard .db-content .stored-queries .queries .sq{border-radius:2px;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 4) 0;background-color:var(--panel-background);color:var(--text-color-caption);text-decoration:none;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:flex;flex-flow:row;align-items:center}.dashboard .db-content .stored-queries .queries .sq>eo-icon{color:var(--text-color-hint)}.dashboard .db-content .stored-queries .queries .sq>span{padding:0 calc(var(--app-pane-padding) / 2)}.dashboard .db-content .stored-queries .queries .sq:not(.lead):focus,.dashboard .db-content .stored-queries .queries .sq:not(.lead):hover{background-color:var(--list-item-hover-background)}.dashboard .db-content .stored-queries .queries .sq.lead{color:#fff;background-color:var(--color-primary-2);padding-left:calc(var(--app-pane-padding) / 2);padding-right:calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.dashboard .db-content .stored-queries .queries .sq.lead:focus,.dashboard .db-content .stored-queries .queries .sq.lead:hover{background-color:var(--color-accent)}.dashboard .db-content .quick-search .input{width:50%;min-width:600px}@media screen and (max-width: 800px){.dashboard .db-content .quick-search .input{width:100%;min-width:inherit;padding-top:4vh}}.dashboard .db-content .quick-search .count{animation:eoFadeInUp var(--app-default-transition-duration);background-color:var(--color-primary-2);border-radius:2px;margin-bottom:4px;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding);color:#fff;display:inline-block;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.dashboard .db-content .quick-search .count span{padding:0 calc(var(--app-pane-padding) / 4)}.dashboard .db-content .quick-search .count span.count-total{font-size:var(--font-display)}.dashboard .db-content .quick-search .count:hover{background-color:var(--color-accent)}.dashboard .db-content .quick-search.disabled{pointer-events:none;opacity:.3}.dashboard .db-content .quick-search-results{display:flex;flex-flow:row wrap;width:100%;justify-content:center;margin:0px calc(var(--app-pane-padding) / -2 + 0px)}.dashboard .db-content .quick-search-results>*{margin-left:calc(var(--app-pane-padding) / 2);margin-right:calc(var(--app-pane-padding) / 2)}.dashboard .db-content .quick-search-results .group{background:rgba(255,255,255,.7);padding:calc(var(--app-pane-padding) / 2);margin-bottom:var(--app-pane-padding);opacity:0;animation:eoFadeIn var(--app-default-transition-duration);animation-fill-mode:forwards;border-radius:2px}.dashboard .db-content .quick-search-results .group h2{margin-top:0;padding-top:0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption)}.dashboard .db-content .quick-search-results .group ::ng-deep eo-tree .tree-node .node-line,.dashboard .db-content .quick-search-results .group ::ng-deep eo-tree .tree-node .ico,.dashboard .db-content .quick-search-results .group ::ng-deep eo-tree .tree-node .spacer{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i8.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "component", type: i9.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i10.QuickSearchComponent, selector: "eo-quick-search", inputs: ["showResults"], outputs: ["onResult", "onInputChange"] }, { kind: "component", type: i11.StoredQueryComponent, selector: "eo-stored-query", inputs: ["query", "formOnly"], outputs: ["onQueryLoaded", "onQueryExecute"] }, { kind: "pipe", type: i12.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i13.LocaleDecimalPipe, name: "localeDecimal" }, { kind: "pipe", type: i14.KeysPipe, name: "keys" }], animations: [
|
|
195
|
+
DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.UserService }, { token: i2.WidgetGridRegistry }, { token: i3.PageTitleService }, { token: i4.Router }, { token: i5.HttpClient }, { token: i1.Config }, { token: i1.LocalStorageService }, { token: i1.TranslateService }, { token: i1.CapabilitiesService }, { token: i1.StoredQueriesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
196
|
+
DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: DashboardComponent, selector: "eo-dashboard", host: { listeners: { "window:keyup": "onKey($event)" } }, viewQueries: [{ propertyName: "quickSearchEl", first: true, predicate: ["quickSearch"], descendants: true }], ngImport: i0, template: "\n<ng-container>\n <div class=\"fade\"></div>\n <div class=\"dashboard\" [style.background-image]=\"backgroundImage\">\n <yuv-widget-grid-workspaces [workspaceConfig]=\"workspaceConfig\" (configChange)=\"onWorkspacesConfigChange($event)\" [options]=\"workspaceOptions\">\n </yuv-widget-grid-workspaces>\n </div>\n</ng-container>\n\n\n\n\n", styles: [":host{display:contents;flex-flow:column;height:100%;box-sizing:border-box;overflow:hidden;padding-top:var(--app-bar-height)}.fade{position:absolute;opacity:.3;left:0;right:0;top:0;z-index:1;height:500px;background:linear-gradient(to bottom,rgba(var(--color-black-rgb),1) 0,transparent 100%)}.dashboard{position:absolute;inset:0;background-size:cover;background-position:center center}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-body);font-weight:700;color:var(--text-color-caption);font-style:italic;margin:0;padding:0}::ng-deep svg{width:24px;height:24px}::ng-deep yuv-widget-grid{top:60px;height:92%!important}::ng-deep yuv-widget-grid-workspaces{background-size:cover;background-position:center center}::ng-deep yuv-widget-grid-workspaces>.confirm{position:fixed!important}::ng-deep gridster{background:none!important}::ng-deep gridster gridster-item:has(yuv-todo-widget),::ng-deep gridster gridster-item:has(yuv-picture-widget){border:1px solid var(--panel-divider-color)}::ng-deep gridster gridster-item:has(yuv-picture-widget){box-shadow:0 0 10px #0003}::ng-deep gridster .yuv-widget{border:1px solid var(--panel-divider-color)}::ng-deep gridster .gridster-row,::ng-deep gridster .gridster-column{border-color:#0003}.dark ::ng-deep gridster .gridster-row,.dark ::ng-deep gridster .gridster-column{border-color:var(--panel-divider-color)}\n"], dependencies: [{ kind: "component", type: i2.WidgetGridWorkspacesComponent, selector: "yuv-widget-grid-workspaces", inputs: ["options", "workspaceConfig", "preventAdd"], outputs: ["configChange", "gridItemEvent"] }], animations: [
|
|
155
197
|
listAnimation
|
|
156
198
|
] });
|
|
157
199
|
DashboardComponent = __decorate([
|
|
@@ -162,12 +204,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
162
204
|
type: Component,
|
|
163
205
|
args: [{ selector: 'eo-dashboard', animations: [
|
|
164
206
|
listAnimation
|
|
165
|
-
], template: "<div class=\"fade\"></div>\n<div class=\"dashboard\" [style.background-image]=\"backgroundImage\">\n\n <div class=\"db-content\" [ngClass]=\"{centerFocus: (quickSearchResult && quickSearchResult.total > 0) || selectedQuery}\">\n\n <!-- info area --->\n <div class=\"db-left\">\n <a class=\"info\" *ngIf=\"capabilities.inbox && inboxState && inboxState.totalmessages > 0\"\n [routerLink]=\"['/inbox']\">\n <div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"count\">{{inboxState.totalmessages}}</div>\n </div>\n <div class=\"msg\" translate>eo.dashboard.info.inbox.msg</div>\n </a>\n <a class=\"info\" *ngIf=\"capabilities.intray && preparedItemsCount > 0\"\n [routerLink]=\"['/prepare']\">\n <div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"count\">{{preparedItemsCount}}</div>\n </div>\n <div class=\"msg\" translate>eo.dashboard.info.intray.msg</div>\n </a>\n </div>\n\n <!-- main content area -->\n <div class=\"db-center\">\n\n <div class=\"top\">\n <div class=\"quick-search\" [ngClass]=\"{disabled: selectedQuery}\">\n\n <div class=\"count\" *ngIf=\"quickSearchResult && quickSearchResult.total !== -1\" (click)=\"executeSearch()\">\n <div *ngIf=\"quickSearchResult.total\">\n <span class=\"count-total\">{{quickSearchResult.total | localeDecimal}}</span>\n <span class=\"label\" translate>eo.quicksearch.hits</span>\n </div>\n <span class=\"label\" *ngIf=\"!quickSearchResult.total\" translate>eo.quicksearch.reults.empty</span>\n </div>\n\n <div class=\"input\">\n <eo-quick-search (onResult)=\"onQuickSearchResult($event)\"\n (onInputChange)=\"onQuickSearchInputChange($event)\"\n #quickSearch></eo-quick-search>\n </div>\n </div>\n </div>\n\n <div class=\"bottom\">\n\n <div class=\"quick-search-results\" *ngIf=\"quickSearchResult && quickSearchResult.total > 0; else storedqueries\">\n\n <div class=\"group\" *ngFor=\"let key of quickSearchResult.groups | keys; index as i\">\n <h2 *ngIf=\"key !== '0'; else maingroup\">{{key}}</h2>\n <ng-template #maingroup>\n <h2 translate>eo.quicksearch.result.group.global</h2>\n </ng-template>\n\n <eo-tree [tree]=\"tree[key]\" [(ngModel)]=\"selectedQuickSearchResultItem\" (onSelected)=\"executeSearch($event.data)\" (expandedNodesChanged)=\"executeSearch($event.data)\" [selectionKey]=\"'Enter'\">\n </eo-tree>\n </div>\n </div>\n\n <ng-template #storedqueries>\n\n <div class=\"stored-queries\" *ngIf=\"capabilities.storedqueries && storedQueries.length\">\n\n <div class=\"query\" *ngIf=\"selectedQuery; else querylist\">\n <div>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"selectStoredQuery(null)\"></eo-icon>\n </div>\n <eo-stored-query [query]=\"selectedQuery\"\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </div>\n\n\n <ng-template #querylist>\n <div class=\"queries\" [@listAnimation]=\"storedQueries.length\">\n <a class=\"sq lead\" [routerLink]=\"['/stored-queries']\" translate>eo.view.navigation.storedqueries</a>\n\n <div class=\"sq\" *ngFor=\"let q of storedQueries; trackBy: trackByFn\" (click)=\"selectStoredQuery(q)\" (keyup.enter)=\"selectStoredQuery(q)\" tabindex=\"0\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\n <span>{{q.name}}</span>\n </div>\n </div>\n </ng-template>\n </div>\n </ng-template>\n\n </div>\n\n </div>\n\n <!-- files area -->\n <div class=\"db-right\">\n\n <div class=\"lastEdits\" *ngIf=\"modifiedByMe?.lately.length\">\n <div class=\"header\">\n <h2 translate>eo.dashboard.modified.title</h2>\n </div>\n <div class=\"body\">\n\n <a class=\"item\" *ngFor=\"let item of modifiedByMe.lately\" [routerLink]=\"['/object/', item.id]\">\n <eo-icon [objectType]=\"item.type\"></eo-icon>\n <div>\n <div class=\"modified\">{{item.modified | localeDate}}</div>\n <div class=\"title\">{{item.title}}</div>\n <div class=\"description\">{{item.description}}</div>\n </div>\n </a>\n\n </div>\n </div>\n\n </div>\n\n </div>\n</div>\n\n\n\n", styles: [".fade{position:absolute;opacity:.3;left:0;right:0;top:0;z-index:1;height:500px;background:linear-gradient(to bottom,rgba(var(--color-black-rgb),1) 0,transparent 100%)}.dashboard{position:absolute;inset:0;background-size:cover;background-position:center center}.dashboard .db-content{position:absolute;top:calc(var(--app-bar-height) + var(--app-pane-padding));right:0;left:0;bottom:0;z-index:1;display:flex;flex-flow:row nowrap;align-items:stretch}@media screen and (max-width: 800px){.dashboard .db-content{flex-flow:column}}.dashboard .db-content.centerFocus .db-left,.dashboard .db-content.centerFocus .db-right{opacity:.3}.dashboard .db-content .db-left{flex:0 1 20%;padding-top:10vh;display:flex;flex-flow:column;align-items:flex-start}.dashboard .db-content .db-left .info{color:var(--color-primary-2);padding:0 var(--app-pane-padding);margin-bottom:calc(var(--app-pane-padding) * 2);text-decoration:none;cursor:pointer}.dashboard .db-content .db-left .info:focus,.dashboard .db-content .db-left .info:hover{color:var(--color-accent)}.dashboard .db-content .db-left .info:focus eo-icon,.dashboard .db-content .db-left .info:hover eo-icon{background-color:var(--color-accent)}.dashboard .db-content .db-left .info>div{display:flex;align-items:center}.dashboard .db-content .db-left .info eo-icon{border-radius:2px;background-color:var(--color-primary-2);color:#ffffffb3;padding:2px}.dashboard .db-content .db-left .info .count{font-size:40px;line-height:1em;padding:0 var(--app-pane-padding);text-align:right}.dashboard .db-content .db-center{flex:1 1 auto;display:flex;flex-flow:column;padding:0 calc(var(--app-pane-padding) * 2)}.dashboard .db-content .db-center .top{flex:0 0 30%;box-sizing:border-box;padding-bottom:var(--app-pane-padding);flex-flow:column;display:flex;justify-content:flex-end;align-items:center}.dashboard .db-content .db-center .bottom{flex:1 1 auto;overflow-y:auto;display:flex;justify-content:center;align-items:baseline}.dashboard .db-content .db-right{flex:0 0 20%;padding:10vh var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding);box-sizing:border-box;min-width:300px}@media screen and (max-width: 800px){.dashboard .db-content .db-right{height:40%;padding:0 var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}}.dashboard .db-content .db-right .lastEdits{display:flex;flex-flow:column;max-height:100%}.dashboard .db-content .db-right .lastEdits .header{flex:0 0 auto;border-radius:2px;color:#fff;background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) var(--app-pane-padding) var(--app-pane-padding)}.dashboard .db-content .db-right .lastEdits .header h2{margin:0;padding:0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal)}.dashboard .db-content .db-right .lastEdits .header .total{font-size:var(--font-caption);opacity:.7}.dashboard .db-content .db-right .lastEdits .body{flex:1 1 auto;overflow-y:auto}.dashboard .db-content .db-right .lastEdits .body .item{border-radius:2px;display:flex;flex-flow:row nowrap;color:var(--text-color-caption);padding:calc(var(--app-pane-padding) / 2);margin:calc(var(--app-pane-padding) / 4) 0;align-items:center;background-color:var(--panel-background);text-decoration:none;cursor:pointer}.dashboard .db-content .db-right .lastEdits .body .item:focus,.dashboard .db-content .db-right .lastEdits .body .item:hover{background-color:var(--list-item-hover-background)}.dashboard .db-content .db-right .lastEdits .body .item eo-icon{flex:0 0 auto;padding:0 calc(var(--app-pane-padding) / 2)}.dashboard .db-content .db-right .lastEdits .body .item>div{flex:1 1 auto;padding:0 calc(var(--app-pane-padding) / 2)}.dashboard .db-content .db-right .lastEdits .body .item .title{font-weight:var(--font-weight-bold)}.dashboard .db-content .db-right .lastEdits .body .item .modified,.dashboard .db-content .db-right .lastEdits .body .item .description{font-size:var(--font-hint)}.dashboard .db-content .stored-queries .query{display:flex;max-height:45vh}.dashboard .db-content .stored-queries .query>div{background-color:var(--panel-background);padding:calc(var(--app-pane-padding) / 2);margin:0 1px;border-radius:2px 0 0 2px}.dashboard .db-content .stored-queries .query>div eo-icon{padding:calc(var(--app-pane-padding) / 4);color:var(--text-color-caption)}.dashboard .db-content .stored-queries .query eo-stored-query{border-radius:0 2px 2px 0;background-color:var(--panel-background);padding:calc(var(--app-pane-padding) / 2);overflow-y:auto}.dashboard .db-content .stored-queries .queries{display:flex;flex-flow:row wrap;padding:0 calc(var(--app-pane-padding) / 4)}.dashboard .db-content .stored-queries .queries .sq{border-radius:2px;padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 4) 0;background-color:var(--panel-background);color:var(--text-color-caption);text-decoration:none;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;display:flex;flex-flow:row;align-items:center}.dashboard .db-content .stored-queries .queries .sq>eo-icon{color:var(--text-color-hint)}.dashboard .db-content .stored-queries .queries .sq>span{padding:0 calc(var(--app-pane-padding) / 2)}.dashboard .db-content .stored-queries .queries .sq:not(.lead):focus,.dashboard .db-content .stored-queries .queries .sq:not(.lead):hover{background-color:var(--list-item-hover-background)}.dashboard .db-content .stored-queries .queries .sq.lead{color:#fff;background-color:var(--color-primary-2);padding-left:calc(var(--app-pane-padding) / 2);padding-right:calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.dashboard .db-content .stored-queries .queries .sq.lead:focus,.dashboard .db-content .stored-queries .queries .sq.lead:hover{background-color:var(--color-accent)}.dashboard .db-content .quick-search .input{width:50%;min-width:600px}@media screen and (max-width: 800px){.dashboard .db-content .quick-search .input{width:100%;min-width:inherit;padding-top:4vh}}.dashboard .db-content .quick-search .count{animation:eoFadeInUp var(--app-default-transition-duration);background-color:var(--color-primary-2);border-radius:2px;margin-bottom:4px;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding);color:#fff;display:inline-block;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.dashboard .db-content .quick-search .count span{padding:0 calc(var(--app-pane-padding) / 4)}.dashboard .db-content .quick-search .count span.count-total{font-size:var(--font-display)}.dashboard .db-content .quick-search .count:hover{background-color:var(--color-accent)}.dashboard .db-content .quick-search.disabled{pointer-events:none;opacity:.3}.dashboard .db-content .quick-search-results{display:flex;flex-flow:row wrap;width:100%;justify-content:center;margin:0px calc(var(--app-pane-padding) / -2 + 0px)}.dashboard .db-content .quick-search-results>*{margin-left:calc(var(--app-pane-padding) / 2);margin-right:calc(var(--app-pane-padding) / 2)}.dashboard .db-content .quick-search-results .group{background:rgba(255,255,255,.7);padding:calc(var(--app-pane-padding) / 2);margin-bottom:var(--app-pane-padding);opacity:0;animation:eoFadeIn var(--app-default-transition-duration);animation-fill-mode:forwards;border-radius:2px}.dashboard .db-content .quick-search-results .group h2{margin-top:0;padding-top:0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption)}.dashboard .db-content .quick-search-results .group ::ng-deep eo-tree .tree-node .node-line,.dashboard .db-content .quick-search-results .group ::ng-deep eo-tree .tree-node .ico,.dashboard .db-content .quick-search-results .group ::ng-deep eo-tree .tree-node .spacer{display:none}\n"] }]
|
|
166
|
-
}], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.
|
|
207
|
+
], template: "\n<ng-container>\n <div class=\"fade\"></div>\n <div class=\"dashboard\" [style.background-image]=\"backgroundImage\">\n <yuv-widget-grid-workspaces [workspaceConfig]=\"workspaceConfig\" (configChange)=\"onWorkspacesConfigChange($event)\" [options]=\"workspaceOptions\">\n </yuv-widget-grid-workspaces>\n </div>\n</ng-container>\n\n\n\n\n", styles: [":host{display:contents;flex-flow:column;height:100%;box-sizing:border-box;overflow:hidden;padding-top:var(--app-bar-height)}.fade{position:absolute;opacity:.3;left:0;right:0;top:0;z-index:1;height:500px;background:linear-gradient(to bottom,rgba(var(--color-black-rgb),1) 0,transparent 100%)}.dashboard{position:absolute;inset:0;background-size:cover;background-position:center center}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-body);font-weight:700;color:var(--text-color-caption);font-style:italic;margin:0;padding:0}::ng-deep svg{width:24px;height:24px}::ng-deep yuv-widget-grid{top:60px;height:92%!important}::ng-deep yuv-widget-grid-workspaces{background-size:cover;background-position:center center}::ng-deep yuv-widget-grid-workspaces>.confirm{position:fixed!important}::ng-deep gridster{background:none!important}::ng-deep gridster gridster-item:has(yuv-todo-widget),::ng-deep gridster gridster-item:has(yuv-picture-widget){border:1px solid var(--panel-divider-color)}::ng-deep gridster gridster-item:has(yuv-picture-widget){box-shadow:0 0 10px #0003}::ng-deep gridster .yuv-widget{border:1px solid var(--panel-divider-color)}::ng-deep gridster .gridster-row,::ng-deep gridster .gridster-column{border-color:#0003}.dark ::ng-deep gridster .gridster-row,.dark ::ng-deep gridster .gridster-column{border-color:var(--panel-divider-color)}\n"] }]
|
|
208
|
+
}], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.WidgetGridRegistry }, { type: i3.PageTitleService }, { type: i4.Router }, { type: i5.HttpClient }, { type: i1.Config }, { type: i1.LocalStorageService }, { type: i1.TranslateService }, { type: i1.CapabilitiesService }, { type: i1.StoredQueriesService }]; }, propDecorators: { quickSearchEl: [{
|
|
167
209
|
type: ViewChild,
|
|
168
210
|
args: ['quickSearch']
|
|
169
211
|
}], onKey: [{
|
|
170
212
|
type: HostListener,
|
|
171
213
|
args: ['window:keyup', ['$event']]
|
|
172
214
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFnQkwsS0FBSyxFQUNOLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFbkUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBY2hFLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQWtCO0lBd0I3QixLQUFLLENBQUMsS0FBSztRQUNULElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELFlBQW1CLFdBQXdCLEVBQ2pDLFlBQThCLEVBQzlCLE1BQWMsRUFDZCxLQUFxQixFQUNyQixNQUFjLEVBQ2QsYUFBNEIsRUFDNUIsV0FBd0IsRUFDeEIsYUFBNEIsRUFDNUIsWUFBMEIsRUFDMUIsY0FBOEIsRUFDOUIsVUFBOEIsRUFDOUIsaUJBQXNDLEVBQ3RDLG9CQUEwQztRQVpqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixN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R0FBRyxVQUFVLENBQUMsQ0FBQztTQUN4RTtRQUVELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0I7aUJBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzFCLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7OytHQTdKVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0TkNwQy9CLDQxSkEwSEEsa3NVRDFGYztRQUNWLGFBQWE7S0FDZDtBQUVVLGtCQUFrQjtJQVQ5QixZQUFZLEVBQUU7R0FTRixrQkFBa0IsQ0E4SjlCO1NBOUpZLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLGNBQWMsY0FHWjt3QkFDVixhQUFhO3FCQUNkO3diQXVCeUIsYUFBYTtzQkFBdEMsU0FBUzt1QkFBQyxhQUFhO2dCQUd4QixLQUFLO3NCQURKLFlBQVk7dUJBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQXV0aFNlcnZpY2UsXG4gIENhcGFiaWxpdGllcyxcbiAgQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgQ29uZmlnLFxuICBFbnZpcm9ubWVudFNlcnZpY2UsXG4gIEVvVXNlcixcbiAgSW5ib3hTZXJ2aWNlLFxuICBJbmJveFN0YXRlLFxuICBPYmplY3RUeXBlLFxuICBQcmVwYXJlU2VydmljZSxcbiAgU2VhcmNoU2VydmljZSxcbiAgU3RvcmVkUXVlcmllc1NlcnZpY2UsXG4gIFN0b3JlZFF1ZXJ5LFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVXRpbHNcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7bGlzdEFuaW1hdGlvbn0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL2FuaW1hdGlvbnMvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1F1aWNrU2VhcmNoUmVzdWx0fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvcXVpY2stc2VhcmNoL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gtcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQge1F1aWNrU2VhcmNoQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvcXVpY2stc2VhcmNoL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7VHJlZU5vZGV9IGZyb20gJy4vLi4vLi4vZW8tZnJhbWV3b3JrL3RyZWUvdHJlZS5jb21wb25lbnQuaW50ZXJmYWNlJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBsaXN0QW5pbWF0aW9uXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcztcbiAgc3RvcmVkUXVlcmllczogU3RvcmVkUXVlcnlbXSA9IFtdO1xuICBzZWxlY3RlZFF1ZXJ5OiBTdG9yZWRRdWVyeTtcbiAgcXVpY2tTZWFyY2hSZXN1bHQ6IFF1aWNrU2VhcmNoUmVzdWx0O1xuICBzZWxlY3RlZFF1aWNrU2VhcmNoUmVzdWx0SXRlbSA9IHtcbiAgICBpbmRleDogLTEsXG4gICAgbmFtZTogbnVsbFxuICB9O1xuICB0cmVlID0ge307XG4gIHByZXBhcmVkSXRlbXNDb3VudDogbnVtYmVyO1xuICBpbmJveFN0YXRlOiBJbmJveFN0YXRlO1xuICB1c2VyOiBFb1VzZXI7XG4gIG1vZGlmaWVkQnlNZSA9IHtcbiAgICBzaXplOiAxMCxcbiAgICB0b3RhbDogMCxcbiAgICBsYXRlbHk6IFtdXG4gIH07XG4gIGJhY2tncm91bmRJbWFnZTogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ3F1aWNrU2VhcmNoJykgcXVpY2tTZWFyY2hFbDogUXVpY2tTZWFyY2hDb21wb25lbnQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXkoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDI3KSB7XG4gICAgICB0aGlzLnNlbGVjdFN0b3JlZFF1ZXJ5KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmJveFNlcnZpY2U6IEluYm94U2VydmljZSxcbiAgICBwcml2YXRlIHByZXBhcmVTZXJ2aWNlOiBQcmVwYXJlU2VydmljZSxcbiAgICBwcml2YXRlIGVudlNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNhcGFiaWxpdHlTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlKSB7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0RGVmYXVsdFRpdGxlKCk7XG4gICAgdGhpcy5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKCR7dGhpcy5jb25maWcuZ2V0RGFzaGJvYXJkQmFja2dyb3VuZEltYWdlKCl9KWA7XG4gIH1cblxuICBnZXQgaXNDbG91ZCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbnZTZXJ2aWNlLmlzQ2xvdWQoKTtcbiAgfVxuXG4gIHNlbGVjdFN0b3JlZFF1ZXJ5KHE6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgdGhpcy5zZWxlY3RlZFF1ZXJ5ID0gcTtcbiAgfVxuXG4gIC8vIHVzZXIgY2hhbmdlZCBpbnB1dCBvZiBxdWlja1NlYXJjaCBjb21wb25lbnRcbiAgb25RdWlja1NlYXJjaElucHV0Q2hhbmdlKHRlcm0pIHtcbiAgICB0aGlzLnF1aWNrU2VhcmNoUmVzdWx0ID0gbnVsbDtcbiAgfVxuXG4gIC8vIHF1aWNrU2VhcmNoIGNvbXBvbmVudCBpcyByZXR1cm5pbmcgcmVzdWx0c1xuICBvblF1aWNrU2VhcmNoUmVzdWx0KHJlc3VsdDogUXVpY2tTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLnF1aWNrU2VhcmNoUmVzdWx0ID0gcmVzdWx0O1xuICAgIE9iamVjdC5rZXlzKHRoaXMucXVpY2tTZWFyY2hSZXN1bHQuZ3JvdXBzKS5tYXAoa2V5ID0+ICh0aGlzLnRyZWVba2V5XSA9IHRoaXMuZ2V0VHJlZU5vZGVzKGtleSkpKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlMb2FkZWQoKSB7XG4gICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUV4ZWN1dGUoZXZ0KSB7XG4gICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICBjb25zdCB1cmlQYXJhbSA9IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShldnQucXVlcnlKc29uKSk7XG4gICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcmVzdWx0J10sIHVyaVBhcmFtUXVlcnkpO1xuICB9XG5cbiAgZXhlY3V0ZVNlYXJjaChvYmplY3RUeXBlPzogT2JqZWN0VHlwZSkge1xuICAgIHRoaXMucXVpY2tTZWFyY2hFbC5leGVjdXRlU2VhcmNoKG9iamVjdFR5cGUpO1xuICB9XG5cbiAgZ2V0VHJlZU5vZGVzKGtleSk6IFRyZWVOb2RlW10ge1xuICAgIHJldHVybiB0aGlzLnF1aWNrU2VhcmNoUmVzdWx0Lmdyb3Vwc1trZXldLm1hcChncm91cCA9PiAoe1xuICAgICAgaWQ6IGdyb3VwLmRhdGEuaWQsXG4gICAgICBuYW1lOiBncm91cC5sYWJlbCxcbiAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICBkYXRhOiBncm91cC5kYXRhLFxuICAgICAgYmFkZ2VzOiBbe3ZhbHVlOiBncm91cC5jb3VudH1dXG4gICAgfSkpO1xuICB9XG5cbiAgdHJhY2tCeUZuKGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cblxuICBjYXB0dXJlT2JqZWN0TGlzdHMoKSB7XG5cbiAgICBjb25zdCBxID0ge1xuICAgICAgZmlsdGVyczoge1xuICAgICAgICBtb2RpZmllcjoge1xuICAgICAgICAgIG86ICdlcScsXG4gICAgICAgICAgdjE6IHRoaXMudXNlci5uYW1lXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IFsndGl0bGUnLCAnZGVzY3JpcHRpb24nLCAnbW9kaWZpZWQnLCAndHlwZSddLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBzb3J0OiB7XG4gICAgICAgICAgbW9kaWZpZWQ6IHtcbiAgICAgICAgICAgIG9yZGVyOiAnZGVzYydcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgLmV4ZWN1dGVRdWVyeShxLCBmYWxzZSwgdGhpcy5tb2RpZmllZEJ5TWUuc2l6ZSlcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5tb2RpZmllZEJ5TWUudG90YWwgPSByZXMuaGl0cy50b3RhbDtcbiAgICAgICAgdGhpcy5tb2RpZmllZEJ5TWUubGF0ZWx5ID0gcmVzLmhpdHMuaGl0cy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3Qge2lkLCB0aXRsZSwgZGVzY3JpcHRpb24sIHR5cGUsIG1vZGlmaWVkfSA9IGl0ZW0uX3NvdXJjZTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZSh0eXBlKSxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBtb2RpZmllZFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXNlclNlcnZpY2UudXNlciRcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSh1c2VyID0+IHtcbiAgICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICAgICAgdGhpcy5jYXB0dXJlT2JqZWN0TGlzdHMoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5jYXBhYmlsaXRpZXMgPSB0aGlzLmNhcGFiaWxpdHlTZXJ2aWNlLmdldENhcGFiaWxpdGllcygpO1xuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5zdG9yZWRxdWVyaWVzKSB7XG4gICAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlLmdldFN0b3JlZFF1ZXJpZXMkKClcbiAgICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUocXVlcmllc1N1YnNjcmlwdGlvbiA9PiB0aGlzLnN0b3JlZFF1ZXJpZXMgPSBxdWVyaWVzU3Vic2NyaXB0aW9uLnF1ZXJpZXMuZmlsdGVyKHEgPT4gcS5mYXZvcml0ZSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCduYW1lJykpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jYXBhYmlsaXRpZXMuaW5ib3gpIHtcbiAgICAgIHRoaXMuaW5ib3hTZXJ2aWNlLmluYm94U3RhdGUkXG4gICAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKChpbmJveFN0YXRlOiBJbmJveFN0YXRlKSA9PiB0aGlzLmluYm94U3RhdGUgPSBpbmJveFN0YXRlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jYXBhYmlsaXRpZXMuaW50cmF5KSB7XG4gICAgICB0aGlzLnByZXBhcmVTZXJ2aWNlLnByZXBhcmVkSXRlbUNvdW50JFxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZShjb3VudCA9PiB0aGlzLnByZXBhcmVkSXRlbXNDb3VudCA9IGNvdW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmYWRlXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiZGFzaGJvYXJkXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiYmFja2dyb3VuZEltYWdlXCI+XG5cbiAgPGRpdiBjbGFzcz1cImRiLWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7Y2VudGVyRm9jdXM6IChxdWlja1NlYXJjaFJlc3VsdCAmJiBxdWlja1NlYXJjaFJlc3VsdC50b3RhbCA+IDApIHx8IHNlbGVjdGVkUXVlcnl9XCI+XG5cbiAgICA8IS0tIGluZm8gYXJlYSAtLS0+XG4gICAgPGRpdiBjbGFzcz1cImRiLWxlZnRcIj5cbiAgICAgIDxhIGNsYXNzPVwiaW5mb1wiICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmluYm94ICYmIGluYm94U3RhdGUgJiYgaW5ib3hTdGF0ZS50b3RhbG1lc3NhZ2VzID4gMFwiXG4gICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL2luYm94J11cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19pbmJveC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudFwiPnt7aW5ib3hTdGF0ZS50b3RhbG1lc3NhZ2VzfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtc2dcIiB0cmFuc2xhdGU+ZW8uZGFzaGJvYXJkLmluZm8uaW5ib3gubXNnPC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8YSBjbGFzcz1cImluZm9cIiAqbmdJZj1cImNhcGFiaWxpdGllcy5pbnRyYXkgJiYgcHJlcGFyZWRJdGVtc0NvdW50ID4gMFwiXG4gICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3ByZXBhcmUnXVwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3ByZXBhcmUuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRcIj57e3ByZXBhcmVkSXRlbXNDb3VudH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXNnXCIgdHJhbnNsYXRlPmVvLmRhc2hib2FyZC5pbmZvLmludHJheS5tc2c8L2Rpdj5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gbWFpbiBjb250ZW50IGFyZWEgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRiLWNlbnRlclwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidG9wXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJxdWljay1zZWFyY2hcIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6IHNlbGVjdGVkUXVlcnl9XCI+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRcIiAqbmdJZj1cInF1aWNrU2VhcmNoUmVzdWx0ICYmIHF1aWNrU2VhcmNoUmVzdWx0LnRvdGFsICE9PSAtMVwiIChjbGljayk9XCJleGVjdXRlU2VhcmNoKClcIj5cbiAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwicXVpY2tTZWFyY2hSZXN1bHQudG90YWxcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC10b3RhbFwiPnt7cXVpY2tTZWFyY2hSZXN1bHQudG90YWwgfCBsb2NhbGVEZWNpbWFsfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8ucXVpY2tzZWFyY2guaGl0czwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiICpuZ0lmPVwiIXF1aWNrU2VhcmNoUmVzdWx0LnRvdGFsXCIgdHJhbnNsYXRlPmVvLnF1aWNrc2VhcmNoLnJldWx0cy5lbXB0eTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dFwiPlxuICAgICAgICAgICAgPGVvLXF1aWNrLXNlYXJjaCAob25SZXN1bHQpPVwib25RdWlja1NlYXJjaFJlc3VsdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uSW5wdXRDaGFuZ2UpPVwib25RdWlja1NlYXJjaElucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcXVpY2tTZWFyY2g+PC9lby1xdWljay1zZWFyY2g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJib3R0b21cIj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicXVpY2stc2VhcmNoLXJlc3VsdHNcIiAqbmdJZj1cInF1aWNrU2VhcmNoUmVzdWx0ICYmIHF1aWNrU2VhcmNoUmVzdWx0LnRvdGFsID4gMDsgZWxzZSBzdG9yZWRxdWVyaWVzXCI+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBcIiAqbmdGb3I9XCJsZXQga2V5IG9mIHF1aWNrU2VhcmNoUmVzdWx0Lmdyb3VwcyB8IGtleXM7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgICAgIDxoMiAqbmdJZj1cImtleSAhPT0gJzAnOyBlbHNlIG1haW5ncm91cFwiPnt7a2V5fX08L2gyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtYWluZ3JvdXA+XG4gICAgICAgICAgICAgIDxoMiB0cmFuc2xhdGU+ZW8ucXVpY2tzZWFyY2gucmVzdWx0Lmdyb3VwLmdsb2JhbDwvaDI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZW8tdHJlZSBbdHJlZV09XCJ0cmVlW2tleV1cIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUXVpY2tTZWFyY2hSZXN1bHRJdGVtXCIgKG9uU2VsZWN0ZWQpPVwiZXhlY3V0ZVNlYXJjaCgkZXZlbnQuZGF0YSlcIiAoZXhwYW5kZWROb2Rlc0NoYW5nZWQpPVwiZXhlY3V0ZVNlYXJjaCgkZXZlbnQuZGF0YSlcIiBbc2VsZWN0aW9uS2V5XT1cIidFbnRlcidcIj5cbiAgICAgICAgICAgIDwvZW8tdHJlZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzdG9yZWRxdWVyaWVzPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlZC1xdWVyaWVzXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuc3RvcmVkcXVlcmllcyAmJiBzdG9yZWRRdWVyaWVzLmxlbmd0aFwiPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlcnlcIiAqbmdJZj1cInNlbGVjdGVkUXVlcnk7IGVsc2UgcXVlcnlsaXN0XCI+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0U3RvcmVkUXVlcnkobnVsbClcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZW8tc3RvcmVkLXF1ZXJ5IFtxdWVyeV09XCJzZWxlY3RlZFF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25RdWVyeUxvYWRlZCk9XCJvblN0b3JlZFF1ZXJ5TG9hZGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblF1ZXJ5RXhlY3V0ZSk9XCJvblN0b3JlZFF1ZXJ5RXhlY3V0ZSgkZXZlbnQpXCI+PC9lby1zdG9yZWQtcXVlcnk+XG4gICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3F1ZXJ5bGlzdD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXJpZXNcIiBbQGxpc3RBbmltYXRpb25dPVwic3RvcmVkUXVlcmllcy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInNxIGxlYWRcIiBbcm91dGVyTGlua109XCJbJy9zdG9yZWQtcXVlcmllcyddXCIgdHJhbnNsYXRlPmVvLnZpZXcubmF2aWdhdGlvbi5zdG9yZWRxdWVyaWVzPC9hPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNxXCIgKm5nRm9yPVwibGV0IHEgb2Ygc3RvcmVkUXVlcmllczsgdHJhY2tCeTogdHJhY2tCeUZuXCIgKGNsaWNrKT1cInNlbGVjdFN0b3JlZFF1ZXJ5KHEpXCIgKGtleXVwLmVudGVyKT1cInNlbGVjdFN0b3JlZFF1ZXJ5KHEpXCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zdG9yZWRfcXVlcnkuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7cS5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gZmlsZXMgYXJlYSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZGItcmlnaHRcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImxhc3RFZGl0c1wiICpuZ0lmPVwibW9kaWZpZWRCeU1lPy5sYXRlbHkubGVuZ3RoXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8aDIgdHJhbnNsYXRlPmVvLmRhc2hib2FyZC5tb2RpZmllZC50aXRsZTwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxuXG4gICAgICAgICAgPGEgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9kaWZpZWRCeU1lLmxhdGVseVwiIFtyb3V0ZXJMaW5rXT1cIlsnL29iamVjdC8nLCBpdGVtLmlkXVwiPlxuICAgICAgICAgICAgPGVvLWljb24gW29iamVjdFR5cGVdPVwiaXRlbS50eXBlXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGlmaWVkXCI+e3tpdGVtLm1vZGlmaWVkIHwgbG9jYWxlRGF0ZX19PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPnt7aXRlbS50aXRsZX19PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7aXRlbS5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2E+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuXG4iXX0=
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFVTCxLQUFLLEVBQ04sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLHNCQUFzQixFQUMxQiwyQkFBMkIsRUFDM0IsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUdHLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUdqRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUV0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUNqRyxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0RUFBNEUsQ0FBQztBQUNwSCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUNoSCxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBVzVELElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQWtCO0lBdUI3QixLQUFLLENBQUMsS0FBSztRQUNULElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELFlBQW1CLFdBQXdCLEVBQ2pDLGtCQUFzQyxFQUN0QyxZQUE4QixFQUM5QixNQUFjLEVBQ2QsSUFBZ0IsRUFDaEIsTUFBYyxFQUNkLGNBQW1DLEVBQ3BDLFNBQTJCLEVBQzFCLGlCQUFzQyxFQUN0QyxvQkFBMEM7UUFUakMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBQ3RDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFuQ3BELHFCQUFnQixHQUErQjtZQUM3QyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsYUFBYSxFQUFFLENBQUM7YUFDakI7U0FDRixDQUFDO1FBQ0YsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFHcEIsa0JBQWEsR0FBa0IsRUFBRSxDQUFDO1FBR2xDLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixnQkFBVyxHQUFHLHNDQUFzQyxDQUFDO1FBc0JuRCxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsQ0FBQztRQUMzRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUU3QixDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsQ0FBNEI7UUFDbkQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDO1lBQzdDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDJDQUEyQyxDQUFDO1lBQ3RGLG1CQUFtQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO1lBQ25GLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQztZQUNsRixzQkFBc0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnREFBZ0QsQ0FBQztZQUNoRyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQztZQUNwRyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx1REFBdUQsQ0FBQztZQUM5RyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQztZQUN0RixtQkFBbUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztZQUM3RSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUM7WUFDNUQsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO1lBQ2hFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQztZQUNsRSx1QkFBdUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQztZQUNsRyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQztTQUM3RixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZTtRQUNyQixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDO1lBQzFDO2dCQUNFLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQztnQkFDbEUsY0FBYyxFQUFFLDJCQUEyQjtnQkFDM0MsZUFBZSxFQUFFLHNCQUFzQjthQUN4QztZQUNEO2dCQUNFLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQztnQkFDaEYsY0FBYyxFQUFFLHdCQUF3QjtnQkFDeEMsZUFBZSxFQUFFLG1CQUFtQjthQUNyQztZQUNEO2dCQUNFLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtREFBbUQsQ0FBQztnQkFDbEYsZUFBZSxFQUFFLDZCQUE2QjthQUMvQztZQUNEO2dCQUNFLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQztnQkFDakUsZUFBZSxFQUFFLHFCQUFxQjtnQkFDdEMsY0FBYyxFQUFFLG9CQUFvQjthQUNyQztZQUNEO2dCQUNFLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQztnQkFDckUsZUFBZSxFQUFFLHlCQUF5QjtnQkFDMUMsY0FBYyxFQUFFLHdCQUF3QjthQUN6QztZQUNEO2dCQUNFLElBQUksRUFBRSxzQkFBc0I7Z0JBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQztnQkFDcEUsZUFBZSxFQUFFLHdCQUF3QjtnQkFDekMsY0FBYyxFQUFFLHVCQUF1QjthQUN4QztZQUNEO2dCQUNFLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQztnQkFDdEUsZUFBZSxFQUFFLHFCQUFxQjthQUN2QztTQUVGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxDQUFjO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsd0JBQXdCLENBQUMsSUFBSTtRQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsbUJBQW1CLENBQUMsTUFBeUI7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztRQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBRztRQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLGFBQWEsR0FBcUIsRUFBQyxXQUFXLEVBQUUsRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLEVBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxZQUFZLENBQUMsR0FBRztRQUNkLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELEVBQUUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakIsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixNQUFNLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUM7U0FDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFO1lBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRTtpQkFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDMUIsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlJO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQy9DLElBQUksRUFBRSxDQUFDLEdBQThCLEVBQUUsRUFBRTtvQkFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7b0JBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDNUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDckQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFOzRCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO3lCQUMzRTtvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7b0JBQ1YsdUJBQXVCO2dCQUN6QixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7WUFDdkYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkUsSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtnQkFDbkcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQzthQUMxRDtpQkFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQy9FO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsQ0FBNEI7UUFDdkQsK0dBQStHO1FBQy9HLElBQUksQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7U0FDbko7SUFDSCxDQUFDOzsrR0FoTVUsa0JBQWtCO21HQUFsQixrQkFBa0IsNE5DL0MvQiw2VkFZQSxnbUREK0JjO1FBQ1YsYUFBYTtLQUNkO0FBRVUsa0JBQWtCO0lBVDlCLFlBQVksRUFBRTtHQVNGLGtCQUFrQixDQWlNOUI7U0FqTVksa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsY0FBYyxjQUdaO3dCQUNWLGFBQWE7cUJBQ2Q7MldBc0J5QixhQUFhO3NCQUF0QyxTQUFTO3VCQUFDLGFBQWE7Z0JBR3hCLEtBQUs7c0JBREosWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Q29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQ2FwYWJpbGl0aWVzLFxuICBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICBDb25maWcsXG4gIEVvVXNlcixcbiAgTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgU3RvcmVkUXVlcmllc1NlcnZpY2UsXG4gIFN0b3JlZFF1ZXJ5LFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVXRpbHNcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7UGljdHVyZVdpZGdldENvbXBvbmVudCxcbiAgICBQaWN0dXJlV2lkZ2V0U2V0dXBDb21wb25lbnQsXG4gICAgVG9kb1dpZGdldENvbXBvbmVudCxcbiAgICBUb2RvV2lkZ2V0U2V0dXBDb21wb25lbnQsXG4gICAgV2lkZ2V0R3JpZFJlZ2lzdHJ5LFxuICAgIFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcsXG4gICAgV2lkZ2V0R3JpZFdvcmtzcGFjZU9wdGlvbnN9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuaW1wb3J0IHtzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZSc7XG5pbXBvcnQge2xpc3RBbmltYXRpb259IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yayc7XG5pbXBvcnQge1F1aWNrU2VhcmNoUmVzdWx0fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsnO1xuaW1wb3J0IHtRdWlja1NlYXJjaENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrJztcbmltcG9ydCB7U2VhcmNoV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvc2VhcmNoLXdpZGdldC9zZWFyY2gtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge1RyZWVOb2RlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsnO1xuaW1wb3J0IHtJZnJhbWVTZXR1cENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2lmcmFtZS13aWRnZXQvaWZyYW1lLXNldHVwL2lmcmFtZS1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtMYXN0RWRpdGVkQW5kQ3JlYXRlZENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2xhc3QtZWRpdGVkLXdpZGdldC9sYXN0LWVkaXRlZC1hbmQtY3JlYXRlZC5jb21wb25lbnQnO1xuaW1wb3J0IHtJZnJhbWVXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pZnJhbWUtd2lkZ2V0L2lmcmFtZS13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7SW5mb0ludHJheVdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW50cmF5LXdpZGdldC9pbmZvLWludHJheS13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7SW5mb0ludHJheVNldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaW5mby1pbnRyYXktd2lkZ2V0L2luZm8taW50cmF5LXNldHVwL2luZm8taW50cmF5LXNldHVwLmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbmJveFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW5ib3gtd2lkZ2V0L2luZm8taW5ib3gtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbmJveFNldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaW5mby1pbmJveC13aWRnZXQvaW5mby1pbmJveC1zZXR1cC9pbmZvLWluYm94LXNldHVwLmNvbXBvbmVudCc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tZGFzaGJvYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgbGlzdEFuaW1hdGlvblxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgd29ya3NwYWNlQ29uZmlnOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnIHwgdW5kZWZpbmVkO1xuICB3b3Jrc3BhY2VPcHRpb25zOiBXaWRnZXRHcmlkV29ya3NwYWNlT3B0aW9ucyA9IHtcbiAgICBncmlkQ29uZmlnOiB7XG4gICAgICByb3dzOiAzMCxcbiAgICAgIG5ld0l0ZW1XaWR0aDogMixcbiAgICAgIG5ld0l0ZW1IZWlnaHQ6IDVcbiAgICB9XG4gIH07XG4gIHNhdmVkV29ya3NwYWNlID0gW107XG4gIGJhY2tncm91bmRJbWFnZTogc3RyaW5nO1xuICBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcztcbiAgc3RvcmVkUXVlcmllczogU3RvcmVkUXVlcnlbXSA9IFtdO1xuICBzZWxlY3RlZFF1ZXJ5OiBTdG9yZWRRdWVyeTtcbiAgcXVpY2tTZWFyY2hSZXN1bHQ6IFF1aWNrU2VhcmNoUmVzdWx0O1xuICB0cmVlID0ge307XG4gIFNUT1JBR0VfS0VZID0gJ2VvLmNsaWVudC5kYXNoYm9hcmQuY3VycmVudFdvcmtzcGFjZSc7XG5cbiAgdXNlcjogRW9Vc2VyO1xuICBAVmlld0NoaWxkKCdxdWlja1NlYXJjaCcpIHF1aWNrU2VhcmNoRWw6IFF1aWNrU2VhcmNoQ29tcG9uZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5KGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LndoaWNoID09PSAyNykge1xuICAgICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2lkZ2V0R3JpZFJlZ2lzdHJ5OiBXaWRnZXRHcmlkUmVnaXN0cnksXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXR5U2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSkge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldERlZmF1bHRUaXRsZSgpO1xuICAgIHRoaXMuYmFja2dyb3VuZEltYWdlID0gYHVybCgke3RoaXMuY29uZmlnLmdldERhc2hib2FyZEJhY2tncm91bmRJbWFnZSgpfSlgO1xuICAgIHRoaXMuc2V0V2lkZ2V0R3JpZExhYmVscygpO1xuXG4gIH1cbiAgb25Xb3Jrc3BhY2VzQ29uZmlnQ2hhbmdlKGM6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpIHtcbiAgICB0aGlzLnNhdmVXb3Jrc3BhY2VzQ29uZmlnKGMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWRnZXRHcmlkTGFiZWxzKCkge1xuICAgIHRoaXMud2lkZ2V0R3JpZFJlZ2lzdHJ5LnVwZGF0ZVdpZGdldEdyaWRMYWJlbHMoe1xuICAgICAgd2lkZ2V0UGlja2VyVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFBpY2tlclRpdGxlJyksXG4gICAgICBhZGRXb3Jrc3BhY2VUb29sdGlwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5hZGRXb3Jrc3BhY2UnKSxcbiAgICAgIG5vb3BXaWRnZXRMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQubm9vcFdpZGdldExhYmVsJyksXG4gICAgICB3b3Jrc3BhY2VzRW1wdHlNZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53b3Jrc3BhY2VzRW1wdHlNZXNzYWdlJyksXG4gICAgICBuZXdXb3Jrc3BhY2VEZWZhdWx0TGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLm5ld1dvcmtzcGFjZURlZmF1bHRMYWJlbCcpLFxuICAgICAgd29ya3NwYWNlUmVtb3ZlQ29uZmlybU1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndvcmtzcGFjZVJlbW92ZUNvbmZpcm1NZXNzYWdlJyksXG4gICAgICB3b3Jrc3BhY2VFZGl0RG9uZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQud29ya3NwYWNlRWRpdERvbmUnKSxcbiAgICAgIHdvcmtzcGFjZUVkaXRDYW5jZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLmNhbmNlbCcpLFxuICAgICAgc2F2ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuc2F2ZScpLFxuICAgICAgY2FuY2VsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5jYW5jZWwnKSxcbiAgICAgIGNvbmZpcm06IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLmNvbmZpcm0nKSxcbiAgICAgIHdpZGdldFRvZG9IZWFkbGluZUxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUb2RvSGVhZGxpbmVMYWJlbCcpLFxuICAgICAgd2lkZ2V0VG9kb1Rhc2tUaXRsZUxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUaXRsZUxhYmVsJylcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJXaWRnZXRzKCkge1xuICAgIC8vIHJlZ2lzdGVyIHRoZSB0d28gXCJiYWtlZCBpblwiIHdpZGdldHNcbiAgICB0aGlzLndpZGdldEdyaWRSZWdpc3RyeS5yZWdpc3RlckdyaWRXaWRnZXRzKFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucGljdHVyZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnBpY3R1cmUubGFiZWwnKSxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IFBpY3R1cmVXaWRnZXRTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBQaWN0dXJlV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQudG9kbycsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUb2RvSGVhZGxpbmVMYWJlbCcpLFxuICAgICAgICBzZXR1cENvbXBvbmVudDogVG9kb1dpZGdldFNldHVwQ29tcG9uZW50LFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFRvZG9XaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5MYXN0RWRpdGVkJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQubGFzdEVkaXRlZE9yTGFzdENyZWF0ZWQubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBMYXN0RWRpdGVkQW5kQ3JlYXRlZENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmlmcmFtZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmlmcmFtZS5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IElmcmFtZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IElmcmFtZVNldHVwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQuaW5mb0ludHJheScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmluZm9JbnRyYXkubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW50cmF5V2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICBzZXR1cENvbXBvbmVudDogSW5mb0ludHJheVNldHVwQ29tcG9uZW50XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5pbmZvSW5ib3gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW5ib3gubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW5ib3hXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBJbmZvSW5ib3hTZXR1cENvbXBvbmVudFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucXVpY2tTZWFyY2gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5xdWlja3NlYXJjaC5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFNlYXJjaFdpZGdldENvbXBvbmVudCxcbiAgICAgIH0sXG5cbiAgICBdKTtcbiAgfVxuXG4gIHNlbGVjdFN0b3JlZFF1ZXJ5KHE6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgdGhpcy5zZWxlY3RlZFF1ZXJ5ID0gcTtcbiAgfVxuXG4gIC8vIHVzZXIgY2hhbmdlZCBpbnB1dCBvZiBxdWlja1NlYXJjaCBjb21wb25lbnRcbiAgb25RdWlja1NlYXJjaElucHV0Q2hhbmdlKHRlcm0pIHtcbiAgICB0aGlzLnF1aWNrU2VhcmNoUmVzdWx0ID0gbnVsbDtcbiAgfVxuXG4gIC8vIHF1aWNrU2VhcmNoIGNvbXBvbmVudCBpcyByZXR1cm5pbmcgcmVzdWx0c1xuICBvblF1aWNrU2VhcmNoUmVzdWx0KHJlc3VsdDogUXVpY2tTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLnF1aWNrU2VhcmNoUmVzdWx0ID0gcmVzdWx0O1xuICAgIE9iamVjdC5rZXlzKHRoaXMucXVpY2tTZWFyY2hSZXN1bHQuZ3JvdXBzKS5tYXAoa2V5ID0+ICh0aGlzLnRyZWVba2V5XSA9IHRoaXMuZ2V0VHJlZU5vZGVzKGtleSkpKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlMb2FkZWQoKSB7XG4gICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUV4ZWN1dGUoZXZ0KSB7XG4gICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICBjb25zdCB1cmlQYXJhbSA9IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShldnQucXVlcnlKc29uKSk7XG4gICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcmVzdWx0J10sIHVyaVBhcmFtUXVlcnkpO1xuICB9XG4gIGdldFRyZWVOb2RlcyhrZXkpOiBUcmVlTm9kZVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdWlja1NlYXJjaFJlc3VsdC5ncm91cHNba2V5XS5tYXAoZ3JvdXAgPT4gKHtcbiAgICAgIGlkOiBncm91cC5kYXRhLmlkLFxuICAgICAgbmFtZTogZ3JvdXAubGFiZWwsXG4gICAgICBzZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgZGF0YTogZ3JvdXAuZGF0YSxcbiAgICAgIGJhZGdlczogW3t2YWx1ZTogZ3JvdXAuY291bnR9XVxuICAgIH0pKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZFdvcmtzcGFjZXNDb25maWcoKTtcbiAgICB0aGlzLnJlZ2lzdGVyV2lkZ2V0cygpO1xuICAgIHRoaXMuY2FwYWJpbGl0aWVzID0gdGhpcy5jYXBhYmlsaXR5U2VydmljZS5nZXRDYXBhYmlsaXRpZXMoKTtcbiAgICBpZiAodGhpcy5jYXBhYmlsaXRpZXMuc3RvcmVkcXVlcmllcykge1xuICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRTdG9yZWRRdWVyaWVzJCgpXG4gICAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKHF1ZXJpZXNTdWJzY3JpcHRpb24gPT4gdGhpcy5zdG9yZWRRdWVyaWVzID0gcXVlcmllc1N1YnNjcmlwdGlvbi5xdWVyaWVzLmZpbHRlcihxID0+IHEuZmF2b3JpdGUpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnbmFtZScpKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkV29ya3NwYWNlc0NvbmZpZygpIHtcbiAgICBpZiAoIXRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS51c2VyU2V0dGluZ3Mud29ya3NwYWNlT3B0aW9ucyB8fCB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnMud29ya3NwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuaHR0cC5nZXQoJ2Fzc2V0cy9kYXNoYm9hcmQuanNvbicpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpID0+IHtcbiAgICAgICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZyA9IHJlcztcbiAgICAgICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzWzBdLmxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzWzBdLmxhYmVsKTtcbiAgICAgICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzWzBdLmdyaWQuZm9yRWFjaChncmlkID0+IHtcbiAgICAgICAgICAgIGlmIChncmlkLndpZGdldENvbmZpZykge1xuICAgICAgICAgICAgICBncmlkLndpZGdldENvbmZpZy50aXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZ3JpZC53aWRnZXRDb25maWcudGl0bGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIC8vIG5vIGNvbmZpZyBmaWxlIGZvdW5kXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZyA9IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS51c2VyU2V0dGluZ3Mud29ya3NwYWNlT3B0aW9ucztcbiAgICAgIGNvbnN0IGN1cnJlbnRXb3Jrc3BhY2UgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoY3VycmVudFdvcmtzcGFjZSAmJiB0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzLm1hcCgodykgPT4gdy5pZCkuaW5jbHVkZXMoY3VycmVudFdvcmtzcGFjZSkpIHtcbiAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcuY3VycmVudFdvcmtzcGFjZSA9IGN1cnJlbnRXb3Jrc3BhY2U7XG4gICAgICB9IGVsc2UgaWYgKCEhdGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcuY3VycmVudFdvcmtzcGFjZSA9IHRoaXMud29ya3NwYWNlQ29uZmlnLndvcmtzcGFjZXNbMF0uaWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzYXZlV29ya3NwYWNlc0NvbmZpZyhjOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnKSB7XG4gICAgLy8gdGhlIHNlbGVjdGVkIHdvcmtzcGFjZSBpcyBzYXZlZCBvbiB0aGUgZGV2aWNlIHdoaWxlIHRoZSB3b3Jrc3BhY2VzIHRoZW1zZWx2ZXMgYXJlIHN0b3JlZCBvbiB0aGUgdXNlciBzZXJ2aWNlXG4gICAgaWYgKGMpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2F2ZUNoYW5nZVdvcmtzcGFjZShjKS5waXBlKHN3aXRjaE1hcChhc3luYyAoKSA9PiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0odGhpcy5TVE9SQUdFX0tFWSwgYy5jdXJyZW50V29ya3NwYWNlKSkpLnN1YnNjcmliZSgpXG4gICAgfVxuICB9XG59XG4iLCJcbjxuZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJmYWRlXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIiBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCJiYWNrZ3JvdW5kSW1hZ2VcIj5cbiAgICA8eXV2LXdpZGdldC1ncmlkLXdvcmtzcGFjZXMgW3dvcmtzcGFjZUNvbmZpZ109XCJ3b3Jrc3BhY2VDb25maWdcIiAoY29uZmlnQ2hhbmdlKT1cIm9uV29ya3NwYWNlc0NvbmZpZ0NoYW5nZSgkZXZlbnQpXCIgW29wdGlvbnNdPVwid29ya3NwYWNlT3B0aW9uc1wiPlxuICAgIDwveXV2LXdpZGdldC1ncmlkLXdvcmtzcGFjZXM+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cblxuXG5cbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { Validators } from '@angular/forms';
|
|
4
|
+
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@ngx-translate/core";
|
|
9
|
+
import * as i4 from "../../../../../eo-framework/ui/error-message/error-message.component";
|
|
10
|
+
import * as i5 from "../../../../../eo-framework/form-elements/form-input/form-input.component";
|
|
11
|
+
import * as i6 from "../../../../../eo-framework/form-elements/string/string.component";
|
|
12
|
+
import * as i7 from "../iframe-widget.component";
|
|
13
|
+
let IframeSetupComponent = class IframeSetupComponent {
|
|
14
|
+
set widgetConfig(wc) {
|
|
15
|
+
this._widgetConfig = wc;
|
|
16
|
+
this.setupForm.patchValue({
|
|
17
|
+
title: wc ? wc.title : '',
|
|
18
|
+
url: wc ? wc.url : ''
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
get widgetConfig() {
|
|
22
|
+
return this._widgetConfig;
|
|
23
|
+
}
|
|
24
|
+
constructor(fb) {
|
|
25
|
+
this.fb = fb;
|
|
26
|
+
this.widgetConfigChange = new EventEmitter();
|
|
27
|
+
this.pattern = /(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/;
|
|
28
|
+
this.setupForm = this.fb.group({
|
|
29
|
+
title: [''],
|
|
30
|
+
url: ['', [Validators.required, Validators.pattern(this.pattern)]],
|
|
31
|
+
});
|
|
32
|
+
this.setupForm.valueChanges.pipe(untilDestroyed(this)).subscribe((_) => {
|
|
33
|
+
this.setWidgetConfig();
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
setWidgetConfig() {
|
|
37
|
+
if (this.setupForm.valid) {
|
|
38
|
+
this._widgetConfig = {
|
|
39
|
+
...this.setupForm.value,
|
|
40
|
+
};
|
|
41
|
+
this.widgetConfigChange.emit(this._widgetConfig);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
IframeSetupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: IframeSetupComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
+
IframeSetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: IframeSetupComponent, selector: "eo-iframe-setup", inputs: { widgetConfig: "widgetConfig" }, outputs: { widgetConfigChange: "widgetConfigChange" }, ngImport: i0, template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\">\n <eo-string formControlName=\"title\"></eo-string>\n </eo-form-input>\n <eo-form-input [label]=\"'eo.workspace.widget.iframe.setup.url'| translate\" [required]=\"true\">\n <eo-string formControlName=\"url\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"setupForm.get('url').invalid && (setupForm.get('url').dirty || setupForm.get('url').touched)\">\n <div *ngIf=\"setupForm.get('url').errors.pattern\" translate>eo.form.property.string.error.classification.url\n </div>\n </div>\n </form>\n</div>\n<div class=\"preview\" *ngIf=\"!setupForm.get('url').invalid && !setupForm.get('title').invalid; else tpl\">\n <eo-iframe-widget [widgetConfig]=\"widgetConfig\"></eo-iframe-widget>\n</div>\n<ng-template #tpl>\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_noUrl.svg', text: 'eo.form.property.string.error.classification.url'}\"></eo-error-message>\n </div>\n</ng-template>\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-iframe-widget{border:4px solid var(--panel-divider-color)}:host .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i5.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i6.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: i7.IframeWidgetComponent, selector: "eo-iframe-widget", inputs: ["widgetConfig"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
47
|
+
IframeSetupComponent = __decorate([
|
|
48
|
+
UntilDestroy()
|
|
49
|
+
], IframeSetupComponent);
|
|
50
|
+
export { IframeSetupComponent };
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: IframeSetupComponent, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ selector: 'eo-iframe-setup', template: "<div class=\"setup\">\n <form [formGroup]=\"setupForm\">\n <eo-form-input [label]=\"'eo.workspace.widget.setup.title' | translate\" [skipToggle]=\"true\">\n <eo-string formControlName=\"title\"></eo-string>\n </eo-form-input>\n <eo-form-input [label]=\"'eo.workspace.widget.iframe.setup.url'| translate\" [required]=\"true\">\n <eo-string formControlName=\"url\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"setupForm.get('url').invalid && (setupForm.get('url').dirty || setupForm.get('url').touched)\">\n <div *ngIf=\"setupForm.get('url').errors.pattern\" translate>eo.form.property.string.error.classification.url\n </div>\n </div>\n </form>\n</div>\n<div class=\"preview\" *ngIf=\"!setupForm.get('url').invalid && !setupForm.get('title').invalid; else tpl\">\n <eo-iframe-widget [widgetConfig]=\"widgetConfig\"></eo-iframe-widget>\n</div>\n<ng-template #tpl>\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_noUrl.svg', text: 'eo.form.property.string.error.classification.url'}\"></eo-error-message>\n </div>\n</ng-template>\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:minmax(200px,400px) 1fr;grid-template-areas:\"setup preview\";height:100%}:host .setup{grid-area:setup;padding:var(--app-pane-padding);border-right:1px solid var(--panel-divider-color)}:host .setup eo-form-input{display:block;margin-bottom:var(--app-pane-padding)}:host .preview{grid-area:preview;overflow-y:auto;background-color:var(--main-background);padding:var(--app-pane-padding)}:host .preview eo-iframe-widget{border:4px solid var(--panel-divider-color)}:host .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}\n"] }]
|
|
54
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { widgetConfigChange: [{
|
|
55
|
+
type: Output
|
|
56
|
+
}], widgetConfig: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLXNldHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2lmcmFtZS13aWRnZXQvaWZyYW1lLXNldHVwL2lmcmFtZS1zZXR1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9pZnJhbWUtd2lkZ2V0L2lmcmFtZS1zZXR1cC9pZnJhbWUtc2V0dXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUF5QixVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUFRNUQsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFXL0IsSUFBYSxZQUFZLENBQUMsRUFBc0I7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDeEIsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6QixHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQ1UsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFyQmYsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUUxRCxZQUFPLEdBQUcsdUZBQXVGLENBQUM7UUFFbEcsY0FBUyxHQUFjLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25DLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNYLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNuRSxDQUFDLENBQUM7UUFnQkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRztnQkFDbkIsR0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7YUFDekIsQ0FBQztZQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQzs7aUhBdENVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHdKQ1pqQyx5cUNBdUJBO0FEWGEsb0JBQW9CO0lBTmhDLFlBQVksRUFBRTtHQU1GLG9CQUFvQixDQXVDaEM7U0F2Q1ksb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCO2tHQU9qQixrQkFBa0I7c0JBQTNCLE1BQU07Z0JBUU0sWUFBWTtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJV2lkZ2V0U2V0dXBDb21wb25lbnR9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0lmcmFtZX0gZnJvbSAnLi4vaWZyYW1lLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWlmcmFtZS1zZXR1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pZnJhbWUtc2V0dXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pZnJhbWUtc2V0dXAuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJZnJhbWVTZXR1cENvbXBvbmVudCBpbXBsZW1lbnRzIElXaWRnZXRTZXR1cENvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlnOiBJZnJhbWUgfCB1bmRlZmluZWQ7XG4gIEBPdXRwdXQoKSB3aWRnZXRDb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElmcmFtZT4oKTtcblxuICBwYXR0ZXJuID0gLyhodHRwfGZ0cHxodHRwcyk6XFwvXFwvW1xcdy1dKyhcXC5bXFx3LV0rKSsoW1xcdy4sQD9ePSUmYW1wOzpcXC9+KyMtXSpbXFx3QD9ePSUmYW1wO1xcL34rIy1dKT8vO1xuXG4gIHNldHVwRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgdGl0bGU6IFsnJ10sXG4gICAgdXJsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5wYXR0ZXJuKV1dLFxuICB9KTtcbiAgQElucHV0KCkgc2V0IHdpZGdldENvbmZpZyh3YzogSWZyYW1lIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fd2lkZ2V0Q29uZmlnID0gd2M7XG4gICAgdGhpcy5zZXR1cEZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICB0aXRsZTogd2MgPyB3Yy50aXRsZSA6ICcnLFxuICAgICAgdXJsOiB3YyA/IHdjLnVybCA6ICcnXG4gICAgfSk7XG4gIH1cblxuICBnZXQgd2lkZ2V0Q29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRDb25maWc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlclxuICApIHtcbiAgICB0aGlzLnNldHVwRm9ybS52YWx1ZUNoYW5nZXMucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLnNldFdpZGdldENvbmZpZygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWRnZXRDb25maWcoKSB7XG4gICAgaWYgKHRoaXMuc2V0dXBGb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLl93aWRnZXRDb25maWcgPSB7XG4gICAgICAgIC4uLiB0aGlzLnNldHVwRm9ybS52YWx1ZSxcbiAgICAgIH07XG4gICAgICB0aGlzLndpZGdldENvbmZpZ0NoYW5nZS5lbWl0KHRoaXMuX3dpZGdldENvbmZpZyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2V0dXBcIj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInNldHVwRm9ybVwiPlxuICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbbGFiZWxdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuc2V0dXAudGl0bGUnIHwgdHJhbnNsYXRlXCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGVvLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiPjwvZW8tc3RyaW5nPlxuICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5pZnJhbWUuc2V0dXAudXJsJ3wgdHJhbnNsYXRlXCIgW3JlcXVpcmVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxlby1zdHJpbmcgZm9ybUNvbnRyb2xOYW1lPVwidXJsXCI+PC9lby1zdHJpbmc+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cInNldHVwRm9ybS5nZXQoJ3VybCcpLmludmFsaWQgJiYgKHNldHVwRm9ybS5nZXQoJ3VybCcpLmRpcnR5IHx8IHNldHVwRm9ybS5nZXQoJ3VybCcpLnRvdWNoZWQpXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2V0dXBGb3JtLmdldCgndXJsJykuZXJyb3JzLnBhdHRlcm5cIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5zdHJpbmcuZXJyb3IuY2xhc3NpZmljYXRpb24udXJsXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicHJldmlld1wiICpuZ0lmPVwiIXNldHVwRm9ybS5nZXQoJ3VybCcpLmludmFsaWQgJiYgIXNldHVwRm9ybS5nZXQoJ3RpdGxlJykuaW52YWxpZDsgZWxzZSB0cGxcIj5cbiAgICA8ZW8taWZyYW1lLXdpZGdldCBbd2lkZ2V0Q29uZmlnXT1cIndpZGdldENvbmZpZ1wiPjwvZW8taWZyYW1lLXdpZGdldD5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICN0cGw+XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgIDxlby1lcnJvci1tZXNzYWdlXG4gICAgICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19ub1VybC5zdmcnLCB0ZXh0OiAnZW8uZm9ybS5wcm9wZXJ0eS5zdHJpbmcuZXJyb3IuY2xhc3NpZmljYXRpb24udXJsJ31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/platform-browser";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export class SafeUrlPipe {
|
|
7
|
+
constructor(sanitized) {
|
|
8
|
+
this.sanitized = sanitized;
|
|
9
|
+
}
|
|
10
|
+
transform(value) {
|
|
11
|
+
return this.sanitized.bypassSecurityTrustResourceUrl(value);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
SafeUrlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
15
|
+
SafeUrlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: SafeUrlPipe, name: "safeUrl" });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SafeUrlPipe, decorators: [{
|
|
17
|
+
type: Pipe,
|
|
18
|
+
args: [{ name: 'safeUrl' }]
|
|
19
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
|
|
20
|
+
export class IframeWidgetComponent {
|
|
21
|
+
set widgetConfig(c) {
|
|
22
|
+
this._widgetConfig = c;
|
|
23
|
+
}
|
|
24
|
+
get widgetConfig() {
|
|
25
|
+
return this._widgetConfig;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
IframeWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: IframeWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
IframeWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: IframeWidgetComponent, selector: "eo-iframe-widget", inputs: { widgetConfig: "widgetConfig" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true, static: true }], ngImport: i0, template: "\n<header *ngIf=\"widgetConfig?.title\">\n <a>{{widgetConfig?.title}}</a>\n</header>\n<div class=\"iframe\" *ngIf=\"widgetConfig?.url === '' ; else tpl\">\n</div>\n<ng-template #tpl>\n <div class=\"container\" [style.overflow]=\"'hidden'\">\n <iframe class=\"responsive-iframe\" [src]=\"widgetConfig?.url | safeUrl\" #iframe></iframe>\n </div>\n</ng-template>\n\n", styles: [":host header{background-color:var(--color-primary-2);height:40px;display:flex;justify-content:center;align-items:center;color:#fff}:host .container{position:relative;width:100%;overflow:hidden;height:570px}:host .container .responsive-iframe{width:100%;height:100%;border:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: SafeUrlPipe, name: "safeUrl" }] });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: IframeWidgetComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ selector: 'eo-iframe-widget', template: "\n<header *ngIf=\"widgetConfig?.title\">\n <a>{{widgetConfig?.title}}</a>\n</header>\n<div class=\"iframe\" *ngIf=\"widgetConfig?.url === '' ; else tpl\">\n</div>\n<ng-template #tpl>\n <div class=\"container\" [style.overflow]=\"'hidden'\">\n <iframe class=\"responsive-iframe\" [src]=\"widgetConfig?.url | safeUrl\" #iframe></iframe>\n </div>\n</ng-template>\n\n", styles: [":host header{background-color:var(--color-primary-2);height:40px;display:flex;justify-content:center;align-items:center;color:#fff}:host .container{position:relative;width:100%;overflow:hidden;height:570px}:host .container .responsive-iframe{width:100%;height:100%;border:none}\n"] }]
|
|
33
|
+
}], propDecorators: { iframe: [{
|
|
34
|
+
type: ViewChild,
|
|
35
|
+
args: ['iframe', { static: true }]
|
|
36
|
+
}], widgetConfig: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9pZnJhbWUtd2lkZ2V0L2lmcmFtZS13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvaWZyYW1lLXdpZGdldC9pZnJhbWUtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcxRCxPQUFPLEVBQWlCLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUdwRCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQUcsQ0FBQztJQUMvQyxTQUFTLENBQUMsS0FBVTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7d0dBSlUsV0FBVztzR0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDOztBQWdCeEIsTUFBTSxPQUFPLHFCQUFxQjtJQUtoQyxJQUFhLFlBQVksQ0FBQyxDQUFxQjtRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O2tIQVZVLHFCQUFxQjtzR0FBckIscUJBQXFCLGtOQ3JCbEMsOFhBWUEsZ2JETmEsV0FBVzsyRkFlWCxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usa0JBQWtCOzhCQU1TLE1BQU07c0JBQTFDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFHdEIsWUFBWTtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SVdpZGdldENvbXBvbmVudH0gZnJvbSAnQHl1dXZpcy93aWRnZXQtZ3JpZCc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoeyBuYW1lOiAnc2FmZVVybCd9KVxuZXhwb3J0IGNsYXNzIFNhZmVVcmxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSAge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplZDogRG9tU2FuaXRpemVyKSB7fVxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLnNhbml0aXplZC5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodmFsdWUpO1xuICB9XG59XG5leHBvcnQgaW50ZXJmYWNlIElmcmFtZSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWlmcmFtZS13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaWZyYW1lLXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lmcmFtZS13aWRnZXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJZnJhbWVXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBJV2lkZ2V0Q29tcG9uZW50IHtcblxuICBAVmlld0NoaWxkKCdpZnJhbWUnLCB7c3RhdGljOiB0cnVlfSkgaWZyYW1lO1xuICBwcml2YXRlIF93aWRnZXRDb25maWc6IElmcmFtZSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKSBzZXQgd2lkZ2V0Q29uZmlnKGM6IElmcmFtZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3dpZGdldENvbmZpZyA9IGM7XG4gIH1cbiAgZ2V0IHdpZGdldENvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0Q29uZmlnO1xuICB9XG59XG5cbiIsIlxuPGhlYWRlciAqbmdJZj1cIndpZGdldENvbmZpZz8udGl0bGVcIj5cbiAgICA8YT57e3dpZGdldENvbmZpZz8udGl0bGV9fTwvYT5cbjwvaGVhZGVyPlxuPGRpdiBjbGFzcz1cImlmcmFtZVwiICpuZ0lmPVwid2lkZ2V0Q29uZmlnPy51cmwgPT09ICcnIDsgZWxzZSB0cGxcIj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICN0cGw+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICBbc3R5bGUub3ZlcmZsb3ddPVwiJ2hpZGRlbidcIj5cbiAgICAgICAgPGlmcmFtZSBjbGFzcz1cInJlc3BvbnNpdmUtaWZyYW1lXCIgW3NyY109XCJ3aWRnZXRDb25maWc/LnVybCB8IHNhZmVVcmxcIiAjaWZyYW1lPjwvaWZyYW1lPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
|