@alfresco/aca-shared 6.0.0-11182591049 → 6.0.0-11214869577

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 (152) hide show
  1. package/esm2020/lib/components/document-base-page/document-base-page.component.mjs +221 -0
  2. package/esm2020/lib/components/generic-error/generic-error.component.mjs +43 -0
  3. package/esm2020/lib/components/info-drawer/info-drawer.component.mjs +132 -0
  4. package/esm2020/lib/components/locked-by/locked-by.component.mjs +54 -0
  5. package/esm2020/lib/components/open-in-app/open-in-app.component.mjs +68 -0
  6. package/esm2020/lib/components/page-layout/page-layout-content.component.mjs +50 -0
  7. package/esm2020/lib/components/page-layout/page-layout-error.component.mjs +42 -0
  8. package/esm2020/lib/components/page-layout/page-layout-header.component.mjs +42 -0
  9. package/esm2020/lib/components/page-layout/page-layout.component.mjs +61 -0
  10. package/esm2020/lib/components/page-layout/page-layout.module.mjs +42 -0
  11. package/esm2020/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +58 -0
  12. package/esm2020/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +74 -0
  13. package/esm2020/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +87 -0
  14. package/esm2020/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +71 -0
  15. package/esm2020/lib/components/toolbar/toolbar.component.mjs +44 -0
  16. package/esm2020/lib/deprecated/shared-toolbar.module.mjs +43 -0
  17. package/esm2020/lib/deprecated/shared.module.mjs +44 -0
  18. package/esm2020/lib/directives/contextmenu/contextmenu.directive.mjs +104 -0
  19. package/esm2020/lib/directives/pagination.directive.mjs +55 -0
  20. package/esm2020/lib/services/aca-mobile-app-switcher.service.mjs +129 -0
  21. package/esm2020/lib/services/app-hook.service.mjs +79 -0
  22. package/esm2020/lib/services/app-settings.service.mjs +140 -0
  23. package/esm2020/lib/services/app.extension.service.mjs +462 -0
  24. package/esm2020/lib/services/app.service.mjs +221 -0
  25. package/esm2020/lib/services/auto-download.service.mjs +60 -0
  26. package/esm2020/lib/services/content-api.service.mjs +268 -0
  27. package/esm2020/lib/services/navigation-history.service.mjs +53 -0
  28. package/esm2020/lib/services/node-permission.service.mjs +89 -0
  29. package/esm2020/lib/services/router.extension.service.mjs +105 -0
  30. package/esm2020/lib/services/user-profile.service.mjs +77 -0
  31. package/esm2020/lib/testing/lib-testing-module.mjs +161 -0
  32. package/esm2020/store/actions/app.actions.mjs +108 -0
  33. package/esm2020/store/actions/contextmenu.actions.mjs +31 -0
  34. package/esm2020/store/actions/library.actions.mjs +63 -0
  35. package/esm2020/store/actions/metadata-aspect.actions.mjs +31 -0
  36. package/esm2020/store/actions/node.actions.mjs +188 -0
  37. package/esm2020/store/actions/router.actions.mjs +54 -0
  38. package/esm2020/store/actions/search-ai.actions.mjs +42 -0
  39. package/esm2020/store/actions/search.actions.mjs +41 -0
  40. package/esm2020/store/actions/snackbar.actions.mjs +57 -0
  41. package/esm2020/store/actions/template.actions.mjs +47 -0
  42. package/esm2020/store/actions/upload.actions.mjs +49 -0
  43. package/esm2020/store/actions/viewer.actions.mjs +81 -0
  44. package/esm2020/store/effects/router.effects.mjs +114 -0
  45. package/esm2020/store/effects/snackbar.effects.mjs +85 -0
  46. package/fesm2015/alfresco-aca-shared-rules.mjs +795 -0
  47. package/fesm2015/alfresco-aca-shared-rules.mjs.map +1 -0
  48. package/fesm2015/alfresco-aca-shared-store.mjs +1279 -0
  49. package/fesm2015/alfresco-aca-shared-store.mjs.map +1 -0
  50. package/fesm2015/alfresco-aca-shared.mjs +3340 -0
  51. package/fesm2015/alfresco-aca-shared.mjs.map +1 -0
  52. package/{fesm2022 → fesm2020}/alfresco-aca-shared-store.mjs +140 -206
  53. package/fesm2020/alfresco-aca-shared-store.mjs.map +1 -0
  54. package/{fesm2022 → fesm2020}/alfresco-aca-shared.mjs +295 -372
  55. package/fesm2020/alfresco-aca-shared.mjs.map +1 -0
  56. package/lib/components/document-base-page/document-base-page.component.d.ts +1 -1
  57. package/lib/components/generic-error/generic-error.component.d.ts +1 -1
  58. package/lib/components/info-drawer/info-drawer.component.d.ts +1 -1
  59. package/lib/components/locked-by/locked-by.component.d.ts +1 -1
  60. package/lib/components/page-layout/page-layout-content.component.d.ts +1 -1
  61. package/lib/components/page-layout/page-layout.component.d.ts +1 -1
  62. package/lib/components/toolbar/toolbar-action/toolbar-action.component.d.ts +1 -1
  63. package/lib/components/toolbar/toolbar-button/toolbar-button.component.d.ts +1 -1
  64. package/lib/components/toolbar/toolbar-menu/toolbar-menu.component.d.ts +1 -1
  65. package/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.d.ts +1 -1
  66. package/lib/components/toolbar/toolbar.component.d.ts +1 -1
  67. package/lib/directives/contextmenu/contextmenu.directive.d.ts +1 -1
  68. package/lib/services/app-hook.service.d.ts +6 -6
  69. package/lib/services/app.service.d.ts +1 -1
  70. package/package.json +21 -11
  71. package/store/effects/router.effects.d.ts +5 -1
  72. package/store/effects/snackbar.effects.d.ts +29 -0
  73. package/esm2022/lib/components/document-base-page/document-base-page.component.mjs +0 -226
  74. package/esm2022/lib/components/generic-error/generic-error.component.mjs +0 -42
  75. package/esm2022/lib/components/info-drawer/info-drawer.component.mjs +0 -141
  76. package/esm2022/lib/components/locked-by/locked-by.component.mjs +0 -57
  77. package/esm2022/lib/components/open-in-app/open-in-app.component.mjs +0 -73
  78. package/esm2022/lib/components/page-layout/page-layout-content.component.mjs +0 -49
  79. package/esm2022/lib/components/page-layout/page-layout-error.component.mjs +0 -43
  80. package/esm2022/lib/components/page-layout/page-layout-header.component.mjs +0 -43
  81. package/esm2022/lib/components/page-layout/page-layout.component.mjs +0 -64
  82. package/esm2022/lib/components/page-layout/page-layout.module.mjs +0 -43
  83. package/esm2022/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +0 -63
  84. package/esm2022/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +0 -79
  85. package/esm2022/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +0 -92
  86. package/esm2022/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +0 -76
  87. package/esm2022/lib/components/toolbar/toolbar.component.mjs +0 -46
  88. package/esm2022/lib/deprecated/shared-toolbar.module.mjs +0 -44
  89. package/esm2022/lib/deprecated/shared.module.mjs +0 -45
  90. package/esm2022/lib/directives/contextmenu/contextmenu.directive.mjs +0 -106
  91. package/esm2022/lib/directives/pagination.directive.mjs +0 -59
  92. package/esm2022/lib/services/aca-mobile-app-switcher.service.mjs +0 -130
  93. package/esm2022/lib/services/app-hook.service.mjs +0 -78
  94. package/esm2022/lib/services/app-settings.service.mjs +0 -139
  95. package/esm2022/lib/services/app.extension.service.mjs +0 -481
  96. package/esm2022/lib/services/app.service.mjs +0 -239
  97. package/esm2022/lib/services/auto-download.service.mjs +0 -59
  98. package/esm2022/lib/services/content-api.service.mjs +0 -281
  99. package/esm2022/lib/services/navigation-history.service.mjs +0 -55
  100. package/esm2022/lib/services/node-permission.service.mjs +0 -88
  101. package/esm2022/lib/services/router.extension.service.mjs +0 -108
  102. package/esm2022/lib/services/user-profile.service.mjs +0 -76
  103. package/esm2022/lib/testing/lib-testing-module.mjs +0 -163
  104. package/esm2022/store/actions/app.actions.mjs +0 -116
  105. package/esm2022/store/actions/contextmenu.actions.mjs +0 -32
  106. package/esm2022/store/actions/library.actions.mjs +0 -67
  107. package/esm2022/store/actions/metadata-aspect.actions.mjs +0 -32
  108. package/esm2022/store/actions/node.actions.mjs +0 -217
  109. package/esm2022/store/actions/router.actions.mjs +0 -56
  110. package/esm2022/store/actions/search-ai.actions.mjs +0 -45
  111. package/esm2022/store/actions/search.actions.mjs +0 -41
  112. package/esm2022/store/actions/snackbar.actions.mjs +0 -68
  113. package/esm2022/store/actions/template.actions.mjs +0 -45
  114. package/esm2022/store/actions/upload.actions.mjs +0 -53
  115. package/esm2022/store/actions/viewer.actions.mjs +0 -93
  116. package/esm2022/store/effects/router.effects.mjs +0 -110
  117. package/esm2022/store/effects/snackbar.effects.mjs +0 -80
  118. package/fesm2022/alfresco-aca-shared-store.mjs.map +0 -1
  119. package/fesm2022/alfresco-aca-shared.mjs.map +0 -1
  120. /package/{esm2022 → esm2020}/alfresco-aca-shared.mjs +0 -0
  121. /package/{esm2022 → esm2020}/lib/adf-extensions/extensions-data-loader.guard.mjs +0 -0
  122. /package/{esm2022 → esm2020}/lib/components/document-base-page/document-base-page.service.mjs +0 -0
  123. /package/{esm2022 → esm2020}/lib/constants/index.mjs +0 -0
  124. /package/{esm2022 → esm2020}/lib/constants/mime-types.mjs +0 -0
  125. /package/{esm2022 → esm2020}/lib/models/types.mjs +0 -0
  126. /package/{esm2022 → esm2020}/lib/models/viewer.rules.mjs +0 -0
  127. /package/{esm2022 → esm2020}/lib/routing/plugin-enabled.guard.mjs +0 -0
  128. /package/{esm2022 → esm2020}/lib/routing/shared.guard.mjs +0 -0
  129. /package/{esm2022 → esm2020}/lib/utils/node.utils.mjs +0 -0
  130. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
  131. /package/{esm2022 → esm2020}/rules/alfresco-aca-shared-rules.mjs +0 -0
  132. /package/{esm2022 → esm2020}/rules/app.rules.mjs +0 -0
  133. /package/{esm2022 → esm2020}/rules/navigation.rules.mjs +0 -0
  134. /package/{esm2022 → esm2020}/rules/public-api.mjs +0 -0
  135. /package/{esm2022 → esm2020}/rules/repository.rules.mjs +0 -0
  136. /package/{esm2022 → esm2020}/rules/user.rules.mjs +0 -0
  137. /package/{esm2022 → esm2020}/store/actions/app-action-types.mjs +0 -0
  138. /package/{esm2022 → esm2020}/store/actions/context-menu-action-types.mjs +0 -0
  139. /package/{esm2022 → esm2020}/store/actions/router-action-types.mjs +0 -0
  140. /package/{esm2022 → esm2020}/store/actions/template-action-types.mjs +0 -0
  141. /package/{esm2022 → esm2020}/store/alfresco-aca-shared-store.mjs +0 -0
  142. /package/{esm2022 → esm2020}/store/models/ai-search-by-term-payload.mjs +0 -0
  143. /package/{esm2022 → esm2020}/store/models/delete-status.model.mjs +0 -0
  144. /package/{esm2022 → esm2020}/store/models/deleted-node-info.model.mjs +0 -0
  145. /package/{esm2022 → esm2020}/store/models/modal-configuration.mjs +0 -0
  146. /package/{esm2022 → esm2020}/store/models/node-info.model.mjs +0 -0
  147. /package/{esm2022 → esm2020}/store/models/search-option.model.mjs +0 -0
  148. /package/{esm2022 → esm2020}/store/public-api.mjs +0 -0
  149. /package/{esm2022 → esm2020}/store/selectors/app.selectors.mjs +0 -0
  150. /package/{esm2022 → esm2020}/store/states/app.state.mjs +0 -0
  151. /package/{fesm2022 → fesm2020}/alfresco-aca-shared-rules.mjs +0 -0
  152. /package/{fesm2022 → fesm2020}/alfresco-aca-shared-rules.mjs.map +0 -0
