@alfresco/aca-shared 5.1.1 → 6.0.0-11114941325

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 (149) hide show
  1. package/esm2022/lib/components/document-base-page/document-base-page.component.mjs +210 -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 +106 -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 +139 -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/node-permission.service.mjs +88 -0
  28. package/esm2022/lib/services/router.extension.service.mjs +108 -0
  29. package/esm2022/lib/services/user-profile.service.mjs +76 -0
  30. package/esm2022/lib/testing/lib-testing-module.mjs +163 -0
  31. package/esm2022/store/actions/app.actions.mjs +116 -0
  32. package/{esm2020/store/actions/search-ai.actions.mjs → esm2022/store/actions/contextmenu.actions.mjs} +7 -16
  33. package/esm2022/store/actions/library.actions.mjs +67 -0
  34. package/esm2022/store/actions/metadata-aspect.actions.mjs +32 -0
  35. package/esm2022/store/actions/node.actions.mjs +217 -0
  36. package/esm2022/store/actions/router.actions.mjs +56 -0
  37. package/esm2022/store/actions/search-ai.actions.mjs +43 -0
  38. package/esm2022/store/actions/search.actions.mjs +41 -0
  39. package/esm2022/store/actions/snackbar.actions.mjs +68 -0
  40. package/esm2022/store/actions/template.actions.mjs +45 -0
  41. package/esm2022/store/actions/upload.actions.mjs +53 -0
  42. package/esm2022/store/actions/viewer.actions.mjs +93 -0
  43. package/esm2022/store/effects/router.effects.mjs +110 -0
  44. package/esm2022/store/effects/snackbar.effects.mjs +80 -0
  45. package/{fesm2020 → fesm2022}/alfresco-aca-shared-store.mjs +205 -140
  46. package/fesm2022/alfresco-aca-shared-store.mjs.map +1 -0
  47. package/{fesm2020 → fesm2022}/alfresco-aca-shared.mjs +364 -289
  48. package/fesm2022/alfresco-aca-shared.mjs.map +1 -0
  49. package/lib/components/document-base-page/document-base-page.component.d.ts +1 -1
  50. package/lib/components/generic-error/generic-error.component.d.ts +1 -1
  51. package/lib/components/info-drawer/info-drawer.component.d.ts +1 -1
  52. package/lib/components/locked-by/locked-by.component.d.ts +1 -1
  53. package/lib/components/page-layout/page-layout-content.component.d.ts +1 -1
  54. package/lib/components/page-layout/page-layout.component.d.ts +1 -1
  55. package/lib/components/toolbar/toolbar-action/toolbar-action.component.d.ts +1 -1
  56. package/lib/components/toolbar/toolbar-button/toolbar-button.component.d.ts +1 -1
  57. package/lib/components/toolbar/toolbar-menu/toolbar-menu.component.d.ts +1 -1
  58. package/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.d.ts +1 -1
  59. package/lib/components/toolbar/toolbar.component.d.ts +1 -1
  60. package/lib/directives/contextmenu/contextmenu.directive.d.ts +1 -1
  61. package/lib/services/app-hook.service.d.ts +6 -6
  62. package/lib/services/app.service.d.ts +1 -1
  63. package/package.json +15 -25
  64. package/store/effects/router.effects.d.ts +1 -5
  65. package/store/effects/snackbar.effects.d.ts +0 -29
  66. package/esm2020/lib/components/document-base-page/document-base-page.component.mjs +0 -206
  67. package/esm2020/lib/components/generic-error/generic-error.component.mjs +0 -43
  68. package/esm2020/lib/components/info-drawer/info-drawer.component.mjs +0 -132
  69. package/esm2020/lib/components/locked-by/locked-by.component.mjs +0 -54
  70. package/esm2020/lib/components/open-in-app/open-in-app.component.mjs +0 -68
  71. package/esm2020/lib/components/page-layout/page-layout-content.component.mjs +0 -50
  72. package/esm2020/lib/components/page-layout/page-layout-error.component.mjs +0 -42
  73. package/esm2020/lib/components/page-layout/page-layout-header.component.mjs +0 -42
  74. package/esm2020/lib/components/page-layout/page-layout.component.mjs +0 -61
  75. package/esm2020/lib/components/page-layout/page-layout.module.mjs +0 -42
  76. package/esm2020/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +0 -58
  77. package/esm2020/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +0 -74
  78. package/esm2020/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +0 -87
  79. package/esm2020/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +0 -71
  80. package/esm2020/lib/components/toolbar/toolbar.component.mjs +0 -44
  81. package/esm2020/lib/deprecated/shared-toolbar.module.mjs +0 -43
  82. package/esm2020/lib/deprecated/shared.module.mjs +0 -44
  83. package/esm2020/lib/directives/contextmenu/contextmenu.directive.mjs +0 -104
  84. package/esm2020/lib/directives/pagination.directive.mjs +0 -55
  85. package/esm2020/lib/services/aca-mobile-app-switcher.service.mjs +0 -129
  86. package/esm2020/lib/services/app-hook.service.mjs +0 -79
  87. package/esm2020/lib/services/app-settings.service.mjs +0 -140
  88. package/esm2020/lib/services/app.extension.service.mjs +0 -462
  89. package/esm2020/lib/services/app.service.mjs +0 -221
  90. package/esm2020/lib/services/auto-download.service.mjs +0 -60
  91. package/esm2020/lib/services/content-api.service.mjs +0 -268
  92. package/esm2020/lib/services/node-permission.service.mjs +0 -89
  93. package/esm2020/lib/services/router.extension.service.mjs +0 -105
  94. package/esm2020/lib/services/user-profile.service.mjs +0 -77
  95. package/esm2020/lib/testing/lib-testing-module.mjs +0 -161
  96. package/esm2020/store/actions/app.actions.mjs +0 -108
  97. package/esm2020/store/actions/contextmenu.actions.mjs +0 -31
  98. package/esm2020/store/actions/library.actions.mjs +0 -63
  99. package/esm2020/store/actions/metadata-aspect.actions.mjs +0 -31
  100. package/esm2020/store/actions/node.actions.mjs +0 -188
  101. package/esm2020/store/actions/router.actions.mjs +0 -54
  102. package/esm2020/store/actions/search.actions.mjs +0 -41
  103. package/esm2020/store/actions/snackbar.actions.mjs +0 -57
  104. package/esm2020/store/actions/template.actions.mjs +0 -47
  105. package/esm2020/store/actions/upload.actions.mjs +0 -49
  106. package/esm2020/store/actions/viewer.actions.mjs +0 -81
  107. package/esm2020/store/effects/router.effects.mjs +0 -114
  108. package/esm2020/store/effects/snackbar.effects.mjs +0 -85
  109. package/fesm2015/alfresco-aca-shared-rules.mjs +0 -795
  110. package/fesm2015/alfresco-aca-shared-rules.mjs.map +0 -1
  111. package/fesm2015/alfresco-aca-shared-store.mjs +0 -1278
  112. package/fesm2015/alfresco-aca-shared-store.mjs.map +0 -1
  113. package/fesm2015/alfresco-aca-shared.mjs +0 -3278
  114. package/fesm2015/alfresco-aca-shared.mjs.map +0 -1
  115. package/fesm2020/alfresco-aca-shared-store.mjs.map +0 -1
  116. package/fesm2020/alfresco-aca-shared.mjs.map +0 -1
  117. /package/{esm2020 → esm2022}/alfresco-aca-shared.mjs +0 -0
  118. /package/{esm2020 → esm2022}/lib/adf-extensions/extensions-data-loader.guard.mjs +0 -0
  119. /package/{esm2020 → esm2022}/lib/components/document-base-page/document-base-page.service.mjs +0 -0
  120. /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
  121. /package/{esm2020 → esm2022}/lib/constants/mime-types.mjs +0 -0
  122. /package/{esm2020 → esm2022}/lib/models/types.mjs +0 -0
  123. /package/{esm2020 → esm2022}/lib/models/viewer.rules.mjs +0 -0
  124. /package/{esm2020 → esm2022}/lib/routing/plugin-enabled.guard.mjs +0 -0
  125. /package/{esm2020 → esm2022}/lib/routing/shared.guard.mjs +0 -0
  126. /package/{esm2020 → esm2022}/lib/utils/node.utils.mjs +0 -0
  127. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  128. /package/{esm2020 → esm2022}/rules/alfresco-aca-shared-rules.mjs +0 -0
  129. /package/{esm2020 → esm2022}/rules/app.rules.mjs +0 -0
  130. /package/{esm2020 → esm2022}/rules/navigation.rules.mjs +0 -0
  131. /package/{esm2020 → esm2022}/rules/public-api.mjs +0 -0
  132. /package/{esm2020 → esm2022}/rules/repository.rules.mjs +0 -0
  133. /package/{esm2020 → esm2022}/rules/user.rules.mjs +0 -0
  134. /package/{esm2020 → esm2022}/store/actions/app-action-types.mjs +0 -0
  135. /package/{esm2020 → esm2022}/store/actions/context-menu-action-types.mjs +0 -0
  136. /package/{esm2020 → esm2022}/store/actions/router-action-types.mjs +0 -0
  137. /package/{esm2020 → esm2022}/store/actions/template-action-types.mjs +0 -0
  138. /package/{esm2020 → esm2022}/store/alfresco-aca-shared-store.mjs +0 -0
  139. /package/{esm2020 → esm2022}/store/models/ai-search-by-term-payload.mjs +0 -0
  140. /package/{esm2020 → esm2022}/store/models/delete-status.model.mjs +0 -0
  141. /package/{esm2020 → esm2022}/store/models/deleted-node-info.model.mjs +0 -0
  142. /package/{esm2020 → esm2022}/store/models/modal-configuration.mjs +0 -0
  143. /package/{esm2020 → esm2022}/store/models/node-info.model.mjs +0 -0
  144. /package/{esm2020 → esm2022}/store/models/search-option.model.mjs +0 -0
  145. /package/{esm2020 → esm2022}/store/public-api.mjs +0 -0
  146. /package/{esm2020 → esm2022}/store/selectors/app.selectors.mjs +0 -0
  147. /package/{esm2020 → esm2022}/store/states/app.state.mjs +0 -0
  148. /package/{fesm2020 → fesm2022}/alfresco-aca-shared-rules.mjs +0 -0
  149. /package/{fesm2020 → fesm2022}/alfresco-aca-shared-rules.mjs.map +0 -0
