@alfresco/aca-shared 5.1.1 → 5.2.0-11950694546

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