@@ -0,0 +1,221 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { DocumentListComponent, DocumentListService, SearchAiService, UploadService } from '@alfresco/adf-content-services';
25
+ import { ShowHeaderMode, UserPreferencesService } from '@alfresco/adf-core';
26
+ import { ViewChild, Directive, inject, HostListener } from '@angular/core';
27
+ import { Store } from '@ngrx/store';
28
+ import { Subject } from 'rxjs';
29
+ import { takeUntil } from 'rxjs/operators';
30
+ import { DocumentBasePageService } from './document-base-page.service';
31
+ import { getCurrentFolder, getAppSelection, isInfoDrawerOpened, ViewNodeAction, SetSelectedNodesAction } from '@alfresco/aca-shared/store';
32
+ import { AppExtensionService } from '../../services/app.extension.service';
33
+ import { isLibrary, isLocked } from '../../utils/node.utils';
34
+ import { AutoDownloadService } from '../../services/auto-download.service';
35
+ import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
36
+ import { Router } from '@angular/router';
37
+ import { AppSettingsService } from '../../services/app-settings.service';
38
+ import { NavigationHistoryService } from '../../services/navigation-history.service';
39
+ import * as i0 from "@angular/core";
40
+ /* eslint-disable @angular-eslint/directive-class-suffix */
41
+ export class PageComponent {
42
+ constructor() {
43
+ this.onDestroy$ = new Subject();
44
+ this.title = 'Page';
45
+ this.actions = [];
46
+ this.viewerToolbarActions = [];
47
+ this.bulkActions = [];
48
+ this.canUpdateNode = false;
49
+ this.canUpload = false;
50
+ this.showHeader = ShowHeaderMode.Data;
51
+ this.filterSorting = 'name-asc';
52
+ this.createActions = [];
53
+ this.isSmallScreen = false;
54
+ this.selectedRowItemsCount = 0;
55
+ this.documentListService = inject(DocumentListService);
56
+ this.settings = inject(AppSettingsService);
57
+ this.extensions = inject(AppExtensionService);
58
+ this.content = inject(DocumentBasePageService);
59
+ this.store = inject((Store));
60
+ this.breakpointObserver = inject(BreakpointObserver);
61
+ this.uploadService = inject(UploadService);
62
+ this.router = inject(Router);
63
+ this.userPreferencesService = inject(UserPreferencesService);
64
+ this.searchAiService = inject(SearchAiService);
65
+ this.autoDownloadService = inject(AutoDownloadService, { optional: true });
66
+ this.navigationHistoryService = inject(NavigationHistoryService);
67
+ this.subscriptions = [];
68
+ this._searchAiInputState = {
69
+ active: false
70
+ };
71
+ }
72
+ get searchAiInputState() {
73
+ return this._searchAiInputState;
74
+ }
75
+ ngOnInit() {
76
+ this.extensions
77
+ .getCreateActions()
78
+ .pipe(takeUntil(this.onDestroy$))
79
+ .subscribe((actions) => {
80
+ this.createActions = actions;
81
+ });
82
+ this.infoDrawerOpened$ = this.store.select(isInfoDrawerOpened);
83
+ this.store
84
+ .select(getAppSelection)
85
+ .pipe(takeUntil(this.onDestroy$))
86
+ .subscribe((selection) => {
87
+ this.selection = selection;
88
+ this.canUpdateNode = this.selection.count === 1 && this.content.canUpdateNode(selection.first);
89
+ });
90
+ this.extensions
91
+ .getAllowedToolbarActions()
92
+ .pipe(takeUntil(this.onDestroy$))
93
+ .subscribe((actions) => {
94
+ this.actions = actions;
95
+ });
96
+ this.extensions
97
+ .getBulkActions()
98
+ .pipe(takeUntil(this.onDestroy$))
99
+ .subscribe((actions) => {
100
+ this.bulkActions = actions;
101
+ });
102
+ this.extensions
103
+ .getViewerToolbarActions()
104
+ .pipe(takeUntil(this.onDestroy$))
105
+ .subscribe((actions) => {
106
+ this.viewerToolbarActions = actions;
107
+ });
108
+ this.store
109
+ .select(getCurrentFolder)
110
+ .pipe(takeUntil(this.onDestroy$))
111
+ .subscribe((node) => {
112
+ this.canUpload = node && this.content.canUploadContent(node);
113
+ });
114
+ this.breakpointObserver
115
+ .observe([Breakpoints.HandsetPortrait, Breakpoints.HandsetLandscape])
116
+ .pipe(takeUntil(this.onDestroy$))
117
+ .subscribe((result) => {
118
+ this.isSmallScreen = result.matches;
119
+ });
120
+ this.searchAiService.toggleSearchAiInput$
121
+ .pipe(takeUntil(this.onDestroy$))
122
+ .subscribe((searchAiInputState) => (this._searchAiInputState = searchAiInputState));
123
+ this.setKnowledgeRetrievalState();
124
+ }
125
+ ngOnChanges(changes) {
126
+ if (changes.nodeResult?.currentValue) {
127
+ this.nodeResult = changes.nodeResult.currentValue;
128
+ }
129
+ }
130
+ ngOnDestroy() {
131
+ this.subscriptions.forEach((subscription) => subscription.unsubscribe());
132
+ this.subscriptions = [];
133
+ this.onDestroy$.next(true);
134
+ this.onDestroy$.complete();
135
+ this.store.dispatch(new SetSelectedNodesAction([]));
136
+ }
137
+ showPreview(node, extras) {
138
+ if (node?.entry) {
139
+ if (!this.settings.autoDownloadEnabled || !this.autoDownloadService.tryDownload(node, this.settings.authDownloadThreshold)) {
140
+ let id;
141
+ if (node.entry.nodeType === 'app:filelink') {
142
+ id = node.entry.properties['cm:destination'];
143
+ }
144
+ else {
145
+ id = node.entry.nodeId || node.entry.guid || node.entry.id;
146
+ }
147
+ this.store.dispatch(new ViewNodeAction(id, extras));
148
+ }
149
+ }
150
+ }
151
+ onSelectedItemsCountChanged(count) {
152
+ this.selectedRowItemsCount = count;
153
+ }
154
+ getParentNodeId() {
155
+ return this.node ? this.node.id : null;
156
+ }
157
+ imageResolver(row) {
158
+ if (row) {
159
+ if (isLocked(row.node)) {
160
+ return 'material-icons://lock';
161
+ }
162
+ if (isLibrary(row.node)) {
163
+ return 'material-icons://library_books';
164
+ }
165
+ }
166
+ return null;
167
+ }
168
+ reload(selectedNode) {
169
+ if (this.isOutletPreviewUrl()) {
170
+ return;
171
+ }
172
+ this.documentListService.reload();
173
+ if (selectedNode) {
174
+ this.store.dispatch(new SetSelectedNodesAction([selectedNode]));
175
+ }
176
+ }
177
+ trackByActionId(_, action) {
178
+ return action.id;
179
+ }
180
+ trackById(_, obj) {
181
+ return obj.id;
182
+ }
183
+ trackByColumnId(_, obj) {
184
+ return obj.id;
185
+ }
186
+ setKnowledgeRetrievalState() {
187
+ const nodes = this.userPreferencesService.get('knowledgeRetrievalNodes');
188
+ if (nodes && this.navigationHistoryService.shouldReturnLastSelection('/knowledge-retrieval')) {
189
+ this.selectedNodesState = JSON.parse(nodes);
190
+ }
191
+ if (!this.selectedNodesState && !this.router.url.startsWith('/knowledge-retrieval')) {
192
+ this.searchAiService.updateSearchAiInputState({
193
+ active: false
194
+ });
195
+ }
196
+ }
197
+ isOutletPreviewUrl() {
198
+ return location.href.includes('viewer:view');
199
+ }
200
+ onSortingChanged(event) {
201
+ this.filterSorting = event.detail.key + '-' + event.detail.direction;
202
+ }
203
+ onAllFilterCleared() {
204
+ if (!this.isOutletPreviewUrl()) {
205
+ this.documentList.node = null;
206
+ this.documentListService.reload();
207
+ }
208
+ }
209
+ }
210
+ PageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
211
+ PageComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: PageComponent, host: { listeners: { "sorting-changed": "onSortingChanged($event)" } }, viewQueries: [{ propertyName: "documentList", first: true, predicate: DocumentListComponent, descendants: true }], usesOnChanges: true, ngImport: i0 });
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageComponent, decorators: [{
213
+ type: Directive
214
+ }], propDecorators: { documentList: [{
215
+ type: ViewChild,
216
+ args: [DocumentListComponent]
217
+ }], onSortingChanged: [{
218
+ type: HostListener,
219
+ args: ['sorting-changed', ['$event']]
220
+ }] } });
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtYmFzZS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50LWJhc2UtcGFnZS9kb2N1bWVudC1iYXNlLXBhZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsZUFBZSxFQUVmLGFBQWEsRUFDZCxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RSxPQUFPLEVBQWdDLFNBQVMsRUFBaUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGNBQWMsRUFFZCxzQkFBc0IsRUFDdkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUs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YSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUdELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDdkUsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNuQztJQUNILENBQUM7OzJHQWpObUIsYUFBYTsrRkFBYixhQUFhLGdKQUd0QixxQkFBcUI7NEZBSFosYUFBYTtrQkFEbEMsU0FBUzs4QkFLUixZQUFZO3NCQURYLFNBQVM7dUJBQUMscUJBQXFCO2dCQXFNaEMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHtcbiAgRG9jdW1lbnRMaXN0Q29tcG9uZW50LFxuICBEb2N1bWVudExpc3RTZXJ2aWNlLFxuICBTZWFyY2hBaUlucHV0U3RhdGUsXG4gIFNlYXJjaEFpU2VydmljZSxcbiAgU2hhcmVEYXRhUm93LFxuICBVcGxvYWRTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTaG93SGVhZGVyTW9kZSwgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb250ZW50QWN0aW9uUmVmLCBEb2N1bWVudExpc3RQcmVzZXRSZWYsIFNlbGVjdGlvblN0YXRlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IE9uRGVzdHJveSwgT25Jbml0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCwgU2ltcGxlQ2hhbmdlcywgRGlyZWN0aXZlLCBpbmplY3QsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBOb2RlRW50cnksIE5vZGUsIE5vZGVQYWdpbmcgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRG9jdW1lbnRCYXNlUGFnZVNlcnZpY2UgfSBmcm9tICcuL2RvY3VtZW50LWJhc2UtcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFwcFN0b3JlLFxuICBnZXRDdXJyZW50Rm9sZGVyLFxuICBnZXRBcHBTZWxlY3Rpb24sXG4gIGlzSW5mb0RyYXdlck9wZW5lZCxcbiAgVmlld05vZGVBY3Rpb24sXG4gIFZpZXdOb2RlRXh0cmFzLFxuICBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IEFwcEV4dGVuc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAuZXh0ZW5zaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNMaWJyYXJ5LCBpc0xvY2tlZCB9IGZyb20gJy4uLy4uL3V0aWxzL25vZGUudXRpbHMnO1xuaW1wb3J0IHsgQXV0b0Rvd25sb2FkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dG8tZG93bmxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXBwU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi1oaXN0b3J5LnNlcnZpY2UnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeCAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBvbkRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKERvY3VtZW50TGlzdENvbXBvbmVudClcbiAgZG9jdW1lbnRMaXN0OiBEb2N1bWVudExpc3RDb21wb25lbnQ7XG5cbiAgdGl0bGUgPSAnUGFnZSc7XG4gIGluZm9EcmF3ZXJPcGVuZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBub2RlOiBOb2RlO1xuICBzZWxlY3Rpb246IFNlbGVjdGlvblN0YXRlO1xuICBhY3Rpb25zOiBBcnJheTxDb250ZW50QWN0aW9uUmVmPiA9IFtdO1xuICB2aWV3ZXJUb29sYmFyQWN0aW9uczogQXJyYXk8Q29udGVudEFjdGlvblJlZj4gPSBbXTtcbiAgYnVsa0FjdGlvbnM6IENvbnRlbnRBY3Rpb25SZWZbXSA9IFtdO1xuICBjYW5VcGRhdGVOb2RlID0gZmFsc2U7XG4gIGNhblVwbG9hZCA9IGZhbHNlO1xuICBub2RlUmVzdWx0OiBOb2RlUGFnaW5nO1xuICBzaG93SGVhZGVyID0gU2hvd0hlYWRlck1vZGUuRGF0YTtcbiAgZmlsdGVyU29ydGluZyA9ICduYW1lLWFzYyc7XG4gIGNyZWF0ZUFjdGlvbnM6IENvbnRlbnRBY3Rpb25SZWZbXSA9IFtdO1xuICBpc1NtYWxsU2NyZWVuID0gZmFsc2U7XG4gIHNlbGVjdGVkUm93SXRlbXNDb3VudCA9IDA7XG4gIHNlbGVjdGVkTm9kZXNTdGF0ZTogU2VsZWN0aW9uU3RhdGU7XG5cbiAgcHJvdGVjdGVkIGRvY3VtZW50TGlzdFNlcnZpY2UgPSBpbmplY3QoRG9jdW1lbnRMaXN0U2VydmljZSk7XG4gIHByb3RlY3RlZCBzZXR0aW5ncyA9IGluamVjdChBcHBTZXR0aW5nc1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZXh0ZW5zaW9ucyA9IGluamVjdChBcHBFeHRlbnNpb25TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGNvbnRlbnQgPSBpbmplY3QoRG9jdW1lbnRCYXNlUGFnZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgc3RvcmUgPSBpbmplY3Q8U3RvcmU8QXBwU3RvcmU+PihTdG9yZTxBcHBTdG9yZT4pO1xuICBwcm90ZWN0ZWQgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG4gIHByb3RlY3RlZCB1cGxvYWRTZXJ2aWNlID0gaW5qZWN0KFVwbG9hZFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByb3RlY3RlZCB1c2VyUHJlZmVyZW5jZXNTZXJ2aWNlID0gaW5qZWN0KFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgc2VhcmNoQWlTZXJ2aWNlID0gaW5qZWN0KFNlYXJjaEFpU2VydmljZSk7XG4gIHByaXZhdGUgYXV0b0Rvd25sb2FkU2VydmljZSA9IGluamVjdChBdXRvRG93bmxvYWRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIG5hdmlnYXRpb25IaXN0b3J5U2VydmljZSA9IGluamVjdChOYXZpZ2F0aW9uSGlzdG9yeVNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgX3NlYXJjaEFpSW5wdXRTdGF0ZTogU2VhcmNoQWlJbnB1dFN0YXRlID0ge1xuICAgIGFjdGl2ZTogZmFsc2VcbiAgfTtcblxuICBnZXQgc2VhcmNoQWlJbnB1dFN0YXRlKCk6IFNlYXJjaEFpSW5wdXRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaEFpSW5wdXRTdGF0ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgLmdldENyZWF0ZUFjdGlvbnMoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChhY3Rpb25zKSA9PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlQWN0aW9ucyA9IGFjdGlvbnM7XG4gICAgICB9KTtcblxuICAgIHRoaXMuaW5mb0RyYXdlck9wZW5lZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChpc0luZm9EcmF3ZXJPcGVuZWQpO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjtcbiAgICAgICAgdGhpcy5jYW5VcGRhdGVOb2RlID0gdGhpcy5zZWxlY3Rpb24uY291bnQgPT09IDEgJiYgdGhpcy5jb250ZW50LmNhblVwZGF0ZU5vZGUoc2VsZWN0aW9uLmZpcnN0KTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5leHRlbnNpb25zXG4gICAgICAuZ2V0QWxsb3dlZFRvb2xiYXJBY3Rpb25zKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoYWN0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLmFjdGlvbnMgPSBhY3Rpb25zO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV4dGVuc2lvbnNcbiAgICAgIC5nZXRCdWxrQWN0aW9ucygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFjdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5idWxrQWN0aW9ucyA9IGFjdGlvbnM7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgLmdldFZpZXdlclRvb2xiYXJBY3Rpb25zKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoYWN0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLnZpZXdlclRvb2xiYXJBY3Rpb25zID0gYWN0aW9ucztcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChnZXRDdXJyZW50Rm9sZGVyKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChub2RlKSA9PiB7XG4gICAgICAgIHRoaXMuY2FuVXBsb2FkID0gbm9kZSAmJiB0aGlzLmNvbnRlbnQuY2FuVXBsb2FkQ29udGVudChub2RlKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0UG9ydHJhaXQsIEJyZWFrcG9pbnRzLkhhbmRzZXRMYW5kc2NhcGVdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5pc1NtYWxsU2NyZWVuID0gcmVzdWx0Lm1hdGNoZXM7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc2VhcmNoQWlTZXJ2aWNlLnRvZ2dsZVNlYXJjaEFpSW5wdXQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaEFpSW5wdXRTdGF0ZSkgPT4gKHRoaXMuX3NlYXJjaEFpSW5wdXRTdGF0ZSA9IHNlYXJjaEFpSW5wdXRTdGF0ZSkpO1xuXG4gICAgdGhpcy5zZXRLbm93bGVkZ2VSZXRyaWV2YWxTdGF0ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLm5vZGVSZXN1bHQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5ub2RlUmVzdWx0ID0gY2hhbmdlcy5ub2RlUmVzdWx0LmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG5cbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uKFtdKSk7XG4gIH1cblxuICBzaG93UHJldmlldyhub2RlOiBOb2RlRW50cnksIGV4dHJhcz86IFZpZXdOb2RlRXh0cmFzKSB7XG4gICAgaWYgKG5vZGU/LmVudHJ5KSB7XG4gICAgICBpZiAoIXRoaXMuc2V0dGluZ3MuYXV0b0Rvd25sb2FkRW5hYmxlZCB8fCAhdGhpcy5hdXRvRG93bmxvYWRTZXJ2aWNlLnRyeURvd25sb2FkKG5vZGUsIHRoaXMuc2V0dGluZ3MuYXV0aERvd25sb2FkVGhyZXNob2xkKSkge1xuICAgICAgICBsZXQgaWQ6IHN0cmluZztcblxuICAgICAgICBpZiAobm9kZS5lbnRyeS5ub2RlVHlwZSA9PT0gJ2FwcDpmaWxlbGluaycpIHtcbiAgICAgICAgICBpZCA9IG5vZGUuZW50cnkucHJvcGVydGllc1snY206ZGVzdGluYXRpb24nXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZCA9IChub2RlIGFzIGFueSkuZW50cnkubm9kZUlkIHx8IChub2RlIGFzIGFueSkuZW50cnkuZ3VpZCB8fCBub2RlLmVudHJ5LmlkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVmlld05vZGVBY3Rpb24oaWQsIGV4dHJhcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0ZWRJdGVtc0NvdW50Q2hhbmdlZChjb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZFJvd0l0ZW1zQ291bnQgPSBjb3VudDtcbiAgfVxuXG4gIGdldFBhcmVudE5vZGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5vZGUgPyB0aGlzLm5vZGUuaWQgOiBudWxsO1xuICB9XG5cbiAgaW1hZ2VSZXNvbHZlcihyb3c6IFNoYXJlRGF0YVJvdyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChyb3cpIHtcbiAgICAgIGlmIChpc0xvY2tlZChyb3cubm9kZSkpIHtcbiAgICAgICAgcmV0dXJuICdtYXRlcmlhbC1pY29uczovL2xvY2snO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNMaWJyYXJ5KHJvdy5ub2RlKSkge1xuICAgICAgICByZXR1cm4gJ21hdGVyaWFsLWljb25zOi8vbGlicmFyeV9ib29rcyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZWxvYWQoc2VsZWN0ZWROb2RlPzogTm9kZUVudHJ5KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNPdXRsZXRQcmV2aWV3VXJsKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50TGlzdFNlcnZpY2UucmVsb2FkKCk7XG4gICAgaWYgKHNlbGVjdGVkTm9kZSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbihbc2VsZWN0ZWROb2RlXSkpO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlBY3Rpb25JZChfOiBudW1iZXIsIGFjdGlvbjogQ29udGVudEFjdGlvblJlZikge1xuICAgIHJldHVybiBhY3Rpb24uaWQ7XG4gIH1cblxuICB0cmFja0J5SWQoXzogbnVtYmVyLCBvYmo6IHsgaWQ6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIG9iai5pZDtcbiAgfVxuXG4gIHRyYWNrQnlDb2x1bW5JZChfOiBudW1iZXIsIG9iajogRG9jdW1lbnRMaXN0UHJlc2V0UmVmKTogc3RyaW5nIHtcbiAgICByZXR1cm4gb2JqLmlkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRLbm93bGVkZ2VSZXRyaWV2YWxTdGF0ZSgpIHtcbiAgICBjb25zdCBub2RlcyA9IHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZS5nZXQoJ2tub3dsZWRnZVJldHJpZXZhbE5vZGVzJyk7XG4gICAgaWYgKG5vZGVzICYmIHRoaXMubmF2aWdhdGlvbkhpc3RvcnlTZXJ2aWNlLnNob3VsZFJldHVybkxhc3RTZWxlY3Rpb24oJy9rbm93bGVkZ2UtcmV0cmlldmFsJykpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlc1N0YXRlID0gSlNPTi5wYXJzZShub2Rlcyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkTm9kZXNTdGF0ZSAmJiAhdGhpcy5yb3V0ZXIudXJsLnN0YXJ0c1dpdGgoJy9rbm93bGVkZ2UtcmV0cmlldmFsJykpIHtcbiAgICAgIHRoaXMuc2VhcmNoQWlTZXJ2aWNlLnVwZGF0ZVNlYXJjaEFpSW5wdXRTdGF0ZSh7XG4gICAgICAgIGFjdGl2ZTogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNPdXRsZXRQcmV2aWV3VXJsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBsb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCd2aWV3ZXI6dmlldycpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignc29ydGluZy1jaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgb25Tb3J0aW5nQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5maWx0ZXJTb3J0aW5nID0gZXZlbnQuZGV0YWlsLmtleSArICctJyArIGV2ZW50LmRldGFpbC5kaXJlY3Rpb247XG4gIH1cblxuICBvbkFsbEZpbHRlckNsZWFyZWQoKSB7XG4gICAgaWYgKCF0aGlzLmlzT3V0bGV0UHJldmlld1VybCgpKSB7XG4gICAgICB0aGlzLmRvY3VtZW50TGlzdC5ub2RlID0gbnVsbDtcbiAgICAgIHRoaXMuZG9jdW1lbnRMaXN0U2VydmljZS5yZWxvYWQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input } from '@angular/core';
25
+ import { MatIconModule } from '@angular/material/icon';
26
+ import { TranslateModule } from '@ngx-translate/core';
27
+ import * as i0 from "@angular/core";
28
+ import * as i1 from "@angular/material/icon";
29
+ import * as i2 from "@ngx-translate/core";
30
+ export class GenericErrorComponent {
31
+ constructor() {
32
+ this.text = 'APP.MESSAGES.ERRORS.MISSING_CONTENT';
33
+ }
34
+ }
35
+ GenericErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GenericErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
+ GenericErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GenericErrorComponent, isStandalone: true, selector: "aca-generic-error", inputs: { text: "text" }, host: { classAttribute: "aca-generic-error" }, ngImport: i0, template: "<mat-icon class=\"generic-error__icon\">error</mat-icon>\n<p class=\"generic-error__title\">\n {{ text | translate }}\n</p>\n", styles: [".aca-generic-error{color:var(--theme-text-color, rgba(0, 0, 0, .54));display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;height:100%}.aca-generic-error__title{font-size:16px}.aca-generic-error__icon{color:var(--theme-warn-color, #f44336);font-size:52px;height:52px;width:52px}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GenericErrorComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ standalone: true, imports: [MatIconModule, TranslateModule], selector: 'aca-generic-error', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'aca-generic-error' }, template: "<mat-icon class=\"generic-error__icon\">error</mat-icon>\n<p class=\"generic-error__title\">\n {{ text | translate }}\n</p>\n", styles: [".aca-generic-error{color:var(--theme-text-color, rgba(0, 0, 0, .54));display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;height:100%}.aca-generic-error__title{font-size:16px}.aca-generic-error__icon{color:var(--theme-warn-color, #f44336);font-size:52px;height:52px;width:52px}\n"] }]
40
+ }], propDecorators: { text: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Etc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9nZW5lcmljLWVycm9yL2dlbmVyaWMtZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvZ2VuZXJpYy1lcnJvci9nZW5lcmljLWVycm9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQVl0RCxNQUFNLE9BQU8scUJBQXFCO0lBVmxDO1FBWUUsU0FBSSxHQUFHLHFDQUFxQyxDQUFDO0tBQzlDOzttSEFIWSxxQkFBcUI7dUdBQXJCLHFCQUFxQixzSkN0Q2xDLGdJQUlBLG1YRDBCWSxhQUFhLG1MQUFFLGVBQWU7NEZBUTdCLHFCQUFxQjtrQkFWakMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLFlBQy9CLG1CQUFtQixpQkFHZCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFOzhCQUlwQyxJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRJY29uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICBzZWxlY3RvcjogJ2FjYS1nZW5lcmljLWVycm9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmljLWVycm9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnYWNhLWdlbmVyaWMtZXJyb3InIH1cbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0Vycm9yQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgdGV4dCA9ICdBUFAuTUVTU0FHRVMuRVJST1JTLk1JU1NJTkdfQ09OVEVOVCc7XG59XG4iLCI8bWF0LWljb24gY2xhc3M9XCJnZW5lcmljLWVycm9yX19pY29uXCI+ZXJyb3I8L21hdC1pY29uPlxuPHAgY2xhc3M9XCJnZW5lcmljLWVycm9yX190aXRsZVwiPlxuICB7eyB0ZXh0IHwgdHJhbnNsYXRlIH19XG48L3A+XG4iXX0=
@@ -0,0 +1,132 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, HostListener, Input, ViewEncapsulation } from '@angular/core';
25
+ import { NodeEntry } from '@alfresco/js-api';
26
+ import { DynamicTabComponent } from '@alfresco/adf-extensions';
27
+ import { Store } from '@ngrx/store';
28
+ import { SetInfoDrawerStateAction, ToggleInfoDrawerAction, infoDrawerPreview } from '@alfresco/aca-shared/store';
29
+ import { AppExtensionService } from '../../services/app.extension.service';
30
+ import { ContentApiService } from '../../services/content-api.service';
31
+ import { takeUntil } from 'rxjs/operators';
32
+ import { Subject } from 'rxjs';
33
+ import { CommonModule } from '@angular/common';
34
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
35
+ import { InfoDrawerModule } from '@alfresco/adf-core';
36
+ import { TranslateModule } from '@ngx-translate/core';
37
+ import { A11yModule } from '@angular/cdk/a11y';
38
+ import { ToolbarComponent } from '../toolbar/toolbar.component';
39
+ import { ContentService, NodesApiService } from '@alfresco/adf-content-services';
40
+ import * as i0 from "@angular/core";
41
+ import * as i1 from "@ngrx/store";
42
+ import * as i2 from "../../services/content-api.service";
43
+ import * as i3 from "../../services/app.extension.service";
44
+ import * as i4 from "@alfresco/adf-content-services";
45
+ import * as i5 from "@angular/common";
46
+ import * as i6 from "@ngx-translate/core";
47
+ import * as i7 from "@angular/material/progress-bar";
48
+ import * as i8 from "@alfresco/adf-core";
49
+ export class InfoDrawerComponent {
50
+ onEscapeKeyboardEvent() {
51
+ this.close();
52
+ }
53
+ constructor(store, contentApi, extensions, nodesService, contentService) {
54
+ this.store = store;
55
+ this.contentApi = contentApi;
56
+ this.extensions = extensions;
57
+ this.nodesService = nodesService;
58
+ this.contentService = contentService;
59
+ this.isLoading = false;
60
+ this.tabs = [];
61
+ this.actions = [];
62
+ this.onDestroy$ = new Subject();
63
+ this.preventFromClosing = false;
64
+ this.icon = null;
65
+ }
66
+ ngOnInit() {
67
+ this.tabs = this.extensions.getSidebarTabs();
68
+ this.extensions
69
+ .getAllowedSidebarActions()
70
+ .pipe(takeUntil(this.onDestroy$))
71
+ .subscribe((actions) => {
72
+ this.actions = actions;
73
+ });
74
+ this.store
75
+ .select(infoDrawerPreview)
76
+ .pipe(takeUntil(this.onDestroy$))
77
+ .subscribe((isInfoDrawerPreviewOpened) => {
78
+ this.preventFromClosing = isInfoDrawerPreviewOpened;
79
+ });
80
+ this.nodesService.nodeUpdated.pipe(takeUntil(this.onDestroy$)).subscribe((node) => {
81
+ this.node.entry = node;
82
+ });
83
+ }
84
+ ngOnDestroy() {
85
+ this.onDestroy$.next(true);
86
+ this.onDestroy$.complete();
87
+ if (!this.preventFromClosing) {
88
+ this.store.dispatch(new SetInfoDrawerStateAction(false));
89
+ }
90
+ }
91
+ ngOnChanges() {
92
+ if (this.node) {
93
+ if (this.node['isLibrary']) {
94
+ return this.setDisplayNode(this.node);
95
+ }
96
+ const entry = this.node.entry;
97
+ const id = entry.nodeId || entry.id;
98
+ return this.loadNodeInfo(id);
99
+ }
100
+ }
101
+ close() {
102
+ this.store.dispatch(new ToggleInfoDrawerAction());
103
+ }
104
+ loadNodeInfo(nodeId) {
105
+ if (nodeId) {
106
+ this.isLoading = true;
107
+ this.contentApi.getNodeInfo(nodeId).subscribe((entity) => {
108
+ this.setDisplayNode(entity);
109
+ this.node.entry = entity;
110
+ this.isLoading = false;
111
+ }, () => (this.isLoading = false));
112
+ }
113
+ }
114
+ setDisplayNode(node) {
115
+ this.displayNode = node;
116
+ this.icon = this.contentService.getNodeIcon(node);
117
+ }
118
+ }
119
+ InfoDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InfoDrawerComponent, deps: [{ token: i1.Store }, { token: i2.ContentApiService }, { token: i3.AppExtensionService }, { token: i4.NodesApiService }, { token: i4.ContentService }], target: i0.ɵɵFactoryTarget.Component });
120
+ InfoDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: InfoDrawerComponent, isStandalone: true, selector: "aca-info-drawer", inputs: { nodeId: "nodeId", node: "node" }, host: { listeners: { "keydown.escape": "onEscapeKeyboardEvent()" } }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isLoading\">\n <mat-progress-bar mode=\"indeterminate\" [attr.aria-label]=\"'APP.INFO_DRAWER.DATA_LOADING' | translate\"></mat-progress-bar>\n</div>\n<ng-container *ngIf=\"!isLoading && !!displayNode\">\n <adf-info-drawer [icon]=\"icon\" [title]=\"node?.entry?.name || 'APP.INFO_DRAWER.TITLE'\" cdkTrapFocusAutoCapture>\n <aca-toolbar [items]=\"actions\" info-drawer-buttons></aca-toolbar>\n\n <adf-info-drawer-tab *ngFor=\"let tab of tabs\" [icon]=\"tab.icon\" [label]=\"tab.title\">\n <adf-dynamic-tab [node]=\"$any(displayNode)\" [id]=\"tab.component\" [attr.data-automation-id]=\"tab.component\"> </adf-dynamic-tab>\n </adf-info-drawer-tab>\n </adf-info-drawer>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: InfoDrawerModule }, { kind: "component", type: i8.InfoDrawerTabComponent, selector: "adf-info-drawer-tab", inputs: ["label", "icon"] }, { kind: "component", type: i8.InfoDrawerComponent, selector: "adf-info-drawer", inputs: ["title", "icon", "selectedIndex", "showHeader"], outputs: ["currentTab"] }, { kind: "directive", type: i8.InfoDrawerButtonsDirective, selector: "[adf-info-drawer-buttons], [info-drawer-buttons]" }, { kind: "ngmodule", type: A11yModule }, { kind: "component", type: ToolbarComponent, selector: "aca-toolbar", inputs: ["items"] }, { kind: "component", type: DynamicTabComponent, selector: "adf-dynamic-tab", inputs: ["id", "node"] }], encapsulation: i0.ViewEncapsulation.None });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InfoDrawerComponent, decorators: [{
122
+ type: Component,
123
+ args: [{ standalone: true, imports: [CommonModule, TranslateModule, MatProgressBarModule, InfoDrawerModule, A11yModule, ToolbarComponent, DynamicTabComponent], selector: 'aca-info-drawer', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"isLoading\">\n <mat-progress-bar mode=\"indeterminate\" [attr.aria-label]=\"'APP.INFO_DRAWER.DATA_LOADING' | translate\"></mat-progress-bar>\n</div>\n<ng-container *ngIf=\"!isLoading && !!displayNode\">\n <adf-info-drawer [icon]=\"icon\" [title]=\"node?.entry?.name || 'APP.INFO_DRAWER.TITLE'\" cdkTrapFocusAutoCapture>\n <aca-toolbar [items]=\"actions\" info-drawer-buttons></aca-toolbar>\n\n <adf-info-drawer-tab *ngFor=\"let tab of tabs\" [icon]=\"tab.icon\" [label]=\"tab.title\">\n <adf-dynamic-tab [node]=\"$any(displayNode)\" [id]=\"tab.component\" [attr.data-automation-id]=\"tab.component\"> </adf-dynamic-tab>\n </adf-info-drawer-tab>\n </adf-info-drawer>\n</ng-container>\n" }]
124
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ContentApiService }, { type: i3.AppExtensionService }, { type: i4.NodesApiService }, { type: i4.ContentService }]; }, propDecorators: { nodeId: [{
125
+ type: Input
126
+ }], node: [{
127
+ type: Input
128
+ }], onEscapeKeyboardEvent: [{
129
+ type: HostListener,
130
+ args: ['keydown.escape']
131
+ }] } });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvaW5mby1kcmF3ZXIvaW5mby1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvaW5mby1kcmF3ZXIvaW5mby1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFDOUQsT0FBTyxFQUFvQixtQkFBbUIsRUFBaUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxv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Q0FBQyxZQUN6SCxpQkFBaUIsaUJBRVosaUJBQWlCLENBQUMsSUFBSTt5TkFJckMsTUFBTTtzQkFETCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFZTixxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGVFbnRyeSwgTm9kZSwgU2l0ZUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb250ZW50QWN0aW9uUmVmLCBEeW5hbWljVGFiQ29tcG9uZW50LCBTaWRlYmFyVGFiUmVmIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgU2V0SW5mb0RyYXdlclN0YXRlQWN0aW9uLCBUb2dnbGVJbmZvRHJhd2VyQWN0aW9uLCBpbmZvRHJhd2VyUHJldmlldyB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IEFwcEV4dGVuc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAuZXh0ZW5zaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZW50LWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBJbmZvRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlLCBOb2Rlc0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBNYXRQcm9ncmVzc0Jhck1vZHVsZSwgSW5mb0RyYXdlck1vZHVsZSwgQTExeU1vZHVsZSwgVG9vbGJhckNvbXBvbmVudCwgRHluYW1pY1RhYkNvbXBvbmVudF0sXG4gIHNlbGVjdG9yOiAnYWNhLWluZm8tZHJhd2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luZm8tZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBJbmZvRHJhd2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIG5vZGVJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIG5vZGU6IE5vZGVFbnRyeTtcblxuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgZGlzcGxheU5vZGU6IE5vZGUgfCBTaXRlRW50cnk7XG4gIHRhYnM6IEFycmF5PFNpZGViYXJUYWJSZWY+ID0gW107XG4gIGFjdGlvbnM6IEFycmF5PENvbnRlbnRBY3Rpb25SZWY+ID0gW107XG4gIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcmV2ZW50RnJvbUNsb3NpbmcgPSBmYWxzZTtcbiAgaWNvbjogc3RyaW5nID0gbnVsbDtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVzY2FwZScpXG4gIG9uRXNjYXBlS2V5Ym9hcmRFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgY29udGVudEFwaTogQ29udGVudEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBleHRlbnNpb25zOiBBcHBFeHRlbnNpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbm9kZXNTZXJ2aWNlOiBOb2Rlc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudGFicyA9IHRoaXMuZXh0ZW5zaW9ucy5nZXRTaWRlYmFyVGFicygpO1xuICAgIHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgLmdldEFsbG93ZWRTaWRlYmFyQWN0aW9ucygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFjdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpb25zID0gYWN0aW9ucztcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChpbmZvRHJhd2VyUHJldmlldylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoaXNJbmZvRHJhd2VyUHJldmlld09wZW5lZCkgPT4ge1xuICAgICAgICB0aGlzLnByZXZlbnRGcm9tQ2xvc2luZyA9IGlzSW5mb0RyYXdlclByZXZpZXdPcGVuZWQ7XG4gICAgICB9KTtcblxuICAgIHRoaXMubm9kZXNTZXJ2aWNlLm5vZGVVcGRhdGVkLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgobm9kZTogYW55KSA9PiB7XG4gICAgICB0aGlzLm5vZGUuZW50cnkgPSBub2RlO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgaWYgKCF0aGlzLnByZXZlbnRGcm9tQ2xvc2luZykge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0SW5mb0RyYXdlclN0YXRlQWN0aW9uKGZhbHNlKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgaWYgKHRoaXMubm9kZVsnaXNMaWJyYXJ5J10pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0RGlzcGxheU5vZGUodGhpcy5ub2RlKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50cnk6IGFueSA9IHRoaXMubm9kZS5lbnRyeTtcblxuICAgICAgY29uc3QgaWQgPSBlbnRyeS5ub2RlSWQgfHwgZW50cnkuaWQ7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkTm9kZUluZm8oaWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xvc2UoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVG9nZ2xlSW5mb0RyYXdlckFjdGlvbigpKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE5vZGVJbmZvKG5vZGVJZDogc3RyaW5nKSB7XG4gICAgaWYgKG5vZGVJZCkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICB0aGlzLmNvbnRlbnRBcGkuZ2V0Tm9kZUluZm8obm9kZUlkKS5zdWJzY3JpYmUoXG4gICAgICAgIChlbnRpdHkpID0+IHtcbiAgICAgICAgICB0aGlzLnNldERpc3BsYXlOb2RlKGVudGl0eSk7XG4gICAgICAgICAgdGhpcy5ub2RlLmVudHJ5ID0gZW50aXR5O1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldERpc3BsYXlOb2RlKG5vZGU6IGFueSkge1xuICAgIHRoaXMuZGlzcGxheU5vZGUgPSBub2RlO1xuICAgIHRoaXMuaWNvbiA9IHRoaXMuY29udGVudFNlcnZpY2UuZ2V0Tm9kZUljb24obm9kZSk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidBUFAuSU5GT19EUkFXRVIuREFUQV9MT0FESU5HJyB8IHRyYW5zbGF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgISFkaXNwbGF5Tm9kZVwiPlxuICA8YWRmLWluZm8tZHJhd2VyIFtpY29uXT1cImljb25cIiBbdGl0bGVdPVwibm9kZT8uZW50cnk/Lm5hbWUgfHwgJ0FQUC5JTkZPX0RSQVdFUi5USVRMRSdcIiBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZT5cbiAgICA8YWNhLXRvb2xiYXIgW2l0ZW1zXT1cImFjdGlvbnNcIiBpbmZvLWRyYXdlci1idXR0b25zPjwvYWNhLXRvb2xiYXI+XG5cbiAgICA8YWRmLWluZm8tZHJhd2VyLXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIiBbaWNvbl09XCJ0YWIuaWNvblwiIFtsYWJlbF09XCJ0YWIudGl0bGVcIj5cbiAgICAgIDxhZGYtZHluYW1pYy10YWIgW25vZGVdPVwiJGFueShkaXNwbGF5Tm9kZSlcIiBbaWRdPVwidGFiLmNvbXBvbmVudFwiIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJ0YWIuY29tcG9uZW50XCI+IDwvYWRmLWR5bmFtaWMtdGFiPlxuICAgIDwvYWRmLWluZm8tZHJhd2VyLXRhYj5cbiAgPC9hZGYtaW5mby1kcmF3ZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,54 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
25
+ import { NodeEntry } from '@alfresco/js-api';
26
+ import { TranslateModule } from '@ngx-translate/core';
27
+ import { MatIconModule } from '@angular/material/icon';
28
+ import * as i0 from "@angular/core";
29
+ import * as i1 from "@ngx-translate/core";
30
+ import * as i2 from "@angular/material/icon";
31
+ export class LockedByComponent {
32
+ ngOnInit() {
33
+ this.text = this.node?.entry?.properties?.['cm:lockOwner']?.displayName;
34
+ }
35
+ }
36
+ LockedByComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LockedByComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
+ LockedByComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LockedByComponent, isStandalone: true, selector: "aca-locked-by", inputs: { node: "node" }, host: { classAttribute: "aca-locked-by" }, ngImport: i0, template: `
38
+ <mat-icon class="aca-locked-by--icon">lock</mat-icon>
39
+ <span class="aca-locked-by--label">{{ 'APP.LOCKED_BY' | translate }}</span>
40
+ <span class="aca-locked-by--name">{{ text }}</span>
41
+ `, isInline: true, styles: [".aca-locked-by{display:flex;align-items:center;color:var(--theme-text-color, rgba(0, 0, 0, .54))}.aca-locked-by--icon{font-size:14px;width:14px;height:14px;min-width:14px}.aca-locked-by--label,.aca-locked-by--name{font-size:12px;padding:0 2px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LockedByComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ standalone: true, imports: [TranslateModule, MatIconModule], selector: 'aca-locked-by', template: `
45
+ <mat-icon class="aca-locked-by--icon">lock</mat-icon>
46
+ <span class="aca-locked-by--label">{{ 'APP.LOCKED_BY' | translate }}</span>
47
+ <span class="aca-locked-by--name">{{ text }}</span>
48
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
49
+ class: 'aca-locked-by'
50
+ }, styles: [".aca-locked-by{display:flex;align-items:center;color:var(--theme-text-color, rgba(0, 0, 0, .54))}.aca-locked-by--icon{font-size:14px;width:14px;height:14px;min-width:14px}.aca-locked-by--label,.aca-locked-by--name{font-size:12px;padding:0 2px}\n"] }]
51
+ }], propDecorators: { node: [{
52
+ type: Input
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja2VkLWJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2xvY2tlZC1ieS9sb2NrZWQtYnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFrQnZELE1BQU0sT0FBTyxpQkFBaUI7SUFNNUIsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsV0FBVyxDQUFDO0lBQzFFLENBQUM7OytHQVJVLGlCQUFpQjttR0FBakIsaUJBQWlCLDhJQVpsQjs7OztHQUlULDhUQU5TLGVBQWUsMkZBQUUsYUFBYTs0RkFjN0IsaUJBQWlCO2tCQWhCN0IsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLFlBQy9CLGVBQWUsWUFDZjs7OztHQUlULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxlQUFlO3FCQUN2Qjs4QkFJRCxJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGVFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdhY2EtbG9ja2VkLWJ5JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LWljb24gY2xhc3M9XCJhY2EtbG9ja2VkLWJ5LS1pY29uXCI+bG9jazwvbWF0LWljb24+XG4gICAgPHNwYW4gY2xhc3M9XCJhY2EtbG9ja2VkLWJ5LS1sYWJlbFwiPnt7ICdBUFAuTE9DS0VEX0JZJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImFjYS1sb2NrZWQtYnktLW5hbWVcIj57eyB0ZXh0IH19PC9zcGFuPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9sb2NrZWQtYnkuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2FjYS1sb2NrZWQtYnknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTG9ja2VkQnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBub2RlOiBOb2RlRW50cnk7XG5cbiAgcHVibGljIHRleHQ6IHN0cmluZztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHQgPSB0aGlzLm5vZGU/LmVudHJ5Py5wcm9wZXJ0aWVzPy5bJ2NtOmxvY2tPd25lciddPy5kaXNwbGF5TmFtZTtcbiAgfVxufVxuIl19