@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,204 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { Subject } from "rxjs";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./api";
|
|
5
|
+
import * as i2 from "./cookie-service/smart-cookie.service";
|
|
6
|
+
export class SmartSessionService {
|
|
7
|
+
constructor(apiService, cookieService) {
|
|
8
|
+
this.apiService = apiService;
|
|
9
|
+
this.cookieService = cookieService;
|
|
10
|
+
this.isAuthenticated = false;
|
|
11
|
+
this.authenticationStateChanged = new Subject();
|
|
12
|
+
this.headerParams = new Array();
|
|
13
|
+
this.headersUpdated = new Subject();
|
|
14
|
+
// Locale
|
|
15
|
+
this.localStorageLocaleName = "locale";
|
|
16
|
+
this.localeChanged = new Subject();
|
|
17
|
+
this.sessionExpiracyChanged = new Subject();
|
|
18
|
+
}
|
|
19
|
+
get sessionInfoData() {
|
|
20
|
+
return this._sessionInfoData;
|
|
21
|
+
}
|
|
22
|
+
set sessionInfoData(sessionInfoData) {
|
|
23
|
+
let expiracyChanged = this.sessionInfoData?.expiration !== sessionInfoData?.expiration;
|
|
24
|
+
this._sessionInfoData = sessionInfoData;
|
|
25
|
+
if (expiracyChanged) {
|
|
26
|
+
this.sessionExpiracyChanged.next();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
setSessionHandlerService(smartSessionHandlerService) {
|
|
30
|
+
this.sessionHandlerService = smartSessionHandlerService;
|
|
31
|
+
}
|
|
32
|
+
async handleSessionError(sessionError) {
|
|
33
|
+
if (this.sessionHandlerService) {
|
|
34
|
+
await this.sessionHandlerService.handleSessionError(sessionError);
|
|
35
|
+
}
|
|
36
|
+
throw new Error(`sessionHandlerService was not initialized. Error: ${sessionError.code}`);
|
|
37
|
+
}
|
|
38
|
+
addHeaderParam(headerParam) {
|
|
39
|
+
this.headerParams.push(headerParam);
|
|
40
|
+
this.headersUpdated.next();
|
|
41
|
+
}
|
|
42
|
+
setUpTokenForSessionService() {
|
|
43
|
+
if (this.headerParams.find((header) => header.headerName === "Authorization")) {
|
|
44
|
+
let index = this.headerParams.findIndex((header) => header.headerName === "Authorization");
|
|
45
|
+
this.headerParams[index].value = `Bearer ${this.token}`;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.addHeaderParam({ headerName: "Authorization", value: `Bearer ${this.token}` });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
setUrl(url) {
|
|
52
|
+
this.basePath = url;
|
|
53
|
+
}
|
|
54
|
+
getBasePath() {
|
|
55
|
+
if (!this.basePath) {
|
|
56
|
+
throw new Error("BasePath has not been set in SmartSessionService!");
|
|
57
|
+
}
|
|
58
|
+
return this.basePath;
|
|
59
|
+
}
|
|
60
|
+
setCookieName(name) {
|
|
61
|
+
this.cookieName = name;
|
|
62
|
+
}
|
|
63
|
+
saveTokenToLocalStorage() {
|
|
64
|
+
if (this.sessionInfoData && this.cookieName) {
|
|
65
|
+
localStorage.setItem("token", this.sessionInfoData.sid);
|
|
66
|
+
if (this.sessionInfoData.refreshToken &&
|
|
67
|
+
this.sessionInfoData.refreshToken !== localStorage.getItem("refreshToken")) {
|
|
68
|
+
localStorage.setItem("refreshToken", this.sessionInfoData.refreshToken);
|
|
69
|
+
}
|
|
70
|
+
this.cookieService.set(this.cookieName, this.token);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
setAuthenticationStatus() {
|
|
74
|
+
if (this.sessionInfoData && this.sessionInfoData.authentications) {
|
|
75
|
+
this.isAuthenticated = this.sessionInfoData.authentications.length > 0;
|
|
76
|
+
}
|
|
77
|
+
this.authenticationStateChanged.next(this.isAuthenticated);
|
|
78
|
+
}
|
|
79
|
+
checkStatements() {
|
|
80
|
+
if (!this.basePath) {
|
|
81
|
+
throw new Error("The url of the backend api has not been set!");
|
|
82
|
+
}
|
|
83
|
+
else if (!this.cookieName) {
|
|
84
|
+
throw new Error("The name of the cookie required by the backend has not been set!");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async initialize() {
|
|
88
|
+
this.checkStatements();
|
|
89
|
+
let tokenFromLocalStorage = localStorage.getItem("token");
|
|
90
|
+
let tokenFromCookies = this.cookieService.get(this.cookieName);
|
|
91
|
+
if (tokenFromLocalStorage &&
|
|
92
|
+
tokenFromCookies &&
|
|
93
|
+
tokenFromLocalStorage === tokenFromCookies) {
|
|
94
|
+
this.token = tokenFromLocalStorage;
|
|
95
|
+
this.setUpTokenForSessionService();
|
|
96
|
+
try {
|
|
97
|
+
await this.getSession();
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
await this.startSession();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
await this.clearAndStartNewSession();
|
|
105
|
+
}
|
|
106
|
+
if (this.sessionInfoData && this.sessionInfoData.locale) {
|
|
107
|
+
localStorage.setItem(this.localStorageLocaleName, this.sessionInfoData.locale);
|
|
108
|
+
this.localeChanged.next();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async startSession() {
|
|
112
|
+
let sessionInfo = await this.apiService.startSession().toPromise();
|
|
113
|
+
if (sessionInfo) {
|
|
114
|
+
this.sessionInfoData = sessionInfo;
|
|
115
|
+
this.token = sessionInfo.sid;
|
|
116
|
+
this.saveTokenToLocalStorage();
|
|
117
|
+
this.setAuthenticationStatus();
|
|
118
|
+
this.setUpTokenForSessionService();
|
|
119
|
+
}
|
|
120
|
+
return this.sessionInfoData;
|
|
121
|
+
}
|
|
122
|
+
async getSession() {
|
|
123
|
+
let sessionInfo = await this.apiService.getSession().toPromise();
|
|
124
|
+
if (sessionInfo) {
|
|
125
|
+
this.sessionInfoData = sessionInfo;
|
|
126
|
+
this.token = sessionInfo.sid;
|
|
127
|
+
this.saveTokenToLocalStorage();
|
|
128
|
+
this.setAuthenticationStatus();
|
|
129
|
+
}
|
|
130
|
+
return this.sessionInfoData;
|
|
131
|
+
}
|
|
132
|
+
async refreshSession() {
|
|
133
|
+
let refreshToken = localStorage.getItem("refreshToken");
|
|
134
|
+
if (!refreshToken) {
|
|
135
|
+
return await this.startSession();
|
|
136
|
+
}
|
|
137
|
+
let sessionInfo = await this.apiService
|
|
138
|
+
.refreshSession({
|
|
139
|
+
refreshToken,
|
|
140
|
+
})
|
|
141
|
+
.toPromise()
|
|
142
|
+
.catch(async (error) => {
|
|
143
|
+
if (error.error &&
|
|
144
|
+
error.error.code &&
|
|
145
|
+
error.error.code === "session.refreshtoken.invalid") {
|
|
146
|
+
await this.startSession();
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
if (sessionInfo) {
|
|
150
|
+
this.sessionInfoData = sessionInfo;
|
|
151
|
+
this.token = sessionInfo.sid;
|
|
152
|
+
this.saveTokenToLocalStorage();
|
|
153
|
+
this.setAuthenticationStatus();
|
|
154
|
+
this.setUpTokenForSessionService();
|
|
155
|
+
}
|
|
156
|
+
return this.sessionInfoData;
|
|
157
|
+
}
|
|
158
|
+
async getAuthenticationProviders() {
|
|
159
|
+
let providers = await this.apiService
|
|
160
|
+
.getAuthenticationProviders()
|
|
161
|
+
.toPromise();
|
|
162
|
+
this.providers = providers?.authenticationProviders;
|
|
163
|
+
return this.providers;
|
|
164
|
+
}
|
|
165
|
+
async getIsAuthenticated() {
|
|
166
|
+
if (this.sessionInfoData) {
|
|
167
|
+
return this.isAuthenticated;
|
|
168
|
+
}
|
|
169
|
+
await this.getSession();
|
|
170
|
+
return this.isAuthenticated;
|
|
171
|
+
}
|
|
172
|
+
async clearAndStartNewSession() {
|
|
173
|
+
sessionStorage.clear();
|
|
174
|
+
localStorage.clear();
|
|
175
|
+
this.headerParams = [];
|
|
176
|
+
this.cookieService.delete(this.cookieName);
|
|
177
|
+
await this.startSession();
|
|
178
|
+
}
|
|
179
|
+
getLocale() {
|
|
180
|
+
if (this.sessionInfoData && this.sessionInfoData.locale) {
|
|
181
|
+
if (localStorage.getItem(this.localStorageLocaleName) !== this.sessionInfoData.locale) {
|
|
182
|
+
localStorage.setItem(this.localStorageLocaleName, this.sessionInfoData.locale);
|
|
183
|
+
}
|
|
184
|
+
return this.sessionInfoData.locale;
|
|
185
|
+
}
|
|
186
|
+
throw new Error("There is no SessionInfoData or locale is undefined.");
|
|
187
|
+
}
|
|
188
|
+
async changeLocale(locale) {
|
|
189
|
+
this.sessionInfoData = await this.apiService.setLocale(locale).toPromise();
|
|
190
|
+
if (this.sessionInfoData && this.sessionInfoData.locale) {
|
|
191
|
+
localStorage.setItem(this.localStorageLocaleName, this.sessionInfoData.locale);
|
|
192
|
+
this.localeChanged.next();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
SmartSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartSessionService, deps: [{ token: i1.SessionService }, { token: i2.SmartCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
197
|
+
SmartSessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartSessionService, providedIn: "root" });
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartSessionService, decorators: [{
|
|
199
|
+
type: Injectable,
|
|
200
|
+
args: [{
|
|
201
|
+
providedIn: "root",
|
|
202
|
+
}]
|
|
203
|
+
}], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.SmartCookieService }]; } });
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9zbWFydC1zZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBa0IvQixNQUFNLE9BQU8sbUJBQW1CO0lBbUM1QixZQUFvQixVQUEwQixFQUFVLGFBQWlDO1FBQXJFLGVBQVUsR0FBVixVQUFVLENBQWdCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBZmxGLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRWpDLCtCQUEwQixHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTdELGlCQUFZLEdBQXVCLElBQUksS0FBSyxFQUFFLENBQUM7UUFDL0MsbUJBQWMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVyRCxTQUFTO1FBQ0QsMkJBQXNCLEdBQVcsUUFBUSxDQUFDO1FBQzNDLGtCQUFhLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFN0MsMkJBQXNCLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7SUFJK0IsQ0FBQztJQTlCN0YsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFZLGVBQWUsQ0FBQyxlQUE0QztRQUNwRSxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsS0FBSyxlQUFlLEVBQUUsVUFBVSxDQUFDO1FBRXZGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFFeEMsSUFBSSxlQUFlLEVBQUU7WUFDakIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFD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b25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gICAgQXBpRXJyb3IsXG4gICAgQXV0aGVudGljYXRpb25Qcm92aWRlckRhdGEsXG4gICAgR2V0QXV0aGVudGljYXRpb25Qcm92aWRlcnNSZXNwb25zZSxcbiAgICBTZXNzaW9uSW5mb0RhdGEsXG4gICAgU2Vzc2lvblNlcnZpY2UsXG59IGZyb20gXCIuL2FwaVwiO1xuaW1wb3J0IHsgU21hcnRDb29raWVTZXJ2aWNlIH0gZnJvbSBcIi4vY29va2llLXNlcnZpY2Uvc21hcnQtY29va2llLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNlc3Npb25FcnJvciwgU21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tIFwiLi9zbWFydC1zZXNzaW9uLWhhbmRsZXIuc2VydmljZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclBhcmFtIHtcbiAgICBoZWFkZXJOYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRTZXNzaW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSBiYXNlUGF0aD86IHN0cmluZztcbiAgICBwcml2YXRlIHRva2VuPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX3Nlc3Npb25JbmZvRGF0YT86IFNlc3Npb25JbmZvRGF0YTtcblxuICAgIHB1YmxpYyBnZXQgc2Vzc2lvbkluZm9EYXRhKCk6IFNlc3Npb25JbmZvRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZXNzaW9uSW5mb0RhdGE7XG4gICAgfVxuICAgIHByaXZhdGUgc2V0IHNlc3Npb25JbmZvRGF0YShzZXNzaW9uSW5mb0RhdGE6IFNlc3Npb25JbmZvRGF0YSB8IHVuZGVmaW5lZCkge1xuICAgICAgICBsZXQgZXhwaXJhY3lDaGFuZ2VkID0gdGhpcy5zZXNzaW9uSW5mb0RhdGE/LmV4cGlyYXRpb24gIT09IHNlc3Npb25JbmZvRGF0YT8uZXhwaXJhdGlvbjtcblxuICAgICAgICB0aGlzLl9zZXNzaW9uSW5mb0RhdGEgPSBzZXNzaW9uSW5mb0RhdGE7XG5cbiAgICAgICAgaWYgKGV4cGlyYWN5Q2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uRXhwaXJhY3lDaGFuZ2VkLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcHJvdmlkZXJzPzogQXJyYXk8QXV0aGVudGljYXRpb25Qcm92aWRlckRhdGE+O1xuICAgIHByaXZhdGUgY29va2llTmFtZT86IHN0cmluZztcbiAgICBwdWJsaWMgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgYXV0aGVudGljYXRpb25TdGF0ZUNoYW5nZWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHVibGljIGhlYWRlclBhcmFtczogQXJyYXk8SGVhZGVyUGFyYW0+ID0gbmV3IEFycmF5KCk7XG4gICAgcHVibGljIGhlYWRlcnNVcGRhdGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIC8vIExvY2FsZVxuICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlTG9jYWxlTmFtZTogc3RyaW5nID0gXCJsb2NhbGVcIjtcbiAgICBwdWJsaWMgbG9jYWxlQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwdWJsaWMgc2Vzc2lvbkV4cGlyYWN5Q2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcml2YXRlIHNlc3Npb25IYW5kbGVyU2VydmljZT86IFNtYXJ0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBTZXNzaW9uU2VydmljZSwgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBTbWFydENvb2tpZVNlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgc2V0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlKHNtYXJ0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlOiBTbWFydFNlc3Npb25IYW5kbGVyU2VydmljZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlc3Npb25IYW5kbGVyU2VydmljZSA9IHNtYXJ0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBoYW5kbGVTZXNzaW9uRXJyb3Ioc2Vzc2lvbkVycm9yOiBTZXNzaW9uRXJyb3IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbkhhbmRsZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNlc3Npb25IYW5kbGVyU2VydmljZS5oYW5kbGVTZXNzaW9uRXJyb3Ioc2Vzc2lvbkVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNlc3Npb25IYW5kbGVyU2VydmljZSB3YXMgbm90IGluaXRpYWxpemVkLiBFcnJvcjogJHtzZXNzaW9uRXJyb3IuY29kZX1gKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSGVhZGVyUGFyYW0oaGVhZGVyUGFyYW06IEhlYWRlclBhcmFtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGVhZGVyUGFyYW1zLnB1c2goaGVhZGVyUGFyYW0pO1xuICAgICAgICB0aGlzLmhlYWRlcnNVcGRhdGVkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFVwVG9rZW5Gb3JTZXNzaW9uU2VydmljZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5oZWFkZXJQYXJhbXMuZmluZCgoaGVhZGVyOiBIZWFkZXJQYXJhbSkgPT4gaGVhZGVyLmhlYWRlck5hbWUgPT09IFwiQXV0aG9yaXphdGlvblwiKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuaGVhZGVyUGFyYW1zLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAoaGVhZGVyOiBIZWFkZXJQYXJhbSkgPT4gaGVhZGVyLmhlYWRlck5hbWUgPT09IFwiQXV0aG9yaXphdGlvblwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJQYXJhbXNbaW5kZXghXS52YWx1ZSA9IGBCZWFyZXIgJHt0aGlzLnRva2VuIX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hZGRIZWFkZXJQYXJhbSh7IGhlYWRlck5hbWU6IFwiQXV0aG9yaXphdGlvblwiLCB2YWx1ZTogYEJlYXJlciAke3RoaXMudG9rZW4hfWAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VXJsKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYmFzZVBhdGggPSB1cmw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXRCYXNlUGF0aCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXRoaXMuYmFzZVBhdGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJhc2VQYXRoIGhhcyBub3QgYmVlbiBzZXQgaW4gU21hcnRTZXNzaW9uU2VydmljZSFcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENvb2tpZU5hbWUobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29va2llTmFtZSA9IG5hbWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYXZlVG9rZW5Ub0xvY2FsU3RvcmFnZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbkluZm9EYXRhICYmIHRoaXMuY29va2llTmFtZSkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJ0b2tlblwiLCB0aGlzLnNlc3Npb25JbmZvRGF0YS5zaWQpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkluZm9EYXRhLnJlZnJlc2hUb2tlbiAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkluZm9EYXRhLnJlZnJlc2hUb2tlbiAhPT0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJyZWZyZXNoVG9rZW5cIilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwicmVmcmVzaFRva2VuXCIsIHRoaXMuc2Vzc2lvbkluZm9EYXRhLnJlZnJlc2hUb2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KHRoaXMuY29va2llTmFtZSwgdGhpcy50b2tlbiEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRBdXRoZW50aWNhdGlvblN0YXR1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbkluZm9EYXRhICYmIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmF1dGhlbnRpY2F0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWQgPSB0aGlzLnNlc3Npb25JbmZvRGF0YS5hdXRoZW50aWNhdGlvbnMubGVuZ3RoID4gMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU3RhdGVDaGFuZ2VkLm5leHQodGhpcy5pc0F1dGhlbnRpY2F0ZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tTdGF0ZW1lbnRzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYmFzZVBhdGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSB1cmwgb2YgdGhlIGJhY2tlbmQgYXBpIGhhcyBub3QgYmVlbiBzZXQhXCIpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmNvb2tpZU5hbWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBuYW1lIG9mIHRoZSBjb29raWUgcmVxdWlyZWQgYnkgdGhlIGJhY2tlbmQgaGFzIG5vdCBiZWVuIHNldCFcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5jaGVja1N0YXRlbWVudHMoKTtcblxuICAgICAgICBsZXQgdG9rZW5Gcm9tTG9jYWxTdG9yYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ0b2tlblwiKTtcbiAgICAgICAgbGV0IHRva2VuRnJvbUNvb2tpZXMgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KHRoaXMuY29va2llTmFtZSEpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRva2VuRnJvbUxvY2FsU3RvcmFnZSAmJlxuICAgICAgICAgICAgdG9rZW5Gcm9tQ29va2llcyAmJlxuICAgICAgICAgICAgdG9rZW5Gcm9tTG9jYWxTdG9yYWdlID09PSB0b2tlbkZyb21Db29raWVzXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy50b2tlbiA9IHRva2VuRnJvbUxvY2FsU3RvcmFnZTtcbiAgICAgICAgICAgIHRoaXMuc2V0VXBUb2tlbkZvclNlc3Npb25TZXJ2aWNlKCk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0U2Vzc2lvbigpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGFydFNlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xlYXJBbmRTdGFydE5ld1Nlc3Npb24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZXNzaW9uSW5mb0RhdGEgJiYgdGhpcy5zZXNzaW9uSW5mb0RhdGEubG9jYWxlKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUxvY2FsZU5hbWUsIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmxvY2FsZSk7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZUNoYW5nZWQubmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzdGFydFNlc3Npb24oKTogUHJvbWlzZTxTZXNzaW9uSW5mb0RhdGE+IHtcbiAgICAgICAgbGV0IHNlc3Npb25JbmZvID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnN0YXJ0U2Vzc2lvbigpLnRvUHJvbWlzZSgpO1xuICAgICAgICBpZiAoc2Vzc2lvbkluZm8pIHtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkluZm9EYXRhID0gc2Vzc2lvbkluZm87XG4gICAgICAgICAgICB0aGlzLnRva2VuID0gc2Vzc2lvbkluZm8uc2lkO1xuICAgICAgICAgICAgdGhpcy5zYXZlVG9rZW5Ub0xvY2FsU3RvcmFnZSgpO1xuICAgICAgICAgICAgdGhpcy5zZXRBdXRoZW50aWNhdGlvblN0YXR1cygpO1xuICAgICAgICAgICAgdGhpcy5zZXRVcFRva2VuRm9yU2Vzc2lvblNlcnZpY2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25JbmZvRGF0YSE7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFNlc3Npb24oKTogUHJvbWlzZTxTZXNzaW9uSW5mb0RhdGE+IHtcbiAgICAgICAgbGV0IHNlc3Npb25JbmZvID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldFNlc3Npb24oKS50b1Byb21pc2UoKTtcbiAgICAgICAgaWYgKHNlc3Npb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JbmZvRGF0YSA9IHNlc3Npb25JbmZvO1xuICAgICAgICAgICAgdGhpcy50b2tlbiA9IHNlc3Npb25JbmZvLnNpZDtcbiAgICAgICAgICAgIHRoaXMuc2F2ZVRva2VuVG9Mb2NhbFN0b3JhZ2UoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0QXV0aGVudGljYXRpb25TdGF0dXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25JbmZvRGF0YSE7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZnJlc2hTZXNzaW9uKCk6IFByb21pc2U8U2Vzc2lvbkluZm9EYXRhPiB7XG4gICAgICAgIGxldCByZWZyZXNoVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInJlZnJlc2hUb2tlblwiKTtcbiAgICAgICAgaWYgKCFyZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnN0YXJ0U2Vzc2lvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHNlc3Npb25JbmZvID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAgICAgICAucmVmcmVzaFNlc3Npb24oe1xuICAgICAgICAgICAgICAgIHJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgICAgIC5jYXRjaChhc3luYyAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBlcnJvci5lcnJvciAmJlxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IuZXJyb3IgYXMgQXBpRXJyb3IpLmNvZGUgJiZcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yLmVycm9yIGFzIEFwaUVycm9yKS5jb2RlID09PSBcInNlc3Npb24ucmVmcmVzaHRva2VuLmludmFsaWRcIlxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0U2Vzc2lvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChzZXNzaW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSW5mb0RhdGEgPSBzZXNzaW9uSW5mbztcbiAgICAgICAgICAgIHRoaXMudG9rZW4gPSBzZXNzaW9uSW5mby5zaWQ7XG4gICAgICAgICAgICB0aGlzLnNhdmVUb2tlblRvTG9jYWxTdG9yYWdlKCk7XG4gICAgICAgICAgICB0aGlzLnNldEF1dGhlbnRpY2F0aW9uU3RhdHVzKCk7XG4gICAgICAgICAgICB0aGlzLnNldFVwVG9rZW5Gb3JTZXNzaW9uU2VydmljZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkluZm9EYXRhITtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QXV0aGVudGljYXRpb25Qcm92aWRlcnMoKTogUHJvbWlzZTxBcnJheTxBdXRoZW50aWNhdGlvblByb3ZpZGVyRGF0YT4+IHtcbiAgICAgICAgbGV0IHByb3ZpZGVyczogR2V0QXV0aGVudGljYXRpb25Qcm92aWRlcnNSZXNwb25zZSB8IHVuZGVmaW5lZCA9IGF3YWl0IHRoaXMuYXBpU2VydmljZVxuICAgICAgICAgICAgLmdldEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzKClcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcblxuICAgICAgICB0aGlzLnByb3ZpZGVycyA9IHByb3ZpZGVycz8uYXV0aGVudGljYXRpb25Qcm92aWRlcnM7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXJzITtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0SXNBdXRoZW50aWNhdGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAodGhpcy5zZXNzaW9uSW5mb0RhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzQXV0aGVudGljYXRlZDtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLmdldFNlc3Npb24oKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNBdXRoZW50aWNhdGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjbGVhckFuZFN0YXJ0TmV3U2Vzc2lvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuaGVhZGVyUGFyYW1zID0gW107XG4gICAgICAgIHRoaXMuY29va2llU2VydmljZS5kZWxldGUodGhpcy5jb29raWVOYW1lISk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5zdGFydFNlc3Npb24oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnNlc3Npb25JbmZvRGF0YSAmJiB0aGlzLnNlc3Npb25JbmZvRGF0YS5sb2NhbGUpIHtcbiAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUxvY2FsZU5hbWUpICE9PSB0aGlzLnNlc3Npb25JbmZvRGF0YS5sb2NhbGUpIHtcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUxvY2FsZU5hbWUsIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmxvY2FsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uSW5mb0RhdGEubG9jYWxlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZXJlIGlzIG5vIFNlc3Npb25JbmZvRGF0YSBvciBsb2NhbGUgaXMgdW5kZWZpbmVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY2hhbmdlTG9jYWxlKGxvY2FsZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbkluZm9EYXRhID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnNldExvY2FsZShsb2NhbGUpLnRvUHJvbWlzZSgpO1xuICAgICAgICBpZiAodGhpcy5zZXNzaW9uSW5mb0RhdGEgJiYgdGhpcy5zZXNzaW9uSW5mb0RhdGEubG9jYWxlKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUxvY2FsZU5hbWUsIHRoaXMuc2Vzc2lvbkluZm9EYXRhLmxvY2FsZSk7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZUNoYW5nZWQubmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { Subject, takeUntil } from "rxjs";
|
|
3
|
+
import { SmartSessionTimerService } from "./smart-session-timer.service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./smart-session-timer.service";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export class SmartSessionTimerComponent {
|
|
8
|
+
constructor(service) {
|
|
9
|
+
this.service = service;
|
|
10
|
+
this._destroy$ = new Subject();
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this.service.startTimer();
|
|
14
|
+
this.timeInSeconds = this.service.timeLeftInSeconds;
|
|
15
|
+
this.service.timeChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
16
|
+
this.timeInSeconds = this.service.timeLeftInSeconds;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
ngOnDestroy() {
|
|
20
|
+
this._destroy$.next();
|
|
21
|
+
this._destroy$.complete();
|
|
22
|
+
}
|
|
23
|
+
formatTime(seconds) {
|
|
24
|
+
let minutes = Math.floor(seconds / 60);
|
|
25
|
+
let remainingSeconds = seconds % 60;
|
|
26
|
+
return `${minutes}:${remainingSeconds < 10 ? "0" : ""}${remainingSeconds}`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
SmartSessionTimerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartSessionTimerComponent, deps: [{ token: i1.SmartSessionTimerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
SmartSessionTimerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SmartSessionTimerComponent, selector: "smart-session-timer", providers: [SmartSessionTimerService], ngImport: i0, template: "<div class=\"smart-session-timer-container\">\n <span class=\"smart-session-timer\" *ngIf=\"timeInSeconds\">\n {{ formatTime(timeInSeconds!) }}\n </span>\n</div>\n", styles: [""], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartSessionTimerComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: "smart-session-timer", providers: [SmartSessionTimerService], template: "<div class=\"smart-session-timer-container\">\n <span class=\"smart-session-timer\" *ngIf=\"timeInSeconds\">\n {{ formatTime(timeInSeconds!) }}\n </span>\n</div>\n", styles: [""] }]
|
|
34
|
+
}], ctorParameters: function () { return [{ type: i1.SmartSessionTimerService }]; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2Vzc2lvbi10aW1lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL3NtYXJ0LXRpbWVyL3NtYXJ0LXNlc3Npb24tdGltZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9zbWFydC10aW1lci9zbWFydC1zZXNzaW9uLXRpbWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBUXpFLE1BQU0sT0FBTywwQkFBMEI7SUFLbkMsWUFBb0IsT0FBaUM7UUFBakMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFKN0MsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSU8sQ0FBQztJQUV6RCxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFFcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3BFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZTtRQUN0QixJQUFJLE9BQU8sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLGdCQUFnQixHQUFXLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDNUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDL0UsQ0FBQzs7d0hBekJRLDBCQUEwQjs0R0FBMUIsMEJBQTBCLDhDQUZ4QixDQUFDLHdCQUF3QixDQUFDLDBCQ1R6QyxrTEFLQTs0RkRNYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0kscUJBQXFCLGFBR3BCLENBQUMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFNtYXJ0U2Vzc2lvblRpbWVyU2VydmljZSB9IGZyb20gXCIuL3NtYXJ0LXNlc3Npb24tdGltZXIuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzbWFydC1zZXNzaW9uLXRpbWVyXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zbWFydC1zZXNzaW9uLXRpbWVyLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3NtYXJ0LXNlc3Npb24tdGltZXIuY29tcG9uZW50LmNzc1wiXSxcbiAgICBwcm92aWRlcnM6IFtTbWFydFNlc3Npb25UaW1lclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydFNlc3Npb25UaW1lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICB0aW1lSW5TZWNvbmRzPzogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBTbWFydFNlc3Npb25UaW1lclNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnN0YXJ0VGltZXIoKTtcbiAgICAgICAgdGhpcy50aW1lSW5TZWNvbmRzID0gdGhpcy5zZXJ2aWNlLnRpbWVMZWZ0SW5TZWNvbmRzO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS50aW1lQ2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRpbWVJblNlY29uZHMgPSB0aGlzLnNlcnZpY2UudGltZUxlZnRJblNlY29uZHM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgZm9ybWF0VGltZShzZWNvbmRzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBsZXQgbWludXRlczogbnVtYmVyID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApO1xuICAgICAgICBsZXQgcmVtYWluaW5nU2Vjb25kczogbnVtYmVyID0gc2Vjb25kcyAlIDYwO1xuICAgICAgICByZXR1cm4gYCR7bWludXRlc306JHtyZW1haW5pbmdTZWNvbmRzIDwgMTAgPyBcIjBcIiA6IFwiXCJ9JHtyZW1haW5pbmdTZWNvbmRzfWA7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNtYXJ0LXNlc3Npb24tdGltZXItY29udGFpbmVyXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJzbWFydC1zZXNzaW9uLXRpbWVyXCIgKm5nSWY9XCJ0aW1lSW5TZWNvbmRzXCI+XG4gICAgICAgIHt7IGZvcm1hdFRpbWUodGltZUluU2Vjb25kcyEpIH19XG4gICAgPC9zcGFuPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { Subject, takeUntil } from "rxjs";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../smart-session.service";
|
|
5
|
+
export class SmartSessionTimerService {
|
|
6
|
+
constructor(session) {
|
|
7
|
+
this.session = session;
|
|
8
|
+
this._destroy$ = new Subject();
|
|
9
|
+
this.totalTimeInMinutes = 30;
|
|
10
|
+
this.sessionExpiration = "sessionExpiracy";
|
|
11
|
+
this.timeChanged = new Subject();
|
|
12
|
+
this.onTimerExpired = new Subject();
|
|
13
|
+
this.session.sessionExpiracyChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
14
|
+
this.restart();
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
ngOnDestroy() {
|
|
18
|
+
this._destroy$.next();
|
|
19
|
+
this._destroy$.complete();
|
|
20
|
+
}
|
|
21
|
+
startTimer() {
|
|
22
|
+
let sessionInfoData = this.session.sessionInfoData;
|
|
23
|
+
let expiration = new Date(sessionInfoData.expiration);
|
|
24
|
+
let now = new Date();
|
|
25
|
+
this.timeLeftInSeconds = Math.floor((expiration.getTime() - now.getTime()) / 1000);
|
|
26
|
+
this.timer = setInterval(() => {
|
|
27
|
+
this.timeLeftInSeconds--;
|
|
28
|
+
if (this.timeLeftInSeconds === 0) {
|
|
29
|
+
this.timeout();
|
|
30
|
+
}
|
|
31
|
+
this.timeChanged.next();
|
|
32
|
+
}, 1000);
|
|
33
|
+
}
|
|
34
|
+
restart() {
|
|
35
|
+
clearInterval(this.timer);
|
|
36
|
+
this.startTimer();
|
|
37
|
+
}
|
|
38
|
+
timeout() {
|
|
39
|
+
clearInterval(this.timer);
|
|
40
|
+
this.onTimerExpired.next();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
SmartSessionTimerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartSessionTimerService, deps: [{ token: i1.SmartSessionService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
44
|
+
SmartSessionTimerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartSessionTimerService, providedIn: "root" });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartSessionTimerService, decorators: [{
|
|
46
|
+
type: Injectable,
|
|
47
|
+
args: [{
|
|
48
|
+
providedIn: "root",
|
|
49
|
+
}]
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i1.SmartSessionService }]; } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2Vzc2lvbi10aW1lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9zbWFydC10aW1lci9zbWFydC1zZXNzaW9uLXRpbWVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBTTFDLE1BQU0sT0FBTyx3QkFBd0I7SUFjakMsWUFBb0IsT0FBNEI7UUFBNUIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFieEMsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWpELHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUd2QixzQkFBaUIsR0FBVyxpQkFBaUIsQ0FBQztRQUV2RCxnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTNDLG1CQUFjLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFLMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0UsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUNuRCxJQUFJLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxlQUFnQixDQUFDLFVBQVcsQ0FBQyxDQUFDO1FBQ3hELElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxpQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2xCO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsT0FBTztRQUNILGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPO1FBQ0gsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7O3NIQWpEUSx3QkFBd0I7MEhBQXhCLHdCQUF3QixjQUZyQixNQUFNOzRGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFNtYXJ0U2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vc21hcnQtc2Vzc2lvbi5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRTZXNzaW9uVGltZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICB0b3RhbFRpbWVJbk1pbnV0ZXM6IG51bWJlciA9IDMwO1xuICAgIHRpbWVMZWZ0SW5TZWNvbmRzPzogbnVtYmVyO1xuXG4gICAgcmVhZG9ubHkgc2Vzc2lvbkV4cGlyYXRpb246IHN0cmluZyA9IFwic2Vzc2lvbkV4cGlyYWN5XCI7XG5cbiAgICB0aW1lQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBvblRpbWVyRXhwaXJlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICB0aW1lcjogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXNzaW9uOiBTbWFydFNlc3Npb25TZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbi5zZXNzaW9uRXhwaXJhY3lDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzdGFydCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzdGFydFRpbWVyKCk6IHZvaWQge1xuICAgICAgICBsZXQgc2Vzc2lvbkluZm9EYXRhID0gdGhpcy5zZXNzaW9uLnNlc3Npb25JbmZvRGF0YTtcbiAgICAgICAgbGV0IGV4cGlyYXRpb24gPSBuZXcgRGF0ZShzZXNzaW9uSW5mb0RhdGEhLmV4cGlyYXRpb24hKTtcbiAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgdGhpcy50aW1lTGVmdEluU2Vjb25kcyA9IE1hdGguZmxvb3IoKGV4cGlyYXRpb24uZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKSkgLyAxMDAwKTtcbiAgICAgICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGltZUxlZnRJblNlY29uZHMhLS07XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lTGVmdEluU2Vjb25kcyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGltZW91dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50aW1lQ2hhbmdlZC5uZXh0KCk7XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cblxuICAgIHJlc3RhcnQoKTogdm9pZCB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG5cbiAgICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XG4gICAgfVxuXG4gICAgdGltZW91dCgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcblxuICAgICAgICB0aGlzLm9uVGltZXJFeHBpcmVkLm5leHQoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { SmartNgClientService } from "./smart-ng-client.service";
|
|
3
|
+
import { SmartSessionModule } from "./session/smart-session.module";
|
|
4
|
+
import { SmartViewContextModule } from "./view-context/smart-view-context.module";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SmartNgClientModule {
|
|
7
|
+
}
|
|
8
|
+
SmartNgClientModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartNgClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
SmartNgClientModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartNgClientModule, imports: [SmartSessionModule, SmartViewContextModule], exports: [SmartSessionModule, SmartViewContextModule] });
|
|
10
|
+
SmartNgClientModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartNgClientModule, providers: [SmartNgClientService], imports: [[SmartSessionModule, SmartViewContextModule], SmartSessionModule, SmartViewContextModule] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartNgClientModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [],
|
|
15
|
+
imports: [SmartSessionModule, SmartViewContextModule],
|
|
16
|
+
exports: [SmartSessionModule, SmartViewContextModule],
|
|
17
|
+
providers: [SmartNgClientService],
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbmctY2xpZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LW5nLWNsaWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFRbEYsTUFBTSxPQUFPLG1CQUFtQjs7aUhBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1CLFlBSmxCLGtCQUFrQixFQUFFLHNCQUFzQixhQUMxQyxrQkFBa0IsRUFBRSxzQkFBc0I7a0hBRzNDLG1CQUFtQixhQUZqQixDQUFDLG9CQUFvQixDQUFDLFlBRnhCLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLENBQUMsRUFDM0Msa0JBQWtCLEVBQUUsc0JBQXNCOzRGQUczQyxtQkFBbUI7a0JBTi9CLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLHNCQUFzQixDQUFDO29CQUNyRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDckQsU0FBUyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU21hcnROZ0NsaWVudFNlcnZpY2UgfSBmcm9tIFwiLi9zbWFydC1uZy1jbGllbnQuc2VydmljZVwiO1xuaW1wb3J0IHsgU21hcnRTZXNzaW9uTW9kdWxlIH0gZnJvbSBcIi4vc2Vzc2lvbi9zbWFydC1zZXNzaW9uLm1vZHVsZVwiO1xuaW1wb3J0IHsgU21hcnRWaWV3Q29udGV4dE1vZHVsZSB9IGZyb20gXCIuL3ZpZXctY29udGV4dC9zbWFydC12aWV3LWNvbnRleHQubW9kdWxlXCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBpbXBvcnRzOiBbU21hcnRTZXNzaW9uTW9kdWxlLCBTbWFydFZpZXdDb250ZXh0TW9kdWxlXSxcbiAgICBleHBvcnRzOiBbU21hcnRTZXNzaW9uTW9kdWxlLCBTbWFydFZpZXdDb250ZXh0TW9kdWxlXSxcbiAgICBwcm92aWRlcnM6IFtTbWFydE5nQ2xpZW50U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0TmdDbGllbnRNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./session/smart-session.service";
|
|
4
|
+
import * as i2 from "./view-context/smart-view-context.service";
|
|
5
|
+
export class SmartNgClientService {
|
|
6
|
+
constructor(session, viewContext) {
|
|
7
|
+
this.session = session;
|
|
8
|
+
this.viewContext = viewContext;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
SmartNgClientService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartNgClientService, deps: [{ token: i1.SmartSessionService }, { token: i2.SmartViewContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12
|
+
SmartNgClientService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartNgClientService, providedIn: "root" });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SmartNgClientService, decorators: [{
|
|
14
|
+
type: Injectable,
|
|
15
|
+
args: [{
|
|
16
|
+
providedIn: "root",
|
|
17
|
+
}]
|
|
18
|
+
}], ctorParameters: function () { return [{ type: i1.SmartSessionService }, { type: i2.SmartViewContextService }]; } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbmctY2xpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1uZy1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsWUFDWSxPQUE0QixFQUM1QixXQUFvQztRQURwQyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7SUFDN0MsQ0FBQzs7a0hBSkssb0JBQW9CO3NIQUFwQixvQkFBb0IsY0FGakIsTUFBTTs0RkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTbWFydFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4vc2Vzc2lvbi9zbWFydC1zZXNzaW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlIH0gZnJvbSBcIi4vdmlldy1jb250ZXh0L3NtYXJ0LXZpZXctY29udGV4dC5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgU21hcnROZ0NsaWVudFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHNlc3Npb246IFNtYXJ0U2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRleHQ6IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlXG4gICAgKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './view.service';
|
|
2
|
+
import { ViewService } from './view.service';
|
|
3
|
+
export const APIS = [ViewService];
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L2FwaS9hcGkvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi92aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmlld1NlcnZpY2UgfSBmcm9tICcuL3ZpZXcuc2VydmljZSc7XG5leHBvcnQgY29uc3QgQVBJUyA9IFtWaWV3U2VydmljZV07XG4iXX0=
|