@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
@@ -0,0 +1,281 @@
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
+ class ContentApiService {
34
+ api;
35
+ preferences;
36
+ _nodesApi;
37
+ get nodesApi() {
38
+ this._nodesApi = this._nodesApi ?? new NodesApi(this.api.getInstance());
39
+ return this._nodesApi;
40
+ }
41
+ _trashcanApi;
42
+ get trashcanApi() {
43
+ this._trashcanApi = this._trashcanApi ?? new TrashcanApi(this.api.getInstance());
44
+ return this._trashcanApi;
45
+ }
46
+ _sharedLinksApi;
47
+ get sharedLinksApi() {
48
+ this._sharedLinksApi = this._sharedLinksApi ?? new SharedlinksApi(this.api.getInstance());
49
+ return this._sharedLinksApi;
50
+ }
51
+ _discoveryApi;
52
+ get discoveryApi() {
53
+ this._discoveryApi = this._discoveryApi ?? new DiscoveryApi(this.api.getInstance());
54
+ return this._discoveryApi;
55
+ }
56
+ _favoritesApi;
57
+ get favoritesApi() {
58
+ this._favoritesApi = this._favoritesApi ?? new FavoritesApi(this.api.getInstance());
59
+ return this._favoritesApi;
60
+ }
61
+ _contentApi;
62
+ get contentApi() {
63
+ this._contentApi = this._contentApi ?? new ContentApi(this.api.getInstance());
64
+ return this._contentApi;
65
+ }
66
+ _sitesApi;
67
+ get sitesApi() {
68
+ this._sitesApi = this._sitesApi ?? new SitesApi(this.api.getInstance());
69
+ return this._sitesApi;
70
+ }
71
+ _searchApi;
72
+ get searchApi() {
73
+ this._searchApi = this._searchApi ?? new SearchApi(this.api.getInstance());
74
+ return this._searchApi;
75
+ }
76
+ _peopleApi;
77
+ get peopleApi() {
78
+ this._peopleApi = this._peopleApi ?? new PeopleApi(this.api.getInstance());
79
+ return this._peopleApi;
80
+ }
81
+ _versionsApi;
82
+ get versionsApi() {
83
+ this._versionsApi = this._versionsApi ?? new VersionsApi(this.api.getInstance());
84
+ return this._versionsApi;
85
+ }
86
+ constructor(api, preferences) {
87
+ this.api = api;
88
+ this.preferences = preferences;
89
+ }
90
+ /**
91
+ * Moves a node to the trashcan.
92
+ *
93
+ * @param nodeId ID of the target node
94
+ * @param options Optional parameters supported by JS-API
95
+ * @returns Empty result that notifies when the deletion is complete
96
+ */
97
+ deleteNode(nodeId, options = {}) {
98
+ return from(this.nodesApi.deleteNode(nodeId, options));
99
+ }
100
+ /**
101
+ * Gets the stored information about a node.
102
+ *
103
+ * @param nodeId ID of the target node
104
+ * @param options Optional parameters supported by JS-API
105
+ * @returns Node information
106
+ */
107
+ getNode(nodeId, options = {}) {
108
+ const defaults = {
109
+ include: ['path', 'properties', 'allowableOperations', 'permissions', 'definition']
110
+ };
111
+ const queryOptions = Object.assign(defaults, options);
112
+ return from(this.nodesApi.getNode(nodeId, queryOptions));
113
+ }
114
+ getNodeInfo(nodeId, options) {
115
+ const defaults = {
116
+ include: ['isFavorite', 'allowableOperations', 'path', 'definition']
117
+ };
118
+ const queryOptions = Object.assign(defaults, options || {});
119
+ return from(new Promise((resolve, reject) => {
120
+ this.nodesApi.getNode(nodeId, queryOptions).then((nodeEntry) => {
121
+ resolve(nodeEntry.entry);
122
+ }, (error) => {
123
+ reject(error);
124
+ });
125
+ }));
126
+ }
127
+ /**
128
+ * Gets the items contained in a folder node.
129
+ *
130
+ * @param nodeId ID of the target node
131
+ * @param options Optional parameters supported by JS-API
132
+ * @returns List of child items from the folder
133
+ */
134
+ getNodeChildren(nodeId, options = {}) {
135
+ const defaults = {
136
+ maxItems: this.preferences.paginationSize,
137
+ skipCount: 0,
138
+ include: ['isLocked', 'path', 'properties', 'allowableOperations', 'permissions']
139
+ };
140
+ const queryOptions = Object.assign(defaults, options);
141
+ return from(this.nodesApi.listNodeChildren(nodeId, queryOptions));
142
+ }
143
+ deleteSharedLink(linkId) {
144
+ return from(this.sharedLinksApi.deleteSharedLink(linkId));
145
+ }
146
+ getDeletedNodes(options = {}) {
147
+ const defaults = {
148
+ include: ['path']
149
+ };
150
+ const queryOptions = Object.assign(defaults, options);
151
+ return from(this.trashcanApi.listDeletedNodes(queryOptions));
152
+ }
153
+ restoreNode(nodeId) {
154
+ return from(this.trashcanApi.restoreDeletedNode(nodeId));
155
+ }
156
+ purgeDeletedNode(nodeId) {
157
+ return from(this.trashcanApi.deleteDeletedNode(nodeId));
158
+ }
159
+ /**
160
+ * Gets information about a user identified by their username.
161
+ *
162
+ * @param personId ID of the target user
163
+ * @param options Api options
164
+ * @returns User information
165
+ */
166
+ getPerson(personId, options) {
167
+ return from(this.peopleApi.getPerson(personId, options));
168
+ }
169
+ /**
170
+ * Copy a node to destination node
171
+ *
172
+ * @param nodeId The id of the node to be copied
173
+ * @param targetParentId The id of the folder-node where the node have to be copied to
174
+ * @param name The new name for the copy that would be added on the destination folder
175
+ * @param opts Api options
176
+ */
177
+ copyNode(nodeId, targetParentId, name, opts) {
178
+ return from(this.nodesApi.copyNode(nodeId, { targetParentId, name }, opts));
179
+ }
180
+ /**
181
+ * Gets product information for Content Services.
182
+ *
183
+ * @returns ProductVersionModel containing product details
184
+ */
185
+ getRepositoryInformation() {
186
+ return from(this.discoveryApi.getRepositoryInformation());
187
+ }
188
+ getFavorites(personId, opts) {
189
+ return from(this.favoritesApi.listFavorites(personId, opts));
190
+ }
191
+ getFavoriteLibraries(personId = '-me-', opts) {
192
+ return this.getFavorites(personId, {
193
+ ...opts,
194
+ where: '(EXISTS(target/site))'
195
+ }).pipe(map((response) => ({
196
+ list: {
197
+ entries: response.list.entries.map(({ entry }) => {
198
+ entry.target.site.createdAt = entry.createdAt;
199
+ return {
200
+ entry: entry.target.site
201
+ };
202
+ }),
203
+ pagination: response.list.pagination
204
+ }
205
+ })));
206
+ }
207
+ findSharedLinks(opts) {
208
+ return from(this.sharedLinksApi.listSharedLinks(opts));
209
+ }
210
+ getSharedLinkContent(sharedId, attachment) {
211
+ return this.contentApi.getSharedLinkContentUrl(sharedId, attachment);
212
+ }
213
+ search(request) {
214
+ return from(this.searchApi.search(request));
215
+ }
216
+ getContentUrl(nodeId, attachment) {
217
+ return this.contentApi.getContentUrl(nodeId, attachment);
218
+ }
219
+ getVersionContentUrl(nodeId, versionId, attachment) {
220
+ return this.contentApi.getVersionContentUrl(nodeId, versionId, attachment);
221
+ }
222
+ deleteSite(siteId, opts) {
223
+ return from(this.sitesApi.deleteSite(siteId, opts));
224
+ }
225
+ leaveSite(siteId) {
226
+ return from(this.sitesApi.deleteSiteMembership(siteId, '-me-'));
227
+ }
228
+ createSite(siteBody, opts) {
229
+ return from(this.sitesApi.createSite(siteBody, opts));
230
+ }
231
+ getSite(siteId, opts) {
232
+ return from(this.sitesApi.getSite(siteId, opts));
233
+ }
234
+ updateLibrary(siteId, siteBody) {
235
+ return from(this.sitesApi.updateSite(siteId, siteBody));
236
+ }
237
+ addFavorite(nodes) {
238
+ const payload = nodes.map((node) => {
239
+ const { isFolder, nodeId, id } = node.entry;
240
+ const siteId = node.entry['guid'];
241
+ const type = siteId ? 'site' : isFolder ? 'folder' : 'file';
242
+ const guid = siteId || nodeId || id;
243
+ return {
244
+ target: {
245
+ [type]: {
246
+ guid
247
+ }
248
+ }
249
+ };
250
+ });
251
+ return from(this.favoritesApi.createFavorite('-me-', payload));
252
+ }
253
+ removeFavorite(nodes) {
254
+ return from(Promise.all(nodes.map((node) => {
255
+ const id = node.entry.nodeId || node.entry.id;
256
+ return this.favoritesApi.deleteFavorite('-me-', id);
257
+ })));
258
+ }
259
+ unlockNode(nodeId, opts) {
260
+ return this.nodesApi.unlockNode(nodeId, opts);
261
+ }
262
+ getNodeVersions(nodeId, opts) {
263
+ return from(this.versionsApi.listVersionHistory(nodeId, opts));
264
+ }
265
+ requestNodeDirectAccessUrl(nodeId) {
266
+ return from(this.nodesApi.requestDirectAccessUrl(nodeId));
267
+ }
268
+ requestVersionDirectAccessUrl(nodeId, versionId) {
269
+ return from(this.versionsApi.requestDirectAccessUrl(nodeId, versionId));
270
+ }
271
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ContentApiService, deps: [{ token: i1.AlfrescoApiService }, { token: i2.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable });
272
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ContentApiService, providedIn: 'root' });
273
+ }
274
+ export { ContentApiService };
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ContentApiService, decorators: [{
276
+ type: Injectable,
277
+ args: [{
278
+ providedIn: 'root'
279
+ }]
280
+ }], ctorParameters: function () { return [{ type: i1.AlfrescoApiService }, { type: i2.UserPreferencesService }]; } });
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy9jb250ZW50LWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFlTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBR1osTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFckMsTUFHYSxpQkFBaUI7SUE0RFI7SUFBaUM7SUEzRDdDLFNBQVMsQ0FBVztJQUM1QixJQUFJLFFBQVE7UUFDVixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRU8sWUFBWSxDQUFjO0lBQ2xDLElBQUksV0FBVztRQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakYs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LENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjLEVBQUUsSUFBVTtRQUNuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWMsRUFBRSxJQUFVO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELDBCQUEwQixDQUFDLE1BQWM7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCw2QkFBNkIsQ0FBQyxNQUFjLEVBQUUsU0FBaUI7UUFDN0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO3VHQTlTVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOztTQUVQLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBOb2RlUGFnaW5nLFxuICBOb2RlLFxuICBEZWxldGVkTm9kZXNQYWdpbmcsXG4gIFBlcnNvbkVudHJ5LFxuICBOb2RlRW50cnksXG4gIERpc2NvdmVyeUVudHJ5LFxuICBGYXZvcml0ZVBhZ2luZyxcbiAgU2hhcmVkTGlua1BhZ2luZyxcbiAgU2VhcmNoUmVxdWVzdCxcbiAgUmVzdWx0U2V0UGFnaW5nLFxuICBTaXRlQm9keUNyZWF0ZSxcbiAgU2l0ZUVudHJ5LFxuICBGYXZvcml0ZUJvZHlDcmVhdGUsXG4gIEZhdm9yaXRlRW50cnksXG4gIE5vZGVzQXBpLFxuICBUcmFzaGNhbkFwaSxcbiAgU2hhcmVkbGlua3NBcGksXG4gIERpc2NvdmVyeUFwaSxcbiAgRmF2b3JpdGVzQXBpLFxuICBDb250ZW50QXBpLFxuICBTaXRlc0FwaSxcbiAgU2VhcmNoQXBpLFxuICBQZW9wbGVBcGksXG4gIFZlcnNpb25zQXBpLFxuICBEaXJlY3RBY2Nlc3NVcmxFbnRyeSxcbiAgVmVyc2lvblBhZ2luZ1xufSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudEFwaVNlcnZpY2Uge1xuICBwcml2YXRlIF9ub2Rlc0FwaTogTm9kZXNBcGk7XG4gIGdldCBub2Rlc0FwaSgpOiBOb2Rlc0FwaSB7XG4gICAgdGhpcy5fbm9kZXNBcGkgPSB0aGlzLl9ub2Rlc0FwaSA/PyBuZXcgTm9kZXNBcGkodGhpcy5hcGkuZ2V0SW5zdGFuY2UoKSk7XG4gICAgcmV0dXJuIHRoaXMuX25vZGVzQXBpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJhc2hjYW5BcGk6IFRyYXNoY2FuQXBpO1xuICBnZXQgdHJhc2hjYW5BcGkoKTogVHJhc2hjYW5BcGkge1xuICAgIHRoaXMuX3RyYXNoY2FuQXBpID0gdGhpcy5fdHJhc2hjYW5BcGkgPz8gbmV3IFRyYXNoY2FuQXBpKHRoaXMuYXBpLmdldEluc3RhbmNlKCkpO1xuICAgIHJldHVybiB0aGlzLl90cmFzaGNhbkFwaTtcbiAgfVxuXG4gIHByaXZhdGUgX3NoYXJlZExpbmtzQXBpOiBTaGFyZWRsaW5rc0FwaTtcbiAgZ2V0IHNoYXJlZExpbmtzQXBpKCk6IFNoYXJlZGxpbmtzQXBpIHtcbiAgICB0aGlzLl9zaGFyZWRMaW5rc0FwaSA9IHRoaXMuX3NoYXJlZExpbmtzQXBpID8/IG5ldyBTaGFyZWRsaW5rc0FwaSh0aGlzLmFwaS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fc2hhcmVkTGlua3NBcGk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNjb3ZlcnlBcGk6IERpc2NvdmVyeUFwaTtcbiAgZ2V0IGRpc2NvdmVyeUFwaSgpOiBEaXNjb3ZlcnlBcGkge1xuICAgIHRoaXMuX2Rpc2NvdmVyeUFwaSA9IHRoaXMuX2Rpc2NvdmVyeUFwaSA/PyBuZXcgRGlzY292ZXJ5QXBpKHRoaXMuYXBpLmdldEluc3RhbmNlKCkpO1xuICAgIHJldHVybiB0aGlzLl9kaXNjb3ZlcnlBcGk7XG4gIH1cblxuICBwcml2YXRlIF9mYXZvcml0ZXNBcGk6IEZhdm9yaXRlc0FwaTtcbiAgZ2V0IGZhdm9yaXRlc0FwaSgpOiBGYXZvcml0ZXNBcGkge1xuICAgIHRoaXMuX2Zhdm9yaXRlc0FwaSA9IHRoaXMuX2Zhdm9yaXRlc0FwaSA/PyBuZXcgRmF2b3JpdGVzQXBpKHRoaXMuYXBpLmdldEluc3RhbmNlKCkpO1xuICAgIHJldHVybiB0aGlzLl9mYXZvcml0ZXNBcGk7XG4gIH1cblxuICBwcml2YXRlIF9jb250ZW50QXBpOiBDb250ZW50QXBpO1xuICBnZXQgY29udGVudEFwaSgpOiBDb250ZW50QXBpIHtcbiAgICB0aGlzLl9jb250ZW50QXBpID0gdGhpcy5fY29udGVudEFwaSA/PyBuZXcgQ29udGVudEFwaSh0aGlzLmFwaS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudEFwaTtcbiAgfVxuXG4gIHByaXZhdGUgX3NpdGVzQXBpOiBTaXRlc0FwaTtcbiAgZ2V0IHNpdGVzQXBpKCk6IFNpdGVzQXBpIHtcbiAgICB0aGlzLl9zaXRlc0FwaSA9IHRoaXMuX3NpdGVzQXBpID8/IG5ldyBTaXRlc0FwaSh0aGlzLmFwaS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fc2l0ZXNBcGk7XG4gIH1cblxuICBwcml2YXRlIF9zZWFyY2hBcGk6IFNlYXJjaEFwaTtcbiAgZ2V0IHNlYXJjaEFwaSgpOiBTZWFyY2hBcGkge1xuICAgIHRoaXMuX3NlYXJjaEFwaSA9IHRoaXMuX3NlYXJjaEFwaSA/PyBuZXcgU2VhcmNoQXBpKHRoaXMuYXBpLmdldEluc3RhbmNlKCkpO1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hBcGk7XG4gIH1cblxuICBwcml2YXRlIF9wZW9wbGVBcGk6IFBlb3BsZUFwaTtcbiAgZ2V0IHBlb3BsZUFwaSgpOiBQZW9wbGVBcGkge1xuICAgIHRoaXMuX3Blb3BsZUFwaSA9IHRoaXMuX3Blb3BsZUFwaSA/PyBuZXcgUGVvcGxlQXBpKHRoaXMuYXBpLmdldEluc3RhbmNlKCkpO1xuICAgIHJldHVybiB0aGlzLl9wZW9wbGVBcGk7XG4gIH1cblxuICBwcml2YXRlIF92ZXJzaW9uc0FwaTogVmVyc2lvbnNBcGk7XG4gIGdldCB2ZXJzaW9uc0FwaSgpOiBWZXJzaW9uc0FwaSB7XG4gICAgdGhpcy5fdmVyc2lvbnNBcGkgPSB0aGlzLl92ZXJzaW9uc0FwaSA/PyBuZXcgVmVyc2lvbnNBcGkodGhpcy5hcGkuZ2V0SW5zdGFuY2UoKSk7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcnNpb25zQXBpO1xuICB9XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpOiBBbGZyZXNjb0FwaVNlcnZpY2UsIHByaXZhdGUgcHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIE1vdmVzIGEgbm9kZSB0byB0aGUgdHJhc2hjYW4uXG4gICAqXG4gICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIHRhcmdldCBub2RlXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHBhcmFtZXRlcnMgc3VwcG9ydGVkIGJ5IEpTLUFQSVxuICAgKiBAcmV0dXJucyBFbXB0eSByZXN1bHQgdGhhdCBub3RpZmllcyB3aGVuIHRoZSBkZWxldGlvbiBpcyBjb21wbGV0ZVxuICAgKi9cbiAgZGVsZXRlTm9kZShub2RlSWQ6IHN0cmluZywgb3B0aW9uczogeyBwZXJtYW5lbnQ/OiBib29sZWFuIH0gPSB7fSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMubm9kZXNBcGkuZGVsZXRlTm9kZShub2RlSWQsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzdG9yZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZUlkIElEIG9mIHRoZSB0YXJnZXQgbm9kZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBwYXJhbWV0ZXJzIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICogQHJldHVybnMgTm9kZSBpbmZvcm1hdGlvblxuICAgKi9cbiAgZ2V0Tm9kZShub2RlSWQ6IHN0cmluZywgb3B0aW9uczogYW55ID0ge30pOiBPYnNlcnZhYmxlPE5vZGVFbnRyeT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgaW5jbHVkZTogWydwYXRoJywgJ3Byb3BlcnRpZXMnLCAnYWxsb3dhYmxlT3BlcmF0aW9ucycsICdwZXJtaXNzaW9ucycsICdkZWZpbml0aW9uJ11cbiAgICB9O1xuICAgIGNvbnN0IHF1ZXJ5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlc0FwaS5nZXROb2RlKG5vZGVJZCwgcXVlcnlPcHRpb25zKSk7XG4gIH1cblxuICBnZXROb2RlSW5mbyhub2RlSWQ6IHN0cmluZywgb3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8Tm9kZT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgaW5jbHVkZTogWydpc0Zhdm9yaXRlJywgJ2FsbG93YWJsZU9wZXJhdGlvbnMnLCAncGF0aCcsICdkZWZpbml0aW9uJ11cbiAgICB9O1xuICAgIGNvbnN0IHF1ZXJ5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIG9wdGlvbnMgfHwge30pO1xuXG4gICAgcmV0dXJuIGZyb20oXG4gICAgICBuZXcgUHJvbWlzZTxOb2RlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMubm9kZXNBcGkuZ2V0Tm9kZShub2RlSWQsIHF1ZXJ5T3B0aW9ucykudGhlbihcbiAgICAgICAgICAobm9kZUVudHJ5OiBOb2RlRW50cnkpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUobm9kZUVudHJ5LmVudHJ5KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaXRlbXMgY29udGFpbmVkIGluIGEgZm9sZGVyIG5vZGUuXG4gICAqXG4gICAqIEBwYXJhbSBub2RlSWQgSUQgb2YgdGhlIHRhcmdldCBub2RlXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHBhcmFtZXRlcnMgc3VwcG9ydGVkIGJ5IEpTLUFQSVxuICAgKiBAcmV0dXJucyBMaXN0IG9mIGNoaWxkIGl0ZW1zIGZyb20gdGhlIGZvbGRlclxuICAgKi9cbiAgZ2V0Tm9kZUNoaWxkcmVuKG5vZGVJZDogc3RyaW5nLCBvcHRpb25zOiBhbnkgPSB7fSk6IE9ic2VydmFibGU8Tm9kZVBhZ2luZz4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgbWF4SXRlbXM6IHRoaXMucHJlZmVyZW5jZXMucGFnaW5hdGlvblNpemUsXG4gICAgICBza2lwQ291bnQ6IDAsXG4gICAgICBpbmNsdWRlOiBbJ2lzTG9ja2VkJywgJ3BhdGgnLCAncHJvcGVydGllcycsICdhbGxvd2FibGVPcGVyYXRpb25zJywgJ3Blcm1pc3Npb25zJ11cbiAgICB9O1xuICAgIGNvbnN0IHF1ZXJ5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlc0FwaS5saXN0Tm9kZUNoaWxkcmVuKG5vZGVJZCwgcXVlcnlPcHRpb25zKSk7XG4gIH1cblxuICBkZWxldGVTaGFyZWRMaW5rKGxpbmtJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnNoYXJlZExpbmtzQXBpLmRlbGV0ZVNoYXJlZExpbmsobGlua0lkKSk7XG4gIH1cblxuICBnZXREZWxldGVkTm9kZXMob3B0aW9uczogYW55ID0ge30pOiBPYnNlcnZhYmxlPERlbGV0ZWROb2Rlc1BhZ2luZz4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgaW5jbHVkZTogWydwYXRoJ11cbiAgICB9O1xuICAgIGNvbnN0IHF1ZXJ5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdHMsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIGZyb20odGhpcy50cmFzaGNhbkFwaS5saXN0RGVsZXRlZE5vZGVzKHF1ZXJ5T3B0aW9ucykpO1xuICB9XG5cbiAgcmVzdG9yZU5vZGUobm9kZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5vZGVFbnRyeT4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMudHJhc2hjYW5BcGkucmVzdG9yZURlbGV0ZWROb2RlKG5vZGVJZCkpO1xuICB9XG5cbiAgcHVyZ2VEZWxldGVkTm9kZShub2RlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy50cmFzaGNhbkFwaS5kZWxldGVEZWxldGVkTm9kZShub2RlSWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGluZm9ybWF0aW9uIGFib3V0IGEgdXNlciBpZGVudGlmaWVkIGJ5IHRoZWlyIHVzZXJuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gcGVyc29uSWQgSUQgb2YgdGhlIHRhcmdldCB1c2VyXG4gICAqIEBwYXJhbSBvcHRpb25zIEFwaSBvcHRpb25zXG4gICAqIEByZXR1cm5zIFVzZXIgaW5mb3JtYXRpb25cbiAgICovXG4gIGdldFBlcnNvbihwZXJzb25JZDogc3RyaW5nLCBvcHRpb25zPzogeyBmaWVsZHM/OiBBcnJheTxzdHJpbmc+IH0pOiBPYnNlcnZhYmxlPFBlcnNvbkVudHJ5PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5wZW9wbGVBcGkuZ2V0UGVyc29uKHBlcnNvbklkLCBvcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29weSBhIG5vZGUgdG8gZGVzdGluYXRpb24gbm9kZVxuICAgKlxuICAgKiBAcGFyYW0gbm9kZUlkIFRoZSBpZCBvZiB0aGUgbm9kZSB0byBiZSBjb3BpZWRcbiAgICogQHBhcmFtIHRhcmdldFBhcmVudElkIFRoZSBpZCBvZiB0aGUgZm9sZGVyLW5vZGUgd2hlcmUgdGhlIG5vZGUgaGF2ZSB0byBiZSBjb3BpZWQgdG9cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5ldyBuYW1lIGZvciB0aGUgY29weSB0aGF0IHdvdWxkIGJlIGFkZGVkIG9uIHRoZSBkZXN0aW5hdGlvbiBmb2xkZXJcbiAgICogQHBhcmFtIG9wdHMgQXBpIG9wdGlvbnNcbiAgICovXG4gIGNvcHlOb2RlKG5vZGVJZDogc3RyaW5nLCB0YXJnZXRQYXJlbnRJZDogc3RyaW5nLCBuYW1lPzogc3RyaW5nLCBvcHRzPzogeyBpbmNsdWRlPzogQXJyYXk8c3RyaW5nPjsgZmllbGRzPzogQXJyYXk8c3RyaW5nPiB9KTogT2JzZXJ2YWJsZTxOb2RlRW50cnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzQXBpLmNvcHlOb2RlKG5vZGVJZCwgeyB0YXJnZXRQYXJlbnRJZCwgbmFtZSB9LCBvcHRzKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBwcm9kdWN0IGluZm9ybWF0aW9uIGZvciBDb250ZW50IFNlcnZpY2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBQcm9kdWN0VmVyc2lvbk1vZGVsIGNvbnRhaW5pbmcgcHJvZHVjdCBkZXRhaWxzXG4gICAqL1xuICBnZXRSZXBvc2l0b3J5SW5mb3JtYXRpb24oKTogT2JzZXJ2YWJsZTxEaXNjb3ZlcnlFbnRyeT4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuZGlzY292ZXJ5QXBpLmdldFJlcG9zaXRvcnlJbmZvcm1hdGlvbigpKTtcbiAgfVxuXG4gIGdldEZhdm9yaXRlcyhcbiAgICBwZXJzb25JZDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICBza2lwQ291bnQ/OiBudW1iZXI7XG4gICAgICBtYXhJdGVtcz86IG51bWJlcjtcbiAgICAgIHdoZXJlPzogc3RyaW5nO1xuICAgICAgZmllbGRzPzogQXJyYXk8c3RyaW5nPjtcbiAgICB9XG4gICk6IE9ic2VydmFibGU8RmF2b3JpdGVQYWdpbmc+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmZhdm9yaXRlc0FwaS5saXN0RmF2b3JpdGVzKHBlcnNvbklkLCBvcHRzKSk7XG4gIH1cblxuICBnZXRGYXZvcml0ZUxpYnJhcmllcyhwZXJzb25JZDogc3RyaW5nID0gJy1tZS0nLCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxGYXZvcml0ZVBhZ2luZz4ge1xuICAgIHJldHVybiB0aGlzLmdldEZhdm9yaXRlcyhwZXJzb25JZCwge1xuICAgICAgLi4ub3B0cyxcbiAgICAgIHdoZXJlOiAnKEVYSVNUUyh0YXJnZXQvc2l0ZSkpJ1xuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBGYXZvcml0ZVBhZ2luZykgPT4gKHtcbiAgICAgICAgbGlzdDoge1xuICAgICAgICAgIGVudHJpZXM6IHJlc3BvbnNlLmxpc3QuZW50cmllcy5tYXAoKHsgZW50cnkgfTogYW55KSA9PiB7XG4gICAgICAgICAgICBlbnRyeS50YXJnZXQuc2l0ZS5jcmVhdGVkQXQgPSBlbnRyeS5jcmVhdGVkQXQ7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBlbnRyeTogZW50cnkudGFyZ2V0LnNpdGVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgICAgcGFnaW5hdGlvbjogcmVzcG9uc2UubGlzdC5wYWdpbmF0aW9uXG4gICAgICAgIH1cbiAgICAgIH0pKVxuICAgICk7XG4gIH1cblxuICBmaW5kU2hhcmVkTGlua3Mob3B0cz86IGFueSk6IE9ic2VydmFibGU8U2hhcmVkTGlua1BhZ2luZz4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuc2hhcmVkTGlua3NBcGkubGlzdFNoYXJlZExpbmtzKG9wdHMpKTtcbiAgfVxuXG4gIGdldFNoYXJlZExpbmtDb250ZW50KHNoYXJlZElkOiBzdHJpbmcsIGF0dGFjaG1lbnQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50QXBpLmdldFNoYXJlZExpbmtDb250ZW50VXJsKHNoYXJlZElkLCBhdHRhY2htZW50KTtcbiAgfVxuXG4gIHNlYXJjaChyZXF1ZXN0OiBTZWFyY2hSZXF1ZXN0KTogT2JzZXJ2YWJsZTxSZXN1bHRTZXRQYWdpbmc+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnNlYXJjaEFwaS5zZWFyY2gocmVxdWVzdCkpO1xuICB9XG5cbiAgZ2V0Q29udGVudFVybChub2RlSWQ6IHN0cmluZywgYXR0YWNobWVudD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRBcGkuZ2V0Q29udGVudFVybChub2RlSWQsIGF0dGFjaG1lbnQpO1xuICB9XG5cbiAgZ2V0VmVyc2lvbkNvbnRlbnRVcmwobm9kZUlkOiBzdHJpbmcsIHZlcnNpb25JZDogc3RyaW5nLCBhdHRhY2htZW50PzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudEFwaS5nZXRWZXJzaW9uQ29udGVudFVybChub2RlSWQsIHZlcnNpb25JZCwgYXR0YWNobWVudCk7XG4gIH1cblxuICBkZWxldGVTaXRlKHNpdGVJZD86IHN0cmluZywgb3B0cz86IHsgcGVybWFuZW50PzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmRlbGV0ZVNpdGUoc2l0ZUlkLCBvcHRzKSk7XG4gIH1cblxuICBsZWF2ZVNpdGUoc2l0ZUlkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLmRlbGV0ZVNpdGVNZW1iZXJzaGlwKHNpdGVJZCwgJy1tZS0nKSk7XG4gIH1cblxuICBjcmVhdGVTaXRlKFxuICAgIHNpdGVCb2R5OiBTaXRlQm9keUNyZWF0ZSxcbiAgICBvcHRzPzoge1xuICAgICAgZmllbGRzPzogQXJyYXk8c3RyaW5nPjtcbiAgICAgIHNraXBDb25maWd1cmF0aW9uPzogYm9vbGVhbjtcbiAgICAgIHNraXBBZGRUb0Zhdm9yaXRlcz86IGJvb2xlYW47XG4gICAgfVxuICApOiBPYnNlcnZhYmxlPFNpdGVFbnRyeT4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuc2l0ZXNBcGkuY3JlYXRlU2l0ZShzaXRlQm9keSwgb3B0cykpO1xuICB9XG5cbiAgZ2V0U2l0ZShzaXRlSWQ/OiBzdHJpbmcsIG9wdHM/OiB7IHJlbGF0aW9ucz86IEFycmF5PHN0cmluZz47IGZpZWxkcz86IEFycmF5PHN0cmluZz4gfSk6IE9ic2VydmFibGU8U2l0ZUVudHJ5PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5zaXRlc0FwaS5nZXRTaXRlKHNpdGVJZCwgb3B0cykpO1xuICB9XG5cbiAgdXBkYXRlTGlicmFyeShzaXRlSWQ6IHN0cmluZywgc2l0ZUJvZHk6IFNpdGVCb2R5Q3JlYXRlKTogT2JzZXJ2YWJsZTxTaXRlRW50cnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnNpdGVzQXBpLnVwZGF0ZVNpdGUoc2l0ZUlkLCBzaXRlQm9keSkpO1xuICB9XG5cbiAgYWRkRmF2b3JpdGUobm9kZXM6IEFycmF5PE5vZGVFbnRyeT4pOiBPYnNlcnZhYmxlPEZhdm9yaXRlRW50cnk+IHtcbiAgICBjb25zdCBwYXlsb2FkOiBGYXZvcml0ZUJvZHlDcmVhdGVbXSA9IG5vZGVzLm1hcCgobm9kZSkgPT4ge1xuICAgICAgY29uc3QgeyBpc0ZvbGRlciwgbm9kZUlkLCBpZCB9ID0gbm9kZS5lbnRyeSBhcyBhbnk7XG4gICAgICBjb25zdCBzaXRlSWQgPSBub2RlLmVudHJ5WydndWlkJ107XG4gICAgICBjb25zdCB0eXBlID0gc2l0ZUlkID8gJ3NpdGUnIDogaXNGb2xkZXIgPyAnZm9sZGVyJyA6ICdmaWxlJztcbiAgICAgIGNvbnN0IGd1aWQgPSBzaXRlSWQgfHwgbm9kZUlkIHx8IGlkO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICBbdHlwZV06IHtcbiAgICAgICAgICAgIGd1aWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnJvbSh0aGlzLmZhdm9yaXRlc0FwaS5jcmVhdGVGYXZvcml0ZSgnLW1lLScsIHBheWxvYWQgYXMgYW55KSk7XG4gIH1cblxuICByZW1vdmVGYXZvcml0ZShub2RlczogQXJyYXk8Tm9kZUVudHJ5Pik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICBQcm9taXNlLmFsbChcbiAgICAgICAgbm9kZXMubWFwKChub2RlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBpZCA9IG5vZGUuZW50cnkubm9kZUlkIHx8IG5vZGUuZW50cnkuaWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmF2b3JpdGVzQXBpLmRlbGV0ZUZhdm9yaXRlKCctbWUtJywgaWQpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICB1bmxvY2tOb2RlKG5vZGVJZDogc3RyaW5nLCBvcHRzPzogYW55KTogUHJvbWlzZTxOb2RlRW50cnk+IHtcbiAgICByZXR1cm4gdGhpcy5ub2Rlc0FwaS51bmxvY2tOb2RlKG5vZGVJZCwgb3B0cyk7XG4gIH1cblxuICBnZXROb2RlVmVyc2lvbnMobm9kZUlkOiBzdHJpbmcsIG9wdHM/OiBhbnkpOiBPYnNlcnZhYmxlPFZlcnNpb25QYWdpbmc+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnZlcnNpb25zQXBpLmxpc3RWZXJzaW9uSGlzdG9yeShub2RlSWQsIG9wdHMpKTtcbiAgfVxuXG4gIHJlcXVlc3ROb2RlRGlyZWN0QWNjZXNzVXJsKG5vZGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEaXJlY3RBY2Nlc3NVcmxFbnRyeT4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMubm9kZXNBcGkucmVxdWVzdERpcmVjdEFjY2Vzc1VybChub2RlSWQpKTtcbiAgfVxuXG4gIHJlcXVlc3RWZXJzaW9uRGlyZWN0QWNjZXNzVXJsKG5vZGVJZDogc3RyaW5nLCB2ZXJzaW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RGlyZWN0QWNjZXNzVXJsRW50cnk+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnZlcnNpb25zQXBpLnJlcXVlc3REaXJlY3RBY2Nlc3NVcmwobm9kZUlkLCB2ZXJzaW9uSWQpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,55 @@
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 { NavigationEnd, Router } from '@angular/router';
26
+ import { filter, startWith } from 'rxjs/operators';
27
+ import * as i0 from "@angular/core";
28
+ import * as i1 from "@angular/router";
29
+ class NavigationHistoryService {
30
+ router;
31
+ history = [];
32
+ constructor(router) {
33
+ this.router = router;
34
+ }
35
+ listenToRouteChanges() {
36
+ return this.router.events.pipe(startWith(new NavigationEnd(0, this.router.url, this.router.url)), filter((event) => event instanceof NavigationEnd));
37
+ }
38
+ shouldReturnLastSelection(url) {
39
+ return this.history.length > 2 && this.history[1].startsWith(url) && this.history[0] === this.history[2];
40
+ }
41
+ setHistory(event, maxHistoryLength) {
42
+ this.history.push(event.urlAfterRedirects);
43
+ if (maxHistoryLength > 0 && this.history.length > maxHistoryLength) {
44
+ this.history.shift();
45
+ }
46
+ }
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NavigationHistoryService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
48
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NavigationHistoryService, providedIn: 'root' });
49
+ }
50
+ export { NavigationHistoryService };
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NavigationHistoryService, decorators: [{
52
+ type: Injectable,
53
+ args: [{ providedIn: 'root' }]
54
+ }], ctorParameters: function () { return [{ type: i1.Router }]; } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1oaXN0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Etc2hhcmVkL3NyYy9saWIvc2VydmljZXMvbmF2aWdhdGlvbi1oaXN0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR25ELE1BQ2Esd0JBQXdCO0lBR2Y7SUFGcEIsT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUV2QixZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFdEMsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDakUsTUFBTSxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUNqRSxDQUFDO0lBQ0osQ0FBQztJQUVELHlCQUF5QixDQUFDLEdBQVc7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBb0IsRUFBRSxnQkFBd0I7UUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0MsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLEVBQUU7WUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7dUdBckJVLHdCQUF3QjsyR0FBeEIsd0JBQXdCLGNBRFgsTUFBTTs7U0FDbkIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uSGlzdG9yeVNlcnZpY2Uge1xuICBoaXN0b3J5OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgbGlzdGVuVG9Sb3V0ZUNoYW5nZXMoKTogT2JzZXJ2YWJsZTxOYXZpZ2F0aW9uRW5kPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgc3RhcnRXaXRoKG5ldyBOYXZpZ2F0aW9uRW5kKDAsIHRoaXMucm91dGVyLnVybCwgdGhpcy5yb3V0ZXIudXJsKSksXG4gICAgICBmaWx0ZXIoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpXG4gICAgKTtcbiAgfVxuXG4gIHNob3VsZFJldHVybkxhc3RTZWxlY3Rpb24odXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oaXN0b3J5Lmxlbmd0aCA+IDIgJiYgdGhpcy5oaXN0b3J5WzFdLnN0YXJ0c1dpdGgodXJsKSAmJiB0aGlzLmhpc3RvcnlbMF0gPT09IHRoaXMuaGlzdG9yeVsyXTtcbiAgfVxuXG4gIHNldEhpc3RvcnkoZXZlbnQ6IE5hdmlnYXRpb25FbmQsIG1heEhpc3RvcnlMZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuaGlzdG9yeS5wdXNoKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcbiAgICBpZiAobWF4SGlzdG9yeUxlbmd0aCA+IDAgJiYgdGhpcy5oaXN0b3J5Lmxlbmd0aCA+IG1heEhpc3RvcnlMZW5ndGgpIHtcbiAgICAgIHRoaXMuaGlzdG9yeS5zaGlmdCgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,88 @@
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
+ class NodePermissionService {
27
+ static DEFAULT_OPERATION = 'OR';
28
+ defaultOptions = {
29
+ operation: NodePermissionService.DEFAULT_OPERATION,
30
+ target: null
31
+ };
32
+ check(source, permissions, options) {
33
+ const opts = Object.assign({}, this.defaultOptions, options || {});
34
+ if (!source) {
35
+ return false;
36
+ }
37
+ if (Array.isArray(source)) {
38
+ source = source.filter((item) => item);
39
+ if (source.length > 0) {
40
+ return source.every((node) => this.isOperationAllowed(node, permissions, opts));
41
+ }
42
+ return false;
43
+ }
44
+ else {
45
+ return this.isOperationAllowed(source, permissions, opts);
46
+ }
47
+ }
48
+ isOperationAllowed(node, permissions, options) {
49
+ const allowableOperations = this.getAllowableOperations(node, options.target);
50
+ if (allowableOperations.length) {
51
+ if (options.operation === NodePermissionService.DEFAULT_OPERATION) {
52
+ return permissions.some((permission) => allowableOperations.includes(permission));
53
+ }
54
+ else {
55
+ return permissions.every((permission) => allowableOperations.includes(permission));
56
+ }
57
+ }
58
+ return false;
59
+ }
60
+ getAllowableOperations(node, property) {
61
+ let entry;
62
+ if ('entry' in node) {
63
+ entry = node.entry;
64
+ }
65
+ else {
66
+ entry = node;
67
+ }
68
+ if (property) {
69
+ return entry[property] || [];
70
+ }
71
+ if ('allowableOperationsOnTarget' in entry) {
72
+ return entry.allowableOperationsOnTarget || [];
73
+ }
74
+ else {
75
+ return entry.allowableOperations || [];
76
+ }
77
+ }
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NodePermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
79
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NodePermissionService, providedIn: 'root' });
80
+ }
81
+ export { NodePermissionService };
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NodePermissionService, decorators: [{
83
+ type: Injectable,
84
+ args: [{
85
+ providedIn: 'root'
86
+ }]
87
+ }] });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1wZXJtaXNzaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Etc2hhcmVkL3NyYy9saWIvc2VydmljZXMvbm9kZS1wZXJtaXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVczQyxNQUdhLHFCQUFxQjtJQUNoQyxNQUFNLENBQVUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBRWpDLGNBQWMsR0FBc0I7UUFDMUMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLGlCQUFpQjtRQUNsRCxNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUM7SUFFRixLQUFLLENBQUMsTUFBNkMsRUFBRSxXQUFxQixFQUFFLE9BQTJCO1FBQ3JHLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV2QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDakY7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNkO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQXNCLEVBQUUsV0FBcUIsRUFBRSxPQUEwQjtRQUNsRyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlFLElBQUksbUJBQW1CLENBQUMsTUFBTSxFQUFFO1lBQzlCLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDakUsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNuRjtpQkFBTTtnQkFDTCxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQ3BGO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxJQUFzQixFQUFFLFFBQWlCO1FBQ3RFLElBQUksS0FBd0IsQ0FBQztRQUU3QixJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDbkIsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEI7YUFBTTtZQUNMLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDZDtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzlCO1FBRUQsSUFBSSw2QkFBNkIsSUFBSSxLQUFLLEVBQUU7WUFDMUMsT0FBTyxLQUFLLENBQUMsMkJBQTJCLElBQUksRUFBRSxDQUFDO1NBQ2hEO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7U0FDeEM7SUFDSCxDQUFDO3VHQTNEVSxxQkFBcUI7MkdBQXJCLHFCQUFxQixjQUZwQixNQUFNOztTQUVQLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlUGVybWlzc2lvbnMgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgTm9kZSwgU2hhcmVkTGluaywgU2hhcmVkTGlua0VudHJ5LCBOb2RlRW50cnkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcblxuZXhwb3J0IHR5cGUgUGVybWlzc2lvblNvdXJjZSA9IE5vZGVFbnRyeSB8IFNoYXJlZExpbmtFbnRyeSB8IE5vZGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvbk9wdGlvbnMge1xuICB0YXJnZXQ/OiBzdHJpbmc7XG4gIG9wZXJhdGlvbj86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTm9kZVBlcm1pc3Npb25TZXJ2aWNlIGltcGxlbWVudHMgTm9kZVBlcm1pc3Npb25zIHtcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfT1BFUkFUSU9OID0gJ09SJztcblxuICBwcml2YXRlIGRlZmF1bHRPcHRpb25zOiBQZXJtaXNzaW9uT3B0aW9ucyA9IHtcbiAgICBvcGVyYXRpb246IE5vZGVQZXJtaXNzaW9uU2VydmljZS5ERUZBVUxUX09QRVJBVElPTixcbiAgICB0YXJnZXQ6IG51bGxcbiAgfTtcblxuICBjaGVjayhzb3VyY2U6IFBlcm1pc3Npb25Tb3VyY2UgfCBQZXJtaXNzaW9uU291cmNlW10sIHBlcm1pc3Npb25zOiBzdHJpbmdbXSwgb3B0aW9ucz86IFBlcm1pc3Npb25PcHRpb25zKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMgfHwge30pO1xuXG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICBzb3VyY2UgPSBzb3VyY2UuZmlsdGVyKChpdGVtKSA9PiBpdGVtKTtcblxuICAgICAgaWYgKHNvdXJjZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2UuZXZlcnkoKG5vZGUpID0+IHRoaXMuaXNPcGVyYXRpb25BbGxvd2VkKG5vZGUsIHBlcm1pc3Npb25zLCBvcHRzKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmlzT3BlcmF0aW9uQWxsb3dlZChzb3VyY2UsIHBlcm1pc3Npb25zLCBvcHRzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzT3BlcmF0aW9uQWxsb3dlZChub2RlOiBQZXJtaXNzaW9uU291cmNlLCBwZXJtaXNzaW9uczogc3RyaW5nW10sIG9wdGlvbnM6IFBlcm1pc3Npb25PcHRpb25zKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYWxsb3dhYmxlT3BlcmF0aW9ucyA9IHRoaXMuZ2V0QWxsb3dhYmxlT3BlcmF0aW9ucyhub2RlLCBvcHRpb25zLnRhcmdldCk7XG5cbiAgICBpZiAoYWxsb3dhYmxlT3BlcmF0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGlmIChvcHRpb25zLm9wZXJhdGlvbiA9PT0gTm9kZVBlcm1pc3Npb25TZXJ2aWNlLkRFRkFVTFRfT1BFUkFUSU9OKSB7XG4gICAgICAgIHJldHVybiBwZXJtaXNzaW9ucy5zb21lKChwZXJtaXNzaW9uKSA9PiBhbGxvd2FibGVPcGVyYXRpb25zLmluY2x1ZGVzKHBlcm1pc3Npb24pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwZXJtaXNzaW9ucy5ldmVyeSgocGVybWlzc2lvbikgPT4gYWxsb3dhYmxlT3BlcmF0aW9ucy5pbmNsdWRlcyhwZXJtaXNzaW9uKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGxvd2FibGVPcGVyYXRpb25zKG5vZGU6IFBlcm1pc3Npb25Tb3VyY2UsIHByb3BlcnR5Pzogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGxldCBlbnRyeTogTm9kZSB8IFNoYXJlZExpbms7XG5cbiAgICBpZiAoJ2VudHJ5JyBpbiBub2RlKSB7XG4gICAgICBlbnRyeSA9IG5vZGUuZW50cnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVudHJ5ID0gbm9kZTtcbiAgICB9XG5cbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIHJldHVybiBlbnRyeVtwcm9wZXJ0eV0gfHwgW107XG4gICAgfVxuXG4gICAgaWYgKCdhbGxvd2FibGVPcGVyYXRpb25zT25UYXJnZXQnIGluIGVudHJ5KSB7XG4gICAgICByZXR1cm4gZW50cnkuYWxsb3dhYmxlT3BlcmF0aW9uc09uVGFyZ2V0IHx8IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZW50cnkuYWxsb3dhYmxlT3BlcmF0aW9ucyB8fCBbXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,108 @@
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
+ class RouterExtensionService {
31
+ router;
32
+ extensions;
33
+ defaults = {
34
+ layout: 'app.layout.main',
35
+ auth: ['app.auth']
36
+ };
37
+ constructor(router, extensions) {
38
+ this.router = router;
39
+ this.extensions = extensions;
40
+ }
41
+ mapExtensionRoutes() {
42
+ const routesWithoutParent = [];
43
+ this.getApplicationRoutes().forEach((extensionRoute) => {
44
+ if (this.extensionRouteHasChild(extensionRoute)) {
45
+ const parentRoute = this.findRoute(extensionRoute.parentRoute);
46
+ if (parentRoute) {
47
+ this.convertExtensionRouteToRoute(extensionRoute);
48
+ parentRoute.children.unshift(extensionRoute);
49
+ }
50
+ }
51
+ else {
52
+ routesWithoutParent.push(extensionRoute);
53
+ }
54
+ });
55
+ this.router.config.unshift(...routesWithoutParent);
56
+ }
57
+ getApplicationRoutes() {
58
+ return this.extensions.routes.map((route) => {
59
+ const guards = this.extensions.getAuthGuards(route.auth && route.auth.length > 0 ? route.auth : this.defaults.auth);
60
+ return {
61
+ path: route.path,
62
+ component: this.getComponentById(route.layout ?? this.defaults.layout),
63
+ canActivateChild: guards,
64
+ canActivate: guards,
65
+ parentRoute: route.parentRoute,
66
+ children: [
67
+ ...(route['children']
68
+ ? route['children'].map(({ path, component, outlet, data }) => ({
69
+ path,
70
+ outlet,
71
+ data,
72
+ component: this.getComponentById(component)
73
+ }))
74
+ : []),
75
+ {
76
+ path: '',
77
+ component: this.getComponentById(route.component),
78
+ data: route.data
79
+ }
80
+ ]
81
+ };
82
+ });
83
+ }
84
+ getComponentById(id) {
85
+ return this.extensions.getComponentById(id);
86
+ }
87
+ extensionRouteHasChild(route) {
88
+ return route.parentRoute !== undefined;
89
+ }
90
+ convertExtensionRouteToRoute(extensionRoute) {
91
+ delete extensionRoute.parentRoute;
92
+ delete extensionRoute.component;
93
+ }
94
+ findRoute(parentRoute) {
95
+ const routeIndex = this.router.config.findIndex((route) => route.path === parentRoute);
96
+ return this.router.config[routeIndex];
97
+ }
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: RouterExtensionService, deps: [{ token: i1.Router }, { token: i2.ExtensionService }], target: i0.ɵɵFactoryTarget.Injectable });
99
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: RouterExtensionService, providedIn: 'root' });
100
+ }
101
+ export { RouterExtensionService };
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: RouterExtensionService, decorators: [{
103
+ type: Injectable,
104
+ args: [{
105
+ providedIn: 'root'
106
+ }]
107
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ExtensionService }]; } });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmV4dGVuc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci5leHRlbnNpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBRXpDLE1BR2Esc0JBQXNCO0lBTWI7SUFBMEI7SUFMOUMsUUFBUSxHQUFHO1FBQ1QsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7S0FDbkIsQ0FBQztJQUVGLFlBQW9CLE1BQWMsRUFBWSxVQUE0QjtRQUF0RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVksZUFBVSxHQUFWLFVBQVUsQ0FBa0I7SUFBRyxDQUFDO0lBRTlFLGtCQUFrQjtRQUNoQixNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUU7WUFDckUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQy9DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLFdBQVcsRUFBRTtvQkFDZixJQUFJLENBQUMsNEJBQTRCLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ2xELFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUM5QzthQUNGO2lCQUFNO2dCQUNMLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUMxQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFcEgsT0FBTztnQkFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0JBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDdEUsZ0JBQWdCLEVBQUUsTUFBTTtnQkFDeEIsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDOUIsUUFBUSxFQUFFO29CQUNSLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO3dCQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7NEJBQzVELElBQUk7NEJBQ0osTUFBTTs0QkFDTixJQUFJOzRCQUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO3lCQUM1QyxDQUFDLENBQUM7d0JBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDUDt3QkFDRSxJQUFJLEVBQUUsRUFBRTt3QkFDUixTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7d0JBQ2pELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtxQkFDakI7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsRUFBVTtRQUNqQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQXFCO1FBQ2xELE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVPLDRCQUE0QixDQUFDLGNBQThCO1FBQ2pFLE9BQU8sY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUNsQyxPQUFPLGNBQWMsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxXQUFXO1FBQzNCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztRQUV2RixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7dUdBdkVVLHNCQUFzQjsyR0FBdEIsc0JBQXNCLGNBRnJCLE1BQU07O1NBRVAsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4dGVuc2lvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRXh0ZW5zaW9uUm91dGUgfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUm91dGVyRXh0ZW5zaW9uU2VydmljZSB7XG4gIGRlZmF1bHRzID0ge1xuICAgIGxheW91dDogJ2FwcC5sYXlvdXQubWFpbicsXG4gICAgYXV0aDogWydhcHAuYXV0aCddXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJvdGVjdGVkIGV4dGVuc2lvbnM6IEV4dGVuc2lvblNlcnZpY2UpIHt9XG5cbiAgbWFwRXh0ZW5zaW9uUm91dGVzKCkge1xuICAgIGNvbnN0IHJvdXRlc1dpdGhvdXRQYXJlbnQgPSBbXTtcbiAgICB0aGlzLmdldEFwcGxpY2F0aW9uUm91dGVzKCkuZm9yRWFjaCgoZXh0ZW5zaW9uUm91dGU6IEV4dGVuc2lvblJvdXRlKSA9PiB7XG4gICAgICBpZiAodGhpcy5leHRlbnNpb25Sb3V0ZUhhc0NoaWxkKGV4dGVuc2lvblJvdXRlKSkge1xuICAgICAgICBjb25zdCBwYXJlbnRSb3V0ZSA9IHRoaXMuZmluZFJvdXRlKGV4dGVuc2lvblJvdXRlLnBhcmVudFJvdXRlKTtcbiAgICAgICAgaWYgKHBhcmVudFJvdXRlKSB7XG4gICAgICAgICAgdGhpcy5jb252ZXJ0RXh0ZW5zaW9uUm91dGVUb1JvdXRlKGV4dGVuc2lvblJvdXRlKTtcbiAgICAgICAgICBwYXJlbnRSb3V0ZS5jaGlsZHJlbi51bnNoaWZ0KGV4dGVuc2lvblJvdXRlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcm91dGVzV2l0aG91dFBhcmVudC5wdXNoKGV4dGVuc2lvblJvdXRlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyLmNvbmZpZy51bnNoaWZ0KC4uLnJvdXRlc1dpdGhvdXRQYXJlbnQpO1xuICB9XG5cbiAgcHVibGljIGdldEFwcGxpY2F0aW9uUm91dGVzKCk6IEFycmF5PEV4dGVuc2lvblJvdXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9ucy5yb3V0ZXMubWFwKChyb3V0ZSkgPT4ge1xuICAgICAgY29uc3QgZ3VhcmRzID0gdGhpcy5leHRlbnNpb25zLmdldEF1dGhHdWFyZHMocm91dGUuYXV0aCAmJiByb3V0ZS5hdXRoLmxlbmd0aCA+IDAgPyByb3V0ZS5hdXRoIDogdGhpcy5kZWZhdWx0cy5hdXRoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogcm91dGUucGF0aCxcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLmdldENvbXBvbmVudEJ5SWQocm91dGUubGF5b3V0ID8/IHRoaXMuZGVmYXVsdHMubGF5b3V0KSxcbiAgICAgICAgY2FuQWN0aXZhdGVDaGlsZDogZ3VhcmRzLFxuICAgICAgICBjYW5BY3RpdmF0ZTogZ3VhcmRzLFxuICAgICAgICBwYXJlbnRSb3V0ZTogcm91dGUucGFyZW50Um91dGUsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgLi4uKHJvdXRlWydjaGlsZHJlbiddXG4gICAgICAgICAgICA/IHJvdXRlWydjaGlsZHJlbiddLm1hcCgoeyBwYXRoLCBjb21wb25lbnQsIG91dGxldCwgZGF0YSB9KSA9PiAoe1xuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgb3V0bGV0LFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLmdldENvbXBvbmVudEJ5SWQoY29tcG9uZW50KVxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLmdldENvbXBvbmVudEJ5SWQocm91dGUuY29tcG9uZW50KSxcbiAgICAgICAgICAgIGRhdGE6IHJvdXRlLmRhdGFcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbXBvbmVudEJ5SWQoaWQ6IHN0cmluZyk6IFR5cGU8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbnMuZ2V0Q29tcG9uZW50QnlJZChpZCk7XG4gIH1cblxuICBwcml2YXRlIGV4dGVuc2lvblJvdXRlSGFzQ2hpbGQocm91dGU6IEV4dGVuc2lvblJvdXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJvdXRlLnBhcmVudFJvdXRlICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRFeHRlbnNpb25Sb3V0ZVRvUm91dGUoZXh0ZW5zaW9uUm91dGU6IEV4dGVuc2lvblJvdXRlKSB7XG4gICAgZGVsZXRlIGV4dGVuc2lvblJvdXRlLnBhcmVudFJvdXRlO1xuICAgIGRlbGV0ZSBleHRlbnNpb25Sb3V0ZS5jb21wb25lbnQ7XG4gIH1cblxuICBwcml2YXRlIGZpbmRSb3V0ZShwYXJlbnRSb3V0ZSkge1xuICAgIGNvbnN0IHJvdXRlSW5kZXggPSB0aGlzLnJvdXRlci5jb25maWcuZmluZEluZGV4KChyb3V0ZSkgPT4gcm91dGUucGF0aCA9PT0gcGFyZW50Um91dGUpO1xuXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmNvbmZpZ1tyb3V0ZUluZGV4XTtcbiAgfVxufVxuIl19