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