@alfresco/aca-shared 5.1.1 → 5.2.0

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 (160) hide show
  1. package/esm2022/lib/components/document-base-page/document-base-page.component.mjs +226 -0
  2. package/esm2022/lib/components/generic-error/generic-error.component.mjs +42 -0
  3. package/esm2022/lib/components/info-drawer/info-drawer.component.mjs +141 -0
  4. package/esm2022/lib/components/locked-by/locked-by.component.mjs +57 -0
  5. package/esm2022/lib/components/open-in-app/open-in-app.component.mjs +73 -0
  6. package/esm2022/lib/components/page-layout/page-layout-content.component.mjs +49 -0
  7. package/esm2022/lib/components/page-layout/page-layout-error.component.mjs +43 -0
  8. package/esm2022/lib/components/page-layout/page-layout-header.component.mjs +43 -0
  9. package/esm2022/lib/components/page-layout/page-layout.component.mjs +64 -0
  10. package/esm2022/lib/components/page-layout/page-layout.module.mjs +43 -0
  11. package/esm2022/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +63 -0
  12. package/esm2022/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +79 -0
  13. package/esm2022/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +92 -0
  14. package/esm2022/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +76 -0
  15. package/esm2022/lib/components/toolbar/toolbar.component.mjs +46 -0
  16. package/esm2022/lib/deprecated/shared-toolbar.module.mjs +44 -0
  17. package/esm2022/lib/deprecated/shared.module.mjs +45 -0
  18. package/esm2022/lib/directives/contextmenu/contextmenu.directive.mjs +114 -0
  19. package/esm2022/lib/directives/pagination.directive.mjs +59 -0
  20. package/esm2022/lib/services/aca-mobile-app-switcher.service.mjs +130 -0
  21. package/esm2022/lib/services/app-hook.service.mjs +78 -0
  22. package/esm2022/lib/services/app-settings.service.mjs +157 -0
  23. package/esm2022/lib/services/app.extension.service.mjs +481 -0
  24. package/esm2022/lib/services/app.service.mjs +239 -0
  25. package/esm2022/lib/services/auto-download.service.mjs +59 -0
  26. package/esm2022/lib/services/content-api.service.mjs +281 -0
  27. package/esm2022/lib/services/navigation-history.service.mjs +55 -0
  28. package/esm2022/lib/services/node-permission.service.mjs +88 -0
  29. package/esm2022/lib/services/router.extension.service.mjs +108 -0
  30. package/esm2022/lib/services/user-profile.service.mjs +76 -0
  31. package/esm2022/lib/testing/lib-testing-module.mjs +163 -0
  32. package/esm2022/public-api.mjs +62 -0
  33. package/esm2022/store/actions/app.actions.mjs +116 -0
  34. package/esm2022/store/actions/context-menu-action-types.mjs +29 -0
  35. package/esm2022/store/actions/contextmenu.actions.mjs +41 -0
  36. package/esm2022/store/actions/library.actions.mjs +67 -0
  37. package/esm2022/store/actions/metadata-aspect.actions.mjs +32 -0
  38. package/esm2022/store/actions/node.actions.mjs +217 -0
  39. package/esm2022/store/actions/router.actions.mjs +56 -0
  40. package/esm2022/store/actions/search-ai.actions.mjs +45 -0
  41. package/esm2022/store/actions/search.actions.mjs +41 -0
  42. package/esm2022/store/actions/snackbar.actions.mjs +68 -0
  43. package/esm2022/store/actions/template.actions.mjs +45 -0
  44. package/esm2022/store/actions/upload.actions.mjs +53 -0
  45. package/esm2022/store/actions/viewer.actions.mjs +93 -0
  46. package/esm2022/store/effects/router.effects.mjs +110 -0
  47. package/esm2022/store/effects/snackbar.effects.mjs +80 -0
  48. package/{fesm2020 → fesm2022}/alfresco-aca-shared-store.mjs +219 -142
  49. package/fesm2022/alfresco-aca-shared-store.mjs.map +1 -0
  50. package/{fesm2020 → fesm2022}/alfresco-aca-shared.mjs +466 -301
  51. package/fesm2022/alfresco-aca-shared.mjs.map +1 -0
  52. package/lib/components/document-base-page/document-base-page.component.d.ts +7 -3
  53. package/lib/components/generic-error/generic-error.component.d.ts +1 -1
  54. package/lib/components/info-drawer/info-drawer.component.d.ts +1 -1
  55. package/lib/components/locked-by/locked-by.component.d.ts +1 -1
  56. package/lib/components/page-layout/page-layout-content.component.d.ts +1 -1
  57. package/lib/components/page-layout/page-layout.component.d.ts +1 -1
  58. package/lib/components/toolbar/toolbar-action/toolbar-action.component.d.ts +1 -1
  59. package/lib/components/toolbar/toolbar-button/toolbar-button.component.d.ts +1 -1
  60. package/lib/components/toolbar/toolbar-menu/toolbar-menu.component.d.ts +1 -1
  61. package/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.d.ts +1 -1
  62. package/lib/components/toolbar/toolbar.component.d.ts +1 -1
  63. package/lib/directives/contextmenu/contextmenu.directive.d.ts +3 -1
  64. package/lib/services/app-hook.service.d.ts +6 -6
  65. package/lib/services/app-settings.service.d.ts +12 -0
  66. package/lib/services/app.service.d.ts +1 -1
  67. package/lib/services/navigation-history.service.d.ts +13 -0
  68. package/lib/services/node-permission.service.d.ts +1 -1
  69. package/package.json +15 -25
  70. package/public-api.d.ts +1 -0
  71. package/store/actions/context-menu-action-types.d.ts +2 -1
  72. package/store/actions/contextmenu.actions.d.ts +7 -0
  73. package/store/actions/search-ai.actions.d.ts +2 -1
  74. package/store/effects/router.effects.d.ts +1 -5
  75. package/store/effects/snackbar.effects.d.ts +0 -29
  76. package/esm2020/lib/components/document-base-page/document-base-page.component.mjs +0 -206
  77. package/esm2020/lib/components/generic-error/generic-error.component.mjs +0 -43
  78. package/esm2020/lib/components/info-drawer/info-drawer.component.mjs +0 -132
  79. package/esm2020/lib/components/locked-by/locked-by.component.mjs +0 -54
  80. package/esm2020/lib/components/open-in-app/open-in-app.component.mjs +0 -68
  81. package/esm2020/lib/components/page-layout/page-layout-content.component.mjs +0 -50
  82. package/esm2020/lib/components/page-layout/page-layout-error.component.mjs +0 -42
  83. package/esm2020/lib/components/page-layout/page-layout-header.component.mjs +0 -42
  84. package/esm2020/lib/components/page-layout/page-layout.component.mjs +0 -61
  85. package/esm2020/lib/components/page-layout/page-layout.module.mjs +0 -42
  86. package/esm2020/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +0 -58
  87. package/esm2020/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +0 -74
  88. package/esm2020/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +0 -87
  89. package/esm2020/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +0 -71
  90. package/esm2020/lib/components/toolbar/toolbar.component.mjs +0 -44
  91. package/esm2020/lib/deprecated/shared-toolbar.module.mjs +0 -43
  92. package/esm2020/lib/deprecated/shared.module.mjs +0 -44
  93. package/esm2020/lib/directives/contextmenu/contextmenu.directive.mjs +0 -104
  94. package/esm2020/lib/directives/pagination.directive.mjs +0 -55
  95. package/esm2020/lib/services/aca-mobile-app-switcher.service.mjs +0 -129
  96. package/esm2020/lib/services/app-hook.service.mjs +0 -79
  97. package/esm2020/lib/services/app-settings.service.mjs +0 -140
  98. package/esm2020/lib/services/app.extension.service.mjs +0 -462
  99. package/esm2020/lib/services/app.service.mjs +0 -221
  100. package/esm2020/lib/services/auto-download.service.mjs +0 -60
  101. package/esm2020/lib/services/content-api.service.mjs +0 -268
  102. package/esm2020/lib/services/node-permission.service.mjs +0 -89
  103. package/esm2020/lib/services/router.extension.service.mjs +0 -105
  104. package/esm2020/lib/services/user-profile.service.mjs +0 -77
  105. package/esm2020/lib/testing/lib-testing-module.mjs +0 -161
  106. package/esm2020/public-api.mjs +0 -61
  107. package/esm2020/store/actions/app.actions.mjs +0 -108
  108. package/esm2020/store/actions/context-menu-action-types.mjs +0 -28
  109. package/esm2020/store/actions/contextmenu.actions.mjs +0 -31
  110. package/esm2020/store/actions/library.actions.mjs +0 -63
  111. package/esm2020/store/actions/metadata-aspect.actions.mjs +0 -31
  112. package/esm2020/store/actions/node.actions.mjs +0 -188
  113. package/esm2020/store/actions/router.actions.mjs +0 -54
  114. package/esm2020/store/actions/search-ai.actions.mjs +0 -41
  115. package/esm2020/store/actions/search.actions.mjs +0 -41
  116. package/esm2020/store/actions/snackbar.actions.mjs +0 -57
  117. package/esm2020/store/actions/template.actions.mjs +0 -47
  118. package/esm2020/store/actions/upload.actions.mjs +0 -49
  119. package/esm2020/store/actions/viewer.actions.mjs +0 -81
  120. package/esm2020/store/effects/router.effects.mjs +0 -114
  121. package/esm2020/store/effects/snackbar.effects.mjs +0 -85
  122. package/fesm2015/alfresco-aca-shared-rules.mjs +0 -795
  123. package/fesm2015/alfresco-aca-shared-rules.mjs.map +0 -1
  124. package/fesm2015/alfresco-aca-shared-store.mjs +0 -1278
  125. package/fesm2015/alfresco-aca-shared-store.mjs.map +0 -1
  126. package/fesm2015/alfresco-aca-shared.mjs +0 -3278
  127. package/fesm2015/alfresco-aca-shared.mjs.map +0 -1
  128. package/fesm2020/alfresco-aca-shared-store.mjs.map +0 -1
  129. package/fesm2020/alfresco-aca-shared.mjs.map +0 -1
  130. /package/{esm2020 → esm2022}/alfresco-aca-shared.mjs +0 -0
  131. /package/{esm2020 → esm2022}/lib/adf-extensions/extensions-data-loader.guard.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/components/document-base-page/document-base-page.service.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/constants/mime-types.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/models/types.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/models/viewer.rules.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/routing/plugin-enabled.guard.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/routing/shared.guard.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/utils/node.utils.mjs +0 -0
  140. /package/{esm2020 → esm2022}/rules/alfresco-aca-shared-rules.mjs +0 -0
  141. /package/{esm2020 → esm2022}/rules/app.rules.mjs +0 -0
  142. /package/{esm2020 → esm2022}/rules/navigation.rules.mjs +0 -0
  143. /package/{esm2020 → esm2022}/rules/public-api.mjs +0 -0
  144. /package/{esm2020 → esm2022}/rules/repository.rules.mjs +0 -0
  145. /package/{esm2020 → esm2022}/rules/user.rules.mjs +0 -0
  146. /package/{esm2020 → esm2022}/store/actions/app-action-types.mjs +0 -0
  147. /package/{esm2020 → esm2022}/store/actions/router-action-types.mjs +0 -0
  148. /package/{esm2020 → esm2022}/store/actions/template-action-types.mjs +0 -0
  149. /package/{esm2020 → esm2022}/store/alfresco-aca-shared-store.mjs +0 -0
  150. /package/{esm2020 → esm2022}/store/models/ai-search-by-term-payload.mjs +0 -0
  151. /package/{esm2020 → esm2022}/store/models/delete-status.model.mjs +0 -0
  152. /package/{esm2020 → esm2022}/store/models/deleted-node-info.model.mjs +0 -0
  153. /package/{esm2020 → esm2022}/store/models/modal-configuration.mjs +0 -0
  154. /package/{esm2020 → esm2022}/store/models/node-info.model.mjs +0 -0
  155. /package/{esm2020 → esm2022}/store/models/search-option.model.mjs +0 -0
  156. /package/{esm2020 → esm2022}/store/public-api.mjs +0 -0
  157. /package/{esm2020 → esm2022}/store/selectors/app.selectors.mjs +0 -0
  158. /package/{esm2020 → esm2022}/store/states/app.state.mjs +0 -0
  159. /package/{fesm2020 → fesm2022}/alfresco-aca-shared-rules.mjs +0 -0
  160. /package/{fesm2020 → fesm2022}/alfresco-aca-shared-rules.mjs.map +0 -0
