@eo-sdk/client 10.0.0-beta.5 → 10.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts +0 -5
  2. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/dashboard.component.d.ts +23 -30
  4. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  5. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts +19 -0
  6. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts.map +1 -0
  7. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.d.ts +24 -0
  8. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.d.ts.map +1 -0
  9. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts +20 -0
  10. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -0
  11. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.d.ts +19 -0
  12. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.d.ts.map +1 -0
  13. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.d.ts +4 -0
  14. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.d.ts.map +1 -0
  15. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts +25 -0
  16. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -0
  17. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.d.ts +20 -0
  18. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.d.ts.map +1 -0
  19. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.d.ts +4 -0
  20. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.d.ts.map +1 -0
  21. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts +28 -0
  22. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts.map +1 -0
  23. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +44 -0
  24. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -0
  25. package/app/eo-client/eo-client.module.d.ts +24 -13
  26. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  27. package/app/eo-client/login/login.component.d.ts +8 -3
  28. package/app/eo-client/login/login.component.d.ts.map +1 -1
  29. package/app/eo-framework/actions/action.module.d.ts.map +1 -1
  30. package/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.d.ts +2 -3
  31. package/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.d.ts.map +1 -1
  32. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  33. package/app/eo-framework/form-elements/organization/organization.component.d.ts +6 -3
  34. package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
  35. package/app/eo-framework/grid/filters/organization-filter.component.d.ts +2 -2
  36. package/app/eo-framework/grid/filters/organization-filter.component.d.ts.map +1 -1
  37. package/app/eo-framework/object-details/object-details.component.d.ts +9 -2
  38. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  39. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  40. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +1 -0
  41. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  42. package/assets/_default/i18n/de.json +30 -1
  43. package/assets/_default/i18n/en.json +30 -1
  44. package/assets/_default/svg/ic_noUrl.svg +1 -0
  45. package/assets/dashboard.json +47 -0
  46. package/esm2020/app/eo-client/about-state/about-state.component.mjs +5 -11
  47. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +133 -91
  48. package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +59 -0
  49. package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +39 -0
  50. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +53 -0
  51. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +42 -0
  52. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.mjs +2 -0
  53. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +65 -0
  54. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +43 -0
  55. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.mjs +2 -0
  56. package/esm2020/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +117 -0
  57. package/esm2020/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +115 -0
  58. package/esm2020/app/eo-client/eo-client.module.mjs +44 -6
  59. package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +2 -2
  60. package/esm2020/app/eo-client/login/login.component.mjs +33 -13
  61. package/esm2020/app/eo-client/settings/settings.component.mjs +3 -3
  62. package/esm2020/app/eo-framework/actions/action.module.mjs +1 -1
  63. package/esm2020/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +11 -15
  64. package/esm2020/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +3 -3
  65. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +15 -12
  66. package/esm2020/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
  67. package/esm2020/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
  68. package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +10 -6
  69. package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
  70. package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +2 -2
  71. package/esm2020/app/eo-framework/frame/frame.component.mjs +2 -2
  72. package/esm2020/app/eo-framework/grid/filters/organization-filter.component.mjs +5 -5
  73. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +27 -13
  74. package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +1 -1
  75. package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -3
  76. package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +1 -1
  77. package/esm2020/app/eo-framework/result-list/result-list.component.mjs +4 -2
  78. package/esm2020/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
  79. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +20 -12
  80. package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  81. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +24 -30
  82. package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.mjs +1 -1
  83. package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.mjs +8 -6
  84. package/esm2020/projects/eo-sdk/core/lib/service/config/config.service.mjs +1 -1
  85. package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +12 -6
  86. package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +11 -1
  87. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +925 -914
  88. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  89. package/fesm2015/eo-sdk-client.mjs +794 -256
  90. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  91. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +925 -914
  92. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  93. package/fesm2020/eo-sdk-client.mjs +798 -255
  94. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  95. package/package.json +5 -4
  96. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts +14 -20
  97. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +1 -1
  98. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts +4 -0
  99. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts.map +1 -1
  100. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts +3 -1
  101. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts.map +1 -1
  102. package/projects/eo-sdk/core/lib/service/config/config.service.d.ts.map +1 -1
  103. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +4 -1
  104. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +1 -1
  105. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +6 -0
  106. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +1 -1
  107. package/scss/_eo-variables.scss +1 -0
  108. 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 "../../eo-framework-core/title/page-title.service";
