@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,795 +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
|
-
/**
|
|
25
|
-
* Checks if a Preview route is activated.
|
|
26
|
-
* JSON ref: `app.navigation.isPreview`
|
|
27
|
-
*/
|
|
28
|
-
function isPreview(context) {
|
|
29
|
-
const { url } = context.navigation;
|
|
30
|
-
return url && (url.includes('/preview/') || url.includes('viewer:view') || url.includes('/view/'));
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Checks if a **Favorites** route is activated.
|
|
34
|
-
* JSON ref: `app.navigation.isFavorites`
|
|
35
|
-
*/
|
|
36
|
-
function isFavorites(context) {
|
|
37
|
-
const { url } = context.navigation;
|
|
38
|
-
return (url === null || url === void 0 ? void 0 : url.startsWith('/favorites')) && !isPreview(context);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Checks if the activated route is not **Favorites**.
|
|
42
|
-
* JSON ref: `app.navigation.isNotFavorites`
|
|
43
|
-
*/
|
|
44
|
-
const isNotFavorites = (context) => !isFavorites(context);
|
|
45
|
-
/**
|
|
46
|
-
* Checks if a **Shared Files** route is activated.
|
|
47
|
-
* JSON ref: `app.navigation.isSharedFiles`
|
|
48
|
-
*/
|
|
49
|
-
function isSharedFiles(context) {
|
|
50
|
-
const { url } = context.navigation;
|
|
51
|
-
return (url === null || url === void 0 ? void 0 : url.startsWith('/shared')) && !isPreview(context);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Checks if the activated route is not **Shared Files**.
|
|
55
|
-
* JSON ref: `app.navigation.isNotSharedFiles`
|
|
56
|
-
*/
|
|
57
|
-
const isNotSharedFiles = (context) => !isSharedFiles(context);
|
|
58
|
-
/**
|
|
59
|
-
* Checks if a **Trashcan** route is activated.
|
|
60
|
-
* JSON ref: `app.navigation.isTrashcan`
|
|
61
|
-
*/
|
|
62
|
-
function isTrashcan(context) {
|
|
63
|
-
const { url } = context.navigation;
|
|
64
|
-
return url === null || url === void 0 ? void 0 : url.startsWith('/trashcan');
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Checks if the activated route is not **Trashcan**.
|
|
68
|
-
* JSON ref: `app.navigation.isNotTrashcan`
|
|
69
|
-
*/
|
|
70
|
-
const isNotTrashcan = (context) => !isTrashcan(context);
|
|
71
|
-
/**
|
|
72
|
-
* Checks if a **Personal Files** route is activated.
|
|
73
|
-
* JSON ref: `app.navigation.isPersonalFiles`
|
|
74
|
-
*/
|
|
75
|
-
function isPersonalFiles(context) {
|
|
76
|
-
const { url } = context.navigation;
|
|
77
|
-
return url === null || url === void 0 ? void 0 : url.startsWith('/personal-files');
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Checks if a **Library Files** route is activated.
|
|
81
|
-
* JSON ref: `app.navigation.isLibraryFiles`
|
|
82
|
-
*/
|
|
83
|
-
function isLibraryFiles(context) {
|
|
84
|
-
const { url } = context.navigation;
|
|
85
|
-
return url === null || url === void 0 ? void 0 : url.startsWith('/libraries');
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Checks if a **Library Files** or **Library Search Result** route is activated.
|
|
89
|
-
* JSON ref: `app.navigation.isLibraryFiles`
|
|
90
|
-
*/
|
|
91
|
-
function isLibraries(context) {
|
|
92
|
-
const { url } = context.navigation;
|
|
93
|
-
return (url === null || url === void 0 ? void 0 : url.endsWith('/libraries')) || (url === null || url === void 0 ? void 0 : url.startsWith('/search-libraries'));
|
|
94
|
-
}
|
|
95
|
-
function isLibraryContent(context) {
|
|
96
|
-
const { url } = context.navigation;
|
|
97
|
-
return (url === null || url === void 0 ? void 0 : url.endsWith('/libraries')) || (url === null || url === void 0 ? void 0 : url.includes('/libraries/')) || (url === null || url === void 0 ? void 0 : url.startsWith('/search-libraries'));
|
|
98
|
-
}
|
|
99
|
-
function isDetails(context) {
|
|
100
|
-
const { url } = context.navigation;
|
|
101
|
-
return url === null || url === void 0 ? void 0 : url.includes('/details');
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Checks if the activated route is neither **Libraries** nor **Library Search Results**.
|
|
105
|
-
* JSON ref: `app.navigation.isNotLibraries`
|
|
106
|
-
*/
|
|
107
|
-
const isNotLibraries = (context) => !isLibraries(context);
|
|
108
|
-
/**
|
|
109
|
-
* Checks if a **Recent Files** route is activated.
|
|
110
|
-
* JSON ref: `app.navigation.isRecentFiles`
|
|
111
|
-
*/
|
|
112
|
-
function isRecentFiles(context) {
|
|
113
|
-
const { url } = context.navigation;
|
|
114
|
-
return url === null || url === void 0 ? void 0 : url.startsWith('/recent-files');
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Checks if the activated route is not **Recent Files**.
|
|
118
|
-
* JSON ref: `app.navigation.isNotRecentFiles`
|
|
119
|
-
*/
|
|
120
|
-
const isNotRecentFiles = (context) => !isRecentFiles(context);
|
|
121
|
-
/**
|
|
122
|
-
* Checks if a **Search Results** route is activated.
|
|
123
|
-
* JSON ref: `app.navigation.isSearchResults`
|
|
124
|
-
*/
|
|
125
|
-
function isSearchResults(context
|
|
126
|
-
// ...args: RuleParameter[]
|
|
127
|
-
) {
|
|
128
|
-
const { url } = context.navigation;
|
|
129
|
-
return url === null || url === void 0 ? void 0 : url.startsWith('/search');
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Checks if the activated route is not **Search Results**.
|
|
133
|
-
* JSON ref: `app.navigation.isNotSearchResults`
|
|
134
|
-
*/
|
|
135
|
-
const isNotSearchResults = (context) => !isSearchResults(context);
|
|
136
|
-
/**
|
|
137
|
-
* Checks if a **Shared Preview** route is activated.
|
|
138
|
-
* JSON ref: `app.navigation.isSharedPreview`
|
|
139
|
-
*/
|
|
140
|
-
function isSharedPreview(context) {
|
|
141
|
-
const { url } = context.navigation;
|
|
142
|
-
return (url === null || url === void 0 ? void 0 : url.startsWith('/shared/preview/')) || ((url === null || url === void 0 ? void 0 : url.startsWith('/shared')) && (url === null || url === void 0 ? void 0 : url.includes('viewer:view')));
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Checks if a **Favorites Preview** route is activated.
|
|
146
|
-
* JSON ref: `app.navigation.isFavoritesPreview`
|
|
147
|
-
*/
|
|
148
|
-
function isFavoritesPreview(context) {
|
|
149
|
-
const { url } = context.navigation;
|
|
150
|
-
return (url === null || url === void 0 ? void 0 : url.startsWith('/favorites/preview/')) || ((url === null || url === void 0 ? void 0 : url.startsWith('/favorites')) && (url === null || url === void 0 ? void 0 : url.includes('viewer:view')));
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Checks if a **Shared File Preview** route is activated.
|
|
154
|
-
* JSON ref: `app.navigation.isFavoritesPreview`
|
|
155
|
-
*/
|
|
156
|
-
function isSharedFileViewer(context) {
|
|
157
|
-
const { url } = context.navigation;
|
|
158
|
-
return url === null || url === void 0 ? void 0 : url.startsWith('/preview/s/');
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/*!
|
|
162
|
-
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
163
|
-
*
|
|
164
|
-
* Alfresco Example Content Application
|
|
165
|
-
*
|
|
166
|
-
* This file is part of the Alfresco Example Content Application.
|
|
167
|
-
* If the software was purchased under a paid Alfresco license, the terms of
|
|
168
|
-
* the paid license agreement will prevail. Otherwise, the software is
|
|
169
|
-
* provided under the following open source license terms:
|
|
170
|
-
*
|
|
171
|
-
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
172
|
-
* it under the terms of the GNU Lesser General Public License as published by
|
|
173
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
174
|
-
* (at your option) any later version.
|
|
175
|
-
*
|
|
176
|
-
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
177
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
178
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
179
|
-
* GNU Lesser General Public License for more details.
|
|
180
|
-
*
|
|
181
|
-
* You should have received a copy of the GNU Lesser General Public License
|
|
182
|
-
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
183
|
-
*/
|
|
184
|
-
/**
|
|
185
|
-
* Checks if the quick share repository option is enabled or not.
|
|
186
|
-
* JSON ref: `repository.isQuickShareEnabled`
|
|
187
|
-
*/
|
|
188
|
-
const hasQuickShareEnabled = (context) => context.repository.status.isQuickShareEnabled;
|
|
189
|
-
function isMajorVersionAvailable(context, versionNumber) {
|
|
190
|
-
var _a;
|
|
191
|
-
const majorVersion = ((_a = context.repository.version) === null || _a === void 0 ? void 0 : _a.major) ? parseInt(context.repository.version.major, 10) : 0;
|
|
192
|
-
return majorVersion >= parseInt(versionNumber, 10);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/*!
|
|
196
|
-
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
197
|
-
*
|
|
198
|
-
* Alfresco Example Content Application
|
|
199
|
-
*
|
|
200
|
-
* This file is part of the Alfresco Example Content Application.
|
|
201
|
-
* If the software was purchased under a paid Alfresco license, the terms of
|
|
202
|
-
* the paid license agreement will prevail. Otherwise, the software is
|
|
203
|
-
* provided under the following open source license terms:
|
|
204
|
-
*
|
|
205
|
-
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
206
|
-
* it under the terms of the GNU Lesser General Public License as published by
|
|
207
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
208
|
-
* (at your option) any later version.
|
|
209
|
-
*
|
|
210
|
-
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
211
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
212
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
213
|
-
* GNU Lesser General Public License for more details.
|
|
214
|
-
*
|
|
215
|
-
* You should have received a copy of the GNU Lesser General Public License
|
|
216
|
-
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
217
|
-
*/
|
|
218
|
-
/**
|
|
219
|
-
* Checks if user is admin.
|
|
220
|
-
* JSON ref: `user.isAdmin`
|
|
221
|
-
*/
|
|
222
|
-
const isAdmin = (context) => context.profile.isAdmin;
|
|
223
|
-
|
|
224
|
-
/*!
|
|
225
|
-
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
226
|
-
*
|
|
227
|
-
* Alfresco Example Content Application
|
|
228
|
-
*
|
|
229
|
-
* This file is part of the Alfresco Example Content Application.
|
|
230
|
-
* If the software was purchased under a paid Alfresco license, the terms of
|
|
231
|
-
* the paid license agreement will prevail. Otherwise, the software is
|
|
232
|
-
* provided under the following open source license terms:
|
|
233
|
-
*
|
|
234
|
-
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
235
|
-
* it under the terms of the GNU Lesser General Public License as published by
|
|
236
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
237
|
-
* (at your option) any later version.
|
|
238
|
-
*
|
|
239
|
-
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
240
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
241
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
242
|
-
* GNU Lesser General Public License for more details.
|
|
243
|
-
*
|
|
244
|
-
* You should have received a copy of the GNU Lesser General Public License
|
|
245
|
-
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
246
|
-
*/
|
|
247
|
-
/* cspell:disable */
|
|
248
|
-
const supportedExtensions = {
|
|
249
|
-
doc: 'ms-word',
|
|
250
|
-
docx: 'ms-word',
|
|
251
|
-
docm: 'ms-word',
|
|
252
|
-
dot: 'ms-word',
|
|
253
|
-
dotx: 'ms-word',
|
|
254
|
-
dotm: 'ms-word',
|
|
255
|
-
rtf: 'ms-word',
|
|
256
|
-
xls: 'ms-excel',
|
|
257
|
-
xlsx: 'ms-excel',
|
|
258
|
-
xlsb: 'ms-excel',
|
|
259
|
-
xlsm: 'ms-excel',
|
|
260
|
-
xlt: 'ms-excel',
|
|
261
|
-
xltx: 'ms-excel',
|
|
262
|
-
xltm: 'ms-excel',
|
|
263
|
-
xlam: 'ms-excel',
|
|
264
|
-
ppt: 'ms-powerpoint',
|
|
265
|
-
pptx: 'ms-powerpoint',
|
|
266
|
-
pot: 'ms-powerpoint',
|
|
267
|
-
potx: 'ms-powerpoint',
|
|
268
|
-
potm: 'ms-powerpoint',
|
|
269
|
-
pptm: 'ms-powerpoint',
|
|
270
|
-
pps: 'ms-powerpoint',
|
|
271
|
-
ppsx: 'ms-powerpoint',
|
|
272
|
-
ppam: 'ms-powerpoint',
|
|
273
|
-
ppsm: 'ms-powerpoint',
|
|
274
|
-
sldx: 'ms-powerpoint',
|
|
275
|
-
sldm: 'ms-powerpoint',
|
|
276
|
-
vsd: 'ms-visio',
|
|
277
|
-
vss: 'ms-visio',
|
|
278
|
-
vst: 'ms-visio',
|
|
279
|
-
vsdx: 'ms-visio',
|
|
280
|
-
vsdm: 'ms-visio',
|
|
281
|
-
vssx: 'ms-visio',
|
|
282
|
-
vssm: 'ms-visio',
|
|
283
|
-
vstx: 'ms-visio',
|
|
284
|
-
vstm: 'ms-visio'
|
|
285
|
-
};
|
|
286
|
-
/* cspell:enable */
|
|
287
|
-
function getFileExtension(fileName) {
|
|
288
|
-
if (fileName) {
|
|
289
|
-
const match = fileName.toLowerCase().match(/\.([^\./\?\#]+)($|\?|\#)/);
|
|
290
|
-
return match ? match[1] : null;
|
|
291
|
-
}
|
|
292
|
-
return null;
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Checks if the content plugin is enabled.
|
|
296
|
-
* JSON ref: `app.isContentServiceEnabled`
|
|
297
|
-
*/
|
|
298
|
-
const isContentServiceEnabled = (context) => {
|
|
299
|
-
const flag = context.appConfig.get('plugins.contentService');
|
|
300
|
-
return flag === true || flag === 'true';
|
|
301
|
-
};
|
|
302
|
-
/**
|
|
303
|
-
* Checks if upload action is supported for the given context
|
|
304
|
-
* JSON ref: `app.isUploadSupported`
|
|
305
|
-
*
|
|
306
|
-
* @param context Rule execution context
|
|
307
|
-
*/
|
|
308
|
-
const isUploadSupported = (context) => [isContentServiceEnabled(context), isPersonalFiles(context) || isLibraryContent(context), canUpload(context)].every(Boolean);
|
|
309
|
-
/**
|
|
310
|
-
* Checks if user can copy selected node.
|
|
311
|
-
* JSON ref: `app.canCopyNode`
|
|
312
|
-
*
|
|
313
|
-
* @param context Rule execution context
|
|
314
|
-
*/
|
|
315
|
-
const canCopyNode = (context) => [hasSelection(context), isNotTrashcan(context), isNotLibraries(context)].every(Boolean);
|
|
316
|
-
/**
|
|
317
|
-
* Checks if user can mark selected nodes as **Favorite**.
|
|
318
|
-
* JSON ref: `app.selection.canAddFavorite`
|
|
319
|
-
*/
|
|
320
|
-
function canAddFavorite(context) {
|
|
321
|
-
if (hasSelection(context)) {
|
|
322
|
-
if (isFavorites(context) || isLibraries(context) || isTrashcan(context)) {
|
|
323
|
-
return false;
|
|
324
|
-
}
|
|
325
|
-
return context.selection.nodes.some((node) => !node.entry.isFavorite);
|
|
326
|
-
}
|
|
327
|
-
return false;
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Checks if user can un-mark selected nodes as **Favorite**.
|
|
331
|
-
* JSON ref: `app.selection.canRemoveFavorite`
|
|
332
|
-
*/
|
|
333
|
-
function canRemoveFavorite(context) {
|
|
334
|
-
if (hasSelection(context) && !isTrashcan(context)) {
|
|
335
|
-
if (isFavorites(context)) {
|
|
336
|
-
return true;
|
|
337
|
-
}
|
|
338
|
-
return context.selection.nodes.every((node) => node.entry.isFavorite);
|
|
339
|
-
}
|
|
340
|
-
return false;
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Checks if user can share selected file.
|
|
344
|
-
* JSON ref: `app.selection.file.canShare`
|
|
345
|
-
*/
|
|
346
|
-
const canShareFile = (context) => [context.selection.file, isNotTrashcan(context), hasQuickShareEnabled(context), !isShared(context)].every(Boolean);
|
|
347
|
-
/**
|
|
348
|
-
* Checks if user can perform "Join" or "Cancel Join Request" on a library.
|
|
349
|
-
* JSON ref: `canToggleJoinLibrary`
|
|
350
|
-
*/
|
|
351
|
-
const canToggleJoinLibrary = (context) => [hasLibrarySelected(context), !isPrivateLibrary(context), hasNoLibraryRole(context)].every(Boolean) ||
|
|
352
|
-
[hasLibrarySelected(context), isPrivateLibrary(context), hasNoLibraryRole(context), isAdmin(context)].every(Boolean);
|
|
353
|
-
/**
|
|
354
|
-
* Checks if user can edit the selected folder.
|
|
355
|
-
* JSON ref: `canEditFolder`
|
|
356
|
-
*
|
|
357
|
-
* @param context Rule execution context
|
|
358
|
-
*/
|
|
359
|
-
const canEditFolder = (context) => [canUpdateSelectedFolder(context), isNotTrashcan(context)].every(Boolean);
|
|
360
|
-
/**
|
|
361
|
-
* Checks if the selected file is already shared.
|
|
362
|
-
* JSON ref: `app.selection.file.isShared`
|
|
363
|
-
*/
|
|
364
|
-
function isShared(context) {
|
|
365
|
-
var _a, _b;
|
|
366
|
-
if (isSharedFiles(context) && context.selection.file) {
|
|
367
|
-
return true;
|
|
368
|
-
}
|
|
369
|
-
if (isNotTrashcan(context) && hasSelection(context) && context.selection.file) {
|
|
370
|
-
return !!((_b = (_a = context.selection.file.entry) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b['qshare:sharedId']);
|
|
371
|
-
}
|
|
372
|
-
return false;
|
|
373
|
-
}
|
|
374
|
-
/**
|
|
375
|
-
* Checks if user can delete selected nodes.
|
|
376
|
-
* JSON ref: `app.selection.canDelete`
|
|
377
|
-
*/
|
|
378
|
-
function canDeleteSelection(context) {
|
|
379
|
-
if (isNotTrashcan(context) && isNotLibraries(context) && hasSelection(context)) {
|
|
380
|
-
if (hasLockedFiles(context)) {
|
|
381
|
-
return false;
|
|
382
|
-
}
|
|
383
|
-
// temp workaround for Favorites api
|
|
384
|
-
if (isFavorites(context)) {
|
|
385
|
-
return true;
|
|
386
|
-
}
|
|
387
|
-
if (isPreview(context)) {
|
|
388
|
-
return context.permissions.check(context.selection.nodes, ['delete']);
|
|
389
|
-
}
|
|
390
|
-
// workaround for Shared Files
|
|
391
|
-
if (isSharedFiles(context)) {
|
|
392
|
-
return context.permissions.check(context.selection.nodes, ['delete'], {
|
|
393
|
-
target: 'allowableOperationsOnTarget'
|
|
394
|
-
});
|
|
395
|
-
}
|
|
396
|
-
return context.permissions.check(context.selection.nodes, ['delete']);
|
|
397
|
-
}
|
|
398
|
-
return false;
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* Checks if user can un-share selected nodes.
|
|
402
|
-
* JSON ref: `app.selection.canUnshare`
|
|
403
|
-
*/
|
|
404
|
-
function canUnshareNodes(context) {
|
|
405
|
-
if (hasSelection(context)) {
|
|
406
|
-
return context.permissions.check(context.selection.nodes, ['delete'], {
|
|
407
|
-
target: 'allowableOperationsOnTarget'
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
return false;
|
|
411
|
-
}
|
|
412
|
-
/**
|
|
413
|
-
* Checks if user selected anything.
|
|
414
|
-
* JSON ref: `app.selection.notEmpty`
|
|
415
|
-
*/
|
|
416
|
-
const hasSelection = (context) => !context.selection.isEmpty;
|
|
417
|
-
/**
|
|
418
|
-
* Checks if user can create a new folder with current path.
|
|
419
|
-
* JSON ref: `app.navigation.folder.canCreate`
|
|
420
|
-
*/
|
|
421
|
-
function canCreateFolder(context) {
|
|
422
|
-
if (isContentServiceEnabled(context) && (isPersonalFiles(context) || isLibraryContent(context))) {
|
|
423
|
-
const { currentFolder } = context.navigation;
|
|
424
|
-
if (currentFolder) {
|
|
425
|
-
return context.permissions.check(currentFolder, ['create']);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
return false;
|
|
429
|
-
}
|
|
430
|
-
/**
|
|
431
|
-
* Checks if user can create a Library
|
|
432
|
-
* JSON ref: `app.canCreateLibrary`
|
|
433
|
-
*
|
|
434
|
-
* @param context Rule execution context
|
|
435
|
-
*/
|
|
436
|
-
const canCreateLibrary = (context) => [isContentServiceEnabled(context), isLibraries(context)].every(Boolean);
|
|
437
|
-
/**
|
|
438
|
-
* Checks if user can upload content to current folder.
|
|
439
|
-
* JSON ref: `app.navigation.folder.canUpload`
|
|
440
|
-
*/
|
|
441
|
-
function canUpload(context) {
|
|
442
|
-
return canCreateFolder(context);
|
|
443
|
-
}
|
|
444
|
-
/**
|
|
445
|
-
* Checks if user can download selected nodes (either files or folders).
|
|
446
|
-
* JSON ref: `app.selection.canDownload`
|
|
447
|
-
*/
|
|
448
|
-
function canDownloadSelection(context) {
|
|
449
|
-
if (hasSelection(context) && isNotTrashcan(context)) {
|
|
450
|
-
return context.selection.nodes.every((node) => node.entry && (node.entry.isFile || node.entry.isFolder || !!node.entry.nodeId));
|
|
451
|
-
}
|
|
452
|
-
return false;
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* Checks if user has selected a folder.
|
|
456
|
-
* JSON ref: `app.selection.folder`
|
|
457
|
-
*/
|
|
458
|
-
const hasFolderSelected = (context) => !!context.selection.folder;
|
|
459
|
-
/**
|
|
460
|
-
* Checks if user has selected a library (site).
|
|
461
|
-
* JSON ref: `app.selection.library`
|
|
462
|
-
*/
|
|
463
|
-
const hasLibrarySelected = (context) => !!context.selection.library;
|
|
464
|
-
/**
|
|
465
|
-
* Checks if user has selected a **private** library (site)
|
|
466
|
-
* JSON ref: `app.selection.isPrivateLibrary`
|
|
467
|
-
*/
|
|
468
|
-
function isPrivateLibrary(context) {
|
|
469
|
-
var _a, _b;
|
|
470
|
-
return ((_b = (_a = context.selection.library) === null || _a === void 0 ? void 0 : _a.entry) === null || _b === void 0 ? void 0 : _b.visibility) === 'PRIVATE';
|
|
471
|
-
}
|
|
472
|
-
/**
|
|
473
|
-
* Checks if the selected library has a **role** property defined.
|
|
474
|
-
* JSON ref: `app.selection.hasLibraryRole`
|
|
475
|
-
*/
|
|
476
|
-
function hasLibraryRole(context) {
|
|
477
|
-
var _a;
|
|
478
|
-
const library = context.selection.library;
|
|
479
|
-
return library ? !!((_a = library.entry) === null || _a === void 0 ? void 0 : _a.role) : false;
|
|
480
|
-
}
|
|
481
|
-
/**
|
|
482
|
-
* Checks if the selected library has no **role** property defined.
|
|
483
|
-
* JSON ref: `app.selection.hasNoLibraryRole`
|
|
484
|
-
*/
|
|
485
|
-
const hasNoLibraryRole = (context) => !hasLibraryRole(context);
|
|
486
|
-
/**
|
|
487
|
-
* Checks if user has selected a file.
|
|
488
|
-
* JSON ref: `app.selection.file`
|
|
489
|
-
*/
|
|
490
|
-
const hasFileSelected = (context) => { var _a; return !!((_a = context === null || context === void 0 ? void 0 : context.selection) === null || _a === void 0 ? void 0 : _a.file); };
|
|
491
|
-
/**
|
|
492
|
-
* Checks if user can update the first selected node.
|
|
493
|
-
* JSON ref: `app.selection.first.canUpdate`
|
|
494
|
-
*/
|
|
495
|
-
function canUpdateSelectedNode(context) {
|
|
496
|
-
if (context.selection && hasSelection(context)) {
|
|
497
|
-
const node = context.selection.first;
|
|
498
|
-
if ((node === null || node === void 0 ? void 0 : node.entry.isFile) && hasLockedFiles(context)) {
|
|
499
|
-
return false;
|
|
500
|
-
}
|
|
501
|
-
return context.permissions.check(node, ['update']);
|
|
502
|
-
}
|
|
503
|
-
return false;
|
|
504
|
-
}
|
|
505
|
-
function isMultiselection(context) {
|
|
506
|
-
let isMultiNodeSelected = false;
|
|
507
|
-
if (context.selection && hasSelection(context)) {
|
|
508
|
-
isMultiNodeSelected = context.selection.count > 1;
|
|
509
|
-
}
|
|
510
|
-
return isMultiNodeSelected;
|
|
511
|
-
}
|
|
512
|
-
/**
|
|
513
|
-
* Checks if user can update the first selected folder.
|
|
514
|
-
* JSON ref: `app.selection.folder.canUpdate`
|
|
515
|
-
*/
|
|
516
|
-
function canUpdateSelectedFolder(context) {
|
|
517
|
-
const { folder } = context.selection;
|
|
518
|
-
if (folder) {
|
|
519
|
-
return (
|
|
520
|
-
// workaround for Favorites Api
|
|
521
|
-
isFavorites(context) || context.permissions.check(folder.entry, ['update']));
|
|
522
|
-
}
|
|
523
|
-
return false;
|
|
524
|
-
}
|
|
525
|
-
/**
|
|
526
|
-
* Checks if user has selected a **locked** file node.
|
|
527
|
-
* JSON ref: `app.selection.file.isLocked`
|
|
528
|
-
*/
|
|
529
|
-
function hasLockedFiles(context) {
|
|
530
|
-
var _a;
|
|
531
|
-
if ((_a = context === null || context === void 0 ? void 0 : context.selection) === null || _a === void 0 ? void 0 : _a.nodes) {
|
|
532
|
-
return context.selection.nodes.some((node) => {
|
|
533
|
-
var _a;
|
|
534
|
-
if (!node.entry.isFile) {
|
|
535
|
-
return false;
|
|
536
|
-
}
|
|
537
|
-
return node.entry.isLocked || ((_a = node.entry.properties) === null || _a === void 0 ? void 0 : _a['cm:lockType']) === 'READ_ONLY_LOCK';
|
|
538
|
-
});
|
|
539
|
-
}
|
|
540
|
-
return false;
|
|
541
|
-
}
|
|
542
|
-
/**
|
|
543
|
-
* Checks if the selected file has **write** or **read-only** locks specified.
|
|
544
|
-
* JSON ref: `app.selection.file.isLocked`
|
|
545
|
-
*/
|
|
546
|
-
const isWriteLocked = (context) => {
|
|
547
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
548
|
-
return !!(((_d = (_c = (_b = (_a = context === null || context === void 0 ? void 0 : context.selection) === null || _a === void 0 ? void 0 : _a.file) === null || _b === void 0 ? void 0 : _b.entry) === null || _c === void 0 ? void 0 : _c.properties) === null || _d === void 0 ? void 0 : _d['cm:lockType']) === 'WRITE_LOCK' ||
|
|
549
|
-
((_h = (_g = (_f = (_e = context === null || context === void 0 ? void 0 : context.selection) === null || _e === void 0 ? void 0 : _e.file) === null || _f === void 0 ? void 0 : _f.entry) === null || _g === void 0 ? void 0 : _g.properties) === null || _h === void 0 ? void 0 : _h['cm:lockType']) === 'READ_ONLY_LOCK');
|
|
550
|
-
};
|
|
551
|
-
/**
|
|
552
|
-
* Checks if the selected file has **write** or **read-only** locks specified,
|
|
553
|
-
* and that current user is the owner of the lock.
|
|
554
|
-
* JSON ref: `app.selection.file.isLockOwner`
|
|
555
|
-
*/
|
|
556
|
-
const isUserWriteLockOwner = (context) => {
|
|
557
|
-
var _a, _b;
|
|
558
|
-
return isWriteLocked(context) &&
|
|
559
|
-
((_a = context.selection.file) === null || _a === void 0 ? void 0 : _a.entry.properties['cm:lockOwner']) &&
|
|
560
|
-
((_b = context.selection.file) === null || _b === void 0 ? void 0 : _b.entry.properties['cm:lockOwner'].id) === context.profile.id;
|
|
561
|
-
};
|
|
562
|
-
/**
|
|
563
|
-
* Checks if user can lock selected file.
|
|
564
|
-
* JSON ref: `app.selection.file.canLock`
|
|
565
|
-
*/
|
|
566
|
-
const canLockFile = (context) => !isWriteLocked(context) && canUpdateSelectedNode(context);
|
|
567
|
-
/**
|
|
568
|
-
* Checks if user can unlock selected file.
|
|
569
|
-
* JSON ref: `app.selection.file.canUnlock`
|
|
570
|
-
*/
|
|
571
|
-
function canUnlockFile(context) {
|
|
572
|
-
const { file } = context.selection;
|
|
573
|
-
return isWriteLocked(context) && (context.permissions.check(file === null || file === void 0 ? void 0 : file.entry, ['delete']) || isUserWriteLockOwner(context));
|
|
574
|
-
}
|
|
575
|
-
/**
|
|
576
|
-
* Checks if user can upload a new version of the file.
|
|
577
|
-
* JSON ref: `app.selection.file.canUploadVersion`
|
|
578
|
-
*/
|
|
579
|
-
function canUploadVersion(context) {
|
|
580
|
-
if (isFavorites(context) || isSharedFiles(context)) {
|
|
581
|
-
return hasFileSelected(context);
|
|
582
|
-
}
|
|
583
|
-
return [
|
|
584
|
-
hasFileSelected(context),
|
|
585
|
-
isNotTrashcan(context),
|
|
586
|
-
isWriteLocked(context) ? isUserWriteLockOwner(context) : canUpdateSelectedNode(context)
|
|
587
|
-
].every(Boolean);
|
|
588
|
-
}
|
|
589
|
-
/**
|
|
590
|
-
* Checks if user has trashcan item selected.
|
|
591
|
-
* JSON ref: `isTrashcanItemSelected`
|
|
592
|
-
*
|
|
593
|
-
* @param context Rule execution context
|
|
594
|
-
*/
|
|
595
|
-
const isTrashcanItemSelected = (context) => [isTrashcan(context), hasSelection(context)].every(Boolean);
|
|
596
|
-
/**
|
|
597
|
-
* Checks if user can view the file.
|
|
598
|
-
* JSON ref: `canViewFile`
|
|
599
|
-
*
|
|
600
|
-
* @param context Rule execution context
|
|
601
|
-
*/
|
|
602
|
-
const canViewFile = (context) => [hasFileSelected(context), isNotTrashcan(context)].every(Boolean);
|
|
603
|
-
/**
|
|
604
|
-
* Checks if user can **Leave** selected library.
|
|
605
|
-
* JSON ref: `canLeaveLibrary`
|
|
606
|
-
*
|
|
607
|
-
* @param context Rule execution context
|
|
608
|
-
*/
|
|
609
|
-
const canLeaveLibrary = (context) => [hasLibrarySelected(context), hasLibraryRole(context)].every(Boolean);
|
|
610
|
-
/**
|
|
611
|
-
* Checks if user can toggle shared link mode.
|
|
612
|
-
* JSON ref: `canToggleSharedLink`
|
|
613
|
-
*
|
|
614
|
-
* @param context Rule execution context
|
|
615
|
-
*/
|
|
616
|
-
const canToggleSharedLink = (context) => [hasFileSelected(context), [canShareFile(context), isShared(context)].some(Boolean)].every(Boolean);
|
|
617
|
-
/**
|
|
618
|
-
* Checks if user can show **Info Drawer** for the selected node.
|
|
619
|
-
* JSON ref: `canShowInfoDrawer`
|
|
620
|
-
*
|
|
621
|
-
* @param context Rule execution context
|
|
622
|
-
*/
|
|
623
|
-
const canShowInfoDrawer = (context) => [hasSelection(context), isNotLibraries(context), isNotTrashcan(context)].every(Boolean);
|
|
624
|
-
/**
|
|
625
|
-
* Checks if user can manage file versions for the selected node.
|
|
626
|
-
* JSON ref: `canManageFileVersions`
|
|
627
|
-
*
|
|
628
|
-
* @param context Rule execution context
|
|
629
|
-
*/
|
|
630
|
-
const canManageFileVersions = (context) => [hasFileSelected(context), isNotTrashcan(context), !hasLockedFiles(context)].every(Boolean);
|
|
631
|
-
/**
|
|
632
|
-
* Checks if user can edit aspects for the selected node.
|
|
633
|
-
* JSON ref: `canEditAspects`
|
|
634
|
-
*
|
|
635
|
-
* @param context Rule execution context
|
|
636
|
-
*/
|
|
637
|
-
const canEditAspects = (context) => [
|
|
638
|
-
!isMultiselection(context),
|
|
639
|
-
canUpdateSelectedNode(context),
|
|
640
|
-
!isWriteLocked(context),
|
|
641
|
-
isNotTrashcan(context),
|
|
642
|
-
isMajorVersionAvailable(context, '7')
|
|
643
|
-
].every(Boolean);
|
|
644
|
-
const canShowExpand = (context) => [!isLibraries(context), !isDetails(context)].every(Boolean);
|
|
645
|
-
/**
|
|
646
|
-
* Checks if user can manage permissions for the selected node.
|
|
647
|
-
* JSON ref: `canManagePermissions`
|
|
648
|
-
*
|
|
649
|
-
* @param context Rule execution context
|
|
650
|
-
*/
|
|
651
|
-
const canManagePermissions = (context) => [canUpdateSelectedNode(context), isNotTrashcan(context), !isSmartFolder(context), !isMultiselection(context)].every(Boolean);
|
|
652
|
-
/**
|
|
653
|
-
* Checks if user can toggle **Edit Offline** mode for selected node.
|
|
654
|
-
* JSON ref: `canToggleEditOffline`
|
|
655
|
-
*
|
|
656
|
-
* @param context Rule execution context
|
|
657
|
-
*/
|
|
658
|
-
const canToggleEditOffline = (context) => [hasFileSelected(context), isNotTrashcan(context), canLockFile(context) || canUnlockFile(context)].every(Boolean);
|
|
659
|
-
/**
|
|
660
|
-
* @deprecated Uses workarounds for for recent files and search api issues.
|
|
661
|
-
* Checks if user can toggle **Favorite** state for a node.
|
|
662
|
-
* @param context Rule execution context
|
|
663
|
-
*/
|
|
664
|
-
const canToggleFavorite = (context) => [
|
|
665
|
-
[canAddFavorite(context), canRemoveFavorite(context)].some(Boolean),
|
|
666
|
-
[isRecentFiles(context), isSharedFiles(context), isSearchResults(context), isFavorites(context)].some(Boolean)
|
|
667
|
-
].every(Boolean);
|
|
668
|
-
/**
|
|
669
|
-
* Checks if application should render logout option.
|
|
670
|
-
* JSON ref: `canShowLogout`
|
|
671
|
-
*
|
|
672
|
-
* @param context Rule execution context
|
|
673
|
-
*/
|
|
674
|
-
const canShowLogout = (context) => !context.withCredentials;
|
|
675
|
-
/**
|
|
676
|
-
* Checks if user is library manager
|
|
677
|
-
* JSON ref: `isLibraryManager`
|
|
678
|
-
*
|
|
679
|
-
* @param context Rule execution context
|
|
680
|
-
*/
|
|
681
|
-
const isLibraryManager = (context) => { var _a; return hasLibrarySelected(context) && (((_a = context.selection.library) === null || _a === void 0 ? void 0 : _a.entry.role) === 'SiteManager' || isAdmin(context)); };
|
|
682
|
-
/**
|
|
683
|
-
* Checks if the preview button for search results can be showed
|
|
684
|
-
* JSON ref: `canInfoPreview`
|
|
685
|
-
*
|
|
686
|
-
* @param context Rule execution context
|
|
687
|
-
*/
|
|
688
|
-
const canInfoPreview = (context) => {
|
|
689
|
-
const isSearchResult = isSearchResults(context);
|
|
690
|
-
const isNotMultiselect = !isMultiselection(context);
|
|
691
|
-
const isFileSelected = !hasFolderSelected(context);
|
|
692
|
-
const isPreview$1 = !isPreview(context);
|
|
693
|
-
return isSearchResult && isNotMultiselect && isFileSelected && isPreview$1;
|
|
694
|
-
};
|
|
695
|
-
/**
|
|
696
|
-
* Checks if the file can be opened with MS Office
|
|
697
|
-
* JSON ref: `aos.canOpenWithOffice`
|
|
698
|
-
*
|
|
699
|
-
* @param context Rule execution context
|
|
700
|
-
*/
|
|
701
|
-
function canOpenWithOffice(context) {
|
|
702
|
-
var _a, _b, _c, _d;
|
|
703
|
-
const flag = `${context.appConfig.get('plugins.aosPlugin', false)}`;
|
|
704
|
-
if (flag !== 'true') {
|
|
705
|
-
return false;
|
|
706
|
-
}
|
|
707
|
-
if ((_b = (_a = context.navigation) === null || _a === void 0 ? void 0 : _a.url) === null || _b === void 0 ? void 0 : _b.startsWith('/trashcan')) {
|
|
708
|
-
return false;
|
|
709
|
-
}
|
|
710
|
-
if (!(context === null || context === void 0 ? void 0 : context.selection)) {
|
|
711
|
-
return false;
|
|
712
|
-
}
|
|
713
|
-
const { file } = context.selection;
|
|
714
|
-
if (!(file === null || file === void 0 ? void 0 : file.entry)) {
|
|
715
|
-
return false;
|
|
716
|
-
}
|
|
717
|
-
const extension = getFileExtension(file.entry.name);
|
|
718
|
-
if (!extension || !supportedExtensions[extension]) {
|
|
719
|
-
return false;
|
|
720
|
-
}
|
|
721
|
-
if (!file.entry.properties) {
|
|
722
|
-
return false;
|
|
723
|
-
}
|
|
724
|
-
if (file.entry.isLocked) {
|
|
725
|
-
return false;
|
|
726
|
-
}
|
|
727
|
-
if (file.entry.properties['cm:lockType'] === 'WRITE_LOCK' || file.entry.properties['cm:lockType'] === 'READ_ONLY_LOCK') {
|
|
728
|
-
return false;
|
|
729
|
-
}
|
|
730
|
-
const lockOwner = file.entry.properties['cm:lockOwner'];
|
|
731
|
-
if (lockOwner && lockOwner.id !== context.profile.id) {
|
|
732
|
-
return false;
|
|
733
|
-
}
|
|
734
|
-
// workaround for Shared files
|
|
735
|
-
if ((_d = (_c = context.navigation) === null || _c === void 0 ? void 0 : _c.url) === null || _d === void 0 ? void 0 : _d.startsWith('/shared')) {
|
|
736
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
737
|
-
if (file.entry.hasOwnProperty('allowableOperationsOnTarget')) {
|
|
738
|
-
return context.permissions.check(file, ['update'], {
|
|
739
|
-
target: 'allowableOperationsOnTarget'
|
|
740
|
-
});
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
return context.permissions.check(file, ['update']);
|
|
744
|
-
}
|
|
745
|
-
function isSmartFolder(context) {
|
|
746
|
-
var _a, _b, _c;
|
|
747
|
-
if (!((_a = context.selection) === null || _a === void 0 ? void 0 : _a.isEmpty)) {
|
|
748
|
-
const node = context.selection.first;
|
|
749
|
-
if (!(node === null || node === void 0 ? void 0 : node.entry.isFolder)) {
|
|
750
|
-
return false;
|
|
751
|
-
}
|
|
752
|
-
const nodeAspects = (_c = (_b = node.entry) === null || _b === void 0 ? void 0 : _b.aspectNames) !== null && _c !== void 0 ? _c : [];
|
|
753
|
-
return nodeAspects.includes('smf:customConfigSmartFolder') || nodeAspects.includes('smf:systemConfigSmartFolder');
|
|
754
|
-
}
|
|
755
|
-
return false;
|
|
756
|
-
}
|
|
757
|
-
const areTagsEnabled = (context) => context.appConfig.get('plugins.tagsEnabled', true);
|
|
758
|
-
const areCategoriesEnabled = (context) => context.appConfig.get('plugins.categoriesEnabled', true);
|
|
759
|
-
const canDisplayKnowledgeRetrievalButton = (context) => context.appConfig.get('plugins.knowledgeRetrievalEnabled', false) &&
|
|
760
|
-
(isPersonalFiles(context) ||
|
|
761
|
-
isSharedFiles(context) ||
|
|
762
|
-
isRecentFiles(context) ||
|
|
763
|
-
isFavorites(context) ||
|
|
764
|
-
((isSearchResults(context) || isLibraryContent(context)) && isNotLibraries(context)));
|
|
765
|
-
|
|
766
|
-
/*!
|
|
767
|
-
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
768
|
-
*
|
|
769
|
-
* Alfresco Example Content Application
|
|
770
|
-
*
|
|
771
|
-
* This file is part of the Alfresco Example Content Application.
|
|
772
|
-
* If the software was purchased under a paid Alfresco license, the terms of
|
|
773
|
-
* the paid license agreement will prevail. Otherwise, the software is
|
|
774
|
-
* provided under the following open source license terms:
|
|
775
|
-
*
|
|
776
|
-
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
777
|
-
* it under the terms of the GNU Lesser General Public License as published by
|
|
778
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
779
|
-
* (at your option) any later version.
|
|
780
|
-
*
|
|
781
|
-
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
782
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
783
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
784
|
-
* GNU Lesser General Public License for more details.
|
|
785
|
-
*
|
|
786
|
-
* You should have received a copy of the GNU Lesser General Public License
|
|
787
|
-
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
788
|
-
*/
|
|
789
|
-
|
|
790
|
-
/**
|
|
791
|
-
* Generated bundle index. Do not edit.
|
|
792
|
-
*/
|
|
793
|
-
|
|
794
|
-
export { areCategoriesEnabled, areTagsEnabled, canAddFavorite, canCopyNode, canCreateFolder, canCreateLibrary, canDeleteSelection, canDisplayKnowledgeRetrievalButton, canDownloadSelection, canEditAspects, canEditFolder, canInfoPreview, canLeaveLibrary, canLockFile, canManageFileVersions, canManagePermissions, canOpenWithOffice, canRemoveFavorite, canShareFile, canShowExpand, canShowInfoDrawer, canShowLogout, canToggleEditOffline, canToggleFavorite, canToggleJoinLibrary, canToggleSharedLink, canUnlockFile, canUnshareNodes, canUpdateSelectedFolder, canUpdateSelectedNode, canUpload, canUploadVersion, canViewFile, getFileExtension, hasFileSelected, hasFolderSelected, hasLibraryRole, hasLibrarySelected, hasLockedFiles, hasNoLibraryRole, hasQuickShareEnabled, hasSelection, isAdmin, isContentServiceEnabled, isDetails, isFavorites, isFavoritesPreview, isLibraries, isLibraryContent, isLibraryFiles, isLibraryManager, isMajorVersionAvailable, isMultiselection, isNotFavorites, isNotLibraries, isNotRecentFiles, isNotSearchResults, isNotSharedFiles, isNotTrashcan, isPersonalFiles, isPreview, isPrivateLibrary, isRecentFiles, isSearchResults, isShared, isSharedFileViewer, isSharedFiles, isSharedPreview, isSmartFolder, isTrashcan, isTrashcanItemSelected, isUploadSupported, isUserWriteLockOwner, isWriteLocked, supportedExtensions };
|
|
795
|
-
//# sourceMappingURL=alfresco-aca-shared-rules.mjs.map
|