@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.
- package/esm2022/lib/components/document-base-page/document-base-page.component.mjs +226 -0
- package/esm2022/lib/components/generic-error/generic-error.component.mjs +42 -0
- package/esm2022/lib/components/info-drawer/info-drawer.component.mjs +141 -0
- package/esm2022/lib/components/locked-by/locked-by.component.mjs +57 -0
- package/esm2022/lib/components/open-in-app/open-in-app.component.mjs +73 -0
- package/esm2022/lib/components/page-layout/page-layout-content.component.mjs +49 -0
- package/esm2022/lib/components/page-layout/page-layout-error.component.mjs +43 -0
- package/esm2022/lib/components/page-layout/page-layout-header.component.mjs +43 -0
- package/esm2022/lib/components/page-layout/page-layout.component.mjs +64 -0
- package/esm2022/lib/components/page-layout/page-layout.module.mjs +43 -0
- package/esm2022/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +63 -0
- package/esm2022/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +79 -0
- package/esm2022/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +92 -0
- package/esm2022/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +76 -0
- package/esm2022/lib/components/toolbar/toolbar.component.mjs +46 -0
- package/esm2022/lib/deprecated/shared-toolbar.module.mjs +44 -0
- package/esm2022/lib/deprecated/shared.module.mjs +45 -0
- package/esm2022/lib/directives/contextmenu/contextmenu.directive.mjs +114 -0
- package/esm2022/lib/directives/pagination.directive.mjs +59 -0
- package/esm2022/lib/services/aca-mobile-app-switcher.service.mjs +130 -0
- package/esm2022/lib/services/app-hook.service.mjs +78 -0
- package/esm2022/lib/services/app-settings.service.mjs +157 -0
- package/esm2022/lib/services/app.extension.service.mjs +481 -0
- package/esm2022/lib/services/app.service.mjs +239 -0
- package/esm2022/lib/services/auto-download.service.mjs +59 -0
- package/esm2022/lib/services/content-api.service.mjs +281 -0
- package/esm2022/lib/services/navigation-history.service.mjs +55 -0
- package/esm2022/lib/services/node-permission.service.mjs +88 -0
- package/esm2022/lib/services/router.extension.service.mjs +108 -0
- package/esm2022/lib/services/user-profile.service.mjs +76 -0
- package/esm2022/lib/testing/lib-testing-module.mjs +163 -0
- package/esm2022/public-api.mjs +62 -0
- package/esm2022/store/actions/app.actions.mjs +116 -0
- package/esm2022/store/actions/context-menu-action-types.mjs +29 -0
- package/esm2022/store/actions/contextmenu.actions.mjs +41 -0
- package/esm2022/store/actions/library.actions.mjs +67 -0
- package/esm2022/store/actions/metadata-aspect.actions.mjs +32 -0
- package/esm2022/store/actions/node.actions.mjs +217 -0
- package/esm2022/store/actions/router.actions.mjs +56 -0
- package/esm2022/store/actions/search-ai.actions.mjs +45 -0
- package/esm2022/store/actions/search.actions.mjs +41 -0
- package/esm2022/store/actions/snackbar.actions.mjs +68 -0
- package/esm2022/store/actions/template.actions.mjs +45 -0
- package/esm2022/store/actions/upload.actions.mjs +53 -0
- package/esm2022/store/actions/viewer.actions.mjs +93 -0
- package/esm2022/store/effects/router.effects.mjs +110 -0
- package/esm2022/store/effects/snackbar.effects.mjs +80 -0
- package/{fesm2020 → fesm2022}/alfresco-aca-shared-store.mjs +219 -142
- package/fesm2022/alfresco-aca-shared-store.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/alfresco-aca-shared.mjs +466 -301
- package/fesm2022/alfresco-aca-shared.mjs.map +1 -0
- package/lib/components/document-base-page/document-base-page.component.d.ts +7 -3
- package/lib/components/generic-error/generic-error.component.d.ts +1 -1
- package/lib/components/info-drawer/info-drawer.component.d.ts +1 -1
- package/lib/components/locked-by/locked-by.component.d.ts +1 -1
- package/lib/components/page-layout/page-layout-content.component.d.ts +1 -1
- package/lib/components/page-layout/page-layout.component.d.ts +1 -1
- package/lib/components/toolbar/toolbar-action/toolbar-action.component.d.ts +1 -1
- package/lib/components/toolbar/toolbar-button/toolbar-button.component.d.ts +1 -1
- package/lib/components/toolbar/toolbar-menu/toolbar-menu.component.d.ts +1 -1
- package/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.d.ts +1 -1
- package/lib/components/toolbar/toolbar.component.d.ts +1 -1
- package/lib/directives/contextmenu/contextmenu.directive.d.ts +3 -1
- package/lib/services/app-hook.service.d.ts +6 -6
- package/lib/services/app-settings.service.d.ts +12 -0
- package/lib/services/app.service.d.ts +1 -1
- package/lib/services/navigation-history.service.d.ts +13 -0
- package/lib/services/node-permission.service.d.ts +1 -1
- package/package.json +15 -25
- package/public-api.d.ts +1 -0
- package/store/actions/context-menu-action-types.d.ts +2 -1
- package/store/actions/contextmenu.actions.d.ts +7 -0
- package/store/actions/search-ai.actions.d.ts +2 -1
- package/store/effects/router.effects.d.ts +1 -5
- package/store/effects/snackbar.effects.d.ts +0 -29
- package/esm2020/lib/components/document-base-page/document-base-page.component.mjs +0 -206
- package/esm2020/lib/components/generic-error/generic-error.component.mjs +0 -43
- package/esm2020/lib/components/info-drawer/info-drawer.component.mjs +0 -132
- package/esm2020/lib/components/locked-by/locked-by.component.mjs +0 -54
- package/esm2020/lib/components/open-in-app/open-in-app.component.mjs +0 -68
- package/esm2020/lib/components/page-layout/page-layout-content.component.mjs +0 -50
- package/esm2020/lib/components/page-layout/page-layout-error.component.mjs +0 -42
- package/esm2020/lib/components/page-layout/page-layout-header.component.mjs +0 -42
- package/esm2020/lib/components/page-layout/page-layout.component.mjs +0 -61
- package/esm2020/lib/components/page-layout/page-layout.module.mjs +0 -42
- package/esm2020/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +0 -58
- package/esm2020/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +0 -74
- package/esm2020/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +0 -87
- package/esm2020/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +0 -71
- package/esm2020/lib/components/toolbar/toolbar.component.mjs +0 -44
- package/esm2020/lib/deprecated/shared-toolbar.module.mjs +0 -43
- package/esm2020/lib/deprecated/shared.module.mjs +0 -44
- package/esm2020/lib/directives/contextmenu/contextmenu.directive.mjs +0 -104
- package/esm2020/lib/directives/pagination.directive.mjs +0 -55
- package/esm2020/lib/services/aca-mobile-app-switcher.service.mjs +0 -129
- package/esm2020/lib/services/app-hook.service.mjs +0 -79
- package/esm2020/lib/services/app-settings.service.mjs +0 -140
- package/esm2020/lib/services/app.extension.service.mjs +0 -462
- package/esm2020/lib/services/app.service.mjs +0 -221
- package/esm2020/lib/services/auto-download.service.mjs +0 -60
- package/esm2020/lib/services/content-api.service.mjs +0 -268
- package/esm2020/lib/services/node-permission.service.mjs +0 -89
- package/esm2020/lib/services/router.extension.service.mjs +0 -105
- package/esm2020/lib/services/user-profile.service.mjs +0 -77
- package/esm2020/lib/testing/lib-testing-module.mjs +0 -161
- package/esm2020/public-api.mjs +0 -61
- package/esm2020/store/actions/app.actions.mjs +0 -108
- package/esm2020/store/actions/context-menu-action-types.mjs +0 -28
- package/esm2020/store/actions/contextmenu.actions.mjs +0 -31
- package/esm2020/store/actions/library.actions.mjs +0 -63
- package/esm2020/store/actions/metadata-aspect.actions.mjs +0 -31
- package/esm2020/store/actions/node.actions.mjs +0 -188
- package/esm2020/store/actions/router.actions.mjs +0 -54
- package/esm2020/store/actions/search-ai.actions.mjs +0 -41
- package/esm2020/store/actions/search.actions.mjs +0 -41
- package/esm2020/store/actions/snackbar.actions.mjs +0 -57
- package/esm2020/store/actions/template.actions.mjs +0 -47
- package/esm2020/store/actions/upload.actions.mjs +0 -49
- package/esm2020/store/actions/viewer.actions.mjs +0 -81
- package/esm2020/store/effects/router.effects.mjs +0 -114
- package/esm2020/store/effects/snackbar.effects.mjs +0 -85
- package/fesm2015/alfresco-aca-shared-rules.mjs +0 -795
- package/fesm2015/alfresco-aca-shared-rules.mjs.map +0 -1
- package/fesm2015/alfresco-aca-shared-store.mjs +0 -1278
- package/fesm2015/alfresco-aca-shared-store.mjs.map +0 -1
- package/fesm2015/alfresco-aca-shared.mjs +0 -3278
- package/fesm2015/alfresco-aca-shared.mjs.map +0 -1
- package/fesm2020/alfresco-aca-shared-store.mjs.map +0 -1
- package/fesm2020/alfresco-aca-shared.mjs.map +0 -1
- /package/{esm2020 → esm2022}/alfresco-aca-shared.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/adf-extensions/extensions-data-loader.guard.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/document-base-page/document-base-page.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants/mime-types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/viewer.rules.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/routing/plugin-enabled.guard.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/routing/shared.guard.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/node.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/rules/alfresco-aca-shared-rules.mjs +0 -0
- /package/{esm2020 → esm2022}/rules/app.rules.mjs +0 -0
- /package/{esm2020 → esm2022}/rules/navigation.rules.mjs +0 -0
- /package/{esm2020 → esm2022}/rules/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/rules/repository.rules.mjs +0 -0
- /package/{esm2020 → esm2022}/rules/user.rules.mjs +0 -0
- /package/{esm2020 → esm2022}/store/actions/app-action-types.mjs +0 -0
- /package/{esm2020 → esm2022}/store/actions/router-action-types.mjs +0 -0
- /package/{esm2020 → esm2022}/store/actions/template-action-types.mjs +0 -0
- /package/{esm2020 → esm2022}/store/alfresco-aca-shared-store.mjs +0 -0
- /package/{esm2020 → esm2022}/store/models/ai-search-by-term-payload.mjs +0 -0
- /package/{esm2020 → esm2022}/store/models/delete-status.model.mjs +0 -0
- /package/{esm2020 → esm2022}/store/models/deleted-node-info.model.mjs +0 -0
- /package/{esm2020 → esm2022}/store/models/modal-configuration.mjs +0 -0
- /package/{esm2020 → esm2022}/store/models/node-info.model.mjs +0 -0
- /package/{esm2020 → esm2022}/store/models/search-option.model.mjs +0 -0
- /package/{esm2020 → esm2022}/store/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/store/selectors/app.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/store/states/app.state.mjs +0 -0
- /package/{fesm2020 → fesm2022}/alfresco-aca-shared-rules.mjs +0 -0
- /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
|