@alfresco/aca-shared 5.1.1 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/esm2022/lib/components/document-base-page/document-base-page.component.mjs +226 -0
  2. package/esm2022/lib/components/generic-error/generic-error.component.mjs +42 -0
  3. package/esm2022/lib/components/info-drawer/info-drawer.component.mjs +141 -0
  4. package/esm2022/lib/components/locked-by/locked-by.component.mjs +57 -0
  5. package/esm2022/lib/components/open-in-app/open-in-app.component.mjs +73 -0
  6. package/esm2022/lib/components/page-layout/page-layout-content.component.mjs +49 -0
  7. package/esm2022/lib/components/page-layout/page-layout-error.component.mjs +43 -0
  8. package/esm2022/lib/components/page-layout/page-layout-header.component.mjs +43 -0
  9. package/esm2022/lib/components/page-layout/page-layout.component.mjs +64 -0
  10. package/esm2022/lib/components/page-layout/page-layout.module.mjs +43 -0
  11. package/esm2022/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +63 -0
  12. package/esm2022/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +79 -0
  13. package/esm2022/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +92 -0
  14. package/esm2022/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +76 -0
  15. package/esm2022/lib/components/toolbar/toolbar.component.mjs +46 -0
  16. package/esm2022/lib/deprecated/shared-toolbar.module.mjs +44 -0
  17. package/esm2022/lib/deprecated/shared.module.mjs +45 -0
  18. package/esm2022/lib/directives/contextmenu/contextmenu.directive.mjs +114 -0
  19. package/esm2022/lib/directives/pagination.directive.mjs +59 -0
  20. package/esm2022/lib/services/aca-mobile-app-switcher.service.mjs +130 -0
  21. package/esm2022/lib/services/app-hook.service.mjs +78 -0
  22. package/esm2022/lib/services/app-settings.service.mjs +157 -0
  23. package/esm2022/lib/services/app.extension.service.mjs +481 -0
  24. package/esm2022/lib/services/app.service.mjs +239 -0
  25. package/esm2022/lib/services/auto-download.service.mjs +59 -0
  26. package/esm2022/lib/services/content-api.service.mjs +281 -0
  27. package/esm2022/lib/services/navigation-history.service.mjs +55 -0
  28. package/esm2022/lib/services/node-permission.service.mjs +88 -0
  29. package/esm2022/lib/services/router.extension.service.mjs +108 -0
  30. package/esm2022/lib/services/user-profile.service.mjs +76 -0
  31. package/esm2022/lib/testing/lib-testing-module.mjs +163 -0
  32. package/esm2022/public-api.mjs +62 -0
  33. package/esm2022/store/actions/app.actions.mjs +116 -0
  34. package/esm2022/store/actions/context-menu-action-types.mjs +29 -0
  35. package/esm2022/store/actions/contextmenu.actions.mjs +41 -0
  36. package/esm2022/store/actions/library.actions.mjs +67 -0
  37. package/esm2022/store/actions/metadata-aspect.actions.mjs +32 -0
  38. package/esm2022/store/actions/node.actions.mjs +217 -0
  39. package/esm2022/store/actions/router.actions.mjs +56 -0
  40. package/esm2022/store/actions/search-ai.actions.mjs +45 -0
  41. package/esm2022/store/actions/search.actions.mjs +41 -0
  42. package/esm2022/store/actions/snackbar.actions.mjs +68 -0
  43. package/esm2022/store/actions/template.actions.mjs +45 -0
  44. package/esm2022/store/actions/upload.actions.mjs +53 -0
  45. package/esm2022/store/actions/viewer.actions.mjs +93 -0
  46. package/esm2022/store/effects/router.effects.mjs +110 -0
  47. package/esm2022/store/effects/snackbar.effects.mjs +80 -0
  48. package/{fesm2020 → fesm2022}/alfresco-aca-shared-store.mjs +219 -142
  49. package/fesm2022/alfresco-aca-shared-store.mjs.map +1 -0
  50. package/{fesm2020 → fesm2022}/alfresco-aca-shared.mjs +466 -301
  51. package/fesm2022/alfresco-aca-shared.mjs.map +1 -0
  52. package/lib/components/document-base-page/document-base-page.component.d.ts +7 -3
  53. package/lib/components/generic-error/generic-error.component.d.ts +1 -1
  54. package/lib/components/info-drawer/info-drawer.component.d.ts +1 -1
  55. package/lib/components/locked-by/locked-by.component.d.ts +1 -1
  56. package/lib/components/page-layout/page-layout-content.component.d.ts +1 -1
  57. package/lib/components/page-layout/page-layout.component.d.ts +1 -1
  58. package/lib/components/toolbar/toolbar-action/toolbar-action.component.d.ts +1 -1
  59. package/lib/components/toolbar/toolbar-button/toolbar-button.component.d.ts +1 -1
  60. package/lib/components/toolbar/toolbar-menu/toolbar-menu.component.d.ts +1 -1
  61. package/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.d.ts +1 -1
  62. package/lib/components/toolbar/toolbar.component.d.ts +1 -1
  63. package/lib/directives/contextmenu/contextmenu.directive.d.ts +3 -1
  64. package/lib/services/app-hook.service.d.ts +6 -6
  65. package/lib/services/app-settings.service.d.ts +12 -0
  66. package/lib/services/app.service.d.ts +1 -1
  67. package/lib/services/navigation-history.service.d.ts +13 -0
  68. package/lib/services/node-permission.service.d.ts +1 -1
  69. package/package.json +15 -25
  70. package/public-api.d.ts +1 -0
  71. package/store/actions/context-menu-action-types.d.ts +2 -1
  72. package/store/actions/contextmenu.actions.d.ts +7 -0
  73. package/store/actions/search-ai.actions.d.ts +2 -1
  74. package/store/effects/router.effects.d.ts +1 -5
  75. package/store/effects/snackbar.effects.d.ts +0 -29
  76. package/esm2020/lib/components/document-base-page/document-base-page.component.mjs +0 -206
  77. package/esm2020/lib/components/generic-error/generic-error.component.mjs +0 -43
  78. package/esm2020/lib/components/info-drawer/info-drawer.component.mjs +0 -132
  79. package/esm2020/lib/components/locked-by/locked-by.component.mjs +0 -54
  80. package/esm2020/lib/components/open-in-app/open-in-app.component.mjs +0 -68
  81. package/esm2020/lib/components/page-layout/page-layout-content.component.mjs +0 -50
  82. package/esm2020/lib/components/page-layout/page-layout-error.component.mjs +0 -42
  83. package/esm2020/lib/components/page-layout/page-layout-header.component.mjs +0 -42
  84. package/esm2020/lib/components/page-layout/page-layout.component.mjs +0 -61
  85. package/esm2020/lib/components/page-layout/page-layout.module.mjs +0 -42
  86. package/esm2020/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +0 -58
  87. package/esm2020/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +0 -74
  88. package/esm2020/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +0 -87
  89. package/esm2020/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +0 -71
  90. package/esm2020/lib/components/toolbar/toolbar.component.mjs +0 -44
  91. package/esm2020/lib/deprecated/shared-toolbar.module.mjs +0 -43
  92. package/esm2020/lib/deprecated/shared.module.mjs +0 -44
  93. package/esm2020/lib/directives/contextmenu/contextmenu.directive.mjs +0 -104
  94. package/esm2020/lib/directives/pagination.directive.mjs +0 -55
  95. package/esm2020/lib/services/aca-mobile-app-switcher.service.mjs +0 -129
  96. package/esm2020/lib/services/app-hook.service.mjs +0 -79
  97. package/esm2020/lib/services/app-settings.service.mjs +0 -140
  98. package/esm2020/lib/services/app.extension.service.mjs +0 -462
  99. package/esm2020/lib/services/app.service.mjs +0 -221
  100. package/esm2020/lib/services/auto-download.service.mjs +0 -60
  101. package/esm2020/lib/services/content-api.service.mjs +0 -268
  102. package/esm2020/lib/services/node-permission.service.mjs +0 -89
  103. package/esm2020/lib/services/router.extension.service.mjs +0 -105
  104. package/esm2020/lib/services/user-profile.service.mjs +0 -77
  105. package/esm2020/lib/testing/lib-testing-module.mjs +0 -161
  106. package/esm2020/public-api.mjs +0 -61
  107. package/esm2020/store/actions/app.actions.mjs +0 -108
  108. package/esm2020/store/actions/context-menu-action-types.mjs +0 -28
  109. package/esm2020/store/actions/contextmenu.actions.mjs +0 -31
  110. package/esm2020/store/actions/library.actions.mjs +0 -63
  111. package/esm2020/store/actions/metadata-aspect.actions.mjs +0 -31
  112. package/esm2020/store/actions/node.actions.mjs +0 -188
  113. package/esm2020/store/actions/router.actions.mjs +0 -54
  114. package/esm2020/store/actions/search-ai.actions.mjs +0 -41
  115. package/esm2020/store/actions/search.actions.mjs +0 -41
  116. package/esm2020/store/actions/snackbar.actions.mjs +0 -57
  117. package/esm2020/store/actions/template.actions.mjs +0 -47
  118. package/esm2020/store/actions/upload.actions.mjs +0 -49
  119. package/esm2020/store/actions/viewer.actions.mjs +0 -81
  120. package/esm2020/store/effects/router.effects.mjs +0 -114
  121. package/esm2020/store/effects/snackbar.effects.mjs +0 -85
  122. package/fesm2015/alfresco-aca-shared-rules.mjs +0 -795
  123. package/fesm2015/alfresco-aca-shared-rules.mjs.map +0 -1
  124. package/fesm2015/alfresco-aca-shared-store.mjs +0 -1278
  125. package/fesm2015/alfresco-aca-shared-store.mjs.map +0 -1
  126. package/fesm2015/alfresco-aca-shared.mjs +0 -3278
  127. package/fesm2015/alfresco-aca-shared.mjs.map +0 -1
  128. package/fesm2020/alfresco-aca-shared-store.mjs.map +0 -1
  129. package/fesm2020/alfresco-aca-shared.mjs.map +0 -1
  130. /package/{esm2020 → esm2022}/alfresco-aca-shared.mjs +0 -0
  131. /package/{esm2020 → esm2022}/lib/adf-extensions/extensions-data-loader.guard.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/components/document-base-page/document-base-page.service.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/constants/mime-types.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/models/types.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/models/viewer.rules.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/routing/plugin-enabled.guard.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/routing/shared.guard.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/utils/node.utils.mjs +0 -0
  140. /package/{esm2020 → esm2022}/rules/alfresco-aca-shared-rules.mjs +0 -0
  141. /package/{esm2020 → esm2022}/rules/app.rules.mjs +0 -0
  142. /package/{esm2020 → esm2022}/rules/navigation.rules.mjs +0 -0
  143. /package/{esm2020 → esm2022}/rules/public-api.mjs +0 -0
  144. /package/{esm2020 → esm2022}/rules/repository.rules.mjs +0 -0
  145. /package/{esm2020 → esm2022}/rules/user.rules.mjs +0 -0
  146. /package/{esm2020 → esm2022}/store/actions/app-action-types.mjs +0 -0
  147. /package/{esm2020 → esm2022}/store/actions/router-action-types.mjs +0 -0
  148. /package/{esm2020 → esm2022}/store/actions/template-action-types.mjs +0 -0
  149. /package/{esm2020 → esm2022}/store/alfresco-aca-shared-store.mjs +0 -0
  150. /package/{esm2020 → esm2022}/store/models/ai-search-by-term-payload.mjs +0 -0
  151. /package/{esm2020 → esm2022}/store/models/delete-status.model.mjs +0 -0
  152. /package/{esm2020 → esm2022}/store/models/deleted-node-info.model.mjs +0 -0
  153. /package/{esm2020 → esm2022}/store/models/modal-configuration.mjs +0 -0
  154. /package/{esm2020 → esm2022}/store/models/node-info.model.mjs +0 -0
  155. /package/{esm2020 → esm2022}/store/models/search-option.model.mjs +0 -0
  156. /package/{esm2020 → esm2022}/store/public-api.mjs +0 -0
  157. /package/{esm2020 → esm2022}/store/selectors/app.selectors.mjs +0 -0
  158. /package/{esm2020 → esm2022}/store/states/app.state.mjs +0 -0
  159. /package/{fesm2020 → fesm2022}/alfresco-aca-shared-rules.mjs +0 -0
  160. /package/{fesm2020 → fesm2022}/alfresco-aca-shared-rules.mjs.map +0 -0