@@ -0,0 +1,239 @@
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
+ class AppService {
51
+ preferencesService;
52
+ authenticationService;
53
+ store;
54
+ router;
55
+ activatedRoute;
56
+ config;
57
+ pageTitle;
58
+ alfrescoApiService;
59
+ uploadService;
60
+ routerExtensionService;
61
+ contentApi;
62
+ sharedLinksApiService;
63
+ overlayContainer;
64
+ acaMobileAppSwitcherService;
65
+ appSettingsService;
66
+ userProfileService;
67
+ notificationService = inject(NotificationService);
68
+ matDialog = inject(MatDialog);
69
+ ready;
70
+ ready$;
71
+ pageHeading = new BehaviorSubject('');
72
+ /** @deprecated page title is updated automatically */
73
+ pageHeading$ = this.pageHeading.asObservable();
74
+ appNavNarMode$ = new BehaviorSubject('expanded');
75
+ toggleAppNavBar$ = new Subject();
76
+ hideSidenavConditions = ['/preview/'];
77
+ minimizeSidenavConditions = ['search'];
78
+ onDestroy$ = new Subject();
79
+ /**
80
+ * Whether `withCredentials` mode is enabled.
81
+ * Usually means that `Kerberos` mode is used.
82
+ */
83
+ get withCredentials() {
84
+ return this.config.get('auth.withCredentials', false);
85
+ }
86
+ constructor(preferencesService, authenticationService, store, router, activatedRoute, config, pageTitle, alfrescoApiService, uploadService, routerExtensionService, contentApi, sharedLinksApiService, overlayContainer, searchQueryBuilderService, acaMobileAppSwitcherService, appSettingsService, userProfileService) {
87
+ this.preferencesService = preferencesService;
88
+ this.authenticationService = authenticationService;
89
+ this.store = store;
90
+ this.router = router;
91
+ this.activatedRoute = activatedRoute;
92
+ this.config = config;
93
+ this.pageTitle = pageTitle;
94
+ this.alfrescoApiService = alfrescoApiService;
95
+ this.uploadService = uploadService;
96
+ this.routerExtensionService = routerExtensionService;
97
+ this.contentApi = contentApi;
98
+ this.sharedLinksApiService = sharedLinksApiService;
99
+ this.overlayContainer = overlayContainer;
100
+ this.acaMobileAppSwitcherService = acaMobileAppSwitcherService;
101
+ this.appSettingsService = appSettingsService;
102
+ this.userProfileService = userProfileService;
103
+ this.ready = new BehaviorSubject(this.authenticationService.isLoggedIn() || this.withCredentials);
104
+ this.ready$ = this.ready.asObservable();
105
+ this.authenticationService.onLogin.subscribe(() => {
106
+ this.ready.next(true);
107
+ this.preferencesService.setStoragePrefix(this.authenticationService.getUsername());
108
+ });
109
+ this.authenticationService.onLogout.subscribe(() => {
110
+ searchQueryBuilderService.resetToDefaults();
111
+ acaMobileAppSwitcherService.clearSessionExpireTime();
112
+ acaMobileAppSwitcherService.closeDialog();
113
+ });
114
+ this.router.events
115
+ .pipe(filter((event) => event instanceof ActivationEnd && event.snapshot.children.length === 0), map((event) => event.snapshot?.data?.title ?? ''))
116
+ .subscribe((title) => {
117
+ this.pageHeading.next(title);
118
+ this.pageTitle.setTitle(title);
119
+ });
120
+ }
121
+ ngOnDestroy() {
122
+ this.onDestroy$.next(true);
123
+ this.onDestroy$.complete();
124
+ }
125
+ init() {
126
+ this.alfrescoApiService.getInstance().on('error', (error) => {
127
+ if (error.status === 401 && !this.alfrescoApiService.isExcludedErrorListener(error?.response?.req?.url)) {
128
+ if (!this.authenticationService.isLoggedIn()) {
129
+ this.matDialog.closeAll();
130
+ let redirectUrl = this.activatedRoute.snapshot.queryParams['redirectUrl'];
131
+ if (!redirectUrl) {
132
+ redirectUrl = this.router.url;
133
+ }
134
+ this.router.navigate(['/login'], {
135
+ queryParams: { redirectUrl }
136
+ });
137
+ }
138
+ }
139
+ });
140
+ this.loadCustomCss();
141
+ this.loadCustomWebFont();
142
+ const { router } = this;
143
+ this.router.events.pipe(filter((event) => event instanceof ActivationEnd && event.snapshot.children.length === 0)).subscribe(() => {
144
+ this.store.dispatch(new SetCurrentUrlAction(router.url));
145
+ });
146
+ this.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {
147
+ this.store.dispatch(new ResetSelectionAction());
148
+ });
149
+ this.routerExtensionService.mapExtensionRoutes();
150
+ this.uploadService.fileUploadError.subscribe((error) => this.onFileUploadedError(error));
151
+ this.sharedLinksApiService.error.subscribe((err) => {
152
+ if (err?.message) {
153
+ this.notificationService.showError(err.message);
154
+ }
155
+ });
156
+ this.ready$.subscribe((isReady) => {
157
+ if (isReady) {
158
+ this.loadRepositoryStatus();
159
+ this.loadUserProfile();
160
+ setTimeout(() => {
161
+ this.openMobileAppDialog();
162
+ });
163
+ }
164
+ });
165
+ this.overlayContainer.getContainerElement().setAttribute('role', 'region');
166
+ }
167
+ setAppNavbarMode(mode) {
168
+ this.appNavNarMode$.next(mode);
169
+ this.preferencesService.set('expandedSidenav', mode === 'expanded');
170
+ }
171
+ loadRepositoryStatus() {
172
+ this.contentApi.getRepositoryInformation().subscribe((response) => {
173
+ if (response?.entry?.repository) {
174
+ this.store.dispatch(new SetRepositoryInfoAction(response.entry.repository));
175
+ }
176
+ });
177
+ }
178
+ async loadUserProfile() {
179
+ const profile = await this.userProfileService.loadUserProfile();
180
+ this.store.dispatch(new SetUserProfileAction(profile));
181
+ }
182
+ onFileUploadedError(error) {
183
+ let message = 'APP.MESSAGES.UPLOAD.ERROR.GENERIC';
184
+ if (error?.error?.status === 403) {
185
+ message = 'APP.MESSAGES.UPLOAD.ERROR.403';
186
+ }
187
+ if (error?.error?.status === 404) {
188
+ message = 'APP.MESSAGES.UPLOAD.ERROR.404';
189
+ }
190
+ if (error?.error?.status === 409) {
191
+ message = 'APP.MESSAGES.UPLOAD.ERROR.CONFLICT';
192
+ }
193
+ if (error?.error?.status === 500) {
194
+ message = 'APP.MESSAGES.UPLOAD.ERROR.500';
195
+ }
196
+ if (error?.error?.status === 504) {
197
+ message = 'APP.MESSAGES.UPLOAD.ERROR.504';
198
+ }
199
+ this.notificationService.showError(message);
200
+ }
201
+ loadCustomCss() {
202
+ const customCssPath = this.appSettingsService.customCssPath;
203
+ if (customCssPath) {
204
+ this.createLink(customCssPath);
205
+ }
206
+ }
207
+ loadCustomWebFont() {
208
+ const webFontPath = this.appSettingsService.webFontPath;
209
+ if (webFontPath) {
210
+ this.createLink(webFontPath);
211
+ }
212
+ }
213
+ createLink(url) {
214
+ const cssLinkElement = document.createElement('link');
215
+ cssLinkElement.setAttribute('rel', 'stylesheet');
216
+ cssLinkElement.setAttribute('type', 'text/css');
217
+ cssLinkElement.setAttribute('href', url);
218
+ document.head.appendChild(cssLinkElement);
219
+ }
220
+ openMobileAppDialog() {
221
+ const isMobileSwitchEnabled = this.config.get('mobileAppSwitch.enabled', false);
222
+ if (isMobileSwitchEnabled) {
223
+ this.acaMobileAppSwitcherService.resolveExistenceOfDialog();
224
+ }
225
+ else {
226
+ this.acaMobileAppSwitcherService.clearSessionExpireTime();
227
+ }
228
+ }
229
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", 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 });
230
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AppService, providedIn: 'root' });
231
+ }
232
+ export { AppService };
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AppService, decorators: [{
234
+ type: Injectable,
235
+ args: [{
236
+ providedIn: 'root'
237
+ }]
238
+ }], 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 }]; } });
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Etc2hhcmVkL3NyYy9saWIvc2VydmljZXMvYXBwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1SSxPQUFPLEVBQWMsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsYUFBYSxFQUVkLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFZLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVo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O1NBQzdEO2FBQU07WUFDTCxJQUFJLENBQUMsMkJBQTJCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUMzRDtJQUNILENBQUM7dUdBM01VLFVBQVU7MkdBQVYsVUFBVSxjQUhULE1BQU07O1NBR1AsVUFBVTsyRkFBVixVQUFVO2tCQUp0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlLCBBcHBDb25maWdTZXJ2aWNlLCBQYWdlVGl0bGVTZXJ2aWNlLCBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLCBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWxmcmVzY29BcGlTZXJ2aWNlLFxuICBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlLFxuICBTaGFyZWRMaW5rc0FwaVNlcnZpY2UsXG4gIFVwbG9hZFNlcnZpY2UsXG4gIEZpbGVVcGxvYWRFcnJvckV2ZW50XG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXBwU3RvcmUsIFNldEN1cnJlbnRVcmxBY3Rpb24sIFNldFJlcG9zaXRvcnlJbmZvQWN0aW9uLCBTZXRVc2VyUHJvZmlsZUFjdGlvbiwgUmVzZXRTZWxlY3Rpb25BY3Rpb24gfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBDb250ZW50QXBpU2VydmljZSB9IGZyb20gJy4vY29udGVudC1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXJFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnLi9yb3V0ZXIuZXh0ZW5zaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEaXNjb3ZlcnlFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi9hY2EtbW9iaWxlLWFwcC1zd2l0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNoZWxsQXBwU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZS9zaGVsbCc7XG5pbXBvcnQgeyBBcHBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL2FwcC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJQcm9maWxlU2VydmljZSB9IGZyb20gJy4vdXNlci1wcm9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG4vLyBBZnRlciBtb3Zpbmcgc2hlbGwgdG8gQURGIHRvIGNvcmUsIEFwcFNlcnZpY2Ugd2lsbCBpbXBsZW1lbnQgU2hlbGxBcHBTZXJ2aWNlXG5leHBvcnQgY2xhc3MgQXBwU2VydmljZSBpbXBsZW1lbnRzIFNoZWxsQXBwU2VydmljZSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIG1hdERpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBwcml2YXRlIHJlYWR5OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgcmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgcGFnZUhlYWRpbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgLyoqIEBkZXByZWNhdGVkIHBhZ2UgdGl0bGUgaXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5ICovXG4gIHBhZ2VIZWFkaW5nJCA9IHRoaXMucGFnZUhlYWRpbmcuYXNPYnNlcnZhYmxlKCk7XG5cbiAgYXBwTmF2TmFyTW9kZSQ6IFN1YmplY3Q8J2NvbGxhcHNlZCcgfCAnZXhwYW5kZWQnPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJ2V4cGFuZGVkJyk7XG4gIHRvZ2dsZUFwcE5hdkJhciQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGhpZGVTaWRlbmF2Q29uZGl0aW9ucyA9IFsnL3ByZXZpZXcvJ107XG4gIG1pbmltaXplU2lkZW5hdkNvbmRpdGlvbnMgPSBbJ3NlYXJjaCddO1xuXG4gIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGB3aXRoQ3JlZGVudGlhbHNgIG1vZGUgaXMgZW5hYmxlZC5cbiAgICogVXN1YWxseSBtZWFucyB0aGF0IGBLZXJiZXJvc2AgbW9kZSBpcyB1c2VkLlxuICAgKi9cbiAgZ2V0IHdpdGhDcmVkZW50aWFscygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0PGJvb2xlYW4+KCdhdXRoLndpdGhDcmVkZW50aWFscycsIGZhbHNlKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxBcHBTdG9yZT4sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQXBwQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHBhZ2VUaXRsZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwcml2YXRlIGFsZnJlc2NvQXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlckV4dGVuc2lvblNlcnZpY2U6IFJvdXRlckV4dGVuc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZW50QXBpOiBDb250ZW50QXBpU2VydmljZSxcbiAgICBwcml2YXRlIHNoYXJlZExpbmtzQXBpU2VydmljZTogU2hhcmVkTGlua3NBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheUNvbnRhaW5lcjogT3ZlcmxheUNvbnRhaW5lcixcbiAgICBzZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlOiBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlOiBBY2FNb2JpbGVBcHBTd2l0Y2hlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZXR0aW5nc1NlcnZpY2U6IEFwcFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJQcm9maWxlU2VydmljZTogVXNlclByb2ZpbGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucmVhZHkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmlzTG9nZ2VkSW4oKSB8fCB0aGlzLndpdGhDcmVkZW50aWFscyk7XG4gICAgdGhpcy5yZWFkeSQgPSB0aGlzLnJlYWR5LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2Uub25Mb2dpbi5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWFkeS5uZXh0KHRydWUpO1xuICAgICAgdGhpcy5wcmVmZXJlbmNlc1NlcnZpY2Uuc2V0U3RvcmFnZVByZWZpeCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRVc2VybmFtZSgpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLm9uTG9nb3V0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBzZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlLnJlc2V0VG9EZWZhdWx0cygpO1xuICAgICAgYWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlLmNsZWFyU2Vzc2lvbkV4cGlyZVRpbWUoKTtcbiAgICAgIGFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZS5jbG9zZURpYWxvZygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uRW5kICYmIGV2ZW50LnNuYXBzaG90LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCksXG4gICAgICAgIG1hcCgoZXZlbnQ6IEFjdGl2YXRpb25FbmQpID0+IGV2ZW50LnNuYXBzaG90Py5kYXRhPy50aXRsZSA/PyAnJylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHRpdGxlKSA9PiB7XG4gICAgICAgIHRoaXMucGFnZUhlYWRpbmcubmV4dCh0aXRsZSk7XG4gICAgICAgIHRoaXMucGFnZVRpdGxlLnNldFRpdGxlKHRpdGxlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWxmcmVzY29BcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkub24oJ2Vycm9yJywgKGVycm9yOiB7IHN0YXR1czogbnVtYmVyOyByZXNwb25zZTogYW55IH0pID0+IHtcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSAmJiAhdGhpcy5hbGZyZXNjb0FwaVNlcnZpY2UuaXNFeGNsdWRlZEVycm9yTGlzdGVuZXIoZXJyb3I/LnJlc3BvbnNlPy5yZXE/LnVybCkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5pc0xvZ2dlZEluKCkpIHtcbiAgICAgICAgICB0aGlzLm1hdERpYWxvZy5jbG9zZUFsbCgpO1xuXG4gICAgICAgICAgbGV0IHJlZGlyZWN0VXJsID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1sncmVkaXJlY3RVcmwnXTtcbiAgICAgICAgICBpZiAoIXJlZGlyZWN0VXJsKSB7XG4gICAgICAgICAgICByZWRpcmVjdFVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddLCB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtczogeyByZWRpcmVjdFVybCB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubG9hZEN1c3RvbUNzcygpO1xuICAgIHRoaXMubG9hZEN1c3RvbVdlYkZvbnQoKTtcblxuICAgIGNvbnN0IHsgcm91dGVyIH0gPSB0aGlzO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uRW5kICYmIGV2ZW50LnNuYXBzaG90LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRDdXJyZW50VXJsQWN0aW9uKHJvdXRlci51cmwpKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFJlc2V0U2VsZWN0aW9uQWN0aW9uKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXJFeHRlbnNpb25TZXJ2aWNlLm1hcEV4dGVuc2lvblJvdXRlcygpO1xuXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmZpbGVVcGxvYWRFcnJvci5zdWJzY3JpYmUoKGVycm9yKSA9PiB0aGlzLm9uRmlsZVVwbG9hZGVkRXJyb3IoZXJyb3IpKTtcblxuICAgIHRoaXMuc2hhcmVkTGlua3NBcGlTZXJ2aWNlLmVycm9yLnN1YnNjcmliZSgoZXJyOiB7IG1lc3NhZ2U6IHN0cmluZyB9KSA9PiB7XG4gICAgICBpZiAoZXJyPy5tZXNzYWdlKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93RXJyb3IoZXJyLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWFkeSQuc3Vic2NyaWJlKChpc1JlYWR5KSA9PiB7XG4gICAgICBpZiAoaXNSZWFkeSkge1xuICAgICAgICB0aGlzLmxvYWRSZXBvc2l0b3J5U3RhdHVzKCk7XG4gICAgICAgIHRoaXMubG9hZFVzZXJQcm9maWxlKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub3Blbk1vYmlsZUFwcERpYWxvZygpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMub3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3JlZ2lvbicpO1xuICB9XG5cbiAgc2V0QXBwTmF2YmFyTW9kZShtb2RlOiAnZXhwYW5kZWQnIHwgJ2NvbGxhcHNlZCcpOiB2b2lkIHtcbiAgICB0aGlzLmFwcE5hdk5hck1vZGUkLm5leHQobW9kZSk7XG4gICAgdGhpcy5wcmVmZXJlbmNlc1NlcnZpY2Uuc2V0KCdleHBhbmRlZFNpZGVuYXYnLCBtb2RlID09PSAnZXhwYW5kZWQnKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFJlcG9zaXRvcnlTdGF0dXMoKSB7XG4gICAgdGhpcy5jb250ZW50QXBpLmdldFJlcG9zaXRvcnlJbmZvcm1hdGlvbigpLnN1YnNjcmliZSgocmVzcG9uc2U6IERpc2NvdmVyeUVudHJ5KSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2U/LmVudHJ5Py5yZXBvc2l0b3J5KSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFJlcG9zaXRvcnlJbmZvQWN0aW9uKHJlc3BvbnNlLmVudHJ5LnJlcG9zaXRvcnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFVzZXJQcm9maWxlKCkge1xuICAgIGNvbnN0IHByb2ZpbGUgPSBhd2FpdCB0aGlzLnVzZXJQcm9maWxlU2VydmljZS5sb2FkVXNlclByb2ZpbGUoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRVc2VyUHJvZmlsZUFjdGlvbihwcm9maWxlKSk7XG4gIH1cblxuICBvbkZpbGVVcGxvYWRlZEVycm9yKGVycm9yOiBGaWxlVXBsb2FkRXJyb3JFdmVudCkge1xuICAgIGxldCBtZXNzYWdlID0gJ0FQUC5NRVNTQUdFUy5VUExPQUQuRVJST1IuR0VORVJJQyc7XG5cbiAgICBpZiAoZXJyb3I/LmVycm9yPy5zdGF0dXMgPT09IDQwMykge1xuICAgICAgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLjQwMyc7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yPy5lcnJvcj8uc3RhdHVzID09PSA0MDQpIHtcbiAgICAgIG1lc3NhZ2UgPSAnQVBQLk1FU1NBR0VTLlVQTE9BRC5FUlJPUi40MDQnO1xuICAgIH1cblxuICAgIGlmIChlcnJvcj8uZXJyb3I/LnN0YXR1cyA9PT0gNDA5KSB7XG4gICAgICBtZXNzYWdlID0gJ0FQUC5NRVNTQUdFUy5VUExPQUQuRVJST1IuQ09ORkxJQ1QnO1xuICAgIH1cblxuICAgIGlmIChlcnJvcj8uZXJyb3I/LnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICBtZXNzYWdlID0gJ0FQUC5NRVNTQUdFUy5VUExPQUQuRVJST1IuNTAwJztcbiAgICB9XG5cbiAgICBpZiAoZXJyb3I/LmVycm9yPy5zdGF0dXMgPT09IDUwNCkge1xuICAgICAgbWVzc2FnZSA9ICdBUFAuTUVTU0FHRVMuVVBMT0FELkVSUk9SLjUwNCc7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEN1c3RvbUNzcygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXN0b21Dc3NQYXRoID0gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuY3VzdG9tQ3NzUGF0aDtcbiAgICBpZiAoY3VzdG9tQ3NzUGF0aCkge1xuICAgICAgdGhpcy5jcmVhdGVMaW5rKGN1c3RvbUNzc1BhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEN1c3RvbVdlYkZvbnQoKTogdm9pZCB7XG4gICAgY29uc3Qgd2ViRm9udFBhdGggPSB0aGlzLmFwcFNldHRpbmdzU2VydmljZS53ZWJGb250UGF0aDtcbiAgICBpZiAod2ViRm9udFBhdGgpIHtcbiAgICAgIHRoaXMuY3JlYXRlTGluayh3ZWJGb250UGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaW5rKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY3NzTGlua0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgY3NzTGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCdyZWwnLCAnc3R5bGVzaGVldCcpO1xuICAgIGNzc0xpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0L2NzcycpO1xuICAgIGNzc0xpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjc3NMaW5rRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgb3Blbk1vYmlsZUFwcERpYWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBpc01vYmlsZVN3aXRjaEVuYWJsZWQ6IGJvb2xlYW4gPSB0aGlzLmNvbmZpZy5nZXQ8Ym9vbGVhbj4oJ21vYmlsZUFwcFN3aXRjaC5lbmFibGVkJywgZmFsc2UpO1xuICAgIGlmIChpc01vYmlsZVN3aXRjaEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuYWNhTW9iaWxlQXBwU3dpdGNoZXJTZXJ2aWNlLnJlc29sdmVFeGlzdGVuY2VPZkRpYWxvZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjYU1vYmlsZUFwcFN3aXRjaGVyU2VydmljZS5jbGVhclNlc3Npb25FeHBpcmVUaW1lKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,59 @@
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
+ class AutoDownloadService {
30
+ dialog = inject(MatDialog);
31
+ shouldDownload(node, threshold) {
32
+ const fileSizeInBytes = node?.entry?.content?.sizeInBytes || 0;
33
+ const sizeInMB = fileSizeInBytes / BYTES_TO_MB_CONVERSION_VALUE;
34
+ return sizeInMB && sizeInMB > threshold;
35
+ }
36
+ /**
37
+ * Opens the dialog to download the node content.
38
+ * Determines whether node content should be auto downloaded based on the file size and the configured threshold.
39
+ * @param node node entry
40
+ * @param threshold file size threshold in MB
41
+ */
42
+ tryDownload(node, threshold) {
43
+ if (this.shouldDownload(node, threshold)) {
44
+ this.dialog.open(FileAutoDownloadComponent, { disableClose: true, data: node });
45
+ return true;
46
+ }
47
+ return false;
48
+ }
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AutoDownloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
50
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AutoDownloadService, providedIn: 'root' });
51
+ }
52
+ export { AutoDownloadService };
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AutoDownloadService, decorators: [{
54
+ type: Injectable,
55
+ args: [{
56
+ providedIn: 'root'
57
+ }]
58
+ }] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kb3dubG9hZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2F1dG8tZG93bmxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFM0UsTUFBTSw0QkFBNEIsR0FBRyxPQUFPLENBQUM7QUFFN0MsTUFHYSxtQkFBbUI7SUFDdEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUzQixjQUFjLENBQUMsSUFBZSxFQUFFLFNBQWlCO1FBQ3ZELE1BQU0sZUFBZSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7UUFDL0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxHQUFHLDRCQUE0QixDQUFDO1FBRWhFLE9BQU8sUUFBUSxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLElBQWUsRUFBRSxTQUFpQjtRQUM1QyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNoRixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQXZCVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUZsQixNQUFNOztTQUVQLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOb2RlRW50cnkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEZpbGVBdXRvRG93bmxvYWRDb21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5jb25zdCBCWVRFU19UT19NQl9DT05WRVJTSU9OX1ZBTFVFID0gMTA0ODU3NjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0b0Rvd25sb2FkU2VydmljZSB7XG4gIHByaXZhdGUgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG5cbiAgcHJpdmF0ZSBzaG91bGREb3dubG9hZChub2RlOiBOb2RlRW50cnksIHRocmVzaG9sZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmlsZVNpemVJbkJ5dGVzID0gbm9kZT8uZW50cnk/LmNvbnRlbnQ/LnNpemVJbkJ5dGVzIHx8IDA7XG4gICAgY29uc3Qgc2l6ZUluTUIgPSBmaWxlU2l6ZUluQnl0ZXMgLyBCWVRFU19UT19NQl9DT05WRVJTSU9OX1ZBTFVFO1xuXG4gICAgcmV0dXJuIHNpemVJbk1CICYmIHNpemVJbk1CID4gdGhyZXNob2xkO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBkaWFsb2cgdG8gZG93bmxvYWQgdGhlIG5vZGUgY29udGVudC5cbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIG5vZGUgY29udGVudCBzaG91bGQgYmUgYXV0byBkb3dubG9hZGVkIGJhc2VkIG9uIHRoZSBmaWxlIHNpemUgYW5kIHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC5cbiAgICogQHBhcmFtIG5vZGUgbm9kZSBlbnRyeVxuICAgKiBAcGFyYW0gdGhyZXNob2xkIGZpbGUgc2l6ZSB0aHJlc2hvbGQgaW4gTUJcbiAgICovXG4gIHRyeURvd25sb2FkKG5vZGU6IE5vZGVFbnRyeSwgdGhyZXNob2xkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zaG91bGREb3dubG9hZChub2RlLCB0aHJlc2hvbGQpKSB7XG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKEZpbGVBdXRvRG93bmxvYWRDb21wb25lbnQsIHsgZGlzYWJsZUNsb3NlOiB0cnVlLCBkYXRhOiBub2RlIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=