@smartbit4all/ng-client 1.0.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/README.md +386 -0
- package/esm2020/lib/session/api/api/api.mjs +4 -0
- package/esm2020/lib/session/api/api/session.service.mjs +306 -0
- package/esm2020/lib/session/api/configuration.mjs +91 -0
- package/esm2020/lib/session/api/encoder.mjs +19 -0
- package/esm2020/lib/session/api/index.mjs +3 -0
- package/esm2020/lib/session/api/model/accountInfo.mjs +13 -0
- package/esm2020/lib/session/api/model/apiError.mjs +13 -0
- package/esm2020/lib/session/api/model/authenticationProviderData.mjs +13 -0
- package/esm2020/lib/session/api/model/getAuthenticationProvidersResponse.mjs +2 -0
- package/esm2020/lib/session/api/model/models.mjs +9 -0
- package/esm2020/lib/session/api/model/refreshSessionRequest.mjs +13 -0
- package/esm2020/lib/session/api/model/session.mjs +2 -0
- package/esm2020/lib/session/api/model/sessionInfoData.mjs +2 -0
- package/esm2020/lib/session/api/model/userActivityLog.mjs +13 -0
- package/esm2020/lib/session/api/param.mjs +2 -0
- package/esm2020/lib/session/api/variables.mjs +9 -0
- package/esm2020/lib/session/cookie-service/smart-cookie.service.mjs +225 -0
- package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.mjs +90 -0
- package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.mjs +43 -0
- package/esm2020/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.mjs +40 -0
- package/esm2020/lib/session/dev-tool/smart-dev-tool.interceptor.mjs +52 -0
- package/esm2020/lib/session/dev-tool/smart-dev-tool.service.mjs +161 -0
- package/esm2020/lib/session/projects.mjs +12 -0
- package/esm2020/lib/session/smart-error-catching.interceptor.mjs +71 -0
- package/esm2020/lib/session/smart-header-maintainer.interceptor.mjs +36 -0
- package/esm2020/lib/session/smart-session-handler.service.mjs +6 -0
- package/esm2020/lib/session/smart-session.module.mjs +74 -0
- package/esm2020/lib/session/smart-session.service.mjs +204 -0
- package/esm2020/lib/session/smart-timer/smart-session-timer.component.mjs +35 -0
- package/esm2020/lib/session/smart-timer/smart-session-timer.service.mjs +51 -0
- package/esm2020/lib/smart-ng-client.module.mjs +20 -0
- package/esm2020/lib/smart-ng-client.service.mjs +19 -0
- package/esm2020/lib/view-context/api/api/api.mjs +4 -0
- package/esm2020/lib/view-context/api/api/view.service.mjs +401 -0
- package/esm2020/lib/view-context/api/api.module.mjs +40 -0
- package/esm2020/lib/view-context/api/configuration.mjs +91 -0
- package/esm2020/lib/view-context/api/encoder.mjs +19 -0
- package/esm2020/lib/view-context/api/index.mjs +7 -0
- package/esm2020/lib/view-context/api/model/closeResult.mjs +17 -0
- package/esm2020/lib/view-context/api/model/componentConstraint.mjs +2 -0
- package/esm2020/lib/view-context/api/model/messageData.mjs +2 -0
- package/esm2020/lib/view-context/api/model/messageOption.mjs +2 -0
- package/esm2020/lib/view-context/api/model/messageOptionType.mjs +17 -0
- package/esm2020/lib/view-context/api/model/messageResult.mjs +2 -0
- package/esm2020/lib/view-context/api/model/messageType.mjs +18 -0
- package/esm2020/lib/view-context/api/model/models.mjs +29 -0
- package/esm2020/lib/view-context/api/model/openPendingData.mjs +2 -0
- package/esm2020/lib/view-context/api/model/smartLinkData.mjs +2 -0
- package/esm2020/lib/view-context/api/model/uiAction.mjs +2 -0
- package/esm2020/lib/view-context/api/model/uiActionButtonDescriptor.mjs +13 -0
- package/esm2020/lib/view-context/api/model/uiActionButtonIconPos.mjs +16 -0
- package/esm2020/lib/view-context/api/model/uiActionButtonType.mjs +21 -0
- package/esm2020/lib/view-context/api/model/uiActionDescriptor.mjs +2 -0
- package/esm2020/lib/view-context/api/model/uiActionDialogDescriptor.mjs +2 -0
- package/esm2020/lib/view-context/api/model/uiActionFeedbackType.mjs +16 -0
- package/esm2020/lib/view-context/api/model/uiActionInputType.mjs +18 -0
- package/esm2020/lib/view-context/api/model/uiActionRequest.mjs +13 -0
- package/esm2020/lib/view-context/api/model/view.mjs +2 -0
- package/esm2020/lib/view-context/api/model/viewApiError.mjs +13 -0
- package/esm2020/lib/view-context/api/model/viewConstraint.mjs +2 -0
- package/esm2020/lib/view-context/api/model/viewContext.mjs +2 -0
- package/esm2020/lib/view-context/api/model/viewContextData.mjs +2 -0
- package/esm2020/lib/view-context/api/model/viewContextUpdate.mjs +2 -0
- package/esm2020/lib/view-context/api/model/viewData.mjs +2 -0
- package/esm2020/lib/view-context/api/model/viewState.mjs +21 -0
- package/esm2020/lib/view-context/api/model/viewStateUpdate.mjs +2 -0
- package/esm2020/lib/view-context/api/model/viewType.mjs +17 -0
- package/esm2020/lib/view-context/api/param.mjs +2 -0
- package/esm2020/lib/view-context/api/variables.mjs +9 -0
- package/esm2020/lib/view-context/message-dialog/message-dialog.component.mjs +63 -0
- package/esm2020/lib/view-context/projects.mjs +17 -0
- package/esm2020/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +30 -0
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +53 -0
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +47 -0
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +112 -0
- package/esm2020/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +51 -0
- package/esm2020/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +81 -0
- package/esm2020/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +113 -0
- package/esm2020/lib/view-context/smart-ui-action/ui-action.model.mjs +7 -0
- package/esm2020/lib/view-context/smart-ui-action/ui-action.service.mjs +149 -0
- package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +24 -0
- package/esm2020/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +44 -0
- package/esm2020/lib/view-context/smart-view-context.interceptor.mjs +28 -0
- package/esm2020/lib/view-context/smart-view-context.model.mjs +2 -0
- package/esm2020/lib/view-context/smart-view-context.module.mjs +84 -0
- package/esm2020/lib/view-context/smart-view-context.service.mjs +310 -0
- package/esm2020/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +33 -0
- package/esm2020/lib/view-context/value-api/api.module.mjs +40 -0
- package/esm2020/lib/view-context/value-api/configuration.mjs +91 -0
- package/esm2020/lib/view-context/value-api/index.mjs +6 -0
- package/esm2020/lib/view-context/value-api/model/models.mjs +2 -0
- package/esm2020/lib/view-context/value-api/model/valueSetData.mjs +13 -0
- package/esm2020/lib/view-context/value-api/param.mjs +2 -0
- package/esm2020/lib/view-context/value-api/variables.mjs +9 -0
- package/esm2020/projects.mjs +8 -0
- package/esm2020/smartbit4all-ng-client.mjs +5 -0
- package/fesm2015/smartbit4all-ng-client.mjs +3418 -0
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -0
- package/fesm2020/smartbit4all-ng-client.mjs +3423 -0
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -0
- package/lib/session/api/api/api.d.ts +3 -0
- package/lib/session/api/api/session.service.d.ts +107 -0
- package/lib/session/api/configuration.d.ts +104 -0
- package/lib/session/api/encoder.d.ts +11 -0
- package/lib/session/api/index.d.ts +2 -0
- package/lib/session/api/model/accountInfo.d.ts +22 -0
- package/lib/session/api/model/apiError.d.ts +15 -0
- package/lib/session/api/model/authenticationProviderData.d.ts +17 -0
- package/lib/session/api/model/getAuthenticationProvidersResponse.d.ts +15 -0
- package/lib/session/api/model/models.d.ts +8 -0
- package/lib/session/api/model/refreshSessionRequest.d.ts +14 -0
- package/lib/session/api/model/session.d.ts +32 -0
- package/lib/session/api/model/sessionInfoData.d.ts +22 -0
- package/lib/session/api/model/userActivityLog.d.ts +33 -0
- package/lib/session/api/param.d.ts +37 -0
- package/lib/session/api/variables.d.ts +8 -0
- package/lib/session/cookie-service/smart-cookie.service.d.ts +129 -0
- package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.d.ts +28 -0
- package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.d.ts +18 -0
- package/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.d.ts +15 -0
- package/lib/session/dev-tool/smart-dev-tool.interceptor.d.ts +18 -0
- package/lib/session/dev-tool/smart-dev-tool.service.d.ts +55 -0
- package/lib/session/projects.d.ts +8 -0
- package/lib/session/smart-error-catching.interceptor.d.ts +13 -0
- package/lib/session/smart-header-maintainer.interceptor.d.ts +11 -0
- package/lib/session/smart-session-handler.service.d.ts +11 -0
- package/lib/session/smart-session.module.d.ts +15 -0
- package/lib/session/smart-session.service.d.ts +50 -0
- package/lib/session/smart-timer/smart-session-timer.component.d.ts +14 -0
- package/lib/session/smart-timer/smart-session-timer.service.d.ts +21 -0
- package/lib/smart-ng-client.module.d.ts +8 -0
- package/lib/smart-ng-client.service.d.ts +10 -0
- package/lib/view-context/api/api/api.d.ts +3 -0
- package/lib/view-context/api/api/view.service.d.ts +147 -0
- package/lib/view-context/api/api.module.d.ts +11 -0
- package/lib/view-context/api/configuration.d.ts +104 -0
- package/lib/view-context/api/encoder.d.ts +11 -0
- package/lib/view-context/api/index.d.ts +6 -0
- package/lib/view-context/api/model/closeResult.d.ts +17 -0
- package/lib/view-context/api/model/componentConstraint.d.ts +25 -0
- package/lib/view-context/api/model/messageData.d.ts +27 -0
- package/lib/view-context/api/model/messageOption.d.ts +18 -0
- package/lib/view-context/api/model/messageOptionType.d.ts +17 -0
- package/lib/view-context/api/model/messageResult.d.ts +16 -0
- package/lib/view-context/api/model/messageType.d.ts +18 -0
- package/lib/view-context/api/model/models.d.ts +28 -0
- package/lib/view-context/api/model/openPendingData.d.ts +22 -0
- package/lib/view-context/api/model/smartLinkData.d.ts +21 -0
- package/lib/view-context/api/model/uiAction.d.ts +26 -0
- package/lib/view-context/api/model/uiActionButtonDescriptor.d.ts +18 -0
- package/lib/view-context/api/model/uiActionButtonIconPos.d.ts +19 -0
- package/lib/view-context/api/model/uiActionButtonType.d.ts +24 -0
- package/lib/view-context/api/model/uiActionDescriptor.d.ts +32 -0
- package/lib/view-context/api/model/uiActionDialogDescriptor.d.ts +22 -0
- package/lib/view-context/api/model/uiActionFeedbackType.d.ts +19 -0
- package/lib/view-context/api/model/uiActionInputType.d.ts +18 -0
- package/lib/view-context/api/model/uiActionRequest.d.ts +27 -0
- package/lib/view-context/api/model/view.d.ts +36 -0
- package/lib/view-context/api/model/viewApiError.d.ts +18 -0
- package/lib/view-context/api/model/viewConstraint.d.ts +18 -0
- package/lib/view-context/api/model/viewContext.d.ts +22 -0
- package/lib/view-context/api/model/viewContextData.d.ts +19 -0
- package/lib/view-context/api/model/viewContextUpdate.d.ts +22 -0
- package/lib/view-context/api/model/viewData.d.ts +25 -0
- package/lib/view-context/api/model/viewState.d.ts +21 -0
- package/lib/view-context/api/model/viewStateUpdate.d.ts +22 -0
- package/lib/view-context/api/model/viewType.d.ts +17 -0
- package/lib/view-context/api/param.d.ts +37 -0
- package/lib/view-context/api/variables.d.ts +8 -0
- package/lib/view-context/message-dialog/message-dialog.component.d.ts +17 -0
- package/lib/view-context/projects.d.ts +13 -0
- package/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.d.ts +13 -0
- package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.d.ts +25 -0
- package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +18 -0
- package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.d.ts +28 -0
- package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +25 -0
- package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +24 -0
- package/lib/view-context/smart-ui-action/ui-action.descriptor.service.d.ts +21 -0
- package/lib/view-context/smart-ui-action/ui-action.model.d.ts +30 -0
- package/lib/view-context/smart-ui-action/ui-action.service.d.ts +21 -0
- package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.d.ts +13 -0
- package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +17 -0
- package/lib/view-context/smart-view-context.interceptor.d.ts +13 -0
- package/lib/view-context/smart-view-context.model.d.ts +30 -0
- package/lib/view-context/smart-view-context.module.d.ts +20 -0
- package/lib/view-context/smart-view-context.service.d.ts +60 -0
- package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +14 -0
- package/lib/view-context/value-api/api.module.d.ts +11 -0
- package/lib/view-context/value-api/configuration.d.ts +104 -0
- package/lib/view-context/value-api/index.d.ts +5 -0
- package/lib/view-context/value-api/model/models.d.ts +1 -0
- package/lib/view-context/value-api/model/valueSetData.d.ts +39 -0
- package/lib/view-context/value-api/param.d.ts +37 -0
- package/lib/view-context/value-api/variables.d.ts +8 -0
- package/package.json +38 -0
- package/projects.d.ts +4 -0
- package/smartbit4all-ng-client-1.0.0.tgz +0 -0
- package/smartbit4all-ng-client.d.ts +5 -0
- package/src/lib/session/api/README.md +226 -0
- package/src/lib/view-context/api/README.md +226 -0
- package/src/lib/view-context/value-api/README.md +226 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { Subject } from "rxjs";
|
|
3
|
+
import { ViewState, ViewType, } from "./api";
|
|
4
|
+
import { MessageDialogComponent } from "./message-dialog/message-dialog.component";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./api";
|
|
7
|
+
import * as i2 from "../session/smart-session.service";
|
|
8
|
+
import * as i3 from "@smartbit4all/navigation";
|
|
9
|
+
import * as i4 from "@smartbit4all/dialog";
|
|
10
|
+
export class SmartViewContextService {
|
|
11
|
+
constructor(view, session, navigation, dialog) {
|
|
12
|
+
this.view = view;
|
|
13
|
+
this.session = session;
|
|
14
|
+
this.navigation = navigation;
|
|
15
|
+
this.dialog = dialog;
|
|
16
|
+
this.tabIdName = "viewContextUuid";
|
|
17
|
+
this.tabIdhttpHeaderName = "viewContextUuid";
|
|
18
|
+
this.viewHandlers = new Array();
|
|
19
|
+
this.openedViewUuids = new Array();
|
|
20
|
+
this.uuidOfPageHasBeenChanged = new Subject();
|
|
21
|
+
this.viewContextHasBeenSynced = new Subject();
|
|
22
|
+
this.openSmartLink = new Subject();
|
|
23
|
+
this.isOpeningSmartLink = false;
|
|
24
|
+
this.dialogRefs = [];
|
|
25
|
+
this.translateServiceChanged = new Subject();
|
|
26
|
+
}
|
|
27
|
+
set translateService(translateService) {
|
|
28
|
+
this._translateService = translateService;
|
|
29
|
+
this.translateServiceChanged.next();
|
|
30
|
+
this.translateServiceChanged.complete();
|
|
31
|
+
}
|
|
32
|
+
get translateService() {
|
|
33
|
+
if (this._translateService) {
|
|
34
|
+
return this._translateService;
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
setActionDescriptors(actionDescriptors) {
|
|
39
|
+
this.actionDescriptors = actionDescriptors;
|
|
40
|
+
}
|
|
41
|
+
getActionDescriptors() {
|
|
42
|
+
if (!this.actionDescriptors) {
|
|
43
|
+
console.error("No action descriptors has been set to ViewContext.");
|
|
44
|
+
}
|
|
45
|
+
return this.actionDescriptors;
|
|
46
|
+
}
|
|
47
|
+
setViewHandlers(viewHandlers) {
|
|
48
|
+
this.viewHandlers = viewHandlers;
|
|
49
|
+
}
|
|
50
|
+
setViewApiErrors(viewApiErrors) {
|
|
51
|
+
this.smartViewContextApiErrors = viewApiErrors;
|
|
52
|
+
}
|
|
53
|
+
setMessageDialogName(messageDialogName) {
|
|
54
|
+
this.messageDialogname = messageDialogName;
|
|
55
|
+
this.viewHandlers.push({
|
|
56
|
+
name: messageDialogName,
|
|
57
|
+
component: MessageDialogComponent,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
setUpUrlForViewService() {
|
|
61
|
+
this.view.configuration.basePath = this.url;
|
|
62
|
+
}
|
|
63
|
+
setUrl(url) {
|
|
64
|
+
this.url = url + "/view";
|
|
65
|
+
this.setUpUrlForViewService();
|
|
66
|
+
}
|
|
67
|
+
async getAndSyncViewContext(uuid) {
|
|
68
|
+
if (!uuid) {
|
|
69
|
+
uuid = this.getUuidOfPage(this.tabIdName);
|
|
70
|
+
}
|
|
71
|
+
await this.getViewContext(uuid).then(() => {
|
|
72
|
+
this.syncView();
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
async getViewContext(uuid) {
|
|
76
|
+
this.viewContext = await this.view.getViewContext(uuid).toPromise();
|
|
77
|
+
if (!this.viewContext) {
|
|
78
|
+
throw new Error("ViewContext does not exist with the given uuid.");
|
|
79
|
+
}
|
|
80
|
+
return this.viewContext;
|
|
81
|
+
}
|
|
82
|
+
async getViewContextDataByPageName(pageName) {
|
|
83
|
+
if (!this.viewContext) {
|
|
84
|
+
let viewContextUuid = sessionStorage.getItem(this.tabIdName);
|
|
85
|
+
if (!viewContextUuid) {
|
|
86
|
+
throw new Error("View context is not initialized!");
|
|
87
|
+
}
|
|
88
|
+
await this.getViewContext(viewContextUuid);
|
|
89
|
+
}
|
|
90
|
+
let pageUuid = this.getUuidOfPage(pageName);
|
|
91
|
+
let viewContextByPageName = this.viewContext?.views.find((view) => view.uuid === pageUuid);
|
|
92
|
+
if (!viewContextByPageName) {
|
|
93
|
+
throw new Error(`The ViewData of ${pageName} is not found!`);
|
|
94
|
+
}
|
|
95
|
+
return viewContextByPageName;
|
|
96
|
+
}
|
|
97
|
+
async updateViewContext(viewContextUpdate) {
|
|
98
|
+
this.viewContext = await this.view.updateViewContext(viewContextUpdate).toPromise();
|
|
99
|
+
return this.viewContext;
|
|
100
|
+
}
|
|
101
|
+
clearSessionStorage() {
|
|
102
|
+
sessionStorage.clear();
|
|
103
|
+
}
|
|
104
|
+
setTabId(tabId) {
|
|
105
|
+
sessionStorage.setItem(this.tabIdName, tabId);
|
|
106
|
+
this.session.addHeaderParam({ headerName: this.tabIdhttpHeaderName, value: tabId });
|
|
107
|
+
}
|
|
108
|
+
async startViewContext() {
|
|
109
|
+
this.clearSessionStorage();
|
|
110
|
+
let newViewContext = await this.view
|
|
111
|
+
.createViewContext()
|
|
112
|
+
.toPromise();
|
|
113
|
+
if (!newViewContext) {
|
|
114
|
+
throw new Error("No ViewContext was created");
|
|
115
|
+
}
|
|
116
|
+
this.viewContext = newViewContext;
|
|
117
|
+
this.setTabId(newViewContext.uuid);
|
|
118
|
+
return this.viewContext;
|
|
119
|
+
}
|
|
120
|
+
async initialize(uuid) {
|
|
121
|
+
if (this.viewHandlers.length === 0) {
|
|
122
|
+
throw new Error("There aren't any viewHandlers in SmartViewContextService! Provide some to use its functions.");
|
|
123
|
+
}
|
|
124
|
+
if (!this.messageDialogname) {
|
|
125
|
+
throw new Error("The messageDialogName provided by the backend has not been set.");
|
|
126
|
+
}
|
|
127
|
+
if (uuid) {
|
|
128
|
+
let subscription = this.session.headersUpdated.subscribe(async () => {
|
|
129
|
+
subscription.unsubscribe();
|
|
130
|
+
try {
|
|
131
|
+
await this.getViewContext(uuid);
|
|
132
|
+
this.setTabId(uuid);
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
await this.startViewContext();
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
this.setTabId(uuid);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
await this.startViewContext();
|
|
142
|
+
}
|
|
143
|
+
return this.viewContext;
|
|
144
|
+
}
|
|
145
|
+
openView(view) {
|
|
146
|
+
let viewHandler = this.viewHandlers.find((handler) => handler.name === view.viewName);
|
|
147
|
+
if (!viewHandler) {
|
|
148
|
+
throw new Error(`SmartViewHandlerModel was not found by view name: ${view.viewName}`);
|
|
149
|
+
}
|
|
150
|
+
if (view.type === ViewType.Dialog) {
|
|
151
|
+
if (!viewHandler.component) {
|
|
152
|
+
throw new Error(`Component is undefined in SmartViewHandlerModel with name: ${view.viewName}`);
|
|
153
|
+
}
|
|
154
|
+
let dialogRef = this.dialog.openComponentAsDialog(viewHandler.component, viewHandler.name);
|
|
155
|
+
if (view.viewName === this.messageDialogname) {
|
|
156
|
+
if (view.message?.options && view.message.options.length) {
|
|
157
|
+
dialogRef.disableClose = true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
this.dialogRefs.push({
|
|
161
|
+
uuid: view.uuid,
|
|
162
|
+
dialogRef,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
else if (view.type === ViewType.Normal) {
|
|
166
|
+
if (viewHandler.route === undefined) {
|
|
167
|
+
throw new Error(`Route is undefined in SmartViewHandlerModel with name: ${view.viewName}`);
|
|
168
|
+
}
|
|
169
|
+
this.navigation.navigateTo(viewHandler.route.split("/"));
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
throw new Error("The type of the view and its viewHandler is not the same!");
|
|
173
|
+
}
|
|
174
|
+
view.state = ViewState.Opened;
|
|
175
|
+
this.openedViewUuids.push(view.uuid);
|
|
176
|
+
sessionStorage.setItem(view.viewName, view.uuid);
|
|
177
|
+
this.uuidOfPageHasBeenChanged.next(view.viewName);
|
|
178
|
+
this.updateViewContext({
|
|
179
|
+
updates: [
|
|
180
|
+
{
|
|
181
|
+
state: ViewState.Opened,
|
|
182
|
+
uuid: view.uuid,
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
uuid: this.viewContext?.uuid,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
closeView(view) {
|
|
189
|
+
let viewHandler = this.viewHandlers.find((handler) => handler.name === view.viewName);
|
|
190
|
+
if (!viewHandler) {
|
|
191
|
+
throw new Error(`SmartViewHandlerModel was not found by view name: ${view.viewName}`);
|
|
192
|
+
}
|
|
193
|
+
if (view.type === ViewType.Dialog) {
|
|
194
|
+
let dialogRef = this.dialogRefs.find((dialogRef) => dialogRef.uuid === view.uuid);
|
|
195
|
+
if (dialogRef) {
|
|
196
|
+
dialogRef.dialogRef.close();
|
|
197
|
+
let index = this.dialogRefs.indexOf(dialogRef);
|
|
198
|
+
this.dialogRefs.splice(index, 1);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
throw new Error("DialogRef is not found by uuid.");
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
else if (view.type === ViewType.Normal) {
|
|
205
|
+
// TODO: close normal page???
|
|
206
|
+
// this.navigation.navigateTo(viewHandler.route.split("/"));
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
throw new Error("The type of the view and its viewHandler is not the same!");
|
|
210
|
+
}
|
|
211
|
+
view.state = ViewState.Closed;
|
|
212
|
+
this.openedViewUuids.slice(this.openedViewUuids.indexOf(view.uuid), 1);
|
|
213
|
+
sessionStorage.removeItem(view.viewName);
|
|
214
|
+
this.updateViewContext({
|
|
215
|
+
updates: [
|
|
216
|
+
{
|
|
217
|
+
state: ViewState.Closed,
|
|
218
|
+
uuid: view.uuid,
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
uuid: this.viewContext?.uuid,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
async restoreViews(uuid) {
|
|
225
|
+
if (!this.viewContext) {
|
|
226
|
+
await this.getViewContext(uuid);
|
|
227
|
+
}
|
|
228
|
+
this.viewContext.views.map((view) => {
|
|
229
|
+
this.openView(view);
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
syncView() {
|
|
233
|
+
this.viewContext?.views.map((view) => {
|
|
234
|
+
switch (view.state) {
|
|
235
|
+
case ViewState.ToOpen:
|
|
236
|
+
this.openView(view);
|
|
237
|
+
break;
|
|
238
|
+
case ViewState.ToClose:
|
|
239
|
+
this.closeView(view);
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
this.viewContextHasBeenSynced.next();
|
|
244
|
+
}
|
|
245
|
+
getUuidOfPage(pageName) {
|
|
246
|
+
let uuid = sessionStorage.getItem(pageName);
|
|
247
|
+
if (!uuid) {
|
|
248
|
+
throw new Error(`The uuid of ${pageName} is not available.`);
|
|
249
|
+
}
|
|
250
|
+
return uuid;
|
|
251
|
+
}
|
|
252
|
+
async message(messageData, messageResult) {
|
|
253
|
+
await this.view
|
|
254
|
+
.message(messageData.viewUuid ?? "", messageData.uuid, messageResult)
|
|
255
|
+
.toPromise();
|
|
256
|
+
await this.getAndSyncViewContext();
|
|
257
|
+
}
|
|
258
|
+
getSmartViewContextApiErrorByCode(code) {
|
|
259
|
+
if (!this.smartViewContextApiErrors) {
|
|
260
|
+
return {
|
|
261
|
+
code,
|
|
262
|
+
message: "An error has occured.",
|
|
263
|
+
buttonLabel: "Ok",
|
|
264
|
+
dialogTitle: "Hiba",
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
let apiErrorsWithCode = this.smartViewContextApiErrors.viewContextApiErrors.filter((apiError) => {
|
|
268
|
+
return apiError.code === code;
|
|
269
|
+
});
|
|
270
|
+
if (!apiErrorsWithCode || (apiErrorsWithCode && !apiErrorsWithCode.length)) {
|
|
271
|
+
console.error(`SmartViewContextApiError with code ${code} could not be found.`);
|
|
272
|
+
return {
|
|
273
|
+
code,
|
|
274
|
+
message: "An error has occured.",
|
|
275
|
+
buttonLabel: "Ok",
|
|
276
|
+
dialogTitle: "Hiba",
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
return apiErrorsWithCode[0];
|
|
280
|
+
}
|
|
281
|
+
async getViewConstraint(uuid) {
|
|
282
|
+
let viewConstraintResponse = await this.view.getViewConstraint(uuid).toPromise();
|
|
283
|
+
if (!viewConstraintResponse)
|
|
284
|
+
throw new Error("Could not get ViewConstraint with the given uuid.");
|
|
285
|
+
return viewConstraintResponse;
|
|
286
|
+
}
|
|
287
|
+
async showPublishedView(channel, uuid) {
|
|
288
|
+
await this.session.initialize();
|
|
289
|
+
// TODO init view context automatically
|
|
290
|
+
// await this.initialize();
|
|
291
|
+
this.isOpeningSmartLink = true;
|
|
292
|
+
this.openSmartLink.next();
|
|
293
|
+
await this.openSmartLink.toPromise();
|
|
294
|
+
await this.view.showPublishedView(channel, uuid).toPromise();
|
|
295
|
+
await this.getAndSyncViewContext();
|
|
296
|
+
this.isOpeningSmartLink = false;
|
|
297
|
+
}
|
|
298
|
+
async downloadResource(uuid, item) {
|
|
299
|
+
return await this.view.downloadItem(uuid, item).toPromise();
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
SmartViewContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartViewContextService, deps: [{ token: i1.ViewService }, { token: i2.SmartSessionService }, { token: i3.SmartNavigationService }, { token: i4.SmartdialogService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
303
|
+
SmartViewContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartViewContextService, providedIn: "root" });
|
|
304
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartViewContextService, decorators: [{
|
|
305
|
+
type: Injectable,
|
|
306
|
+
args: [{
|
|
307
|
+
providedIn: "root",
|
|
308
|
+
}]
|
|
309
|
+
}], ctorParameters: function () { return [{ type: i1.ViewService }, { type: i2.SmartSessionService }, { type: i3.SmartNavigationService }, { type: i4.SmartdialogService }]; } });
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFTSCxTQUFTLEVBQ1QsUUFBUSxHQUNYLE1BQU0sT0FBTyxDQUFDO0FBQ2YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQWFuRixNQUFNLE9BQU8sdUJBQXVCO0lBdUNoQyxZQUNZLElBQWlCLEVBQ2pCLE9BQTRCLEVBQzVCLFVBQWtDLEVBQ2xDLE1BQTBCO1FBSDFCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUExQzlCLGNBQVMsR0FBVyxpQkFBaUIsQ0FBQztRQUN0Qyx3QkFBbUIsR0FBVyxpQkFBaUIsQ0FBQztRQUloRCxpQkFBWSxHQUFpQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pELG9CQUFlLEdBQWtCLElBQUksS0FBSyxFQUFFLENBQUM7UUFFOUMsNkJBQXdCLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFDMUQsNkJBQXdCLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJeEQsa0JBQWEsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFbkMsZUFBVSxHQUF5QixFQUFFLENBQUM7UUFvQnZDLDRCQUF1QixHQUFrQixJQUFJLE9BQU8sRUFB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Q3hELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQyx1Q0FBdUM7UUFDdkMsMkJBQTJCO1FBRTNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFckMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3RCxNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUNwRCxPQUFPLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hFLENBQUM7O3FIQTdXUSx1QkFBdUI7eUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzRGQUVULHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFNtYXJ0ZGlhbG9nU2VydmljZSB9IGZyb20gXCJAc21hcnRiaXQ0YWxsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgU21hcnROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gXCJAc21hcnRiaXQ0YWxsL25hdmlnYXRpb25cIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtcbiAgICBNZXNzYWdlRGF0YSxcbiAgICBNZXNzYWdlUmVzdWx0LFxuICAgIFVpQWN0aW9uRGVzY3JpcHRvcixcbiAgICBWaWV3Q29uc3RyYWludCxcbiAgICBWaWV3Q29udGV4dERhdGEsXG4gICAgVmlld0NvbnRleHRVcGRhdGUsXG4gICAgVmlld0RhdGEsXG4gICAgVmlld1NlcnZpY2UsXG4gICAgVmlld1N0YXRlLFxuICAgIFZpZXdUeXBlLFxufSBmcm9tIFwiLi9hcGlcIjtcbmltcG9ydCB7IE1lc3NhZ2VEaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi9tZXNzYWdlLWRpYWxvZy9tZXNzYWdlLWRpYWxvZy5jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gICAgU21hcnRUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcixcbiAgICBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzLFxuICAgIFNtYXJ0Vmlld0RpYWxvZ1JlZixcbiAgICBTbWFydFZpZXdIYW5kbGVyTW9kZWwsXG59IGZyb20gXCIuL3NtYXJ0LXZpZXctY29udGV4dC5tb2RlbFwiO1xuaW1wb3J0IHsgU21hcnRTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXNzaW9uL3NtYXJ0LXNlc3Npb24uc2VydmljZVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHRhYklkTmFtZTogc3RyaW5nID0gXCJ2aWV3Q29udGV4dFV1aWRcIjtcbiAgICBwcml2YXRlIHRhYklkaHR0cEhlYWRlck5hbWU6IHN0cmluZyA9IFwidmlld0NvbnRleHRVdWlkXCI7XG4gICAgcHVibGljIG1lc3NhZ2VEaWFsb2duYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSB1cmw/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSB2aWV3Q29udGV4dD86IFZpZXdDb250ZXh0RGF0YTtcbiAgICBwcml2YXRlIHZpZXdIYW5kbGVyczogQXJyYXk8U21hcnRWaWV3SGFuZGxlck1vZGVsPiA9IG5ldyBBcnJheSgpO1xuICAgIHByaXZhdGUgb3BlbmVkVmlld1V1aWRzOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5KCk7XG5cbiAgICBwdWJsaWMgdXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyB2aWV3Q29udGV4dEhhc0JlZW5TeW5jZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHVibGljIHNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcnM/OiBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzO1xuXG4gICAgcHVibGljIG9wZW5TbWFydExpbms6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBpc09wZW5pbmdTbWFydExpbms6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGlhbG9nUmVmczogU21hcnRWaWV3RGlhbG9nUmVmW10gPSBbXTtcblxuICAgIHByaXZhdGUgYWN0aW9uRGVzY3JpcHRvcnM/OiBNYXA8c3RyaW5nLCBVaUFjdGlvbkRlc2NyaXB0b3I+O1xuXG4gICAgcHVibGljIGNvbW1vbkZlZWRiYWNrVGV4dD86IHN0cmluZztcblxuICAgIHB1YmxpYyBzZXQgdHJhbnNsYXRlU2VydmljZSh0cmFuc2xhdGVTZXJ2aWNlOiBTbWFydFRyYW5zbGF0ZVNlcnZpY2UgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZSA9IHRyYW5zbGF0ZVNlcnZpY2U7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZUNoYW5nZWQubmV4dCgpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VDaGFuZ2VkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0cmFuc2xhdGVTZXJ2aWNlKCk6IFNtYXJ0VHJhbnNsYXRlU2VydmljZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLl90cmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U/OiBTbWFydFRyYW5zbGF0ZVNlcnZpY2U7XG4gICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2VDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZpZXc6IFZpZXdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlc3Npb246IFNtYXJ0U2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmF2aWdhdGlvbjogU21hcnROYXZpZ2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IFNtYXJ0ZGlhbG9nU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBzZXRBY3Rpb25EZXNjcmlwdG9ycyhhY3Rpb25EZXNjcmlwdG9yczogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPik6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGlvbkRlc2NyaXB0b3JzID0gYWN0aW9uRGVzY3JpcHRvcnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFjdGlvbkRlc2NyaXB0b3JzKCk6IE1hcDxzdHJpbmcsIFVpQWN0aW9uRGVzY3JpcHRvcj4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aW9uRGVzY3JpcHRvcnMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJObyBhY3Rpb24gZGVzY3JpcHRvcnMgaGFzIGJlZW4gc2V0IHRvIFZpZXdDb250ZXh0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25EZXNjcmlwdG9ycztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Vmlld0hhbmRsZXJzKHZpZXdIYW5kbGVyczogQXJyYXk8U21hcnRWaWV3SGFuZGxlck1vZGVsPik6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXdIYW5kbGVycyA9IHZpZXdIYW5kbGVycztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Vmlld0FwaUVycm9ycyh2aWV3QXBpRXJyb3JzOiBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycyA9IHZpZXdBcGlFcnJvcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE1lc3NhZ2VEaWFsb2dOYW1lKG1lc3NhZ2VEaWFsb2dOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlRGlhbG9nbmFtZSA9IG1lc3NhZ2VEaWFsb2dOYW1lO1xuICAgICAgICB0aGlzLnZpZXdIYW5kbGVycy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IG1lc3NhZ2VEaWFsb2dOYW1lLFxuICAgICAgICAgICAgY29tcG9uZW50OiBNZXNzYWdlRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFVwVXJsRm9yVmlld1NlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlldy5jb25maWd1cmF0aW9uLmJhc2VQYXRoID0gdGhpcy51cmw7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVybCA9IHVybCArIFwiL3ZpZXdcIjtcbiAgICAgICAgdGhpcy5zZXRVcFVybEZvclZpZXdTZXJ2aWNlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFuZFN5bmNWaWV3Q29udGV4dCh1dWlkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdXVpZCkge1xuICAgICAgICAgICAgdXVpZCA9IHRoaXMuZ2V0VXVpZE9mUGFnZSh0aGlzLnRhYklkTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5nZXRWaWV3Q29udGV4dCh1dWlkKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3luY1ZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFZpZXdDb250ZXh0KHV1aWQ6IHN0cmluZyk6IFByb21pc2U8Vmlld0NvbnRleHREYXRhPiB7XG4gICAgICAgIHRoaXMudmlld0NvbnRleHQgPSBhd2FpdCB0aGlzLnZpZXcuZ2V0Vmlld0NvbnRleHQodXVpZCkudG9Qcm9taXNlKCk7XG4gICAgICAgIGlmICghdGhpcy52aWV3Q29udGV4dCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVmlld0NvbnRleHQgZG9lcyBub3QgZXhpc3Qgd2l0aCB0aGUgZ2l2ZW4gdXVpZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFZpZXdDb250ZXh0RGF0YUJ5UGFnZU5hbWUocGFnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8Vmlld0RhdGE+IHtcbiAgICAgICAgaWYgKCF0aGlzLnZpZXdDb250ZXh0KSB7XG4gICAgICAgICAgICBsZXQgdmlld0NvbnRleHRVdWlkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnRhYklkTmFtZSk7XG4gICAgICAgICAgICBpZiAoIXZpZXdDb250ZXh0VXVpZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlZpZXcgY29udGV4dCBpcyBub3QgaW5pdGlhbGl6ZWQhXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRWaWV3Q29udGV4dCh2aWV3Q29udGV4dFV1aWQhKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFnZVV1aWQgPSB0aGlzLmdldFV1aWRPZlBhZ2UocGFnZU5hbWUpO1xuXG4gICAgICAgIGxldCB2aWV3Q29udGV4dEJ5UGFnZU5hbWUgPSB0aGlzLnZpZXdDb250ZXh0Py52aWV3cy5maW5kKCh2aWV3KSA9PiB2aWV3LnV1aWQgPT09IHBhZ2VVdWlkKTtcbiAgICAgICAgaWYgKCF2aWV3Q29udGV4dEJ5UGFnZU5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIFZpZXdEYXRhIG9mICR7cGFnZU5hbWV9IGlzIG5vdCBmb3VuZCFgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmlld0NvbnRleHRCeVBhZ2VOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGVWaWV3Q29udGV4dChcbiAgICAgICAgdmlld0NvbnRleHRVcGRhdGU6IFZpZXdDb250ZXh0VXBkYXRlXG4gICAgKTogUHJvbWlzZTxWaWV3Q29udGV4dERhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhpcy52aWV3Q29udGV4dCA9IGF3YWl0IHRoaXMudmlldy51cGRhdGVWaWV3Q29udGV4dCh2aWV3Q29udGV4dFVwZGF0ZSkudG9Qcm9taXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclNlc3Npb25TdG9yYWdlKCk6IHZvaWQge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGFiSWQodGFiSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMudGFiSWROYW1lLCB0YWJJZCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbi5hZGRIZWFkZXJQYXJhbSh7IGhlYWRlck5hbWU6IHRoaXMudGFiSWRodHRwSGVhZGVyTmFtZSwgdmFsdWU6IHRhYklkIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdGFydFZpZXdDb250ZXh0KCk6IFByb21pc2U8Vmlld0NvbnRleHREYXRhPiB7XG4gICAgICAgIHRoaXMuY2xlYXJTZXNzaW9uU3RvcmFnZSgpO1xuXG4gICAgICAgIGxldCBuZXdWaWV3Q29udGV4dDogVmlld0NvbnRleHREYXRhIHwgdW5kZWZpbmVkID0gYXdhaXQgdGhpcy52aWV3XG4gICAgICAgICAgICAuY3JlYXRlVmlld0NvbnRleHQoKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgICBpZiAoIW5ld1ZpZXdDb250ZXh0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBWaWV3Q29udGV4dCB3YXMgY3JlYXRlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZpZXdDb250ZXh0ID0gbmV3Vmlld0NvbnRleHQ7XG5cbiAgICAgICAgdGhpcy5zZXRUYWJJZChuZXdWaWV3Q29udGV4dC51dWlkISk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXRpYWxpemUodXVpZD86IHN0cmluZyk6IFByb21pc2U8Vmlld0NvbnRleHREYXRhPiB7XG4gICAgICAgIGlmICh0aGlzLnZpZXdIYW5kbGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBcIlRoZXJlIGFyZW4ndCBhbnkgdmlld0hhbmRsZXJzIGluIFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlISBQcm92aWRlIHNvbWUgdG8gdXNlIGl0cyBmdW5jdGlvbnMuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VEaWFsb2duYW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgbWVzc2FnZURpYWxvZ05hbWUgcHJvdmlkZWQgYnkgdGhlIGJhY2tlbmQgaGFzIG5vdCBiZWVuIHNldC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHV1aWQpIHtcbiAgICAgICAgICAgIGxldCBzdWJzY3JpcHRpb24gPSB0aGlzLnNlc3Npb24uaGVhZGVyc1VwZGF0ZWQuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmdldFZpZXdDb250ZXh0KHV1aWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRhYklkKHV1aWQhKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGFydFZpZXdDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnNldFRhYklkKHV1aWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGFydFZpZXdDb250ZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dCE7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5WaWV3KHZpZXc6IFZpZXdEYXRhKTogdm9pZCB7XG4gICAgICAgIGxldCB2aWV3SGFuZGxlcjogU21hcnRWaWV3SGFuZGxlck1vZGVsIHwgdW5kZWZpbmVkID0gdGhpcy52aWV3SGFuZGxlcnMuZmluZChcbiAgICAgICAgICAgIChoYW5kbGVyKSA9PiBoYW5kbGVyLm5hbWUgPT09IHZpZXcudmlld05hbWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXZpZXdIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNtYXJ0Vmlld0hhbmRsZXJNb2RlbCB3YXMgbm90IGZvdW5kIGJ5IHZpZXcgbmFtZTogJHt2aWV3LnZpZXdOYW1lfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZpZXcudHlwZSA9PT0gVmlld1R5cGUuRGlhbG9nKSB7XG4gICAgICAgICAgICBpZiAoIXZpZXdIYW5kbGVyLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYENvbXBvbmVudCBpcyB1bmRlZmluZWQgaW4gU21hcnRWaWV3SGFuZGxlck1vZGVsIHdpdGggbmFtZTogJHt2aWV3LnZpZXdOYW1lfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW5Db21wb25lbnRBc0RpYWxvZyhcbiAgICAgICAgICAgICAgICB2aWV3SGFuZGxlci5jb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdmlld0hhbmRsZXIubmFtZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICh2aWV3LnZpZXdOYW1lID09PSB0aGlzLm1lc3NhZ2VEaWFsb2duYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZpZXcubWVzc2FnZT8ub3B0aW9ucyAmJiB2aWV3Lm1lc3NhZ2Uub3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWZzLnB1c2goe1xuICAgICAgICAgICAgICAgIHV1aWQ6IHZpZXcudXVpZCxcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3LnR5cGUgPT09IFZpZXdUeXBlLk5vcm1hbCkge1xuICAgICAgICAgICAgaWYgKHZpZXdIYW5kbGVyLnJvdXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBSb3V0ZSBpcyB1bmRlZmluZWQgaW4gU21hcnRWaWV3SGFuZGxlck1vZGVsIHdpdGggbmFtZTogJHt2aWV3LnZpZXdOYW1lfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLm5hdmlnYXRlVG8odmlld0hhbmRsZXIucm91dGUuc3BsaXQoXCIvXCIpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSB0eXBlIG9mIHRoZSB2aWV3IGFuZCBpdHMgdmlld0hhbmRsZXIgaXMgbm90IHRoZSBzYW1lIVwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZpZXcuc3RhdGUgPSBWaWV3U3RhdGUuT3BlbmVkO1xuXG4gICAgICAgIHRoaXMub3BlbmVkVmlld1V1aWRzLnB1c2godmlldy51dWlkKTtcblxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHZpZXcudmlld05hbWUsIHZpZXcudXVpZCk7XG4gICAgICAgIHRoaXMudXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkLm5leHQodmlldy52aWV3TmFtZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWaWV3Q29udGV4dCh7XG4gICAgICAgICAgICB1cGRhdGVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogVmlld1N0YXRlLk9wZW5lZCxcbiAgICAgICAgICAgICAgICAgICAgdXVpZDogdmlldy51dWlkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdXVpZDogdGhpcy52aWV3Q29udGV4dD8udXVpZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlVmlldyh2aWV3OiBWaWV3RGF0YSk6IHZvaWQge1xuICAgICAgICBsZXQgdmlld0hhbmRsZXI6IFNtYXJ0Vmlld0hhbmRsZXJNb2RlbCB8IHVuZGVmaW5lZCA9IHRoaXMudmlld0hhbmRsZXJzLmZpbmQoXG4gICAgICAgICAgICAoaGFuZGxlcikgPT4gaGFuZGxlci5uYW1lID09PSB2aWV3LnZpZXdOYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCF2aWV3SGFuZGxlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTbWFydFZpZXdIYW5kbGVyTW9kZWwgd2FzIG5vdCBmb3VuZCBieSB2aWV3IG5hbWU6ICR7dmlldy52aWV3TmFtZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2aWV3LnR5cGUgPT09IFZpZXdUeXBlLkRpYWxvZykge1xuICAgICAgICAgICAgbGV0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nUmVmcy5maW5kKFxuICAgICAgICAgICAgICAgIChkaWFsb2dSZWY6IFNtYXJ0Vmlld0RpYWxvZ1JlZikgPT4gZGlhbG9nUmVmLnV1aWQgPT09IHZpZXcudXVpZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChkaWFsb2dSZWYpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5kaWFsb2dSZWZzLmluZGV4T2YoZGlhbG9nUmVmKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRGlhbG9nUmVmIGlzIG5vdCBmb3VuZCBieSB1dWlkLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh2aWV3LnR5cGUgPT09IFZpZXdUeXBlLk5vcm1hbCkge1xuICAgICAgICAgICAgLy8gVE9ETzogY2xvc2Ugbm9ybWFsIHBhZ2U/Pz9cbiAgICAgICAgICAgIC8vIHRoaXMubmF2aWdhdGlvbi5uYXZpZ2F0ZVRvKHZpZXdIYW5kbGVyLnJvdXRlLnNwbGl0KFwiL1wiKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgdHlwZSBvZiB0aGUgdmlldyBhbmQgaXRzIHZpZXdIYW5kbGVyIGlzIG5vdCB0aGUgc2FtZSFcIik7XG4gICAgICAgIH1cblxuICAgICAgICB2aWV3LnN0YXRlID0gVmlld1N0YXRlLkNsb3NlZDtcblxuICAgICAgICB0aGlzLm9wZW5lZFZpZXdVdWlkcy5zbGljZSh0aGlzLm9wZW5lZFZpZXdVdWlkcy5pbmRleE9mKHZpZXcudXVpZCksIDEpO1xuXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odmlldy52aWV3TmFtZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWaWV3Q29udGV4dCh7XG4gICAgICAgICAgICB1cGRhdGVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogVmlld1N0YXRlLkNsb3NlZCxcbiAgICAgICAgICAgICAgICAgICAgdXVpZDogdmlldy51dWlkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdXVpZDogdGhpcy52aWV3Q29udGV4dD8udXVpZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlc3RvcmVWaWV3cyh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLnZpZXdDb250ZXh0KSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFZpZXdDb250ZXh0KHV1aWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmlld0NvbnRleHQhLnZpZXdzLm1hcCgodmlldzogVmlld0RhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BlblZpZXcodmlldyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzeW5jVmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGV4dD8udmlld3MubWFwKCh2aWV3OiBWaWV3RGF0YSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh2aWV3LnN0YXRlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBWaWV3U3RhdGUuVG9PcGVuOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5WaWV3KHZpZXcpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFZpZXdTdGF0ZS5Ub0Nsb3NlOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlVmlldyh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnZpZXdDb250ZXh0SGFzQmVlblN5bmNlZC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFV1aWRPZlBhZ2UocGFnZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCB1dWlkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShwYWdlTmFtZSk7XG4gICAgICAgIGlmICghdXVpZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgdXVpZCBvZiAke3BhZ2VOYW1lfSBpcyBub3QgYXZhaWxhYmxlLmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1dWlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBtZXNzYWdlKG1lc3NhZ2VEYXRhOiBNZXNzYWdlRGF0YSwgbWVzc2FnZVJlc3VsdDogTWVzc2FnZVJlc3VsdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnZpZXdcbiAgICAgICAgICAgIC5tZXNzYWdlKG1lc3NhZ2VEYXRhLnZpZXdVdWlkID8/IFwiXCIsIG1lc3NhZ2VEYXRhLnV1aWQsIG1lc3NhZ2VSZXN1bHQpXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0QW5kU3luY1ZpZXdDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvckJ5Q29kZShjb2RlOiBzdHJpbmcpOiBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3Ige1xuICAgICAgICBpZiAoIXRoaXMuc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiQW4gZXJyb3IgaGFzIG9jY3VyZWQuXCIsXG4gICAgICAgICAgICAgICAgYnV0dG9uTGFiZWw6IFwiT2tcIixcbiAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZTogXCJIaWJhXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGxldCBhcGlFcnJvcnNXaXRoQ29kZSA9IHRoaXMuc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycy52aWV3Q29udGV4dEFwaUVycm9ycy5maWx0ZXIoXG4gICAgICAgICAgICAoYXBpRXJyb3I6IFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcGlFcnJvci5jb2RlID09PSBjb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBpZiAoIWFwaUVycm9yc1dpdGhDb2RlIHx8IChhcGlFcnJvcnNXaXRoQ29kZSAmJiAhYXBpRXJyb3JzV2l0aENvZGUubGVuZ3RoKSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgU21hcnRWaWV3Q29udGV4dEFwaUVycm9yIHdpdGggY29kZSAke2NvZGV9IGNvdWxkIG5vdCBiZSBmb3VuZC5gKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiQW4gZXJyb3IgaGFzIG9jY3VyZWQuXCIsXG4gICAgICAgICAgICAgICAgYnV0dG9uTGFiZWw6IFwiT2tcIixcbiAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZTogXCJIaWJhXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcGlFcnJvcnNXaXRoQ29kZVswXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Vmlld0NvbnN0cmFpbnQodXVpZDogc3RyaW5nKTogUHJvbWlzZTxWaWV3Q29uc3RyYWludD4ge1xuICAgICAgICBsZXQgdmlld0NvbnN0cmFpbnRSZXNwb25zZSA9IGF3YWl0IHRoaXMudmlldy5nZXRWaWV3Q29uc3RyYWludCh1dWlkKS50b1Byb21pc2UoKTtcbiAgICAgICAgaWYgKCF2aWV3Q29uc3RyYWludFJlc3BvbnNlKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGdldCBWaWV3Q29uc3RyYWludCB3aXRoIHRoZSBnaXZlbiB1dWlkLlwiKTtcbiAgICAgICAgcmV0dXJuIHZpZXdDb25zdHJhaW50UmVzcG9uc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNob3dQdWJsaXNoZWRWaWV3KGNoYW5uZWw6IHN0cmluZywgdXVpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5pbml0aWFsaXplKCk7XG4gICAgICAgIC8vIFRPRE8gaW5pdCB2aWV3IGNvbnRleHQgYXV0b21hdGljYWxseVxuICAgICAgICAvLyBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgICAgICB0aGlzLmlzT3BlbmluZ1NtYXJ0TGluayA9IHRydWU7XG4gICAgICAgIHRoaXMub3BlblNtYXJ0TGluay5uZXh0KCk7XG4gICAgICAgIGF3YWl0IHRoaXMub3BlblNtYXJ0TGluay50b1Byb21pc2UoKTtcblxuICAgICAgICBhd2FpdCB0aGlzLnZpZXcuc2hvd1B1Ymxpc2hlZFZpZXcoY2hhbm5lbCwgdXVpZCkudG9Qcm9taXNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0QW5kU3luY1ZpZXdDb250ZXh0KCk7XG4gICAgICAgIHRoaXMuaXNPcGVuaW5nU21hcnRMaW5rID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGRvd25sb2FkUmVzb3VyY2UodXVpZDogc3RyaW5nLCBpdGVtOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy52aWV3LmRvd25sb2FkSXRlbSh1dWlkLCBpdGVtKS50b1Byb21pc2UoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../smart-view-context.service";
|
|
4
|
+
import * as i2 from "@smartbit4all/navigation";
|
|
5
|
+
import * as i3 from "@angular/router";
|
|
6
|
+
export class SmartViewRedirect {
|
|
7
|
+
constructor(service, navigation, route) {
|
|
8
|
+
this.service = service;
|
|
9
|
+
this.navigation = navigation;
|
|
10
|
+
this.route = route;
|
|
11
|
+
this.navigation.route = this.route;
|
|
12
|
+
this.navigation.subscribeToUrlChange((url) => {
|
|
13
|
+
let channel = this.route.snapshot.paramMap.get(SmartLinkChannelVariableInPath);
|
|
14
|
+
let uuid = this.route.snapshot.paramMap.get(SmartLinkUuidVariableInPath);
|
|
15
|
+
if (!channel || !uuid) {
|
|
16
|
+
throw new Error("channel or uuid is not reachable from the url!");
|
|
17
|
+
}
|
|
18
|
+
this.service.showPublishedView(channel, uuid);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
SmartViewRedirect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartViewRedirect, deps: [{ token: i1.SmartViewContextService }, { token: i2.SmartNavigationService }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
SmartViewRedirect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SmartViewRedirect, selector: "app-redirect", ngImport: i0, template: "<div>Smart redirect</div>", isInline: true });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartViewRedirect, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{
|
|
27
|
+
selector: "app-redirect",
|
|
28
|
+
template: "<div>Smart redirect</div>",
|
|
29
|
+
}]
|
|
30
|
+
}], ctorParameters: function () { return [{ type: i1.SmartViewContextService }, { type: i2.SmartNavigationService }, { type: i3.ActivatedRoute }]; } });
|
|
31
|
+
export const SmartLinkChannelVariableInPath = "channel";
|
|
32
|
+
export const SmartLinkUuidVariableInPath = "uuid";
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1yZWRpcmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC12aWV3LXJlZGlyZWN0L3NtYXJ0LXZpZXctcmVkaXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTMUMsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUNZLE9BQWdDLEVBQ2hDLFVBQWtDLEVBQ2xDLEtBQXFCO1FBRnJCLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLGVBQVUsR0FBVixVQUFVLENBQXdCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBRTdCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ2pELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUMvRSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFFekUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO2FBQ3JFO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzsrR0FoQlEsaUJBQWlCO21HQUFqQixpQkFBaUIsb0RBRmhCLDJCQUEyQjs0RkFFNUIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixRQUFRLEVBQUUsMkJBQTJCO2lCQUN4Qzs7QUFvQkQsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQVcsU0FBUyxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFXLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFNtYXJ0TmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tIFwiQHNtYXJ0Yml0NGFsbC9uYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0U2VydmljZSB9IGZyb20gXCIuLi9zbWFydC12aWV3LWNvbnRleHQuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJhcHAtcmVkaXJlY3RcIixcbiAgICB0ZW1wbGF0ZTogXCI8ZGl2PlNtYXJ0IHJlZGlyZWN0PC9kaXY+XCIsXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0Vmlld1JlZGlyZWN0IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBTbWFydFZpZXdDb250ZXh0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuYXZpZ2F0aW9uOiBTbWFydE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICAgICkge1xuICAgICAgICB0aGlzLm5hdmlnYXRpb24ucm91dGUgPSB0aGlzLnJvdXRlO1xuICAgICAgICB0aGlzLm5hdmlnYXRpb24uc3Vic2NyaWJlVG9VcmxDaGFuZ2UoKHVybDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBsZXQgY2hhbm5lbCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KFNtYXJ0TGlua0NoYW5uZWxWYXJpYWJsZUluUGF0aCk7XG4gICAgICAgICAgICBsZXQgdXVpZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KFNtYXJ0TGlua1V1aWRWYXJpYWJsZUluUGF0aCk7XG5cbiAgICAgICAgICAgIGlmICghY2hhbm5lbCB8fCAhdXVpZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImNoYW5uZWwgb3IgdXVpZCBpcyBub3QgcmVhY2hhYmxlIGZyb20gdGhlIHVybCFcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2hvd1B1Ymxpc2hlZFZpZXcoY2hhbm5lbCwgdXVpZCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IFNtYXJ0TGlua0NoYW5uZWxWYXJpYWJsZUluUGF0aDogc3RyaW5nID0gXCJjaGFubmVsXCI7XG5leHBvcnQgY29uc3QgU21hcnRMaW5rVXVpZFZhcmlhYmxlSW5QYXRoOiBzdHJpbmcgPSBcInV1aWRcIjtcbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { NgModule, SkipSelf, Optional } from "@angular/core";
|
|
2
|
+
import { Configuration } from "./configuration";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
export class ApiModule {
|
|
6
|
+
constructor(parentModule, http) {
|
|
7
|
+
if (parentModule) {
|
|
8
|
+
throw new Error("ApiModule is already loaded. Import in your base AppModule only.");
|
|
9
|
+
}
|
|
10
|
+
if (!http) {
|
|
11
|
+
throw new Error("You need to import the HttpClientModule in your AppModule! \n" +
|
|
12
|
+
"See also https://github.com/angular/angular/issues/20575");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
static forRoot(configurationFactory) {
|
|
16
|
+
return {
|
|
17
|
+
ngModule: ApiModule,
|
|
18
|
+
providers: [{ provide: Configuration, useFactory: configurationFactory }],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
ApiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ApiModule, deps: [{ token: ApiModule, optional: true, skipSelf: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
+
ApiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ApiModule });
|
|
24
|
+
ApiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ApiModule, providers: [], imports: [[]] });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ApiModule, decorators: [{
|
|
26
|
+
type: NgModule,
|
|
27
|
+
args: [{
|
|
28
|
+
imports: [],
|
|
29
|
+
declarations: [],
|
|
30
|
+
exports: [],
|
|
31
|
+
providers: [],
|
|
32
|
+
}]
|
|
33
|
+
}], ctorParameters: function () { return [{ type: ApiModule, decorators: [{
|
|
34
|
+
type: Optional
|
|
35
|
+
}, {
|
|
36
|
+
type: SkipSelf
|
|
37
|
+
}] }, { type: i1.HttpClient, decorators: [{
|
|
38
|
+
type: Optional
|
|
39
|
+
}] }]; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC92YWx1ZS1hcGkvYXBpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBU2hELE1BQU0sT0FBTyxTQUFTO0lBVWxCLFlBQW9DLFlBQXVCLEVBQWMsSUFBZ0I7UUFDckYsSUFBSSxZQUFZLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7U0FDdkY7UUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsTUFBTSxJQUFJLEtBQUssQ0FDWCwrREFBK0Q7Z0JBQzNELDBEQUEwRCxDQUNqRSxDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBbkJNLE1BQU0sQ0FBQyxPQUFPLENBQ2pCLG9CQUF5QztRQUV6QyxPQUFPO1lBQ0gsUUFBUSxFQUFFLFNBQVM7WUFDbkIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1NBQzVFLENBQUM7SUFDTixDQUFDOzt1R0FSUSxTQUFTLGtCQVVnQyxTQUFTO3dHQVZsRCxTQUFTO3dHQUFULFNBQVMsYUFGUCxFQUFFLFlBSEosRUFBRTs0RkFLRixTQUFTO2tCQU5yQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxTQUFTLEVBQUUsRUFBRTtpQkFDaEI7MERBV3FELFNBQVM7MEJBQTlDLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUE2QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMsIFNraXBTZWxmLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvblwiO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtdLFxuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgZXhwb3J0czogW10sXG4gICAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBpTW9kdWxlIHtcbiAgICBwdWJsaWMgc3RhdGljIGZvclJvb3QoXG4gICAgICAgIGNvbmZpZ3VyYXRpb25GYWN0b3J5OiAoKSA9PiBDb25maWd1cmF0aW9uXG4gICAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBcGlNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBBcGlNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENvbmZpZ3VyYXRpb24sIHVzZUZhY3Rvcnk6IGNvbmZpZ3VyYXRpb25GYWN0b3J5IH1dLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHBhcmVudE1vZHVsZTogQXBpTW9kdWxlLCBAT3B0aW9uYWwoKSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgICAgIGlmIChwYXJlbnRNb2R1bGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFwaU1vZHVsZSBpcyBhbHJlYWR5IGxvYWRlZC4gSW1wb3J0IGluIHlvdXIgYmFzZSBBcHBNb2R1bGUgb25seS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFodHRwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJZb3UgbmVlZCB0byBpbXBvcnQgdGhlIEh0dHBDbGllbnRNb2R1bGUgaW4geW91ciBBcHBNb2R1bGUhIFxcblwiICtcbiAgICAgICAgICAgICAgICAgICAgXCJTZWUgYWxzbyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yMDU3NVwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
export class Configuration {
|
|
2
|
+
constructor(configurationParameters = {}) {
|
|
3
|
+
this.apiKeys = configurationParameters.apiKeys;
|
|
4
|
+
this.username = configurationParameters.username;
|
|
5
|
+
this.password = configurationParameters.password;
|
|
6
|
+
this.accessToken = configurationParameters.accessToken;
|
|
7
|
+
this.basePath = configurationParameters.basePath;
|
|
8
|
+
this.withCredentials = configurationParameters.withCredentials;
|
|
9
|
+
this.encoder = configurationParameters.encoder;
|
|
10
|
+
if (configurationParameters.encodeParam) {
|
|
11
|
+
this.encodeParam = configurationParameters.encodeParam;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
this.encodeParam = param => this.defaultEncodeParam(param);
|
|
15
|
+
}
|
|
16
|
+
if (configurationParameters.credentials) {
|
|
17
|
+
this.credentials = configurationParameters.credentials;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
this.credentials = {};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Select the correct content-type to use for a request.
|
|
25
|
+
* Uses {@link Configuration#isJsonMime} to determine the correct content-type.
|
|
26
|
+
* If no content type is found return the first found type if the contentTypes is not empty
|
|
27
|
+
* @param contentTypes - the array of content types that are available for selection
|
|
28
|
+
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
29
|
+
*/
|
|
30
|
+
selectHeaderContentType(contentTypes) {
|
|
31
|
+
if (contentTypes.length === 0) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
const type = contentTypes.find((x) => this.isJsonMime(x));
|
|
35
|
+
if (type === undefined) {
|
|
36
|
+
return contentTypes[0];
|
|
37
|
+
}
|
|
38
|
+
return type;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Select the correct accept content-type to use for a request.
|
|
42
|
+
* Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.
|
|
43
|
+
* If no content type is found return the first found type if the contentTypes is not empty
|
|
44
|
+
* @param accepts - the array of content types that are available for selection.
|
|
45
|
+
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
46
|
+
*/
|
|
47
|
+
selectHeaderAccept(accepts) {
|
|
48
|
+
if (accepts.length === 0) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const type = accepts.find((x) => this.isJsonMime(x));
|
|
52
|
+
if (type === undefined) {
|
|
53
|
+
return accepts[0];
|
|
54
|
+
}
|
|
55
|
+
return type;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Check if the given MIME is a JSON MIME.
|
|
59
|
+
* JSON MIME examples:
|
|
60
|
+
* application/json
|
|
61
|
+
* application/json; charset=UTF8
|
|
62
|
+
* APPLICATION/JSON
|
|
63
|
+
* application/vnd.company+json
|
|
64
|
+
* @param mime - MIME (Multipurpose Internet Mail Extensions)
|
|
65
|
+
* @return True if the given MIME is JSON, false otherwise.
|
|
66
|
+
*/
|
|
67
|
+
isJsonMime(mime) {
|
|
68
|
+
const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
|
|
69
|
+
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
|
|
70
|
+
}
|
|
71
|
+
lookupCredential(key) {
|
|
72
|
+
const value = this.credentials[key];
|
|
73
|
+
return typeof value === 'function'
|
|
74
|
+
? value()
|
|
75
|
+
: value;
|
|
76
|
+
}
|
|
77
|
+
defaultEncodeParam(param) {
|
|
78
|
+
// This implementation exists as fallback for missing configuration
|
|
79
|
+
// and for backwards compatibility to older typescript-angular generator versions.
|
|
80
|
+
// It only works for the 'simple' parameter style.
|
|
81
|
+
// Date-handling only works for the 'date-time' format.
|
|
82
|
+
// All other styles and Date-formats are probably handled incorrectly.
|
|
83
|
+
//
|
|
84
|
+
// But: if that's all you need (i.e.: the most common use-case): no need for customization!
|
|
85
|
+
const value = param.dataFormat === 'date-time'
|
|
86
|
+
? param.value.toISOString()
|
|
87
|
+
: param.value;
|
|
88
|
+
return encodeURIComponent(String(value));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC92YWx1ZS1hcGkvY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQ0EsTUFBTSxPQUFPLGFBQWE7SUFnQ3RCLFlBQVksMEJBQW1ELEVBQUU7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxXQUFXLENBQUM7UUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7UUFDL0QsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUM7UUFDL0MsSUFBSSx1QkFBdUIsQ0FBQyxXQUFXLEVBQUU7WUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxXQUFXLENBQUM7U0FDMUQ7YUFDSTtZQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUQ7UUFDRCxJQUFJLHVCQUF1QixDQUFDLFdBQVcsRUFBRTtZQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLHVCQUF1QixDQUFDLFdBQVcsQ0FBQztTQUMxRDthQUNJO1lBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksdUJBQXVCLENBQUUsWUFBc0I7UUFDbEQsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQixPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUVELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDcEIsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0JBQWtCLENBQUMsT0FBaUI7UUFDdkMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0QixPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDcEIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksVUFBVSxDQUFDLElBQVk7UUFDMUIsTUFBTSxRQUFRLEdBQVcsSUFBSSxNQUFNLENBQUMsK0RBQStELEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUcsT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssNkJBQTZCLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsR0FBVztRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVTtZQUM5QixDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ1QsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBWTtRQUNuQyxtRUFBbUU7UUFDbkUsa0ZBQWtGO1FBQ2xGLGtEQUFrRDtRQUNsRCx1REFBdUQ7UUFDdkQsc0VBQXNFO1FBQ3RFLEVBQUU7UUFDRiwyRkFBMkY7UUFFM0YsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsS0FBSyxXQUFXO1lBQzFDLENBQUMsQ0FBRSxLQUFLLENBQUMsS0FBYyxDQUFDLFdBQVcsRUFBRTtZQUNyQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUVsQixPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbWV0ZXJDb2RlYyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFBhcmFtIH0gZnJvbSAnLi9wYXJhbSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhdGlvblBhcmFtZXRlcnMge1xuICAgIC8qKlxuICAgICAqICBAZGVwcmVjYXRlZCBTaW5jZSA1LjAuIFVzZSBjcmVkZW50aWFscyBpbnN0ZWFkXG4gICAgICovXG4gICAgYXBpS2V5cz86IHtbIGtleTogc3RyaW5nIF06IHN0cmluZ307XG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogIEBkZXByZWNhdGVkIFNpbmNlIDUuMC4gVXNlIGNyZWRlbnRpYWxzIGluc3RlYWRcbiAgICAgKi9cbiAgICBhY2Nlc3NUb2tlbj86IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpO1xuICAgIGJhc2VQYXRoPzogc3RyaW5nO1xuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGFrZXMgY2FyZSBvZiBlbmNvZGluZyBxdWVyeS0gYW5kIGZvcm0tcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBlbmNvZGVyPzogSHR0cFBhcmFtZXRlckNvZGVjO1xuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIHRoZSBkZWZhdWx0IG1ldGhvZCBmb3IgZW5jb2RpbmcgcGF0aCBwYXJhbWV0ZXJzIGluIHZhcmlvdXNcbiAgICAgKiA8YSBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vYmxvYi9tYWluL3ZlcnNpb25zLzMuMS4wLm1kI3N0eWxlLXZhbHVlc1wiPnN0eWxlczwvYT4uXG4gICAgICogPHA+XG4gICAgICogU2VlIHtAbGluayBSRUFETUUubWR9IGZvciBtb3JlIGRldGFpbHNcbiAgICAgKiA8L3A+XG4gICAgICovXG4gICAgZW5jb2RlUGFyYW0/OiAocGFyYW06IFBhcmFtKSA9PiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGtleXMgYXJlIHRoZSBuYW1lcyBpbiB0aGUgc2VjdXJpdHlTY2hlbWVzIHNlY3Rpb24gb2YgdGhlIE9wZW5BUElcbiAgICAgKiBkb2N1bWVudC4gVGhleSBzaG91bGQgbWFwIHRvIHRoZSB2YWx1ZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvblxuICAgICAqIG1pbnVzIGFueSBzdGFuZGFyZCBwcmVmaXhlcyBzdWNoIGFzICdCYXNpYycgb3IgJ0JlYXJlcicuXG4gICAgICovXG4gICAgY3JlZGVudGlhbHM/OiB7WyBrZXk6IHN0cmluZyBdOiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkKX07XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uIHtcbiAgICAvKipcbiAgICAgKiAgQGRlcHJlY2F0ZWQgU2luY2UgNS4wLiBVc2UgY3JlZGVudGlhbHMgaW5zdGVhZFxuICAgICAqL1xuICAgIGFwaUtleXM/OiB7WyBrZXk6IHN0cmluZyBdOiBzdHJpbmd9O1xuICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICAgIHBhc3N3b3JkPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqICBAZGVwcmVjYXRlZCBTaW5jZSA1LjAuIFVzZSBjcmVkZW50aWFscyBpbnN0ZWFkXG4gICAgICovXG4gICAgYWNjZXNzVG9rZW4/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbiAgICBiYXNlUGF0aD86IHN0cmluZztcbiAgICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRha2VzIGNhcmUgb2YgZW5jb2RpbmcgcXVlcnktIGFuZCBmb3JtLXBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgZW5jb2Rlcj86IEh0dHBQYXJhbWV0ZXJDb2RlYztcbiAgICAvKipcbiAgICAgKiBFbmNvZGluZyBvZiB2YXJpb3VzIHBhdGggcGFyYW1ldGVyXG4gICAgICogPGEgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uL2Jsb2IvbWFpbi92ZXJzaW9ucy8zLjEuMC5tZCNzdHlsZS12YWx1ZXNcIj5zdHlsZXM8L2E+LlxuICAgICAqIDxwPlxuICAgICAqIFNlZSB7QGxpbmsgUkVBRE1FLm1kfSBmb3IgbW9yZSBkZXRhaWxzXG4gICAgICogPC9wPlxuICAgICAqL1xuICAgIGVuY29kZVBhcmFtOiAocGFyYW06IFBhcmFtKSA9PiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGtleXMgYXJlIHRoZSBuYW1lcyBpbiB0aGUgc2VjdXJpdHlTY2hlbWVzIHNlY3Rpb24gb2YgdGhlIE9wZW5BUElcbiAgICAgKiBkb2N1bWVudC4gVGhleSBzaG91bGQgbWFwIHRvIHRoZSB2YWx1ZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvblxuICAgICAqIG1pbnVzIGFueSBzdGFuZGFyZCBwcmVmaXhlcyBzdWNoIGFzICdCYXNpYycgb3IgJ0JlYXJlcicuXG4gICAgICovXG4gICAgY3JlZGVudGlhbHM6IHtbIGtleTogc3RyaW5nIF06IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQpfTtcblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzOiBDb25maWd1cmF0aW9uUGFyYW1ldGVycyA9IHt9KSB7XG4gICAgICAgIHRoaXMuYXBpS2V5cyA9IGNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzLmFwaUtleXM7XG4gICAgICAgIHRoaXMudXNlcm5hbWUgPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy51c2VybmFtZTtcbiAgICAgICAgdGhpcy5wYXNzd29yZCA9IGNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzLnBhc3N3b3JkO1xuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gY29uZmlndXJhdGlvblBhcmFtZXRlcnMuYWNjZXNzVG9rZW47XG4gICAgICAgIHRoaXMuYmFzZVBhdGggPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy5iYXNlUGF0aDtcbiAgICAgICAgdGhpcy53aXRoQ3JlZGVudGlhbHMgPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy53aXRoQ3JlZGVudGlhbHM7XG4gICAgICAgIHRoaXMuZW5jb2RlciA9IGNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzLmVuY29kZXI7XG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uUGFyYW1ldGVycy5lbmNvZGVQYXJhbSkge1xuICAgICAgICAgICAgdGhpcy5lbmNvZGVQYXJhbSA9IGNvbmZpZ3VyYXRpb25QYXJhbWV0ZXJzLmVuY29kZVBhcmFtO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbmNvZGVQYXJhbSA9IHBhcmFtID0+IHRoaXMuZGVmYXVsdEVuY29kZVBhcmFtKHBhcmFtKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlndXJhdGlvblBhcmFtZXRlcnMuY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlZGVudGlhbHMgPSBjb25maWd1cmF0aW9uUGFyYW1ldGVycy5jcmVkZW50aWFscztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3JlZGVudGlhbHMgPSB7fTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdCB0aGUgY29ycmVjdCBjb250ZW50LXR5cGUgdG8gdXNlIGZvciBhIHJlcXVlc3QuXG4gICAgICogVXNlcyB7QGxpbmsgQ29uZmlndXJhdGlvbiNpc0pzb25NaW1lfSB0byBkZXRlcm1pbmUgdGhlIGNvcnJlY3QgY29udGVudC10eXBlLlxuICAgICAqIElmIG5vIGNvbnRlbnQgdHlwZSBpcyBmb3VuZCByZXR1cm4gdGhlIGZpcnN0IGZvdW5kIHR5cGUgaWYgdGhlIGNvbnRlbnRUeXBlcyBpcyBub3QgZW1wdHlcbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGVzIC0gdGhlIGFycmF5IG9mIGNvbnRlbnQgdHlwZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb25cbiAgICAgKiBAcmV0dXJucyB0aGUgc2VsZWN0ZWQgY29udGVudC10eXBlIG9yIDxjb2RlPnVuZGVmaW5lZDwvY29kZT4gaWYgbm8gc2VsZWN0aW9uIGNvdWxkIGJlIG1hZGUuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdEhlYWRlckNvbnRlbnRUeXBlIChjb250ZW50VHlwZXM6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGNvbnRlbnRUeXBlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0eXBlID0gY29udGVudFR5cGVzLmZpbmQoKHg6IHN0cmluZykgPT4gdGhpcy5pc0pzb25NaW1lKHgpKTtcbiAgICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlc1swXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3QgdGhlIGNvcnJlY3QgYWNjZXB0IGNvbnRlbnQtdHlwZSB0byB1c2UgZm9yIGEgcmVxdWVzdC5cbiAgICAgKiBVc2VzIHtAbGluayBDb25maWd1cmF0aW9uI2lzSnNvbk1pbWV9IHRvIGRldGVybWluZSB0aGUgY29ycmVjdCBhY2NlcHQgY29udGVudC10eXBlLlxuICAgICAqIElmIG5vIGNvbnRlbnQgdHlwZSBpcyBmb3VuZCByZXR1cm4gdGhlIGZpcnN0IGZvdW5kIHR5cGUgaWYgdGhlIGNvbnRlbnRUeXBlcyBpcyBub3QgZW1wdHlcbiAgICAgKiBAcGFyYW0gYWNjZXB0cyAtIHRoZSBhcnJheSBvZiBjb250ZW50IHR5cGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uLlxuICAgICAqIEByZXR1cm5zIHRoZSBzZWxlY3RlZCBjb250ZW50LXR5cGUgb3IgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBpZiBubyBzZWxlY3Rpb24gY291bGQgYmUgbWFkZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0SGVhZGVyQWNjZXB0KGFjY2VwdHM6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGFjY2VwdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHlwZSA9IGFjY2VwdHMuZmluZCgoeDogc3RyaW5nKSA9PiB0aGlzLmlzSnNvbk1pbWUoeCkpO1xuICAgICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYWNjZXB0c1swXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgZ2l2ZW4gTUlNRSBpcyBhIEpTT04gTUlNRS5cbiAgICAgKiBKU09OIE1JTUUgZXhhbXBsZXM6XG4gICAgICogICBhcHBsaWNhdGlvbi9qc29uXG4gICAgICogICBhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURjhcbiAgICAgKiAgIEFQUExJQ0FUSU9OL0pTT05cbiAgICAgKiAgIGFwcGxpY2F0aW9uL3ZuZC5jb21wYW55K2pzb25cbiAgICAgKiBAcGFyYW0gbWltZSAtIE1JTUUgKE11bHRpcHVycG9zZSBJbnRlcm5ldCBNYWlsIEV4dGVuc2lvbnMpXG4gICAgICogQHJldHVybiBUcnVlIGlmIHRoZSBnaXZlbiBNSU1FIGlzIEpTT04sIGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNKc29uTWltZShtaW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QganNvbk1pbWU6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14oYXBwbGljYXRpb25cXC9qc29ufFteOy8gXFx0XStcXC9bXjsvIFxcdF0rWytdanNvbilbIFxcdF0qKDsuKik/JCcsICdpJyk7XG4gICAgICAgIHJldHVybiBtaW1lICE9PSBudWxsICYmIChqc29uTWltZS50ZXN0KG1pbWUpIHx8IG1pbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24tcGF0Y2granNvbicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb29rdXBDcmVkZW50aWFsKGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNyZWRlbnRpYWxzW2tleV07XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gdmFsdWUoKVxuICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlZmF1bHRFbmNvZGVQYXJhbShwYXJhbTogUGFyYW0pOiBzdHJpbmcge1xuICAgICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGV4aXN0cyBhcyBmYWxsYmFjayBmb3IgbWlzc2luZyBjb25maWd1cmF0aW9uXG4gICAgICAgIC8vIGFuZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgdG8gb2xkZXIgdHlwZXNjcmlwdC1hbmd1bGFyIGdlbmVyYXRvciB2ZXJzaW9ucy5cbiAgICAgICAgLy8gSXQgb25seSB3b3JrcyBmb3IgdGhlICdzaW1wbGUnIHBhcmFtZXRlciBzdHlsZS5cbiAgICAgICAgLy8gRGF0ZS1oYW5kbGluZyBvbmx5IHdvcmtzIGZvciB0aGUgJ2RhdGUtdGltZScgZm9ybWF0LlxuICAgICAgICAvLyBBbGwgb3RoZXIgc3R5bGVzIGFuZCBEYXRlLWZvcm1hdHMgYXJlIHByb2JhYmx5IGhhbmRsZWQgaW5jb3JyZWN0bHkuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEJ1dDogaWYgdGhhdCdzIGFsbCB5b3UgbmVlZCAoaS5lLjogdGhlIG1vc3QgY29tbW9uIHVzZS1jYXNlKTogbm8gbmVlZCBmb3IgY3VzdG9taXphdGlvbiFcblxuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtLmRhdGFGb3JtYXQgPT09ICdkYXRlLXRpbWUnXG4gICAgICAgICAgICA/IChwYXJhbS52YWx1ZSBhcyBEYXRlKS50b0lTT1N0cmluZygpXG4gICAgICAgICAgICA6IHBhcmFtLnZhbHVlO1xuXG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHZhbHVlKSk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./model/models";
|
|
2
|
+
export * from "./variables";
|
|
3
|
+
export * from "./configuration";
|
|
4
|
+
export * from "./api.module";
|
|
5
|
+
export * from "./param";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvdmFsdWUtYXBpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL21vZGVsL21vZGVsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmFyaWFibGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hcGkubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYXJhbVwiO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from "./valueSetData";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3ZhbHVlLWFwaS9tb2RlbC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3ZhbHVlU2V0RGF0YVwiO1xuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* value api
|
|
3
|
+
* value api
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
* Contact: info@it4all.hu
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVTZXREYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3ZhbHVlLWFwaS9tb2RlbC92YWx1ZVNldERhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogdmFsdWUgYXBpXG4gKiB2YWx1ZSBhcGlcbiAqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS4wLjBcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5cbi8qKlxuICogVGhlIGluc3RhbmNlIG9mIHRoZSBWYWx1ZVNldERlZmludGlvbiB0aGF0IGNvbmF0aW5zIGV2ZXJ5IGluZm9ybWF0aW9uIGlubGluZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWx1ZVNldERhdGEge1xuICAgIHF1YWxpZmllZE5hbWU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUga2V5IHByb3BlcnR5IGluIHRoZSB2YWx1ZS4gSXQgd2lsbCBiZSB0aGUgdmFsdWUgdGhhdCBjb3BpZWQgaW50byB0aGUgcmVmZXJlbmNlIHdoZW4gYSBnaXZlbiBpdGVtIGlzIHNlbGVjdGVkIGZyb20gdGhlIHZhbHVlIHNldC5cbiAgICAgKi9cbiAgICBrZXlQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwcm9wZXJ0aWVzOiBBcnJheTxhbnk+O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIGljb24gY29kZSBmb3IgdGhlIGdpdmVuIHZhbHVlIHNldC5cbiAgICAgKi9cbiAgICBpY29uQ29kZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlIHRoZW4gdGhlIHZhbHVlIHNldCBpcyBub3QgZGVmaW5lZCBhbmQgbm90IGFjY2Vzc2libGUuXG4gICAgICovXG4gICAgdW5kZWZpbmVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlIHRoZW4gdGhlIHZhbHVlcyBkb2VzblxcJ3QgY29udGFpbnMgdGhlIHRoZSB3aG9sZSB2YWx1ZXMgc2V0IG9yIGl0IG1pZ3RoIGJlIGVtcHR5IGFuZCB3ZSBoYXZlIHRvIGFzayBmb3IgZmlsdGVyZWQgc2V0IG9mIHZhbHVlcyB1c2luZyB0aGUgZmlsdGVyIGZpZWxkcyBhdmFpbGFibGUuXG4gICAgICovXG4gICAgbGF6eT86IGJvb2xlYW47XG4gICAgdmFsdWVzOiBBcnJheTxvYmplY3Q+O1xuICAgIC8qKlxuICAgICAqIFRoZSBmaWx0ZXIgZXhwcmVzc2lvbiBtb2RlbCBmb3IgdGhlIHNlYXJjaCBmcm9tIHZhbHVlcy5cbiAgICAgKi9cbiAgICBmaWx0ZXJNb2RlbD86IGFueTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvdmFsdWUtYXBpL3BhcmFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0YW5kYXJkIHBhcmFtZXRlciBzdHlsZXMgZGVmaW5lZCBieSBPcGVuQVBJIHNwZWNcbiAqL1xuZXhwb3J0IHR5cGUgU3RhbmRhcmRQYXJhbVN0eWxlID1cbiAgfCAnbWF0cml4J1xuICB8ICdsYWJlbCdcbiAgfCAnZm9ybSdcbiAgfCAnc2ltcGxlJ1xuICB8ICdzcGFjZURlbGltaXRlZCdcbiAgfCAncGlwZURlbGltaXRlZCdcbiAgfCAnZGVlcE9iamVjdCdcbiAgO1xuXG4vKipcbiAqIFRoZSBPcGVuQVBJIHN0YW5kYXJkIHtAbGluayBTdGFuZGFyZFBhcmFtU3R5bGV9cyBtYXkgYmUgZXh0ZW5kZWQgYnkgY3VzdG9tIHN0eWxlcyBieSB0aGUgdXNlci5cbiAqL1xuZXhwb3J0IHR5cGUgUGFyYW1TdHlsZSA9IFN0YW5kYXJkUGFyYW1TdHlsZSB8IHN0cmluZztcblxuLyoqXG4gKiBTdGFuZGFyZCBwYXJhbWV0ZXIgbG9jYXRpb25zIGRlZmluZWQgYnkgT3BlbkFQSSBzcGVjXG4gKi9cbmV4cG9ydCB0eXBlIFBhcmFtTG9jYXRpb24gPSAncXVlcnknIHwgJ2hlYWRlcicgfCAncGF0aCcgfCAnY29va2llJztcblxuLyoqXG4gKiBTdGFuZGFyZCB0eXBlcyBhcyBkZWZpbmVkIGluIDxhIGhyZWY9XCJodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jZGF0YS10eXBlc1wiPk9wZW5BUEkgU3BlY2lmaWNhdGlvbjogRGF0YSBUeXBlczwvYT5cbiAqL1xuZXhwb3J0IHR5cGUgU3RhbmRhcmREYXRhVHlwZSA9XG4gIHwgXCJpbnRlZ2VyXCJcbiAgfCBcIm51bWJlclwiXG4gIHwgXCJib29sZWFuXCJcbiAgfCBcInN0cmluZ1wiXG4gIHwgXCJvYmplY3RcIlxuICB8IFwiYXJyYXlcIlxuICA7XG5cbi8qKlxuICogU3RhbmRhcmQge0BsaW5rIERhdGFUeXBlfXMgcGx1cyB5b3VyIG93biB0eXBlcy9jbGFzc2VzLlxuICovXG5leHBvcnQgdHlwZSBEYXRhVHlwZSA9IFN0YW5kYXJkRGF0YVR5cGUgfCBzdHJpbmc7XG5cbi8qKlxuICogU3RhbmRhcmQgZm9ybWF0cyBhcyBkZWZpbmVkIGluIDxhIGhyZWY9XCJodHRwczovL3N3YWdnZXIuaW8vc3BlY2lmaWNhdGlvbi8jZGF0YS10eXBlc1wiPk9wZW5BUEkgU3BlY2lmaWNhdGlvbjogRGF0YSBUeXBlczwvYT5cbiAqL1xuZXhwb3J0IHR5cGUgU3RhbmRhcmREYXRhRm9ybWF0ID1cbiAgfCBcImludDMyXCJcbiAgfCBcImludDY0XCJcbiAgfCBcImZsb2F0XCJcbiAgfCBcImRvdWJsZVwiXG4gIHwgXCJieXRlXCJcbiAgfCBcImJpbmFyeVwiXG4gIHwgXCJkYXRlXCJcbiAgfCBcImRhdGUtdGltZVwiXG4gIHwgXCJwYXNzd29yZFwiXG4gIDtcblxuZXhwb3J0IHR5cGUgRGF0YUZvcm1hdCA9IFN0YW5kYXJkRGF0YUZvcm1hdCB8IHN0cmluZztcblxuLyoqXG4gKiBUaGUgcGFyYW1ldGVyIHRvIGVuY29kZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJhbSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHVua25vd247XG4gIGluOiBQYXJhbUxvY2F0aW9uO1xuICBzdHlsZTogUGFyYW1TdHlsZSxcbiAgZXhwbG9kZTogYm9vbGVhbjtcbiAgZGF0YVR5cGU6IERhdGFUeXBlO1xuICBkYXRhRm9ybWF0OiBEYXRhRm9ybWF0IHwgdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const BASE_PATH = new InjectionToken('basePath');
|
|
3
|
+
export const COLLECTION_FORMATS = {
|
|
4
|
+
'csv': ',',
|
|
5
|
+
'tsv': ' ',
|
|
6
|
+
'ssv': ' ',
|
|
7
|
+
'pipes': '|'
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3ZhbHVlLWFwaS92YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQVMsVUFBVSxDQUFDLENBQUM7QUFDaEUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDOUIsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsS0FBSztJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsT0FBTyxFQUFFLEdBQUc7Q0FDZixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEJBU0VfUEFUSCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdiYXNlUGF0aCcpO1xuZXhwb3J0IGNvbnN0IENPTExFQ1RJT05fRk9STUFUUyA9IHtcbiAgICAnY3N2JzogJywnLFxuICAgICd0c3YnOiAnICAgJyxcbiAgICAnc3N2JzogJyAnLFxuICAgICdwaXBlcyc6ICd8J1xufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of smart-ng-client
|
|
3
|
+
*/
|
|
4
|
+
export * from "./lib/smart-ng-client.service";
|
|
5
|
+
export * from "./lib/smart-ng-client.module";
|
|
6
|
+
export * from "./lib/view-context/projects";
|
|
7
|
+
export * from "./lib/session/projects";
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL3Byb2plY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc21hcnQtbmctY2xpZW50XG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NtYXJ0LW5nLWNsaWVudC5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc21hcnQtbmctY2xpZW50Lm1vZHVsZVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvdmlldy1jb250ZXh0L3Byb2plY3RzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2Vzc2lvbi9wcm9qZWN0c1wiO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './projects';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRiaXQ0YWxsLW5nLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvc21hcnRiaXQ0YWxsLW5nLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3RzJztcbiJdfQ==
|