@@ -1,221 +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 { AuthenticationService, AppConfigService, PageTitleService, UserPreferencesService, NotificationService } from '@alfresco/adf-core';
26
- import { BehaviorSubject, Subject } from 'rxjs';
27
- import { AlfrescoApiService, SearchQueryBuilderService, SharedLinksApiService, UploadService } from '@alfresco/adf-content-services';
28
- import { OverlayContainer } from '@angular/cdk/overlay';
29
- import { ActivatedRoute, ActivationEnd, NavigationStart, Router } from '@angular/router';
30
- import { filter, map } from 'rxjs/operators';
31
- import { SetCurrentUrlAction, SetRepositoryInfoAction, SetUserProfileAction, ResetSelectionAction } from '@alfresco/aca-shared/store';
32
- import { ContentApiService } from './content-api.service';
33
- import { RouterExtensionService } from './router.extension.service';
34
- import { Store } from '@ngrx/store';
35
- import { AcaMobileAppSwitcherService } from './aca-mobile-app-switcher.service';
36
- import { AppSettingsService } from './app-settings.service';
37
- import { UserProfileService } from './user-profile.service';
38
- import { MatDialog } from '@angular/material/dialog';
39
- import * as i0 from "@angular/core";
40
- import * as i1 from "@alfresco/adf-core";
41
- import * as i2 from "@ngrx/store";
42
- import * as i3 from "@angular/router";
43
- import * as i4 from "@alfresco/adf-content-services";
44
- import * as i5 from "./router.extension.service";
45
- import * as i6 from "./content-api.service";
46
- import * as i7 from "@angular/cdk/overlay";
47
- import * as i8 from "./aca-mobile-app-switcher.service";
48
- import * as i9 from "./app-settings.service";
49
- import * as i10 from "./user-profile.service";
50
- // After moving shell to ADF to core, AppService will implement ShellAppService
51
- export class AppService {
52
- /**
53
- * Whether `withCredentials` mode is enabled.
54
- * Usually means that `Kerberos` mode is used.
55
- */
56
- get withCredentials() {
57
- return this.config.get('auth.withCredentials', false);
58
- }
59
- constructor(preferencesService, authenticationService, store, router, activatedRoute, config, pageTitle, alfrescoApiService, uploadService, routerExtensionService, contentApi, sharedLinksApiService, overlayContainer, searchQueryBuilderService, acaMobileAppSwitcherService, appSettingsService, userProfileService) {
60
- this.preferencesService = preferencesService;
61
- this.authenticationService = authenticationService;
62
- this.store = store;
63
- this.router = router;
64
- this.activatedRoute = activatedRoute;
65
- this.config = config;
66
- this.pageTitle = pageTitle;
67
- this.alfrescoApiService = alfrescoApiService;
68
- this.uploadService = uploadService;
69
- this.routerExtensionService = routerExtensionService;
70
- this.contentApi = contentApi;
71
- this.sharedLinksApiService = sharedLinksApiService;
72
- this.overlayContainer = overlayContainer;
73
- this.acaMobileAppSwitcherService = acaMobileAppSwitcherService;
74
- this.appSettingsService = appSettingsService;
75
- this.userProfileService = userProfileService;
76
- this.notificationService = inject(NotificationService);
77
- this.matDialog = inject(MatDialog);
78
- this.pageHeading = new BehaviorSubject('');
79
- /** @deprecated page title is updated automatically */
80
- this.pageHeading$ = this.pageHeading.asObservable();
81
- this.appNavNarMode$ = new BehaviorSubject('expanded');
82
- this.toggleAppNavBar$ = new Subject();
83
- this.hideSidenavConditions = ['/preview/'];
84
- this.minimizeSidenavConditions = ['search'];
85
- this.onDestroy$ = new Subject();
86
- this.ready = new BehaviorSubject(this.authenticationService.isLoggedIn() || this.withCredentials);
87
- this.ready$ = this.ready.asObservable();
88
- this.authenticationService.onLogin.subscribe(() => {
89
- this.ready.next(true);
90
- this.preferencesService.setStoragePrefix(this.authenticationService.getUsername());
91
- });
92
- this.authenticationService.onLogout.subscribe(() => {
93
- searchQueryBuilderService.resetToDefaults();
94
- acaMobileAppSwitcherService.clearSessionExpireTime();
95
- acaMobileAppSwitcherService.closeDialog();
96
- });
97
- this.router.events
98
- .pipe(filter((event) => event instanceof ActivationEnd && event.snapshot.children.length === 0), map((event) => event.snapshot?.data?.title ?? ''))
99
- .subscribe((title) => {
100
- this.pageHeading.next(title);
101
- this.pageTitle.setTitle(title);
102
- });
103
- }
104
- ngOnDestroy() {
105
- this.onDestroy$.next(true);
106
- this.onDestroy$.complete();
107
- }
108
- init() {
109
- this.alfrescoApiService.getInstance().on('error', (error) => {
110
- if (error.status === 401 && !this.alfrescoApiService.isExcludedErrorListener(error?.response?.req?.url)) {
111
- if (!this.authenticationService.isLoggedIn()) {
112
- this.matDialog.closeAll();
113
- let redirectUrl = this.activatedRoute.snapshot.queryParams['redirectUrl'];
114
- if (!redirectUrl) {
115
- redirectUrl = this.router.url;
116
- }
117
- this.router.navigate(['/login'], {
118
- queryParams: { redirectUrl }
119
- });
120
- }
121
- }
122
- });
123
- this.loadCustomCss();
124
- this.loadCustomWebFont();
125
- const { router } = this;
126
- this.router.events.pipe(filter((event) => event instanceof ActivationEnd && event.snapshot.children.length === 0)).subscribe(() => {
127
- this.store.dispatch(new SetCurrentUrlAction(router.url));
128
- });
129
- this.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {
130
- this.store.dispatch(new ResetSelectionAction());
131
- });
132
- this.routerExtensionService.mapExtensionRoutes();
133
- this.uploadService.fileUploadError.subscribe((error) => this.onFileUploadedError(error));
134
- this.sharedLinksApiService.error.subscribe((err) => {
135
- if (err?.message) {
136
- this.notificationService.showError(err.message);
137
- }
138
- });
139
- this.ready$.subscribe((isReady) => {
140
- if (isReady) {
141
- this.loadRepositoryStatus();
142
- this.loadUserProfile();
143
- setTimeout(() => {
144
- this.openMobileAppDialog();
145
- });
146
- }
147
- });
148
- this.overlayContainer.getContainerElement().setAttribute('role', 'region');
149
- }
150
- setAppNavbarMode(mode) {
151
- this.appNavNarMode$.next(mode);
152
- this.preferencesService.set('expandedSidenav', mode === 'expanded');
153
- }
154
- loadRepositoryStatus() {
155
- this.contentApi.getRepositoryInformation().subscribe((response) => {
156
- if (response?.entry?.repository) {
157
- this.store.dispatch(new SetRepositoryInfoAction(response.entry.repository));
158
- }
159
- });
160
- }
161
- async loadUserProfile() {
162
- const profile = await this.userProfileService.loadUserProfile();
163
- this.store.dispatch(new SetUserProfileAction(profile));
164
- }
165
- onFileUploadedError(error) {
166
- let message = 'APP.MESSAGES.UPLOAD.ERROR.GENERIC';
167
- if (error?.error?.status === 403) {
168
- message = 'APP.MESSAGES.UPLOAD.ERROR.403';
169
- }
170
- if (error?.error?.status === 404) {
171
- message = 'APP.MESSAGES.UPLOAD.ERROR.404';
172
- }
173
- if (error?.error?.status === 409) {
174
- message = 'APP.MESSAGES.UPLOAD.ERROR.CONFLICT';
175
- }
176
- if (error?.error?.status === 500) {
177
- message = 'APP.MESSAGES.UPLOAD.ERROR.500';
178
- }
179
- if (error?.error?.status === 504) {
180
- message = 'APP.MESSAGES.UPLOAD.ERROR.504';
181
- }
182
- this.notificationService.showError(message);
183
- }
184
- loadCustomCss() {
185
- const customCssPath = this.appSettingsService.customCssPath;
186
- if (customCssPath) {
187
- this.createLink(customCssPath);
188
- }
189
- }
190
- loadCustomWebFont() {
191
- const webFontPath = this.appSettingsService.webFontPath;
192
- if (webFontPath) {
193
- this.createLink(webFontPath);
194
- }
195
- }
196
- createLink(url) {
197
- const cssLinkElement = document.createElement('link');
198
- cssLinkElement.setAttribute('rel', 'stylesheet');
199
- cssLinkElement.setAttribute('type', 'text/css');
200
- cssLinkElement.setAttribute('href', url);
201
- document.head.appendChild(cssLinkElement);
202
- }
203
- openMobileAppDialog() {
204
- const isMobileSwitchEnabled = this.config.get('mobileAppSwitch.enabled', false);
205
- if (isMobileSwitchEnabled) {
206
- this.acaMobileAppSwitcherService.resolveExistenceOfDialog();
207
- }
208
- else {
209
- this.acaMobileAppSwitcherService.clearSessionExpireTime();
210
- }
211
- }
212
- }
213
- AppService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppService, deps: [{ token: i1.UserPreferencesService }, { token: i1.AuthenticationService }, { token: i2.Store }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i1.AppConfigService }, { token: i1.PageTitleService }, { token: i4.AlfrescoApiService }, { token: i4.UploadService }, { token: i5.RouterExtensionService }, { token: i6.ContentApiService }, { token: i4.SharedLinksApiService }, { token: i7.OverlayContainer }, { token: i4.SearchQueryBuilderService }, { token: i8.AcaMobileAppSwitcherService }, { token: i9.AppSettingsService }, { token: i10.UserProfileService }], target: i0.ɵɵFactoryTarget.Injectable });
214
- AppService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppService, providedIn: 'root' });
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppService, decorators: [{
216
- type: Injectable,
217
- args: [{
218
- providedIn: 'root'
219
- }]
220
- }], ctorParameters: function () { return [{ type: i1.UserPreferencesService }, { type: i1.AuthenticationService }, { type: i2.Store }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i1.AppConfigService }, { type: i1.PageTitleService }, { type: i4.AlfrescoApiService }, { type: i4.UploadService }, { type: i5.RouterExtensionService }, { type: i6.ContentApiService }, { type: i4.SharedLinksApiService }, { type: i7.OverlayContainer }, { type: i4.SearchQueryBuilderService }, { type: i8.AcaMobileAppSwitcherService }, { type: i9.AppSettingsService }, { type: i10.UserProfileService }]; } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Etc2hhcmVkL3NyYy9saWIvc2VydmljZXMvYXBwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1SSxPQUFPLEVBQWMsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsYUFBYSxFQUVkLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFZLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVo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VUFBVSxjQUhULE1BQU07NEZBR1AsVUFBVTtrQkFKdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgQXBwQ29uZmlnU2VydmljZSwgUGFnZVRpdGxlU2VydmljZSwgVXNlclByZWZlcmVuY2VzU2VydmljZSwgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFsZnJlc2NvQXBpU2VydmljZSxcbiAgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSxcbiAgU2hhcmVkTGlua3NBcGlTZXJ2aWNlLFxuICBVcGxvYWRTZXJ2aWNlLFxuICBGaWxlVXBsb2FkRXJyb3JFdmVudFxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBBY3RpdmF0aW9uRW5kLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcFN0b3JlLCBTZXRDdXJyZW50VXJsQWN0aW9uLCBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbiwgU2V0VXNlclByb2ZpbGVBY3Rpb24sIFJlc2V0U2VsZWN0aW9uQWN0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgQ29udGVudEFwaVNlcnZpY2UgfSBmcm9tICcuL2NvbnRlbnQtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyRXh0ZW5zaW9uU2VydmljZSB9IGZyb20gJy4vcm91dGVyLmV4dGVuc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRGlzY292ZXJ5RW50cnkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZSB9IGZyb20gJy4vYWNhLW1vYmlsZS1hcHAtc3dpdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTaGVsbEFwcFNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvc2hlbGwnO1xuaW1wb3J0IHsgQXBwU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuL3VzZXItcHJvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuLy8gQWZ0ZXIgbW92aW5nIHNoZWxsIHRvIEFERiB0byBjb3JlLCBBcHBTZXJ2aWNlIHdpbGwgaW1wbGVtZW50IFNoZWxsQXBwU2VydmljZVxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2UgaW1wbGVtZW50cyBTaGVsbEFwcFNlcnZpY2UsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZSA9IGluamVjdChOb3RpZmljYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBtYXREaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgcHJpdmF0ZSByZWFkeTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuXG4gIHJlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIHBhZ2VIZWFkaW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIC8qKiBAZGVwcmVjYXRlZCBwYWdlIHRpdGxlIGlzIHVwZGF0ZWQgYXV0b21hdGljYWxseSAqL1xuICBwYWdlSGVhZGluZyQgPSB0aGlzLnBhZ2VIZWFkaW5nLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGFwcE5hdk5hck1vZGUkOiBTdWJqZWN0PCdjb2xsYXBzZWQnIHwgJ2V4cGFuZGVkJz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCdleHBhbmRlZCcpO1xuICB0b2dnbGVBcHBOYXZCYXIkID0gbmV3IFN1YmplY3QoKTtcblxuICBoaWRlU2lkZW5hdkNvbmRpdGlvbnMgPSBbJy9wcmV2aWV3LyddO1xuICBtaW5pbWl6ZVNpZGVuYXZDb25kaXRpb25zID0gWydzZWFyY2gnXTtcblxuICBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogV2hldGhlciBgd2l0aENyZWRlbnRpYWxzYCBtb2RlIGlzIGVuYWJsZWQuXG4gICAqIFVzdWFsbHkgbWVhbnMgdGhhdCBgS2VyYmVyb3NgIG1vZGUgaXMgdXNlZC5cbiAgICovXG4gIGdldCB3aXRoQ3JlZGVudGlhbHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldDxib29sZWFuPignYXV0aC53aXRoQ3JlZGVudGlhbHMnLCBmYWxzZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcHJlZmVyZW5jZXNTZXJ2aWNlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8QXBwU3RvcmU+LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYWdlVGl0bGU6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGZyZXNjb0FwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJFeHRlbnNpb25TZXJ2aWNlOiBSb3V0ZXJFeHRlbnNpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGVudEFwaTogQ29udGVudEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzaGFyZWRMaW5rc0FwaVNlcnZpY2U6IFNoYXJlZExpbmtzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIG92ZXJsYXlDb250YWluZXI6IE92ZXJsYXlDb250YWluZXIsXG4gICAgc2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZTogU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZTogQWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2V0dGluZ3NTZXJ2aWNlOiBBcHBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyUHJvZmlsZVNlcnZpY2U6IFVzZXJQcm9maWxlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnJlYWR5ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5pc0xvZ2dlZEluKCkgfHwgdGhpcy53aXRoQ3JlZGVudGlhbHMpO1xuICAgIHRoaXMucmVhZHkkID0gdGhpcy5yZWFkeS5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLm9uTG9naW4uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVhZHkubmV4dCh0cnVlKTtcbiAgICAgIHRoaXMucHJlZmVyZW5jZXNTZXJ2aWNlLnNldFN0b3JhZ2VQcmVmaXgodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VXNlcm5hbWUoKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5vbkxvZ291dC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgc2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZS5yZXNldFRvRGVmYXVsdHMoKTtcbiAgICAgIGFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZS5jbGVhclNlc3Npb25FeHBpcmVUaW1lKCk7XG4gICAgICBhY2FNb2JpbGVBcHBTd2l0Y2hlclNlcnZpY2UuY2xvc2VEaWFsb2coKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgQWN0aXZhdGlvbkVuZCAmJiBldmVudC5zbmFwc2hvdC5jaGlsZHJlbi5sZW5ndGggPT09IDApLFxuICAgICAgICBtYXAoKGV2ZW50OiBBY3RpdmF0aW9uRW5kKSA9PiBldmVudC5zbmFwc2hvdD8uZGF0YT8udGl0bGUgPz8gJycpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh0aXRsZSkgPT4ge1xuICAgICAgICB0aGlzLnBhZ2VIZWFkaW5nLm5leHQodGl0bGUpO1xuICAgICAgICB0aGlzLnBhZ2VUaXRsZS5zZXRUaXRsZSh0aXRsZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFsZnJlc2NvQXBpU2VydmljZS5nZXRJbnN0YW5jZSgpLm9uKCdlcnJvcicsIChlcnJvcjogeyBzdGF0dXM6IG51bWJlcjsgcmVzcG9uc2U6IGFueSB9KSA9PiB7XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEgJiYgIXRoaXMuYWxmcmVzY29BcGlTZXJ2aWNlLmlzRXhjbHVkZWRFcnJvckxpc3RlbmVyKGVycm9yPy5yZXNwb25zZT8ucmVxPy51cmwpKSB7XG4gICAgICAgIGlmICghdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuaXNMb2dnZWRJbigpKSB7XG4gICAgICAgICAgdGhpcy5tYXREaWFsb2cuY2xvc2VBbGwoKTtcblxuICAgICAgICAgIGxldCByZWRpcmVjdFVybCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3JlZGlyZWN0VXJsJ107XG4gICAgICAgICAgaWYgKCFyZWRpcmVjdFVybCkge1xuICAgICAgICAgICAgcmVkaXJlY3RVcmwgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSwge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgcmVkaXJlY3RVcmwgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmxvYWRDdXN0b21Dc3MoKTtcbiAgICB0aGlzLmxvYWRDdXN0b21XZWJGb250KCk7XG5cbiAgICBjb25zdCB7IHJvdXRlciB9ID0gdGhpcztcblxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgQWN0aXZhdGlvbkVuZCAmJiBldmVudC5zbmFwc2hvdC5jaGlsZHJlbi5sZW5ndGggPT09IDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0Q3VycmVudFVybEFjdGlvbihyb3V0ZXIudXJsKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBSZXNldFNlbGVjdGlvbkFjdGlvbigpKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyRXh0ZW5zaW9uU2VydmljZS5tYXBFeHRlbnNpb25Sb3V0ZXMoKTtcblxuICAgIHRoaXMudXBsb2FkU2VydmljZS5maWxlVXBsb2FkRXJyb3Iuc3Vic2NyaWJlKChlcnJvcikgPT4gdGhpcy5vbkZpbGVVcGxvYWRlZEVycm9yKGVycm9yKSk7XG5cbiAgICB0aGlzLnNoYXJlZExpbmtzQXBpU2VydmljZS5lcnJvci5zdWJzY3JpYmUoKGVycjogeyBtZXNzYWdlOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgaWYgKGVycj8ubWVzc2FnZSkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd0Vycm9yKGVyci5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMucmVhZHkkLnN1YnNjcmliZSgoaXNSZWFkeSkgPT4ge1xuICAgICAgaWYgKGlzUmVhZHkpIHtcbiAgICAgICAgdGhpcy5sb2FkUmVwb3NpdG9yeVN0YXR1cygpO1xuICAgICAgICB0aGlzLmxvYWRVc2VyUHJvZmlsZSgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLm9wZW5Nb2JpbGVBcHBEaWFsb2coKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm92ZXJsYXlDb250YWluZXIuZ2V0Q29udGFpbmVyRWxlbWVudCgpLnNldEF0dHJpYnV0ZSgncm9sZScsICdyZWdpb24nKTtcbiAgfVxuXG4gIHNldEFwcE5hdmJhck1vZGUobW9kZTogJ2V4cGFuZGVkJyB8ICdjb2xsYXBzZWQnKTogdm9pZCB7XG4gICAgdGhpcy5hcHBOYXZOYXJNb2RlJC5uZXh0KG1vZGUpO1xuICAgIHRoaXMucHJlZmVyZW5jZXNTZXJ2aWNlLnNldCgnZXhwYW5kZWRTaWRlbmF2JywgbW9kZSA9PT0gJ2V4cGFuZGVkJyk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRSZXBvc2l0b3J5U3RhdHVzKCkge1xuICAgIHRoaXMuY29udGVudEFwaS5nZXRSZXBvc2l0b3J5SW5mb3JtYXRpb24oKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBEaXNjb3ZlcnlFbnRyeSkgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlPy5lbnRyeT8ucmVwb3NpdG9yeSkge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbihyZXNwb25zZS5lbnRyeS5yZXBvc2l0b3J5KSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRVc2VyUHJvZmlsZSgpIHtcbiAgICBjb25zdCBwcm9maWxlID0gYXdhaXQgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2UubG9hZFVzZXJQcm9maWxlKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0VXNlclByb2ZpbGVBY3Rpb24ocHJvZmlsZSkpO1xuICB9XG5cbiAgb25GaWxlVXBsb2FkZWRFcnJvcihlcnJvcjogRmlsZVVwbG9hZEVycm9yRXZlbnQpIHtcbiAgICBsZXQgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLkdFTkVSSUMnO1xuXG4gICAgaWYgKGVycm9yPy5lcnJvcj8uc3RhdHVzID09PSA0MDMpIHtcbiAgICAgIG1lc3NhZ2UgPSAnQVBQLk1FU1NBR0VTLlVQTE9BRC5FUlJPUi40MDMnO1xuICAgIH1cblxuICAgIGlmIChlcnJvcj8uZXJyb3I/LnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICBtZXNzYWdlID0gJ0FQUC5NRVNTQUdFUy5VUExPQUQuRVJST1IuNDA0JztcbiAgICB9XG5cbiAgICBpZiAoZXJyb3I/LmVycm9yPy5zdGF0dXMgPT09IDQwOSkge1xuICAgICAgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLkNPTkZMSUNUJztcbiAgICB9XG5cbiAgICBpZiAoZXJyb3I/LmVycm9yPy5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLjUwMCc7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yPy5lcnJvcj8uc3RhdHVzID09PSA1MDQpIHtcbiAgICAgIG1lc3NhZ2UgPSAnQVBQLk1FU1NBR0VTLlVQTE9BRC5FUlJPUi41MDQnO1xuICAgIH1cblxuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93RXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRDdXN0b21Dc3MoKTogdm9pZCB7XG4gICAgY29uc3QgY3VzdG9tQ3NzUGF0aCA9IHRoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlLmN1c3RvbUNzc1BhdGg7XG4gICAgaWYgKGN1c3RvbUNzc1BhdGgpIHtcbiAgICAgIHRoaXMuY3JlYXRlTGluayhjdXN0b21Dc3NQYXRoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRDdXN0b21XZWJGb250KCk6IHZvaWQge1xuICAgIGNvbnN0IHdlYkZvbnRQYXRoID0gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2Uud2ViRm9udFBhdGg7XG4gICAgaWYgKHdlYkZvbnRQYXRoKSB7XG4gICAgICB0aGlzLmNyZWF0ZUxpbmsod2ViRm9udFBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTGluayh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNzc0xpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgIGNzc0xpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgncmVsJywgJ3N0eWxlc2hlZXQnKTtcbiAgICBjc3NMaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9jc3MnKTtcbiAgICBjc3NMaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoY3NzTGlua0VsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Nb2JpbGVBcHBEaWFsb2coKTogdm9pZCB7XG4gICAgY29uc3QgaXNNb2JpbGVTd2l0Y2hFbmFibGVkOiBib29sZWFuID0gdGhpcy5jb25maWcuZ2V0PGJvb2xlYW4+KCdtb2JpbGVBcHBTd2l0Y2guZW5hYmxlZCcsIGZhbHNlKTtcbiAgICBpZiAoaXNNb2JpbGVTd2l0Y2hFbmFibGVkKSB7XG4gICAgICB0aGlzLmFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZS5yZXNvbHZlRXhpc3RlbmNlT2ZEaWFsb2coKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY2FNb2JpbGVBcHBTd2l0Y2hlclNlcnZpY2UuY2xlYXJTZXNzaW9uRXhwaXJlVGltZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,60 +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 { MatDialog } from '@angular/material/dialog';
26
- import { FileAutoDownloadComponent } from '@alfresco/adf-content-services';
27
- import * as i0 from "@angular/core";
28
- const BYTES_TO_MB_CONVERSION_VALUE = 1048576;
29
- export class AutoDownloadService {
30
- constructor() {
31
- this.dialog = inject(MatDialog);
32
- }
33
- shouldDownload(node, threshold) {
34
- const fileSizeInBytes = node?.entry?.content?.sizeInBytes || 0;
35
- const sizeInMB = fileSizeInBytes / BYTES_TO_MB_CONVERSION_VALUE;
36
- return sizeInMB && sizeInMB > threshold;
37
- }
38
- /**
39
- * Opens the dialog to download the node content.
40
- * Determines whether node content should be auto downloaded based on the file size and the configured threshold.
41
- * @param node node entry
42
- * @param threshold file size threshold in MB
43
- */
44
- tryDownload(node, threshold) {
45
- if (this.shouldDownload(node, threshold)) {
46
- this.dialog.open(FileAutoDownloadComponent, { disableClose: true, data: node });
47
- return true;
48
- }
49
- return false;
50
- }
51
- }
52
- AutoDownloadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AutoDownloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
53
- AutoDownloadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AutoDownloadService, providedIn: 'root' });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AutoDownloadService, decorators: [{
55
- type: Injectable,
56
- args: [{
57
- providedIn: 'root'
58
- }]
59
- }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kb3dubG9hZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2F1dG8tZG93bmxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFM0UsTUFBTSw0QkFBNEIsR0FBRyxPQUFPLENBQUM7QUFLN0MsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUlVLFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0F1QnBDO0lBckJTLGNBQWMsQ0FBQyxJQUFlLEVBQUUsU0FBaUI7UUFDdkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxlQUFlLEdBQUcsNEJBQTRCLENBQUM7UUFFaEUsT0FBTyxRQUFRLElBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsSUFBZSxFQUFFLFNBQWlCO1FBQzVDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2hGLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2lIQXZCVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTm9kZUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBGaWxlQXV0b0Rvd25sb2FkQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcblxuY29uc3QgQllURVNfVE9fTUJfQ09OVkVSU0lPTl9WQUxVRSA9IDEwNDg1NzY7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9Eb3dubG9hZFNlcnZpY2Uge1xuICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuXG4gIHByaXZhdGUgc2hvdWxkRG93bmxvYWQobm9kZTogTm9kZUVudHJ5LCB0aHJlc2hvbGQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZpbGVTaXplSW5CeXRlcyA9IG5vZGU/LmVudHJ5Py5jb250ZW50Py5zaXplSW5CeXRlcyB8fCAwO1xuICAgIGNvbnN0IHNpemVJbk1CID0gZmlsZVNpemVJbkJ5dGVzIC8gQllURVNfVE9fTUJfQ09OVkVSU0lPTl9WQUxVRTtcblxuICAgIHJldHVybiBzaXplSW5NQiAmJiBzaXplSW5NQiA+IHRocmVzaG9sZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgZGlhbG9nIHRvIGRvd25sb2FkIHRoZSBub2RlIGNvbnRlbnQuXG4gICAqIERldGVybWluZXMgd2hldGhlciBub2RlIGNvbnRlbnQgc2hvdWxkIGJlIGF1dG8gZG93bmxvYWRlZCBiYXNlZCBvbiB0aGUgZmlsZSBzaXplIGFuZCB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuXG4gICAqIEBwYXJhbSBub2RlIG5vZGUgZW50cnlcbiAgICogQHBhcmFtIHRocmVzaG9sZCBmaWxlIHNpemUgdGhyZXNob2xkIGluIE1CXG4gICAqL1xuICB0cnlEb3dubG9hZChub2RlOiBOb2RlRW50cnksIHRocmVzaG9sZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuc2hvdWxkRG93bmxvYWQobm9kZSwgdGhyZXNob2xkKSkge1xuICAgICAgdGhpcy5kaWFsb2cub3BlbihGaWxlQXV0b0Rvd25sb2FkQ29tcG9uZW50LCB7IGRpc2FibGVDbG9zZTogdHJ1ZSwgZGF0YTogbm9kZSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19