9
- import * as i3 from "@angular/router";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@angular/forms";
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, route, config, searchService, authService, systemService, inboxService, prepareService, envService, capabilityService, storedQueriesService) {
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.route = route;
33
+ this.http = http;
32
34
  this.config = config;
33
- this.searchService = searchService;
34
- this.authService = authService;
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.storedQueries = [];
42
- this.selectedQuickSearchResultItem = {
43
- index: -1,
44
- name: null
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.modifiedByMe = {
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
- get isCloud() {
56
- return this.envService.isCloud();
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.userService.user$
130
- .pipe(untilDestroyed(this))
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
- if (this.capabilities.inbox) {
142
- this.inboxService.inboxState$
143
- .pipe(untilDestroyed(this))
144
- .subscribe((inboxState) => this.inboxState = inboxState);
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
- if (this.capabilities.intray) {
147
- this.prepareService.preparedItemCount$
148
- .pipe(untilDestroyed(this))
149
- .subscribe(count => this.preparedItemsCount = count);
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.PageTitleService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i1.Config }, { token: i1.SearchService }, { token: i1.AuthService }, { token: i1.SystemService }, { token: i1.InboxService }, { token: i1.PrepareService }, { token: i1.EnvironmentService }, { token: i1.CapabilitiesService }, { token: i1.StoredQueriesService }], target: i0.ɵɵFactoryTarget.Component });
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: [".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.PageTitleService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i1.Config }, { type: i1.SearchService }, { type: i1.AuthService }, { type: i1.SystemService }, { type: i1.InboxService }, { type: i1.PrepareService }, { type: i1.EnvironmentService }, { type: i1.CapabilitiesService }, { type: i1.StoredQueriesService }]; }, propDecorators: { quickSearchEl: [{
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: [".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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFVTCxLQUFLLEVBQ04sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLHNCQUFzQixFQUMxQiwyQkFBMkIsRUFDM0IsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUdHLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUdqRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUV0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUNqRyxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0RUFBNEUsQ0FBQztBQUNwSCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUNoSCxPQUFPLEVBQUMsWUFBWSxF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QVksRUFBRTtHQVNGLGtCQUFrQixDQWlNOUI7U0FqTVksa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsY0FBYyxjQUdaO3dCQUNWLGFBQWE7cUJBQ2Q7MldBc0J5QixhQUFhO3NCQUF0QyxTQUFTO3VCQUFDLGFBQWE7Z0JBR3hCLEtBQUs7c0JBREosWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Q29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQ2FwYWJpbGl0aWVzLFxuICBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICBDb25maWcsXG4gIEVvVXNlcixcbiAgTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgU3RvcmVkUXVlcmllc1NlcnZpY2UsXG4gIFN0b3JlZFF1ZXJ5LFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVXRpbHNcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7UGljdHVyZVdpZGdldENvbXBvbmVudCxcbiAgICBQaWN0dXJlV2lkZ2V0U2V0dXBDb21wb25lbnQsXG4gICAgVG9kb1dpZGdldENvbXBvbmVudCxcbiAgICBUb2RvV2lkZ2V0U2V0dXBDb21wb25lbnQsXG4gICAgV2lkZ2V0R3JpZFJlZ2lzdHJ5LFxuICAgIFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcsXG4gICAgV2lkZ2V0R3JpZFdvcmtzcGFjZU9wdGlvbnN9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuaW1wb3J0IHtzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZSc7XG5pbXBvcnQge2xpc3RBbmltYXRpb259IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yayc7XG5pbXBvcnQge1F1aWNrU2VhcmNoUmVzdWx0fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsnO1xuaW1wb3J0IHtRdWlja1NlYXJjaENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrJztcbmltcG9ydCB7U2VhcmNoV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvc2VhcmNoLXdpZGdldC9zZWFyY2gtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge1RyZWVOb2RlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsnO1xuaW1wb3J0IHtJZnJhbWVTZXR1cENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2lmcmFtZS13aWRnZXQvaWZyYW1lLXNldHVwL2lmcmFtZS1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtMYXN0RWRpdGVkQW5kQ3JlYXRlZENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2xhc3QtZWRpdGVkLXdpZGdldC9sYXN0LWVkaXRlZC1hbmQtY3JlYXRlZC5jb21wb25lbnQnO1xuaW1wb3J0IHtJZnJhbWVXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pZnJhbWUtd2lkZ2V0L2lmcmFtZS13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7SW5mb0ludHJheVdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW50cmF5LXdpZGdldC9pbmZvLWludHJheS13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7SW5mb0ludHJheVNldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaW5mby1pbnRyYXktd2lkZ2V0L2luZm8taW50cmF5LXNldHVwL2luZm8taW50cmF5LXNldHVwLmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbmJveFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW5ib3gtd2lkZ2V0L2luZm8taW5ib3gtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbmJveFNldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaW5mby1pbmJveC13aWRnZXQvaW5mby1pbmJveC1zZXR1cC9pbmZvLWluYm94LXNldHVwLmNvbXBvbmVudCc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tZGFzaGJvYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgbGlzdEFuaW1hdGlvblxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgd29ya3NwYWNlQ29uZmlnOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnIHwgdW5kZWZpbmVkO1xuICB3b3Jrc3BhY2VPcHRpb25zOiBXaWRnZXRHcmlkV29ya3NwYWNlT3B0aW9ucyA9IHtcbiAgICBncmlkQ29uZmlnOiB7XG4gICAgICByb3dzOiAzMCxcbiAgICAgIG5ld0l0ZW1XaWR0aDogMixcbiAgICAgIG5ld0l0ZW1IZWlnaHQ6IDVcbiAgICB9XG4gIH07XG4gIHNhdmVkV29ya3NwYWNlID0gW107XG4gIGJhY2tncm91bmRJbWFnZTogc3RyaW5nO1xuICBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcztcbiAgc3RvcmVkUXVlcmllczogU3RvcmVkUXVlcnlbXSA9IFtdO1xuICBzZWxlY3RlZFF1ZXJ5OiBTdG9yZWRRdWVyeTtcbiAgcXVpY2tTZWFyY2hSZXN1bHQ6IFF1aWNrU2VhcmNoUmVzdWx0O1xuICB0cmVlID0ge307XG4gIFNUT1JBR0VfS0VZID0gJ2VvLmNsaWVudC5kYXNoYm9hcmQuY3VycmVudFdvcmtzcGFjZSc7XG5cbiAgdXNlcjogRW9Vc2VyO1xuICBAVmlld0NoaWxkKCdxdWlja1NlYXJjaCcpIHF1aWNrU2VhcmNoRWw6IFF1aWNrU2VhcmNoQ29tcG9uZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5KGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LndoaWNoID09PSAyNykge1xuICAgICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2lkZ2V0R3JpZFJlZ2lzdHJ5OiBXaWRnZXRHcmlkUmVnaXN0cnksXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXR5U2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSkge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldERlZmF1bHRUaXRsZSgpO1xuICAgIHRoaXMuYmFja2dyb3VuZEltYWdlID0gYHVybCgke3RoaXMuY29uZmlnLmdldERhc2hib2FyZEJhY2tncm91bmRJbWFnZSgpfSlgO1xuICAgIHRoaXMuc2V0V2lkZ2V0R3JpZExhYmVscygpO1xuXG4gIH1cbiAgb25Xb3Jrc3BhY2VzQ29uZmlnQ2hhbmdlKGM6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpIHtcbiAgICB0aGlzLnNhdmVXb3Jrc3BhY2VzQ29uZmlnKGMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWRnZXRHcmlkTGFiZWxzKCkge1xuICAgIHRoaXMud2lkZ2V0R3JpZFJlZ2lzdHJ5LnVwZGF0ZVdpZGdldEdyaWRMYWJlbHMoe1xuICAgICAgd2lkZ2V0UGlja2VyVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFBpY2tlclRpdGxlJyksXG4gICAgICBhZGRXb3Jrc3BhY2VUb29sdGlwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5hZGRXb3Jrc3BhY2UnKSxcbiAgICAgIG5vb3BXaWRnZXRMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQubm9vcFdpZGdldExhYmVsJyksXG4gICAgICB3b3Jrc3BhY2VzRW1wdHlNZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53b3Jrc3BhY2VzRW1wdHlNZXNzYWdlJyksXG4gICAgICBuZXdXb3Jrc3BhY2VEZWZhdWx0TGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLm5ld1dvcmtzcGFjZURlZmF1bHRMYWJlbCcpLFxuICAgICAgd29ya3NwYWNlUmVtb3ZlQ29uZmlybU1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndvcmtzcGFjZVJlbW92ZUNvbmZpcm1NZXNzYWdlJyksXG4gICAgICB3b3Jrc3BhY2VFZGl0RG9uZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQud29ya3NwYWNlRWRpdERvbmUnKSxcbiAgICAgIHdvcmtzcGFjZUVkaXRDYW5jZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLmNhbmNlbCcpLFxuICAgICAgc2F2ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuc2F2ZScpLFxuICAgICAgY2FuY2VsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5jYW5jZWwnKSxcbiAgICAgIGNvbmZpcm06IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLmNvbmZpcm0nKSxcbiAgICAgIHdpZGdldFRvZG9IZWFkbGluZUxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUb2RvSGVhZGxpbmVMYWJlbCcpLFxuICAgICAgd2lkZ2V0VG9kb1Rhc2tUaXRsZUxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUaXRsZUxhYmVsJylcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJXaWRnZXRzKCkge1xuICAgIC8vIHJlZ2lzdGVyIHRoZSB0d28gXCJiYWtlZCBpblwiIHdpZGdldHNcbiAgICB0aGlzLndpZGdldEdyaWRSZWdpc3RyeS5yZWdpc3RlckdyaWRXaWRnZXRzKFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucGljdHVyZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnBpY3R1cmUubGFiZWwnKSxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IFBpY3R1cmVXaWRnZXRTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBQaWN0dXJlV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQudG9kbycsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUb2RvSGVhZGxpbmVMYWJlbCcpLFxuICAgICAgICBzZXR1cENvbXBvbmVudDogVG9kb1dpZGdldFNldHVwQ29tcG9uZW50LFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFRvZG9XaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5MYXN0RWRpdGVkJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQubGFzdEVkaXRlZE9yTGFzdENyZWF0ZWQubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBMYXN0RWRpdGVkQW5kQ3JlYXRlZENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmlmcmFtZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmlmcmFtZS5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IElmcmFtZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IElmcmFtZVNldHVwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQuaW5mb0ludHJheScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmluZm9JbnRyYXkubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW50cmF5V2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICBzZXR1cENvbXBvbmVudDogSW5mb0ludHJheVNldHVwQ29tcG9uZW50XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5pbmZvSW5ib3gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW5ib3gubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW5ib3hXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBJbmZvSW5ib3hTZXR1cENvbXBvbmVudFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucXVpY2tTZWFyY2gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5xdWlja3NlYXJjaC5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFNlYXJjaFdpZGdldENvbXBvbmVudCxcbiAgICAgIH0sXG5cbiAgICBdKTtcbiAgfVxuXG4gIHNlbGVjdFN0b3JlZFF1ZXJ5KHE6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgdGhpcy5zZWxlY3RlZFF1ZXJ5ID0gcTtcbiAgfVxuXG4gIC8vIHVzZXIgY2hhbmdlZCBpbnB1dCBvZiBxdWlja1NlYXJjaCBjb21wb25lbnRcbiAgb25RdWlja1NlYXJjaElucHV0Q2hhbmdlKHRlcm0pIHtcbiAgICB0aGlzLnF1aWNrU2VhcmNoUmVzdWx0ID0gbnVsbDtcbiAgfVxuXG4gIC8vIHF1aWNrU2VhcmNoIGNvbXBvbmVudCBpcyByZXR1cm5pbmcgcmVzdWx0c1xuICBvblF1aWNrU2VhcmNoUmVzdWx0KHJlc3VsdDogUXVpY2tTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLnF1aWNrU2VhcmNoUmVzdWx0ID0gcmVzdWx0O1xuICAgIE9iamVjdC5rZXlzKHRoaXMucXVpY2tTZWFyY2hSZXN1bHQuZ3JvdXBzKS5tYXAoa2V5ID0+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.,@?^=%&amp;:\/~+#-]*[\w@?^=%&amp;\/~+#-])?/;
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