@@ -1,268 +0,0 @@
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 { Injectable } from '@angular/core';
25
- import { UserPreferencesService } from '@alfresco/adf-core';
26
- import { AlfrescoApiService } from '@alfresco/adf-content-services';
27
- import { from } from 'rxjs';
28
- import { NodesApi, TrashcanApi, SharedlinksApi, DiscoveryApi, FavoritesApi, ContentApi, SitesApi, SearchApi, PeopleApi, VersionsApi } from '@alfresco/js-api';
29
- import { map } from 'rxjs/operators';
30
- import * as i0 from "@angular/core";
31
- import * as i1 from "@alfresco/adf-content-services";
32
- import * as i2 from "@alfresco/adf-core";
33
- export class ContentApiService {
34
- get nodesApi() {
35
- this._nodesApi = this._nodesApi ?? new NodesApi(this.api.getInstance());
36
- return this._nodesApi;
37
- }
38
- get trashcanApi() {
39
- this._trashcanApi = this._trashcanApi ?? new TrashcanApi(this.api.getInstance());
40
- return this._trashcanApi;
41
- }
42
- get sharedLinksApi() {
43
- this._sharedLinksApi = this._sharedLinksApi ?? new SharedlinksApi(this.api.getInstance());
44
- return this._sharedLinksApi;
45
- }
46
- get discoveryApi() {
47
- this._discoveryApi = this._discoveryApi ?? new DiscoveryApi(this.api.getInstance());
48
- return this._discoveryApi;
49
- }
50
- get favoritesApi() {
51
- this._favoritesApi = this._favoritesApi ?? new FavoritesApi(this.api.getInstance());
52
- return this._favoritesApi;
53
- }
54
- get contentApi() {
55
- this._contentApi = this._contentApi ?? new ContentApi(this.api.getInstance());
56
- return this._contentApi;
57
- }
58
- get sitesApi() {
59
- this._sitesApi = this._sitesApi ?? new SitesApi(this.api.getInstance());
60
- return this._sitesApi;
61
- }
62
- get searchApi() {
63
- this._searchApi = this._searchApi ?? new SearchApi(this.api.getInstance());
64
- return this._searchApi;
65
- }
66
- get peopleApi() {
67
- this._peopleApi = this._peopleApi ?? new PeopleApi(this.api.getInstance());
68
- return this._peopleApi;
69
- }
70
- get versionsApi() {
71
- this._versionsApi = this._versionsApi ?? new VersionsApi(this.api.getInstance());
72
- return this._versionsApi;
73
- }
74
- constructor(api, preferences) {
75
- this.api = api;
76
- this.preferences = preferences;
77
- }
78
- /**
79
- * Moves a node to the trashcan.
80
- *
81
- * @param nodeId ID of the target node
82
- * @param options Optional parameters supported by JS-API
83
- * @returns Empty result that notifies when the deletion is complete
84
- */
85
- deleteNode(nodeId, options = {}) {
86
- return from(this.nodesApi.deleteNode(nodeId, options));
87
- }
88
- /**
89
- * Gets the stored information about a node.
90
- *
91
- * @param nodeId ID of the target node
92
- * @param options Optional parameters supported by JS-API
93
- * @returns Node information
94
- */
95
- getNode(nodeId, options = {}) {
96
- const defaults = {
97
- include: ['path', 'properties', 'allowableOperations', 'permissions', 'definition']
98
- };
99
- const queryOptions = Object.assign(defaults, options);
100
- return from(this.nodesApi.getNode(nodeId, queryOptions));
101
- }
102
- getNodeInfo(nodeId, options) {
103
- const defaults = {
104
- include: ['isFavorite', 'allowableOperations', 'path', 'definition']
105
- };
106
- const queryOptions = Object.assign(defaults, options || {});
107
- return from(new Promise((resolve, reject) => {
108
- this.nodesApi.getNode(nodeId, queryOptions).then((nodeEntry) => {
109
- resolve(nodeEntry.entry);
110
- }, (error) => {
111
- reject(error);
112
- });
113
- }));
114
- }
115
- /**
116
- * Gets the items contained in a folder node.
117
- *
118
- * @param nodeId ID of the target node
119
- * @param options Optional parameters supported by JS-API
120
- * @returns List of child items from the folder
121
- */
122
- getNodeChildren(nodeId, options = {}) {
123
- const defaults = {
124
- maxItems: this.preferences.paginationSize,
125
- skipCount: 0,
126
- include: ['isLocked', 'path', 'properties', 'allowableOperations', 'permissions']
127
- };
128
- const queryOptions = Object.assign(defaults, options);
129
- return from(this.nodesApi.listNodeChildren(nodeId, queryOptions));
130
- }
131
- deleteSharedLink(linkId) {
132
- return from(this.sharedLinksApi.deleteSharedLink(linkId));
133
- }
134
- getDeletedNodes(options = {}) {
135
- const defaults = {
136
- include: ['path']
137
- };
138
- const queryOptions = Object.assign(defaults, options);
139
- return from(this.trashcanApi.listDeletedNodes(queryOptions));
140
- }
141
- restoreNode(nodeId) {
142
- return from(this.trashcanApi.restoreDeletedNode(nodeId));
143
- }
144
- purgeDeletedNode(nodeId) {
145
- return from(this.trashcanApi.deleteDeletedNode(nodeId));
146
- }
147
- /**
148
- * Gets information about a user identified by their username.
149
- *
150
- * @param personId ID of the target user
151
- * @param options Api options
152
- * @returns User information
153
- */
154
- getPerson(personId, options) {
155
- return from(this.peopleApi.getPerson(personId, options));
156
- }
157
- /**
158
- * Copy a node to destination node
159
- *
160
- * @param nodeId The id of the node to be copied
161
- * @param targetParentId The id of the folder-node where the node have to be copied to
162
- * @param name The new name for the copy that would be added on the destination folder
163
- * @param opts Api options
164
- */
165
- copyNode(nodeId, targetParentId, name, opts) {
166
- return from(this.nodesApi.copyNode(nodeId, { targetParentId, name }, opts));
167
- }
168
- /**
169
- * Gets product information for Content Services.
170
- *
171
- * @returns ProductVersionModel containing product details
172
- */
173
- getRepositoryInformation() {
174
- return from(this.discoveryApi.getRepositoryInformation());
175
- }
176
- getFavorites(personId, opts) {
177
- return from(this.favoritesApi.listFavorites(personId, opts));
178
- }
179
- getFavoriteLibraries(personId = '-me-', opts) {
180
- return this.getFavorites(personId, {
181
- ...opts,
182
- where: '(EXISTS(target/site))'
183
- }).pipe(map((response) => ({
184
- list: {
185
- entries: response.list.entries.map(({ entry }) => {
186
- entry.target.site.createdAt = entry.createdAt;
187
- return {
188
- entry: entry.target.site
189
- };
190
- }),
191
- pagination: response.list.pagination
192
- }
193
- })));
194
- }
195
- findSharedLinks(opts) {
196
- return from(this.sharedLinksApi.listSharedLinks(opts));
197
- }
198
- getSharedLinkContent(sharedId, attachment) {
199
- return this.contentApi.getSharedLinkContentUrl(sharedId, attachment);
200
- }
201
- search(request) {
202
- return from(this.searchApi.search(request));
203
- }
204
- getContentUrl(nodeId, attachment) {
205
- return this.contentApi.getContentUrl(nodeId, attachment);
206
- }
207
- getVersionContentUrl(nodeId, versionId, attachment) {
208
- return this.contentApi.getVersionContentUrl(nodeId, versionId, attachment);
209
- }
210
- deleteSite(siteId, opts) {
211
- return from(this.sitesApi.deleteSite(siteId, opts));
212
- }
213
- leaveSite(siteId) {
214
- return from(this.sitesApi.deleteSiteMembership(siteId, '-me-'));
215
- }
216
- createSite(siteBody, opts) {
217
- return from(this.sitesApi.createSite(siteBody, opts));
218
- }
219
- getSite(siteId, opts) {
220
- return from(this.sitesApi.getSite(siteId, opts));
221
- }
222
- updateLibrary(siteId, siteBody) {
223
- return from(this.sitesApi.updateSite(siteId, siteBody));
224
- }
225
- addFavorite(nodes) {
226
- const payload = nodes.map((node) => {
227
- const { isFolder, nodeId, id } = node.entry;
228
- const siteId = node.entry['guid'];
229
- const type = siteId ? 'site' : isFolder ? 'folder' : 'file';
230
- const guid = siteId || nodeId || id;
231
- return {
232
- target: {
233
- [type]: {
234
- guid
235
- }
236
- }
237
- };
238
- });
239
- return from(this.favoritesApi.createFavorite('-me-', payload));
240
- }
241
- removeFavorite(nodes) {
242
- return from(Promise.all(nodes.map((node) => {
243
- const id = node.entry.nodeId || node.entry.id;
244
- return this.favoritesApi.deleteFavorite('-me-', id);
245
- })));
246
- }
247
- unlockNode(nodeId, opts) {
248
- return this.nodesApi.unlockNode(nodeId, opts);
249
- }
250
- getNodeVersions(nodeId, opts) {
251
- return from(this.versionsApi.listVersionHistory(nodeId, opts));
252
- }
253
- requestNodeDirectAccessUrl(nodeId) {
254
- return from(this.nodesApi.requestDirectAccessUrl(nodeId));
255
- }
256
- requestVersionDirectAccessUrl(nodeId, versionId) {
257
- return from(this.versionsApi.requestDirectAccessUrl(nodeId, versionId));
258
- }
259
- }
260
- ContentApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContentApiService, deps: [{ token: i1.AlfrescoApiService }, { token: i2.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable });
261
- ContentApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContentApiService, providedIn: 'root' });
262
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContentApiService, decorators: [{
263
- type: Injectable,
264
- args: [{
265
- providedIn: 'root'
266
- }]
267
- }], ctorParameters: function () { return [{ type: i1.AlfrescoApiService }, { type: i2.UserPreferencesService }]; } });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy9jb250ZW50LWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFlTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBR1osTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFLckMsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixJQUFJLFFBQVE7UUFDVixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBR0QsSUFBSSxXQUFXO1FBQ2IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUdE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QUN0RCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWMsRUFBRSxJQUFVO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYyxFQUFFLElBQVU7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsMEJBQTBCLENBQUMsTUFBYztRQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELDZCQUE2QixDQUFDLE1BQWMsRUFBRSxTQUFpQjtRQUM3RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7OytHQTlTVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgTm9kZVBhZ2luZyxcbiAgTm9kZSxcbiAgRGVsZXRlZE5vZGVzUGFnaW5nLFxuICBQZXJzb25FbnRyeSxcbiAgTm9kZUVudHJ5LFxuICBEaXNjb3ZlcnlFbnRyeSxcbiAgRmF2b3JpdGVQYWdpbmcsXG4gIFNoYXJlZExpbmtQYWdpbmcsXG4gIFNlYXJjaFJlcXVlc3QsXG4gIFJlc3VsdFNldFBhZ2luZyxcbiAgU2l0ZUJvZHlDcmVhdGUsXG4gIFNpdGVFbnRyeSxcbiAgRmF2b3JpdGVCb2R5Q3JlYXRlLFxuICBGYXZvcml0ZUVudHJ5LFxuICBOb2Rlc0FwaSxcbiAgVHJhc2hjYW5BcGksXG4gIFNoYXJlZGxpbmtzQXBpLFxuICBEaXNjb3ZlcnlBcGksXG4gIEZhdm9yaXRlc0FwaSxcbiAgQ29udGVudEFwaSxcbiAgU2l0ZXNBcGksXG4gIFNlYXJjaEFwaSxcbiAgUGVvcGxlQXBpLFxuICBWZXJzaW9uc0FwaSxcbiAgRGlyZWN0QWNjZXNzVXJsRW50cnksXG4gIFZlcnNpb25QYWdpbmdcbn0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfbm9kZXNBcGk6IE5vZGVzQXBpO1xuICBnZXQgbm9kZXNBcGkoKTogTm9kZXNBcGkge1xuICAgIHRoaXMuX25vZGVzQXBpID0gdGhpcy5fbm9kZXNBcGkgPz8gbmV3IE5vZGVzQXBpKHRoaXMuYXBpLmdldEluc3RhbmNlKCkpO1xuICAgIHJldHVybiB0aGlzLl9ub2Rlc0FwaTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYXNoY2FuQXBpOiBUcmFzaGNhbkFwaTtcbiAgZ2V0IHRyYXNoY2FuQXBpKCk6IFRyYXNoY2FuQXBpIHtcbiAgICB0aGlzLl90cmFzaGNhbkFwaSA9IHRoaXMuX3RyYXNoY2FuQXBpID8/IG5ldyBUcmFzaGNhbkFwaSh0aGlzLmFwaS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fdHJhc2hjYW5BcGk7XG4gIH1cblxuICBwcml2YXRlIF9zaGFyZWRMaW5rc0FwaTogU2hhcmVkbGlua3NBcGk7XG4gIGdldCBzaGFyZWRMaW5rc0FwaSgpOiBTaGFyZWRsaW5rc0FwaSB7XG4gICAgdGhpcy5fc2hhcmVkTGlua3NBcGkgPSB0aGlzLl9zaGFyZWRMaW5rc0FwaSA/PyBuZXcgU2hhcmVkbGlua3NBcGkodGhpcy5hcGkuZ2V0SW5zdGFuY2UoKSk7XG4gICAgcmV0dXJuIHRoaXMuX3NoYXJlZExpbmtzQXBpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzY292ZXJ5QXBpOiBEaXNjb3ZlcnlBcGk7XG4gIGdldCBkaXNjb3ZlcnlBcGkoKTogRGlzY292ZXJ5QXBpIHtcbiAgICB0aGlzLl9kaXNjb3ZlcnlBcGkgPSB0aGlzLl9kaXNjb3ZlcnlBcGkgPz8gbmV3IERpc2NvdmVyeUFwaSh0aGlzLmFwaS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fZGlzY292ZXJ5QXBpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmF2b3JpdGVzQXBpOiBGYXZvcml0ZXNBcGk7XG4gIGdldCBmYXZvcml0ZXNBcGkoKTogRmF2b3JpdGVzQXBpIHtcbiAgICB0aGlzLl9mYXZvcml0ZXNBcGkgPSB0aGlzLl9mYXZvcml0ZXNBcGkgPz8gbmV3IEZhdm9yaXRlc0FwaSh0aGlzLmFwaS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fZmF2b3JpdGVzQXBpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29udGVudEFwaTogQ29udGVudEFwaTtcbiAgZ2V0IGNvbnRlbnRBcGkoKTogQ29udGVudEFwaSB7XG4gICAgdGhpcy5fY29udGVudEFwaSA9IHRoaXMuX2NvbnRlbnRBcGkgPz8gbmV3IENvbnRlbnRBcGkodGhpcy5hcGkuZ2V0SW5zdGFuY2UoKSk7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRBcGk7XG4gIH1cblxuICBwcml2YXRlIF9zaXRlc0FwaTogU2l0ZXNBcGk7XG4gIGdldCBzaXRlc0FwaSgpOiBTaXRlc0FwaSB7XG4gICAgdGhpcy5fc2l0ZXNBcGkgPSB0aGlzLl9zaXRlc0FwaSA/PyBuZXcgU2l0ZXNBcGkodGhpcy5hcGkuZ2V0SW5zdGFuY2UoKSk7XG4gICAgcmV0dXJuIHRoaXMuX3NpdGVzQXBpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VhcmNoQXBpOiBTZWFyY2hBcGk7XG4gIGdldCBzZWFyY2hBcGkoKTogU2VhcmNoQXBpIHtcbiAgICB0aGlzLl9zZWFyY2hBcGkgPSB0aGlzLl9zZWFyY2hBcGkgPz8gbmV3IFNlYXJjaEFwaSh0aGlzLmFwaS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoQXBpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGVvcGxlQXBpOiBQZW9wbGVBcGk7XG4gIGdldCBwZW9wbGVBcGkoKTogUGVvcGxlQXBpIHtcbiAgICB0aGlzLl9wZW9wbGVBcGkgPSB0aGlzLl9wZW9wbGVBcGkgPz8gbmV3IFBlb3BsZUFwaSh0aGlzLmFwaS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fcGVvcGxlQXBpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmVyc2lvbnNBcGk6IFZlcnNpb25zQXBpO1xuICBnZXQgdmVyc2lvbnNBcGkoKTogVmVyc2lvbnNBcGkge1xuICAgIHRoaXMuX3ZlcnNpb25zQXBpID0gdGhpcy5fdmVyc2lvbnNBcGkgPz8gbmV3IFZlcnNpb25zQXBpKHRoaXMuYXBpLmdldEluc3RhbmNlKCkpO1xuICAgIHJldHVybiB0aGlzLl92ZXJzaW9uc0FwaTtcbiAgfVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaTogQWxmcmVzY29BcGlTZXJ2aWNlLCBwcml2YXRlIHByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBNb3ZlcyBhIG5vZGUgdG8gdGhlIHRyYXNoY2FuLlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZUlkIElEIG9mIHRoZSB0YXJnZXQgbm9kZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBwYXJhbWV0ZXJzIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICogQHJldHVybnMgRW1wdHkgcmVzdWx0IHRoYXQgbm90aWZpZXMgd2hlbiB0aGUgZGVsZXRpb24gaXMgY29tcGxldGVcbiAgICovXG4gIGRlbGV0ZU5vZGUobm9kZUlkOiBzdHJpbmcsIG9wdGlvbnM6IHsgcGVybWFuZW50PzogYm9vbGVhbiB9ID0ge30pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzQXBpLmRlbGV0ZU5vZGUobm9kZUlkLCBvcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc3RvcmVkIGluZm9ybWF0aW9uIGFib3V0IGEgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIG5vZGVJZCBJRCBvZiB0aGUgdGFyZ2V0IG5vZGVcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgcGFyYW1ldGVycyBzdXBwb3J0ZWQgYnkgSlMtQVBJXG4gICAqIEByZXR1cm5zIE5vZGUgaW5mb3JtYXRpb25cbiAgICovXG4gIGdldE5vZGUobm9kZUlkOiBzdHJpbmcsIG9wdGlvbnM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxOb2RlRW50cnk+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGluY2x1ZGU6IFsncGF0aCcsICdwcm9wZXJ0aWVzJywgJ2FsbG93YWJsZU9wZXJhdGlvbnMnLCAncGVybWlzc2lvbnMnLCAnZGVmaW5pdGlvbiddXG4gICAgfTtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRzLCBvcHRpb25zKTtcblxuICAgIHJldHVybiBmcm9tKHRoaXMubm9kZXNBcGkuZ2V0Tm9kZShub2RlSWQsIHF1ZXJ5T3B0aW9ucykpO1xuICB9XG5cbiAgZ2V0Tm9kZUluZm8obm9kZUlkOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPE5vZGU+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGluY2x1ZGU6IFsnaXNGYXZvcml0ZScsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ3BhdGgnLCAnZGVmaW5pdGlvbiddXG4gICAgfTtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRzLCBvcHRpb25zIHx8IHt9KTtcblxuICAgIHJldHVybiBmcm9tKFxuICAgICAgbmV3IFByb21pc2U8Tm9kZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0aGlzLm5vZGVzQXBpLmdldE5vZGUobm9kZUlkLCBxdWVyeU9wdGlvbnMpLnRoZW4oXG4gICAgICAgICAgKG5vZGVFbnRyeTogTm9kZUVudHJ5KSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKG5vZGVFbnRyeS5lbnRyeSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGl0ZW1zIGNvbnRhaW5lZCBpbiBhIGZvbGRlciBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZUlkIElEIG9mIHRoZSB0YXJnZXQgbm9kZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBwYXJhbWV0ZXJzIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICogQHJldHVybnMgTGlzdCBvZiBjaGlsZCBpdGVtcyBmcm9tIHRoZSBmb2xkZXJcbiAgICovXG4gIGdldE5vZGVDaGlsZHJlbihub2RlSWQ6IHN0cmluZywgb3B0aW9uczogYW55ID0ge30pOiBPYnNlcnZhYmxlPE5vZGVQYWdpbmc+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIG1heEl0ZW1zOiB0aGlzLnByZWZlcmVuY2VzLnBhZ2luYXRpb25TaXplLFxuICAgICAgc2tpcENvdW50OiAwLFxuICAgICAgaW5jbHVkZTogWydpc0xvY2tlZCcsICdwYXRoJywgJ3Byb3BlcnRpZXMnLCAnYWxsb3dhYmxlT3BlcmF0aW9ucycsICdwZXJtaXNzaW9ucyddXG4gICAgfTtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRzLCBvcHRpb25zKTtcblxuICAgIHJldHVybiBmcm9tKHRoaXMubm9kZXNBcGkubGlzdE5vZGVDaGlsZHJlbihub2RlSWQsIHF1ZXJ5T3B0aW9ucykpO1xuICB9XG5cbiAgZGVsZXRlU2hhcmVkTGluayhsaW5rSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5zaGFyZWRMaW5rc0FwaS5kZWxldGVTaGFyZWRMaW5rKGxpbmtJZCkpO1xuICB9XG5cbiAgZ2V0RGVsZXRlZE5vZGVzKG9wdGlvbnM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxEZWxldGVkTm9kZXNQYWdpbmc+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGluY2x1ZGU6IFsncGF0aCddXG4gICAgfTtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRzLCBvcHRpb25zKTtcblxuICAgIHJldHVybiBmcm9tKHRoaXMudHJhc2hjYW5BcGkubGlzdERlbGV0ZWROb2RlcyhxdWVyeU9wdGlvbnMpKTtcbiAgfVxuXG4gIHJlc3RvcmVOb2RlKG5vZGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOb2RlRW50cnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnRyYXNoY2FuQXBpLnJlc3RvcmVEZWxldGVkTm9kZShub2RlSWQpKTtcbiAgfVxuXG4gIHB1cmdlRGVsZXRlZE5vZGUobm9kZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMudHJhc2hjYW5BcGkuZGVsZXRlRGVsZXRlZE5vZGUobm9kZUlkKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBpbmZvcm1hdGlvbiBhYm91dCBhIHVzZXIgaWRlbnRpZmllZCBieSB0aGVpciB1c2VybmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHBlcnNvbklkIElEIG9mIHRoZSB0YXJnZXQgdXNlclxuICAgKiBAcGFyYW0gb3B0aW9ucyBBcGkgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBVc2VyIGluZm9ybWF0aW9uXG4gICAqL1xuICBnZXRQZXJzb24ocGVyc29uSWQ6IHN0cmluZywgb3B0aW9ucz86IHsgZmllbGRzPzogQXJyYXk8c3RyaW5nPiB9KTogT2JzZXJ2YWJsZTxQZXJzb25FbnRyeT4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMucGVvcGxlQXBpLmdldFBlcnNvbihwZXJzb25JZCwgb3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcHkgYSBub2RlIHRvIGRlc3RpbmF0aW9uIG5vZGVcbiAgICpcbiAgICogQHBhcmFtIG5vZGVJZCBUaGUgaWQgb2YgdGhlIG5vZGUgdG8gYmUgY29waWVkXG4gICAqIEBwYXJhbSB0YXJnZXRQYXJlbnRJZCBUaGUgaWQgb2YgdGhlIGZvbGRlci1ub2RlIHdoZXJlIHRoZSBub2RlIGhhdmUgdG8gYmUgY29waWVkIHRvXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuZXcgbmFtZSBmb3IgdGhlIGNvcHkgdGhhdCB3b3VsZCBiZSBhZGRlZCBvbiB0aGUgZGVzdGluYXRpb24gZm9sZGVyXG4gICAqIEBwYXJhbSBvcHRzIEFwaSBvcHRpb25zXG4gICAqL1xuICBjb3B5Tm9kZShub2RlSWQ6IHN0cmluZywgdGFyZ2V0UGFyZW50SWQ6IHN0cmluZywgbmFtZT86IHN0cmluZywgb3B0cz86IHsgaW5jbHVkZT86IEFycmF5PHN0cmluZz47IGZpZWxkcz86IEFycmF5PHN0cmluZz4gfSk6IE9ic2VydmFibGU8Tm9kZUVudHJ5PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlc0FwaS5jb3B5Tm9kZShub2RlSWQsIHsgdGFyZ2V0UGFyZW50SWQsIG5hbWUgfSwgb3B0cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgcHJvZHVjdCBpbmZvcm1hdGlvbiBmb3IgQ29udGVudCBTZXJ2aWNlcy5cbiAgICpcbiAgICogQHJldHVybnMgUHJvZHVjdFZlcnNpb25Nb2RlbCBjb250YWluaW5nIHByb2R1Y3QgZGV0YWlsc1xuICAgKi9cbiAgZ2V0UmVwb3NpdG9yeUluZm9ybWF0aW9uKCk6IE9ic2VydmFibGU8RGlzY292ZXJ5RW50cnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmRpc2NvdmVyeUFwaS5nZXRSZXBvc2l0b3J5SW5mb3JtYXRpb24oKSk7XG4gIH1cblxuICBnZXRGYXZvcml0ZXMoXG4gICAgcGVyc29uSWQ6IHN0cmluZyxcbiAgICBvcHRzPzoge1xuICAgICAgc2tpcENvdW50PzogbnVtYmVyO1xuICAgICAgbWF4SXRlbXM/OiBudW1iZXI7XG4gICAgICB3aGVyZT86IHN0cmluZztcbiAgICAgIGZpZWxkcz86IEFycmF5PHN0cmluZz47XG4gICAgfVxuICApOiBPYnNlcnZhYmxlPEZhdm9yaXRlUGFnaW5nPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5mYXZvcml0ZXNBcGkubGlzdEZhdm9yaXRlcyhwZXJzb25JZCwgb3B0cykpO1xuICB9XG5cbiAgZ2V0RmF2b3JpdGVMaWJyYXJpZXMocGVyc29uSWQ6IHN0cmluZyA9ICctbWUtJywgb3B0cz86IGFueSk6IE9ic2VydmFibGU8RmF2b3JpdGVQYWdpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRGYXZvcml0ZXMocGVyc29uSWQsIHtcbiAgICAgIC4uLm9wdHMsXG4gICAgICB3aGVyZTogJyhFWElTVFModGFyZ2V0L3NpdGUpKSdcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogRmF2b3JpdGVQYWdpbmcpID0+ICh7XG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBlbnRyaWVzOiByZXNwb25zZS5saXN0LmVudHJpZXMubWFwKCh7IGVudHJ5IH06IGFueSkgPT4ge1xuICAgICAgICAgICAgZW50cnkudGFyZ2V0LnNpdGUuY3JlYXRlZEF0ID0gZW50cnkuY3JlYXRlZEF0O1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZW50cnk6IGVudHJ5LnRhcmdldC5zaXRlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHBhZ2luYXRpb246IHJlc3BvbnNlLmxpc3QucGFnaW5hdGlvblxuICAgICAgICB9XG4gICAgICB9KSlcbiAgICApO1xuICB9XG5cbiAgZmluZFNoYXJlZExpbmtzKG9wdHM/OiBhbnkpOiBPYnNlcnZhYmxlPFNoYXJlZExpbmtQYWdpbmc+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnNoYXJlZExpbmtzQXBpLmxpc3RTaGFyZWRMaW5rcyhvcHRzKSk7XG4gIH1cblxuICBnZXRTaGFyZWRMaW5rQ29udGVudChzaGFyZWRJZDogc3RyaW5nLCBhdHRhY2htZW50PzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudEFwaS5nZXRTaGFyZWRMaW5rQ29udGVudFVybChzaGFyZWRJZCwgYXR0YWNobWVudCk7XG4gIH1cblxuICBzZWFyY2gocmVxdWVzdDogU2VhcmNoUmVxdWVzdCk6IE9ic2VydmFibGU8UmVzdWx0U2V0UGFnaW5nPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5zZWFyY2hBcGkuc2VhcmNoKHJlcXVlc3QpKTtcbiAgfVxuXG4gIGdldENvbnRlbnRVcmwobm9kZUlkOiBzdHJpbmcsIGF0dGFjaG1lbnQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50QXBpLmdldENvbnRlbnRVcmwobm9kZUlkLCBhdHRhY2htZW50KTtcbiAgfVxuXG4gIGdldFZlcnNpb25Db250ZW50VXJsKG5vZGVJZDogc3RyaW5nLCB2ZXJzaW9uSWQ6IHN0cmluZywgYXR0YWNobWVudD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRBcGkuZ2V0VmVyc2lvbkNvbnRlbnRVcmwobm9kZUlkLCB2ZXJzaW9uSWQsIGF0dGFjaG1lbnQpO1xuICB9XG5cbiAgZGVsZXRlU2l0ZShzaXRlSWQ/OiBzdHJpbmcsIG9wdHM/OiB7IHBlcm1hbmVudD86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5kZWxldGVTaXRlKHNpdGVJZCwgb3B0cykpO1xuICB9XG5cbiAgbGVhdmVTaXRlKHNpdGVJZD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5kZWxldGVTaXRlTWVtYmVyc2hpcChzaXRlSWQsICctbWUtJykpO1xuICB9XG5cbiAgY3JlYXRlU2l0ZShcbiAgICBzaXRlQm9keTogU2l0ZUJvZHlDcmVhdGUsXG4gICAgb3B0cz86IHtcbiAgICAgIGZpZWxkcz86IEFycmF5PHN0cmluZz47XG4gICAgICBza2lwQ29uZmlndXJhdGlvbj86IGJvb2xlYW47XG4gICAgICBza2lwQWRkVG9GYXZvcml0ZXM/OiBib29sZWFuO1xuICAgIH1cbiAgKTogT2JzZXJ2YWJsZTxTaXRlRW50cnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmNyZWF0ZVNpdGUoc2l0ZUJvZHksIG9wdHMpKTtcbiAgfVxuXG4gIGdldFNpdGUoc2l0ZUlkPzogc3RyaW5nLCBvcHRzPzogeyByZWxhdGlvbnM/OiBBcnJheTxzdHJpbmc+OyBmaWVsZHM/OiBBcnJheTxzdHJpbmc+IH0pOiBPYnNlcnZhYmxlPFNpdGVFbnRyeT4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuc2l0ZXNBcGkuZ2V0U2l0ZShzaXRlSWQsIG9wdHMpKTtcbiAgfVxuXG4gIHVwZGF0ZUxpYnJhcnkoc2l0ZUlkOiBzdHJpbmcsIHNpdGVCb2R5OiBTaXRlQm9keUNyZWF0ZSk6IE9ic2VydmFibGU8U2l0ZUVudHJ5PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS51cGRhdGVTaXRlKHNpdGVJZCwgc2l0ZUJvZHkpKTtcbiAgfVxuXG4gIGFkZEZhdm9yaXRlKG5vZGVzOiBBcnJheTxOb2RlRW50cnk+KTogT2JzZXJ2YWJsZTxGYXZvcml0ZUVudHJ5PiB7XG4gICAgY29uc3QgcGF5bG9hZDogRmF2b3JpdGVCb2R5Q3JlYXRlW10gPSBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHsgaXNGb2xkZXIsIG5vZGVJZCwgaWQgfSA9IG5vZGUuZW50cnkgYXMgYW55O1xuICAgICAgY29uc3Qgc2l0ZUlkID0gbm9kZS5lbnRyeVsnZ3VpZCddO1xuICAgICAgY29uc3QgdHlwZSA9IHNpdGVJZCA/ICdzaXRlJyA6IGlzRm9sZGVyID8gJ2ZvbGRlcicgOiAnZmlsZSc7XG4gICAgICBjb25zdCBndWlkID0gc2l0ZUlkIHx8IG5vZGVJZCB8fCBpZDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGFyZ2V0OiB7XG4gICAgICAgICAgW3R5cGVdOiB7XG4gICAgICAgICAgICBndWlkXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZyb20odGhpcy5mYXZvcml0ZXNBcGkuY3JlYXRlRmF2b3JpdGUoJy1tZS0nLCBwYXlsb2FkIGFzIGFueSkpO1xuICB9XG5cbiAgcmVtb3ZlRmF2b3JpdGUobm9kZXM6IEFycmF5PE5vZGVFbnRyeT4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgUHJvbWlzZS5hbGwoXG4gICAgICAgIG5vZGVzLm1hcCgobm9kZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgaWQgPSBub2RlLmVudHJ5Lm5vZGVJZCB8fCBub2RlLmVudHJ5LmlkO1xuICAgICAgICAgIHJldHVybiB0aGlzLmZhdm9yaXRlc0FwaS5kZWxldGVGYXZvcml0ZSgnLW1lLScsIGlkKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgdW5sb2NrTm9kZShub2RlSWQ6IHN0cmluZywgb3B0cz86IGFueSk6IFByb21pc2U8Tm9kZUVudHJ5PiB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXNBcGkudW5sb2NrTm9kZShub2RlSWQsIG9wdHMpO1xuICB9XG5cbiAgZ2V0Tm9kZVZlcnNpb25zKG5vZGVJZDogc3RyaW5nLCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxWZXJzaW9uUGFnaW5nPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy52ZXJzaW9uc0FwaS5saXN0VmVyc2lvbkhpc3Rvcnkobm9kZUlkLCBvcHRzKSk7XG4gIH1cblxuICByZXF1ZXN0Tm9kZURpcmVjdEFjY2Vzc1VybChub2RlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RGlyZWN0QWNjZXNzVXJsRW50cnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzQXBpLnJlcXVlc3REaXJlY3RBY2Nlc3NVcmwobm9kZUlkKSk7XG4gIH1cblxuICByZXF1ZXN0VmVyc2lvbkRpcmVjdEFjY2Vzc1VybChub2RlSWQ6IHN0cmluZywgdmVyc2lvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERpcmVjdEFjY2Vzc1VybEVudHJ5PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy52ZXJzaW9uc0FwaS5yZXF1ZXN0RGlyZWN0QWNjZXNzVXJsKG5vZGVJZCwgdmVyc2lvbklkKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,89 +0,0 @@
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 { Injectable } from '@angular/core';
25
- import * as i0 from "@angular/core";
26
- export class NodePermissionService {
27
- constructor() {
28
- this.defaultOptions = {
29
- operation: NodePermissionService.DEFAULT_OPERATION,
30
- target: null
31
- };
32
- }
33
- check(source, permissions, options) {
34
- const opts = Object.assign({}, this.defaultOptions, options || {});
35
- if (!source) {
36
- return false;
37
- }
38
- if (Array.isArray(source)) {
39
- source = source.filter((item) => item);
40
- if (source.length > 0) {
41
- return source.every((node) => this.isOperationAllowed(node, permissions, opts));
42
- }
43
- return false;
44
- }
45
- else {
46
- return this.isOperationAllowed(source, permissions, opts);
47
- }
48
- }
49
- isOperationAllowed(node, permissions, options) {
50
- const allowableOperations = this.getAllowableOperations(node, options.target);
51
- if (allowableOperations.length) {
52
- if (options.operation === NodePermissionService.DEFAULT_OPERATION) {
53
- return permissions.some((permission) => allowableOperations.includes(permission));
54
- }
55
- else {
56
- return permissions.every((permission) => allowableOperations.includes(permission));
57
- }
58
- }
59
- return false;
60
- }
61
- getAllowableOperations(node, property) {
62
- let entry;
63
- if ('entry' in node) {
64
- entry = node.entry;
65
- }
66
- else {
67
- entry = node;
68
- }
69
- if (property) {
70
- return entry[property] || [];
71
- }
72
- if ('allowableOperationsOnTarget' in entry) {
73
- return entry.allowableOperationsOnTarget || [];
74
- }
75
- else {
76
- return entry.allowableOperations || [];
77
- }
78
- }
79
- }
80
- NodePermissionService.DEFAULT_OPERATION = 'OR';
81
- NodePermissionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodePermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
82
- NodePermissionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodePermissionService, providedIn: 'root' });
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodePermissionService, decorators: [{
84
- type: Injectable,
85
- args: [{
86
- providedIn: 'root'
87
- }]
88
- }] });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1wZXJtaXNzaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Etc2hhcmVkL3NyYy9saWIvc2VydmljZXMvbm9kZS1wZXJtaXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWMzQyxNQUFNLE9BQU8scUJBQXFCO0lBSGxDO1FBTVUsbUJBQWMsR0FBc0I7WUFDMUMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLGlCQUFpQjtZQUNsRCxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7S0FzREg7SUFwREMsS0FBSyxDQUFDLE1BQTZDLEVBQUUsV0FBcUIsRUFBRSxPQUEyQjtRQUNyRyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdkMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDckIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ2pGO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFzQixFQUFFLFdBQXFCLEVBQUUsT0FBMEI7UUFDbEcsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5RSxJQUFJLG1CQUFtQixDQUFDLE1BQU0sRUFBRTtZQUM5QixJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUsscUJBQXFCLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ2pFLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7YUFDbkY7aUJBQU07Z0JBQ0wsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNwRjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sc0JBQXNCLENBQUMsSUFBc0IsRUFBRSxRQUFpQjtRQUN0RSxJQUFJLEtBQXdCLENBQUM7UUFFN0IsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ25CLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3BCO2FBQU07WUFDTCxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ2Q7UUFFRCxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM5QjtRQUVELElBQUksNkJBQTZCLElBQUksS0FBSyxFQUFFO1lBQzFDLE9BQU8sS0FBSyxDQUFDLDJCQUEyQixJQUFJLEVBQUUsQ0FBQztTQUNoRDthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQzs7QUExRE0sdUNBQWlCLEdBQUcsSUFBSSxDQUFDO21IQURyQixxQkFBcUI7dUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZVBlcm1pc3Npb25zIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IE5vZGUsIFNoYXJlZExpbmssIFNoYXJlZExpbmtFbnRyeSwgTm9kZUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb25Tb3VyY2UgPSBOb2RlRW50cnkgfCBTaGFyZWRMaW5rRW50cnkgfCBOb2RlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25PcHRpb25zIHtcbiAgdGFyZ2V0Pzogc3RyaW5nO1xuICBvcGVyYXRpb24/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVQZXJtaXNzaW9uU2VydmljZSBpbXBsZW1lbnRzIE5vZGVQZXJtaXNzaW9ucyB7XG4gIHN0YXRpYyBERUZBVUxUX09QRVJBVElPTiA9ICdPUic7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0T3B0aW9uczogUGVybWlzc2lvbk9wdGlvbnMgPSB7XG4gICAgb3BlcmF0aW9uOiBOb2RlUGVybWlzc2lvblNlcnZpY2UuREVGQVVMVF9PUEVSQVRJT04sXG4gICAgdGFyZ2V0OiBudWxsXG4gIH07XG5cbiAgY2hlY2soc291cmNlOiBQZXJtaXNzaW9uU291cmNlIHwgUGVybWlzc2lvblNvdXJjZVtdLCBwZXJtaXNzaW9uczogc3RyaW5nW10sIG9wdGlvbnM/OiBQZXJtaXNzaW9uT3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRPcHRpb25zLCBvcHRpb25zIHx8IHt9KTtcblxuICAgIGlmICghc291cmNlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgc291cmNlID0gc291cmNlLmZpbHRlcigoaXRlbSkgPT4gaXRlbSk7XG5cbiAgICAgIGlmIChzb3VyY2UubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gc291cmNlLmV2ZXJ5KChub2RlKSA9PiB0aGlzLmlzT3BlcmF0aW9uQWxsb3dlZChub2RlLCBwZXJtaXNzaW9ucywgb3B0cykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5pc09wZXJhdGlvbkFsbG93ZWQoc291cmNlLCBwZXJtaXNzaW9ucywgb3B0cyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc09wZXJhdGlvbkFsbG93ZWQobm9kZTogUGVybWlzc2lvblNvdXJjZSwgcGVybWlzc2lvbnM6IHN0cmluZ1tdLCBvcHRpb25zOiBQZXJtaXNzaW9uT3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFsbG93YWJsZU9wZXJhdGlvbnMgPSB0aGlzLmdldEFsbG93YWJsZU9wZXJhdGlvbnMobm9kZSwgb3B0aW9ucy50YXJnZXQpO1xuXG4gICAgaWYgKGFsbG93YWJsZU9wZXJhdGlvbnMubGVuZ3RoKSB7XG4gICAgICBpZiAob3B0aW9ucy5vcGVyYXRpb24gPT09IE5vZGVQZXJtaXNzaW9uU2VydmljZS5ERUZBVUxUX09QRVJBVElPTikge1xuICAgICAgICByZXR1cm4gcGVybWlzc2lvbnMuc29tZSgocGVybWlzc2lvbikgPT4gYWxsb3dhYmxlT3BlcmF0aW9ucy5pbmNsdWRlcyhwZXJtaXNzaW9uKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGVybWlzc2lvbnMuZXZlcnkoKHBlcm1pc3Npb24pID0+IGFsbG93YWJsZU9wZXJhdGlvbnMuaW5jbHVkZXMocGVybWlzc2lvbikpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsb3dhYmxlT3BlcmF0aW9ucyhub2RlOiBQZXJtaXNzaW9uU291cmNlLCBwcm9wZXJ0eT86IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBsZXQgZW50cnk6IE5vZGUgfCBTaGFyZWRMaW5rO1xuXG4gICAgaWYgKCdlbnRyeScgaW4gbm9kZSkge1xuICAgICAgZW50cnkgPSBub2RlLmVudHJ5O1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnRyeSA9IG5vZGU7XG4gICAgfVxuXG4gICAgaWYgKHByb3BlcnR5KSB7XG4gICAgICByZXR1cm4gZW50cnlbcHJvcGVydHldIHx8IFtdO1xuICAgIH1cblxuICAgIGlmICgnYWxsb3dhYmxlT3BlcmF0aW9uc09uVGFyZ2V0JyBpbiBlbnRyeSkge1xuICAgICAgcmV0dXJuIGVudHJ5LmFsbG93YWJsZU9wZXJhdGlvbnNPblRhcmdldCB8fCBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVudHJ5LmFsbG93YWJsZU9wZXJhdGlvbnMgfHwgW107XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,105 +0,0 @@
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 { Injectable } from '@angular/core';
25
- import { ExtensionService } from '@alfresco/adf-extensions';
26
- import { Router } from '@angular/router';
27
- import * as i0 from "@angular/core";
28
- import * as i1 from "@angular/router";
29
- import * as i2 from "@alfresco/adf-extensions";
30
- export class RouterExtensionService {
31
- constructor(router, extensions) {
32
- this.router = router;
33
- this.extensions = extensions;
34
- this.defaults = {
35
- layout: 'app.layout.main',
36
- auth: ['app.auth']
37
- };
38
- }
39
- mapExtensionRoutes() {
40
- const routesWithoutParent = [];
41
- this.getApplicationRoutes().forEach((extensionRoute) => {
42
- if (this.extensionRouteHasChild(extensionRoute)) {
43
- const parentRoute = this.findRoute(extensionRoute.parentRoute);
44
- if (parentRoute) {
45
- this.convertExtensionRouteToRoute(extensionRoute);
46
- parentRoute.children.unshift(extensionRoute);
47
- }
48
- }
49
- else {
50
- routesWithoutParent.push(extensionRoute);
51
- }
52
- });
53
- this.router.config.unshift(...routesWithoutParent);
54
- }
55
- getApplicationRoutes() {
56
- return this.extensions.routes.map((route) => {
57
- const guards = this.extensions.getAuthGuards(route.auth && route.auth.length > 0 ? route.auth : this.defaults.auth);
58
- return {
59
- path: route.path,
60
- component: this.getComponentById(route.layout ?? this.defaults.layout),
61
- canActivateChild: guards,
62
- canActivate: guards,
63
- parentRoute: route.parentRoute,
64
- children: [
65
- ...(route['children']
66
- ? route['children'].map(({ path, component, outlet, data }) => ({
67
- path,
68
- outlet,
69
- data,
70
- component: this.getComponentById(component)
71
- }))
72
- : []),
73
- {
74
- path: '',
75
- component: this.getComponentById(route.component),
76
- data: route.data
77
- }
78
- ]
79
- };
80
- });
81
- }
82
- getComponentById(id) {
83
- return this.extensions.getComponentById(id);
84
- }
85
- extensionRouteHasChild(route) {
86
- return route.parentRoute !== undefined;
87
- }
88
- convertExtensionRouteToRoute(extensionRoute) {
89
- delete extensionRoute.parentRoute;
90
- delete extensionRoute.component;
91
- }
92
- findRoute(parentRoute) {
93
- const routeIndex = this.router.config.findIndex((route) => route.path === parentRoute);
94
- return this.router.config[routeIndex];
95
- }
96
- }
97
- RouterExtensionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RouterExtensionService, deps: [{ token: i1.Router }, { token: i2.ExtensionService }], target: i0.ɵɵFactoryTarget.Injectable });
98
- RouterExtensionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RouterExtensionService, providedIn: 'root' });
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RouterExtensionService, decorators: [{
100
- type: Injectable,
101
- args: [{
102
- providedIn: 'root'
103
- }]
104
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ExtensionService }]; } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmV4dGVuc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci5leHRlbnNpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBS3pDLE1BQU0sT0FBTyxzQkFBc0I7SUFNakMsWUFBb0IsTUFBYyxFQUFZLFVBQTRCO1FBQXRELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUwxRSxhQUFRLEdBQUc7WUFDVCxNQUFNLEVBQUUsaUJBQWlCO1lBQ3pCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUNuQixDQUFDO0lBRTJFLENBQUM7SUFFOUUsa0JBQWtCO1FBQ2hCLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQThCLEVBQUUsRUFBRTtZQUNyRSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDL0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQy9ELElBQUksV0FBVyxFQUFFO29CQUNmLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDbEQsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7aUJBQzlDO2FBQ0Y7aUJBQU07Z0JBQ0wsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVwSCxPQUFPO2dCQUNMLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUN0RSxnQkFBZ0IsRUFBRSxNQUFNO2dCQUN4QixXQUFXLEVBQUUsTUFBTTtnQkFDbkIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUM5QixRQUFRLEVBQUU7b0JBQ1IsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7d0JBQ25CLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDNUQsSUFBSTs0QkFDSixNQUFNOzRCQUNOLElBQUk7NEJBQ0osU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7eUJBQzVDLENBQUMsQ0FBQzt3QkFDTCxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNQO3dCQUNFLElBQUksRUFBRSxFQUFFO3dCQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQzt3QkFDakQsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO3FCQUNqQjtpQkFDRjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxFQUFVO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sc0JBQXNCLENBQUMsS0FBcUI7UUFDbEQsT0FBTyxLQUFLLENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sNEJBQTRCLENBQUMsY0FBOEI7UUFDakUsT0FBTyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQ2xDLE9BQU8sY0FBYyxDQUFDLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sU0FBUyxDQUFDLFdBQVc7UUFDM0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1FBRXZGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7b0hBdkVVLHNCQUFzQjt3SEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IEV4dGVuc2lvblJvdXRlIH0gZnJvbSAnLi4vbW9kZWxzL3R5cGVzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlckV4dGVuc2lvblNlcnZpY2Uge1xuICBkZWZhdWx0cyA9IHtcbiAgICBsYXlvdXQ6ICdhcHAubGF5b3V0Lm1haW4nLFxuICAgIGF1dGg6IFsnYXBwLmF1dGgnXVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByb3RlY3RlZCBleHRlbnNpb25zOiBFeHRlbnNpb25TZXJ2aWNlKSB7fVxuXG4gIG1hcEV4dGVuc2lvblJvdXRlcygpIHtcbiAgICBjb25zdCByb3V0ZXNXaXRob3V0UGFyZW50ID0gW107XG4gICAgdGhpcy5nZXRBcHBsaWNhdGlvblJvdXRlcygpLmZvckVhY2goKGV4dGVuc2lvblJvdXRlOiBFeHRlbnNpb25Sb3V0ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuZXh0ZW5zaW9uUm91dGVIYXNDaGlsZChleHRlbnNpb25Sb3V0ZSkpIHtcbiAgICAgICAgY29uc3QgcGFyZW50Um91dGUgPSB0aGlzLmZpbmRSb3V0ZShleHRlbnNpb25Sb3V0ZS5wYXJlbnRSb3V0ZSk7XG4gICAgICAgIGlmIChwYXJlbnRSb3V0ZSkge1xuICAgICAgICAgIHRoaXMuY29udmVydEV4dGVuc2lvblJvdXRlVG9Sb3V0ZShleHRlbnNpb25Sb3V0ZSk7XG4gICAgICAgICAgcGFyZW50Um91dGUuY2hpbGRyZW4udW5zaGlmdChleHRlbnNpb25Sb3V0ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvdXRlc1dpdGhvdXRQYXJlbnQucHVzaChleHRlbnNpb25Sb3V0ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlci5jb25maWcudW5zaGlmdCguLi5yb3V0ZXNXaXRob3V0UGFyZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBcHBsaWNhdGlvblJvdXRlcygpOiBBcnJheTxFeHRlbnNpb25Sb3V0ZT4ge1xuICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbnMucm91dGVzLm1hcCgocm91dGUpID0+IHtcbiAgICAgIGNvbnN0IGd1YXJkcyA9IHRoaXMuZXh0ZW5zaW9ucy5nZXRBdXRoR3VhcmRzKHJvdXRlLmF1dGggJiYgcm91dGUuYXV0aC5sZW5ndGggPiAwID8gcm91dGUuYXV0aCA6IHRoaXMuZGVmYXVsdHMuYXV0aCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdGg6IHJvdXRlLnBhdGgsXG4gICAgICAgIGNvbXBvbmVudDogdGhpcy5nZXRDb21wb25lbnRCeUlkKHJvdXRlLmxheW91dCA/PyB0aGlzLmRlZmF1bHRzLmxheW91dCksXG4gICAgICAgIGNhbkFjdGl2YXRlQ2hpbGQ6IGd1YXJkcyxcbiAgICAgICAgY2FuQWN0aXZhdGU6IGd1YXJkcyxcbiAgICAgICAgcGFyZW50Um91dGU6IHJvdXRlLnBhcmVudFJvdXRlLFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgIC4uLihyb3V0ZVsnY2hpbGRyZW4nXVxuICAgICAgICAgICAgPyByb3V0ZVsnY2hpbGRyZW4nXS5tYXAoKHsgcGF0aCwgY29tcG9uZW50LCBvdXRsZXQsIGRhdGEgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgIG91dGxldCxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5nZXRDb21wb25lbnRCeUlkKGNvbXBvbmVudClcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5nZXRDb21wb25lbnRCeUlkKHJvdXRlLmNvbXBvbmVudCksXG4gICAgICAgICAgICBkYXRhOiByb3V0ZS5kYXRhXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb21wb25lbnRCeUlkKGlkOiBzdHJpbmcpOiBUeXBlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5leHRlbnNpb25zLmdldENvbXBvbmVudEJ5SWQoaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRlbnNpb25Sb3V0ZUhhc0NoaWxkKHJvdXRlOiBFeHRlbnNpb25Sb3V0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByb3V0ZS5wYXJlbnRSb3V0ZSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0RXh0ZW5zaW9uUm91dGVUb1JvdXRlKGV4dGVuc2lvblJvdXRlOiBFeHRlbnNpb25Sb3V0ZSkge1xuICAgIGRlbGV0ZSBleHRlbnNpb25Sb3V0ZS5wYXJlbnRSb3V0ZTtcbiAgICBkZWxldGUgZXh0ZW5zaW9uUm91dGUuY29tcG9uZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kUm91dGUocGFyZW50Um91dGUpIHtcbiAgICBjb25zdCByb3V0ZUluZGV4ID0gdGhpcy5yb3V0ZXIuY29uZmlnLmZpbmRJbmRleCgocm91dGUpID0+IHJvdXRlLnBhdGggPT09IHBhcmVudFJvdXRlKTtcblxuICAgIHJldHVybiB0aGlzLnJvdXRlci5jb25maWdbcm91dGVJbmRleF07XG4gIH1cbn1cbiJdfQ==
@@ -1,77 +0,0 @@
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 { inject, Injectable } from '@angular/core';
25
- import { AlfrescoApiService, GroupService } from '@alfresco/adf-content-services';
26
- import { BehaviorSubject } from 'rxjs';
27
- import { PeopleApi } from '@alfresco/js-api';
28
- import * as i0 from "@angular/core";
29
- export class UserProfileService {
30
- constructor() {
31
- this.api = inject(AlfrescoApiService);
32
- this.groupService = inject(GroupService);
33
- this.userProfile = new BehaviorSubject(null);
34
- this.userProfile$ = this.userProfile.asObservable();
35
- }
36
- get peopleApi() {
37
- return new PeopleApi(this.api.getInstance());
38
- }
39
- /**
40
- * Load user profile.
41
- */
42
- async loadUserProfile() {
43
- const groupsEntries = await this.groupService.listAllGroupMembershipsForPerson('-me-', { maxItems: 250 });
44
- const groups = [];
45
- if (groupsEntries) {
46
- groups.push(...groupsEntries.map((obj) => obj.entry));
47
- }
48
- const { entry: user } = await this.peopleApi.getPerson('-me-');
49
- const id = user.id;
50
- const firstName = user.firstName || '';
51
- const lastName = user.lastName || '';
52
- const userName = `${firstName} ${lastName}`;
53
- const initials = [firstName[0], lastName[0]].join('');
54
- const email = user.email;
55
- const capabilities = user.capabilities;
56
- const isAdmin = capabilities ? capabilities.isAdmin : true;
57
- const profile = {
58
- firstName,
59
- lastName,
60
- userName,
61
- initials,
62
- isAdmin,
63
- id,
64
- groups,
65
- email
66
- };
67
- this.userProfile.next(profile);
68
- return profile;
69
- }
70
- }
71
- UserProfileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserProfileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
72
- UserProfileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserProfileService, providedIn: 'root' });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserProfileService, decorators: [{
74
- type: Injectable,
75
- args: [{ providedIn: 'root' }]
76
- }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Etc2hhcmVkL3NyYy9saWIvc2VydmljZXMvdXNlci1wcm9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRzdDLE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFVSxRQUFHLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakMsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFNcEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBZSxJQUFJLENBQUMsQ0FBQztRQUM5RCxpQkFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7S0F1Q2hEO0lBNUNDLElBQVksU0FBUztRQUNuQixPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBS0Q7O09BRUc7SUFDSCxLQUFLLENBQUMsZUFBZTtRQUNuQixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFMUcsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksYUFBYSxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN2RDtRQUVELE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLEdBQUcsU0FBUyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzVDLE1BQU0sUUFBUSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRXpCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFM0QsTUFBTSxPQUFPLEdBQWlCO1lBQzVCLFNBQVM7WUFDVCxRQUFRO1lBQ1IsUUFBUTtZQUNSLFFBQVE7WUFDUixPQUFPO1lBQ1AsRUFBRTtZQUNGLE1BQU07WUFDTixLQUFLO1NBQ04sQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7O2dIQS9DVSxrQkFBa0I7b0hBQWxCLGtCQUFrQixjQURMLE1BQU07NEZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9maWxlU3RhdGUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlLCBHcm91cFNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQZW9wbGVBcGkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBVc2VyUHJvZmlsZVNlcnZpY2Uge1xuICBwcml2YXRlIGFwaSA9IGluamVjdChBbGZyZXNjb0FwaVNlcnZpY2UpO1xuICBwcml2YXRlIGdyb3VwU2VydmljZSA9IGluamVjdChHcm91cFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgZ2V0IHBlb3BsZUFwaSgpOiBQZW9wbGVBcGkge1xuICAgIHJldHVybiBuZXcgUGVvcGxlQXBpKHRoaXMuYXBpLmdldEluc3RhbmNlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1c2VyUHJvZmlsZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJvZmlsZVN0YXRlPihudWxsKTtcbiAgdXNlclByb2ZpbGUkID0gdGhpcy51c2VyUHJvZmlsZS5hc09ic2VydmFibGUoKTtcblxuICAvKipcbiAgICogTG9hZCB1c2VyIHByb2ZpbGUuXG4gICAqL1xuICBhc3luYyBsb2FkVXNlclByb2ZpbGUoKTogUHJvbWlzZTxQcm9maWxlU3RhdGU+IHtcbiAgICBjb25zdCBncm91cHNFbnRyaWVzID0gYXdhaXQgdGhpcy5ncm91cFNlcnZpY2UubGlzdEFsbEdyb3VwTWVtYmVyc2hpcHNGb3JQZXJzb24oJy1tZS0nLCB7IG1heEl0ZW1zOiAyNTAgfSk7XG5cbiAgICBjb25zdCBncm91cHMgPSBbXTtcbiAgICBpZiAoZ3JvdXBzRW50cmllcykge1xuICAgICAgZ3JvdXBzLnB1c2goLi4uZ3JvdXBzRW50cmllcy5tYXAoKG9iaikgPT4gb2JqLmVudHJ5KSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBlbnRyeTogdXNlciB9ID0gYXdhaXQgdGhpcy5wZW9wbGVBcGkuZ2V0UGVyc29uKCctbWUtJyk7XG5cbiAgICBjb25zdCBpZCA9IHVzZXIuaWQ7XG4gICAgY29uc3QgZmlyc3ROYW1lID0gdXNlci5maXJzdE5hbWUgfHwgJyc7XG4gICAgY29uc3QgbGFzdE5hbWUgPSB1c2VyLmxhc3ROYW1lIHx8ICcnO1xuICAgIGNvbnN0IHVzZXJOYW1lID0gYCR7Zmlyc3ROYW1lfSAke2xhc3ROYW1lfWA7XG4gICAgY29uc3QgaW5pdGlhbHMgPSBbZmlyc3ROYW1lWzBdLCBsYXN0TmFtZVswXV0uam9pbignJyk7XG4gICAgY29uc3QgZW1haWwgPSB1c2VyLmVtYWlsO1xuXG4gICAgY29uc3QgY2FwYWJpbGl0aWVzID0gdXNlci5jYXBhYmlsaXRpZXM7XG4gICAgY29uc3QgaXNBZG1pbiA9IGNhcGFiaWxpdGllcyA/IGNhcGFiaWxpdGllcy5pc0FkbWluIDogdHJ1ZTtcblxuICAgIGNvbnN0IHByb2ZpbGU6IFByb2ZpbGVTdGF0ZSA9IHtcbiAgICAgIGZpcnN0TmFtZSxcbiAgICAgIGxhc3ROYW1lLFxuICAgICAgdXNlck5hbWUsXG4gICAgICBpbml0aWFscyxcbiAgICAgIGlzQWRtaW4sXG4gICAgICBpZCxcbiAgICAgIGdyb3VwcyxcbiAgICAgIGVtYWlsXG4gICAgfTtcblxuICAgIHRoaXMudXNlclByb2ZpbGUubmV4dChwcm9maWxlKTtcbiAgICByZXR1cm4gcHJvZmlsZTtcbiAgfVxufVxuIl19