@mis-wis/common 0.1.9 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/esm2020/lib/components/create-non-shift-modal/create-non-shift-modal.component.mjs +237 -0
  2. package/esm2020/lib/constants/assets.constants.mjs +8 -0
  3. package/esm2020/lib/models/env.model.mjs +1 -1
  4. package/esm2020/lib/models/session.model.mjs +2 -0
  5. package/esm2020/lib/services/http.service.mjs +29 -9
  6. package/esm2020/lib/services/session.errors.mjs +45 -0
  7. package/esm2020/lib/services/session.service.mjs +198 -0
  8. package/esm2020/lib/wis-common.module.mjs +13 -8
  9. package/esm2020/public-api.mjs +5 -1
  10. package/fesm2015/mis-wis-common.mjs +530 -25
  11. package/fesm2015/mis-wis-common.mjs.map +1 -1
  12. package/fesm2020/mis-wis-common.mjs +522 -25
  13. package/fesm2020/mis-wis-common.mjs.map +1 -1
  14. package/lib/components/create-non-shift-modal/create-non-shift-modal.component.d.ts +56 -0
  15. package/lib/constants/assets.constants.d.ts +7 -0
  16. package/lib/models/env.model.d.ts +1 -0
  17. package/lib/models/session.model.d.ts +22 -0
  18. package/lib/services/http.service.d.ts +16 -5
  19. package/lib/services/session.errors.d.ts +31 -0
  20. package/lib/services/session.service.d.ts +79 -0
  21. package/lib/wis-common.module.d.ts +9 -4
  22. package/package.json +9 -3
  23. package/public-api.d.ts +4 -0
  24. package/src/assets/calendar.svg +7 -0
  25. package/src/assets/images/icons/Wis-icon.svg +4 -0
  26. package/src/assets/images/icons/brand.png +0 -0
  27. package/src/assets/images/icons/broascast.svg +3 -0
  28. package/src/assets/images/icons/bulk-upload.svg +3 -0
  29. package/src/assets/images/icons/desk-mgmt.svg +6 -0
  30. package/src/assets/images/icons/employees-sidebar.svg +3 -0
  31. package/src/assets/images/icons/help-section.svg +4 -0
  32. package/src/assets/images/icons/home.svg +3 -0
  33. package/src/assets/images/icons/logout.svg +4 -0
  34. package/src/assets/images/icons/manage-premise.svg +3 -0
  35. package/src/assets/images/icons/meeting-room.svg +7 -0
  36. package/src/assets/images/icons/mis-icon.svg +3 -0
  37. package/src/assets/images/icons/my-bookings.svg +5 -0
  38. package/src/assets/images/icons/profile.svg +3 -0
  39. package/src/assets/images/icons/reception.svg +14 -0
  40. package/src/assets/images/icons/report.svg +3 -0
  41. package/src/assets/images/icons/resource-group.svg +3 -0
  42. package/src/assets/images/icons/roles.svg +3 -0
  43. package/src/assets/images/icons/sanitize.svg +10 -0
  44. package/src/assets/images/icons/seat-mgmt.svg +3 -0
  45. package/src/assets/images/icons/settings-sidebar.svg +3 -0
  46. package/src/assets/images/icons/signout.svg +4 -0
  47. package/src/assets/images/icons/user-group.svg +6 -0
  48. package/src/assets/images/icons/user-permission.svg +5 -0
  49. package/src/assets/images/icons/utilisation.svg +3 -0
  50. package/src/assets/images/icons/vaccine_approval.svg +8 -0
  51. package/src/assets/images/icons/vaccine_upload.png +0 -0
  52. package/src/assets/images/icons/work-planner-sidebar.svg +3 -0
  53. package/src/assets/images/icons/workInSyncText.svg +14 -0
@@ -0,0 +1,198 @@
1
+ import { Injectable } from '@angular/core';
2
+ import jwtDecode from 'jwt-decode';
3
+ import { getCookie } from '../functions/cookie.function';
4
+ import { getQueryParam } from '../functions/url.functions';
5
+ import { describeClaimFailures, SessionClaimNotFoundError, SessionClaimsMissingError, SessionError, SessionTokenExpiredError, SessionTokenInvalidError, SessionTokenNotFoundError, } from './session.errors';
6
+ import * as i0 from "@angular/core";
7
+ const DEFAULT_SESSION_TOKEN_PREFIX = 'sso-wis-token';
8
+ const DEFAULT_SESSION_TOKEN_FALLBACK_KEY = 'x-wis-token';
9
+ const DEFAULT_VET_TOKEN_PREFIX = 'x-vet-token';
10
+ const LAUNCH_SOURCE_VET = 'VET';
11
+ export class SessionService {
12
+ constructor() {
13
+ this.config = {};
14
+ this.cachedToken = null;
15
+ this.cachedState = null;
16
+ this.collecting = null;
17
+ }
18
+ init(config) {
19
+ this.config = { ...config };
20
+ this.cachedToken = null;
21
+ this.cachedState = null;
22
+ }
23
+ /**
24
+ * Runs `handlers.next` and returns its result, or `handlers.error(error)` if it throws a `SessionError`.
25
+ * Centralizes the try/catch mechanics; the caller still supplies the actual handling logic.
26
+ */
27
+ read(handlers) {
28
+ try {
29
+ return handlers.next(this);
30
+ }
31
+ catch (e) {
32
+ if (e instanceof SessionError) {
33
+ return handlers.error(e);
34
+ }
35
+ throw e;
36
+ }
37
+ }
38
+ /**
39
+ * Statement-style variant of `read` for blocks of assignments/side effects with no return value.
40
+ *
41
+ * `next` always runs to completion: a claim that is absent or blank yields `undefined` instead of
42
+ * throwing, and every such failure is reported once afterwards via `handlers.error`, as a
43
+ * `SessionClaimsMissingError` listing all of them. An unusable token (missing, expired,
44
+ * undecodable) still aborts `next` immediately with the matching `SessionError`.
45
+ *
46
+ * Collecting covers the synchronous body of `next` only — claim reads deferred into a subscription,
47
+ * timeout or promise run after it has returned and throw as usual.
48
+ *
49
+ * An error `next` throws for any other reason propagates untouched, except that any claims missing
50
+ * at the time are appended to its message and attached as `sessionClaimFailures` — a collected
51
+ * `undefined` reaching the block is the usual cause, and that is the part worth knowing.
52
+ */
53
+ run(handlers) {
54
+ const failures = [];
55
+ const previous = this.collecting;
56
+ this.collecting = failures;
57
+ try {
58
+ handlers.next(this);
59
+ }
60
+ catch (e) {
61
+ if (e instanceof SessionError) {
62
+ handlers.error(e);
63
+ return;
64
+ }
65
+ if (failures.length && e instanceof Error) {
66
+ e.sessionClaimFailures = failures;
67
+ e.message = `${e.message} — session claims missing during run(): ${describeClaimFailures(failures)}`;
68
+ }
69
+ throw e;
70
+ }
71
+ finally {
72
+ this.collecting = previous;
73
+ }
74
+ if (failures.length) {
75
+ handlers.error(new SessionClaimsMissingError(failures));
76
+ }
77
+ }
78
+ get isVET() {
79
+ return this.state.isVET;
80
+ }
81
+ get sub() { return this.getClaim('sub'); }
82
+ get empGuid() { return this.getClaim('employeeGUID'); }
83
+ get employeeId() { return this.getClaim('employeeId'); }
84
+ get internalSsoRole() { return this.getClaim('internal_sso_role'); }
85
+ get roles() { return this.getClaim('roles'); }
86
+ get sessionId() { return this.getClaim('sessionId'); }
87
+ get loggedInUser() { return this.getClaim('loggedInUser'); }
88
+ get exp() { return this.getClaim('exp'); }
89
+ get iat() { return this.getClaim('iat'); }
90
+ get businessUnitId() { return this.getClaim('businessUnitId'); }
91
+ get allowedBuids() { return this.getClaim('ALLOWED_BUIDS'); }
92
+ get vetUserEmailId() { return this.getClaim('vetUserEmailId'); }
93
+ get vetUserId() { return this.getClaim('vetUserId'); }
94
+ get source() { return this.getClaim('source'); }
95
+ get roleId() {
96
+ const raw = this.resolveRole(this.getClaims());
97
+ if (!raw) {
98
+ return this.missingClaim('roleId', 'absent');
99
+ }
100
+ return Number(raw);
101
+ }
102
+ /** First numeric role in `internal_sso_role` then `roles`, or `''` when the token carries none. */
103
+ resolveRole(claims) {
104
+ const candidates = [claims.internal_sso_role, ...(claims.roles ?? [])];
105
+ return candidates
106
+ .map(value => value?.trim())
107
+ .find(value => this.isDigitsOnly(value)) ?? '';
108
+ }
109
+ isDigitsOnly(value) {
110
+ return !!value && /^\d+$/.test(value);
111
+ }
112
+ getClaims() {
113
+ const state = this.state;
114
+ if (state.status === 'ok') {
115
+ return state.claims;
116
+ }
117
+ if (state.status === 'not-found') {
118
+ throw new SessionTokenNotFoundError();
119
+ }
120
+ if (state.status === 'expired') {
121
+ throw new SessionTokenExpiredError();
122
+ }
123
+ throw new SessionTokenInvalidError();
124
+ }
125
+ getClaim(key) {
126
+ const claims = this.getClaims();
127
+ const value = claims[key];
128
+ const isEmptyString = typeof value === 'string' && value.trim() === '';
129
+ if (value === undefined || value === null || isEmptyString) {
130
+ return this.missingClaim(key, isEmptyString ? 'blank' : 'absent');
131
+ }
132
+ return (typeof value === 'string' ? value.trim() : value);
133
+ }
134
+ /** Records the failure and yields `undefined` while `run` is collecting; throws otherwise. */
135
+ missingClaim(claim, reason) {
136
+ if (this.collecting) {
137
+ this.collecting.push({ claim, reason });
138
+ return undefined;
139
+ }
140
+ throw new SessionClaimNotFoundError(claim);
141
+ }
142
+ get state() {
143
+ const { token, isVET } = this.findToken();
144
+ if (!this.cachedState || token !== this.cachedToken) {
145
+ this.cachedToken = token;
146
+ this.cachedState = this.build(token, isVET);
147
+ }
148
+ return this.cachedState;
149
+ }
150
+ build(token, isVET) {
151
+ if (!token) {
152
+ return { status: 'not-found', isVET };
153
+ }
154
+ let claims;
155
+ try {
156
+ claims = jwtDecode(token);
157
+ }
158
+ catch {
159
+ return { status: 'invalid', isVET };
160
+ }
161
+ if (this.isExpired(claims)) {
162
+ return { status: 'expired', isVET };
163
+ }
164
+ return { status: 'ok', claims, isVET };
165
+ }
166
+ isExpired(claims) {
167
+ return typeof claims.exp === 'number' && claims.exp * 1000 <= Date.now();
168
+ }
169
+ isVETSource() {
170
+ return getQueryParam('source') === LAUNCH_SOURCE_VET;
171
+ }
172
+ resolveBuid() {
173
+ return getQueryParam('buid') || getCookie('buid') || null;
174
+ }
175
+ findToken() {
176
+ const buid = this.resolveBuid();
177
+ if (this.isVETSource()) {
178
+ const vetKey = this.config.vetTokenCookieKey ?? (buid ? `${DEFAULT_VET_TOKEN_PREFIX}-${buid}` : null);
179
+ const vetToken = (vetKey ? getCookie(vetKey) : '') || '';
180
+ if (vetToken) {
181
+ return { token: vetToken, isVET: true };
182
+ }
183
+ }
184
+ const sessionToken = this.config.sessionTokenCookieKey
185
+ ? getCookie(this.config.sessionTokenCookieKey)
186
+ : (buid ? getCookie(`${DEFAULT_SESSION_TOKEN_PREFIX}-${buid}`) : '') || getCookie(DEFAULT_SESSION_TOKEN_FALLBACK_KEY);
187
+ return { token: sessionToken || '', isVET: false };
188
+ }
189
+ }
190
+ SessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SessionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
191
+ SessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SessionService, providedIn: 'root' });
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SessionService, decorators: [{
193
+ type: Injectable,
194
+ args: [{
195
+ providedIn: 'root'
196
+ }]
197
+ }] });
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL3dpcy1jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9zZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxPQUFPLEVBQ0wscUJBQXFCLEVBR3JCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsWUFBWSxFQUNaLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzFCLE1BQU0sa0JBQWtCLENBQUM7O0FBRTFCLE1BQU0sNEJBQTRCLEdBQUcsZUFBZSxDQUFDO0FBQ3JELE1BQU0sa0NBQWtDLEdBQUcsYUFBYSxDQUFDO0FBQ3pELE1BQU0sd0JBQXdCLEdBQUcsYUFBYSxDQUFDO0FBQy9DLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBc0NoQyxNQUFNLE9BQU8sY0FBYztJQUgzQjtRQUlVLFdBQU0sR0FBMEIsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUNsQyxnQkFBVyxHQUF3QixJQUFJLENBQUM7UUFDeEMsZUFBVSxHQUFrQyxJQUFJLENBQUM7S0ErTDFEO0lBN0xDLElBQUksQ0FBQyxNQUE2QjtRQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFJLFFBQXFGO1FBQzNGLElBQUk7WUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLFlBQVksRUFBRTtnQkFDN0IsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFCO1lBQ0QsTUFBTSxDQUFDLENBQUM7U0FDVDtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILEdBQUcsQ0FBQyxRQUEyRjtRQUM3RixNQUFNLFFBQVEsR0FBMkIsRUFBRSxDQUFDO1FBQzVDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDM0IsSUFBSTtZQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLFlBQVksRUFBRTtnQkFDN0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsT0FBTzthQUNSO1lBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUU7Z0JBQ3hDLENBQStELENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDO2dCQUNqRyxDQUFDLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sMkNBQTJDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7YUFDdEc7WUFDRCxNQUFNLENBQUMsQ0FBQztTQUNUO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDbkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDekQ7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxHQUFHLEtBQWEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxJQUFJLE9BQU8sS0FBYSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELElBQUksVUFBVSxLQUFhLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBSSxlQUFlLEtBQWEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLElBQUksS0FBSyxLQUFlLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsSUFBSSxTQUFTLEtBQWEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxJQUFJLFlBQVksS0FBYSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLElBQUksR0FBRyxLQUFhLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxHQUFHLEtBQWEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxJQUFJLGNBQWMsS0FBYSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxZQUFZLEtBQWUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxJQUFJLGNBQWMsS0FBYSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxTQUFTLEtBQWEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxJQUFJLE1BQU0sS0FBYSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXhELElBQUksTUFBTTtRQUNSLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDOUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsbUdBQW1HO0lBQzNGLFdBQVcsQ0FBQyxNQUF5QjtRQUMzQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sVUFBVTthQUNkLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTyxZQUFZLENBQUMsS0FBeUI7UUFDNUMsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDekIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUNoQyxNQUFNLElBQUkseUJBQXlCLEVBQUUsQ0FBQztTQUN2QztRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDOUIsTUFBTSxJQUFJLHdCQUF3QixFQUFFLENBQUM7U0FDdEM7UUFDRCxNQUFNLElBQUksd0JBQXdCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU8sUUFBUSxDQUFvQyxHQUFNO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsTUFBTSxhQUFhLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdkUsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksYUFBYSxFQUFFO1lBQzFELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFhLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQXNDLENBQUM7SUFDakcsQ0FBQztJQUVELDhGQUE4RjtJQUN0RixZQUFZLENBQUMsS0FBYSxFQUFFLE1BQWlDO1FBQ25FLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sU0FBa0IsQ0FBQztTQUMzQjtRQUNELE1BQU0sSUFBSSx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBWSxLQUFLO1FBQ2YsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sS0FBSyxDQUFDLEtBQWEsRUFBRSxLQUFjO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUN2QztRQUVELElBQUksTUFBeUIsQ0FBQztRQUM5QixJQUFJO1lBQ0YsTUFBTSxHQUFHLFNBQVMsQ0FBb0IsS0FBSyxDQUFDLENBQUM7U0FDOUM7UUFBQyxNQUFNO1lBQ04sT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDckM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDckM7UUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxNQUF5QjtRQUN6QyxPQUFPLE9BQU8sTUFBTSxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLGlCQUFpQixDQUFDO0lBQ3ZELENBQUM7SUFFTyxXQUFXO1FBQ2pCLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUQsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyx3QkFBd0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEcsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pELElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUN6QztTQUNGO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUI7WUFDcEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1lBQzlDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsNEJBQTRCLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksU0FBUyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFFeEgsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNyRCxDQUFDOzsyR0FsTVUsY0FBYzsrR0FBZCxjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBqd3REZWNvZGUgZnJvbSAnand0LWRlY29kZSc7XG5cbmltcG9ydCB7IGdldENvb2tpZSB9IGZyb20gJy4uL2Z1bmN0aW9ucy9jb29raWUuZnVuY3Rpb24nO1xuaW1wb3J0IHsgZ2V0UXVlcnlQYXJhbSB9IGZyb20gJy4uL2Z1bmN0aW9ucy91cmwuZnVuY3Rpb25zJztcbmltcG9ydCB7IE5zU2Vzc2lvbiB9IGZyb20gJy4uL21vZGVscy9zZXNzaW9uLm1vZGVsJztcbmltcG9ydCB7XG4gIGRlc2NyaWJlQ2xhaW1GYWlsdXJlcyxcbiAgSVNlc3Npb25DbGFpbUZhaWx1cmUsXG4gIFNlc3Npb25DbGFpbUZhaWx1cmVSZWFzb24sXG4gIFNlc3Npb25DbGFpbU5vdEZvdW5kRXJyb3IsXG4gIFNlc3Npb25DbGFpbXNNaXNzaW5nRXJyb3IsXG4gIFNlc3Npb25FcnJvcixcbiAgU2Vzc2lvblRva2VuRXhwaXJlZEVycm9yLFxuICBTZXNzaW9uVG9rZW5JbnZhbGlkRXJyb3IsXG4gIFNlc3Npb25Ub2tlbk5vdEZvdW5kRXJyb3IsXG59IGZyb20gJy4vc2Vzc2lvbi5lcnJvcnMnO1xuXG5jb25zdCBERUZBVUxUX1NFU1NJT05fVE9LRU5fUFJFRklYID0gJ3Nzby13aXMtdG9rZW4nO1xuY29uc3QgREVGQVVMVF9TRVNTSU9OX1RPS0VOX0ZBTExCQUNLX0tFWSA9ICd4LXdpcy10b2tlbic7XG5jb25zdCBERUZBVUxUX1ZFVF9UT0tFTl9QUkVGSVggPSAneC12ZXQtdG9rZW4nO1xuY29uc3QgTEFVTkNIX1NPVVJDRV9WRVQgPSAnVkVUJztcblxuLyoqIFRoZSBhY2Nlc3NvcnMgdGhhdCByZWFkIGEgc2luZ2xlIGNsYWltLCBhbmQgc28gY2FuIGNvbWUgYmFjayBgdW5kZWZpbmVkYCBpbnNpZGUgYHJ1bmAuICovXG50eXBlIENsYWltQWNjZXNzb3IgPVxuICB8ICdzdWInXG4gIHwgJ2VtcEd1aWQnXG4gIHwgJ2VtcGxveWVlSWQnXG4gIHwgJ2ludGVybmFsU3NvUm9sZSdcbiAgfCAncm9sZXMnXG4gIHwgJ3Nlc3Npb25JZCdcbiAgfCAnbG9nZ2VkSW5Vc2VyJ1xuICB8ICdleHAnXG4gIHwgJ2lhdCdcbiAgfCAnYnVzaW5lc3NVbml0SWQnXG4gIHwgJ2FsbG93ZWRCdWlkcydcbiAgfCAndmV0VXNlckVtYWlsSWQnXG4gIHwgJ3ZldFVzZXJJZCdcbiAgfCAnc291cmNlJ1xuICB8ICdyb2xlSWQnO1xuXG4vKipcbiAqIFRoZSBzZXNzaW9uIGFzIHNlZW4gaW5zaWRlIGBydW5gJ3MgYG5leHRgLiBgcnVuYCBjb2xsZWN0cyBtaXNzaW5nIGNsYWltcyBpbnN0ZWFkIG9mIHRocm93aW5nXG4gKiBzbyB0aGUgYmxvY2sgYWx3YXlzIGNvbXBsZXRlcywgd2hpY2ggbWVhbnMgYW55IGNsYWltIGFjY2Vzc29yIG1heSB5aWVsZCBgdW5kZWZpbmVkYC5cbiAqIE91dHNpZGUgYHJ1bmAg4oCUIGRpcmVjdCBhY2Nlc3MsIG9yIGByZWFkYCDigJQgdGhlIGFjY2Vzc29ycyBzdGlsbCB0aHJvdyBhbmQgc3RheSBub24tb3B0aW9uYWwuXG4gKi9cbmV4cG9ydCB0eXBlIFBhcnRpYWxTZXNzaW9uID0gT21pdDxTZXNzaW9uU2VydmljZSwgQ2xhaW1BY2Nlc3Nvcj4gJiB7XG4gIHJlYWRvbmx5IFtLIGluIENsYWltQWNjZXNzb3JdOiBTZXNzaW9uU2VydmljZVtLXSB8IHVuZGVmaW5lZDtcbn07XG5cbnR5cGUgU2Vzc2lvblN0YXRlID1cbiAgfCB7IHN0YXR1czogJ29rJzsgY2xhaW1zOiBOc1Nlc3Npb24uSUNsYWltczsgaXNWRVQ6IGJvb2xlYW4gfVxuICB8IHsgc3RhdHVzOiAnbm90LWZvdW5kJzsgaXNWRVQ6IGJvb2xlYW4gfVxuICB8IHsgc3RhdHVzOiAnZXhwaXJlZCc7IGlzVkVUOiBib29sZWFuIH1cbiAgfCB7IHN0YXR1czogJ2ludmFsaWQnOyBpc1ZFVDogYm9vbGVhbiB9O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZSB7XG4gIHByaXZhdGUgY29uZmlnOiBOc1Nlc3Npb24uSUluaXRDb25maWcgPSB7fTtcbiAgcHJpdmF0ZSBjYWNoZWRUb2tlbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2FjaGVkU3RhdGU6IFNlc3Npb25TdGF0ZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbGxlY3Rpbmc6IElTZXNzaW9uQ2xhaW1GYWlsdXJlW10gfCBudWxsID0gbnVsbDtcblxuICBpbml0KGNvbmZpZzogTnNTZXNzaW9uLklJbml0Q29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWcgPSB7IC4uLmNvbmZpZyB9O1xuICAgIHRoaXMuY2FjaGVkVG9rZW4gPSBudWxsO1xuICAgIHRoaXMuY2FjaGVkU3RhdGUgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYGhhbmRsZXJzLm5leHRgIGFuZCByZXR1cm5zIGl0cyByZXN1bHQsIG9yIGBoYW5kbGVycy5lcnJvcihlcnJvcilgIGlmIGl0IHRocm93cyBhIGBTZXNzaW9uRXJyb3JgLlxuICAgKiBDZW50cmFsaXplcyB0aGUgdHJ5L2NhdGNoIG1lY2hhbmljczsgdGhlIGNhbGxlciBzdGlsbCBzdXBwbGllcyB0aGUgYWN0dWFsIGhhbmRsaW5nIGxvZ2ljLlxuICAgKi9cbiAgcmVhZDxUPihoYW5kbGVyczogeyBuZXh0OiAoc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpID0+IFQ7IGVycm9yOiAoZXJyb3I6IFNlc3Npb25FcnJvcikgPT4gVCB9KTogVCB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBoYW5kbGVycy5uZXh0KHRoaXMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgU2Vzc2lvbkVycm9yKSB7XG4gICAgICAgIHJldHVybiBoYW5kbGVycy5lcnJvcihlKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudC1zdHlsZSB2YXJpYW50IG9mIGByZWFkYCBmb3IgYmxvY2tzIG9mIGFzc2lnbm1lbnRzL3NpZGUgZWZmZWN0cyB3aXRoIG5vIHJldHVybiB2YWx1ZS5cbiAgICpcbiAgICogYG5leHRgIGFsd2F5cyBydW5zIHRvIGNvbXBsZXRpb246IGEgY2xhaW0gdGhhdCBpcyBhYnNlbnQgb3IgYmxhbmsgeWllbGRzIGB1bmRlZmluZWRgIGluc3RlYWQgb2ZcbiAgICogdGhyb3dpbmcsIGFuZCBldmVyeSBzdWNoIGZhaWx1cmUgaXMgcmVwb3J0ZWQgb25jZSBhZnRlcndhcmRzIHZpYSBgaGFuZGxlcnMuZXJyb3JgLCBhcyBhXG4gICAqIGBTZXNzaW9uQ2xhaW1zTWlzc2luZ0Vycm9yYCBsaXN0aW5nIGFsbCBvZiB0aGVtLiBBbiB1bnVzYWJsZSB0b2tlbiAobWlzc2luZywgZXhwaXJlZCxcbiAgICogdW5kZWNvZGFibGUpIHN0aWxsIGFib3J0cyBgbmV4dGAgaW1tZWRpYXRlbHkgd2l0aCB0aGUgbWF0Y2hpbmcgYFNlc3Npb25FcnJvcmAuXG4gICAqXG4gICAqIENvbGxlY3RpbmcgY292ZXJzIHRoZSBzeW5jaHJvbm91cyBib2R5IG9mIGBuZXh0YCBvbmx5IOKAlCBjbGFpbSByZWFkcyBkZWZlcnJlZCBpbnRvIGEgc3Vic2NyaXB0aW9uLFxuICAgKiB0aW1lb3V0IG9yIHByb21pc2UgcnVuIGFmdGVyIGl0IGhhcyByZXR1cm5lZCBhbmQgdGhyb3cgYXMgdXN1YWwuXG4gICAqXG4gICAqIEFuIGVycm9yIGBuZXh0YCB0aHJvd3MgZm9yIGFueSBvdGhlciByZWFzb24gcHJvcGFnYXRlcyB1bnRvdWNoZWQsIGV4Y2VwdCB0aGF0IGFueSBjbGFpbXMgbWlzc2luZ1xuICAgKiBhdCB0aGUgdGltZSBhcmUgYXBwZW5kZWQgdG8gaXRzIG1lc3NhZ2UgYW5kIGF0dGFjaGVkIGFzIGBzZXNzaW9uQ2xhaW1GYWlsdXJlc2Ag4oCUIGEgY29sbGVjdGVkXG4gICAqIGB1bmRlZmluZWRgIHJlYWNoaW5nIHRoZSBibG9jayBpcyB0aGUgdXN1YWwgY2F1c2UsIGFuZCB0aGF0IGlzIHRoZSBwYXJ0IHdvcnRoIGtub3dpbmcuXG4gICAqL1xuICBydW4oaGFuZGxlcnM6IHsgbmV4dDogKHNlc3Npb246IFBhcnRpYWxTZXNzaW9uKSA9PiB2b2lkOyBlcnJvcjogKGVycm9yOiBTZXNzaW9uRXJyb3IpID0+IHZvaWQgfSk6IHZvaWQge1xuICAgIGNvbnN0IGZhaWx1cmVzOiBJU2Vzc2lvbkNsYWltRmFpbHVyZVtdID0gW107XG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLmNvbGxlY3Rpbmc7XG4gICAgdGhpcy5jb2xsZWN0aW5nID0gZmFpbHVyZXM7XG4gICAgdHJ5IHtcbiAgICAgIGhhbmRsZXJzLm5leHQodGhpcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTZXNzaW9uRXJyb3IpIHtcbiAgICAgICAgaGFuZGxlcnMuZXJyb3IoZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChmYWlsdXJlcy5sZW5ndGggJiYgZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIChlIGFzIEVycm9yICYgeyBzZXNzaW9uQ2xhaW1GYWlsdXJlcz86IElTZXNzaW9uQ2xhaW1GYWlsdXJlW10gfSkuc2Vzc2lvbkNsYWltRmFpbHVyZXMgPSBmYWlsdXJlcztcbiAgICAgICAgZS5tZXNzYWdlID0gYCR7ZS5tZXNzYWdlfSDigJQgc2Vzc2lvbiBjbGFpbXMgbWlzc2luZyBkdXJpbmcgcnVuKCk6ICR7ZGVzY3JpYmVDbGFpbUZhaWx1cmVzKGZhaWx1cmVzKX1gO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5jb2xsZWN0aW5nID0gcHJldmlvdXM7XG4gICAgfVxuICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpIHtcbiAgICAgIGhhbmRsZXJzLmVycm9yKG5ldyBTZXNzaW9uQ2xhaW1zTWlzc2luZ0Vycm9yKGZhaWx1cmVzKSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzVkVUKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmlzVkVUO1xuICB9XG5cbiAgZ2V0IHN1YigpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5nZXRDbGFpbSgnc3ViJyk7IH1cbiAgZ2V0IGVtcEd1aWQoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuZ2V0Q2xhaW0oJ2VtcGxveWVlR1VJRCcpOyB9XG4gIGdldCBlbXBsb3llZUlkKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmdldENsYWltKCdlbXBsb3llZUlkJyk7IH1cbiAgZ2V0IGludGVybmFsU3NvUm9sZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5nZXRDbGFpbSgnaW50ZXJuYWxfc3NvX3JvbGUnKTsgfVxuICBnZXQgcm9sZXMoKTogc3RyaW5nW10geyByZXR1cm4gdGhpcy5nZXRDbGFpbSgncm9sZXMnKTsgfVxuICBnZXQgc2Vzc2lvbklkKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmdldENsYWltKCdzZXNzaW9uSWQnKTsgfVxuICBnZXQgbG9nZ2VkSW5Vc2VyKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmdldENsYWltKCdsb2dnZWRJblVzZXInKTsgfVxuICBnZXQgZXhwKCk6IG51bWJlciB7IHJldHVybiB0aGlzLmdldENsYWltKCdleHAnKTsgfVxuICBnZXQgaWF0KCk6IG51bWJlciB7IHJldHVybiB0aGlzLmdldENsYWltKCdpYXQnKTsgfVxuICBnZXQgYnVzaW5lc3NVbml0SWQoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuZ2V0Q2xhaW0oJ2J1c2luZXNzVW5pdElkJyk7IH1cbiAgZ2V0IGFsbG93ZWRCdWlkcygpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLmdldENsYWltKCdBTExPV0VEX0JVSURTJyk7IH1cbiAgZ2V0IHZldFVzZXJFbWFpbElkKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmdldENsYWltKCd2ZXRVc2VyRW1haWxJZCcpOyB9XG4gIGdldCB2ZXRVc2VySWQoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuZ2V0Q2xhaW0oJ3ZldFVzZXJJZCcpOyB9XG4gIGdldCBzb3VyY2UoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuZ2V0Q2xhaW0oJ3NvdXJjZScpOyB9XG5cbiAgZ2V0IHJvbGVJZCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHJhdyA9IHRoaXMucmVzb2x2ZVJvbGUodGhpcy5nZXRDbGFpbXMoKSk7XG4gICAgaWYgKCFyYXcpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pc3NpbmdDbGFpbSgncm9sZUlkJywgJ2Fic2VudCcpO1xuICAgIH1cbiAgICByZXR1cm4gTnVtYmVyKHJhdyk7XG4gIH1cblxuICAvKiogRmlyc3QgbnVtZXJpYyByb2xlIGluIGBpbnRlcm5hbF9zc29fcm9sZWAgdGhlbiBgcm9sZXNgLCBvciBgJydgIHdoZW4gdGhlIHRva2VuIGNhcnJpZXMgbm9uZS4gKi9cbiAgcHJpdmF0ZSByZXNvbHZlUm9sZShjbGFpbXM6IE5zU2Vzc2lvbi5JQ2xhaW1zKTogc3RyaW5nIHtcbiAgICBjb25zdCBjYW5kaWRhdGVzID0gW2NsYWltcy5pbnRlcm5hbF9zc29fcm9sZSwgLi4uKGNsYWltcy5yb2xlcyA/PyBbXSldO1xuICAgIHJldHVybiBjYW5kaWRhdGVzXG4gICAgICAubWFwKHZhbHVlID0+IHZhbHVlPy50cmltKCkpXG4gICAgICAuZmluZCh2YWx1ZSA9PiB0aGlzLmlzRGlnaXRzT25seSh2YWx1ZSkpID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0RpZ2l0c09ubHkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZhbHVlIGlzIHN0cmluZyB7XG4gICAgcmV0dXJuICEhdmFsdWUgJiYgL15cXGQrJC8udGVzdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldENsYWltcygpOiBOc1Nlc3Npb24uSUNsYWltcyB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgIGlmIChzdGF0ZS5zdGF0dXMgPT09ICdvaycpIHtcbiAgICAgIHJldHVybiBzdGF0ZS5jbGFpbXM7XG4gICAgfVxuICAgIGlmIChzdGF0ZS5zdGF0dXMgPT09ICdub3QtZm91bmQnKSB7XG4gICAgICB0aHJvdyBuZXcgU2Vzc2lvblRva2VuTm90Rm91bmRFcnJvcigpO1xuICAgIH1cbiAgICBpZiAoc3RhdGUuc3RhdHVzID09PSAnZXhwaXJlZCcpIHtcbiAgICAgIHRocm93IG5ldyBTZXNzaW9uVG9rZW5FeHBpcmVkRXJyb3IoKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFNlc3Npb25Ub2tlbkludmFsaWRFcnJvcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGFpbTxLIGV4dGVuZHMga2V5b2YgTnNTZXNzaW9uLklDbGFpbXM+KGtleTogSyk6IE5vbk51bGxhYmxlPE5zU2Vzc2lvbi5JQ2xhaW1zW0tdPiB7XG4gICAgY29uc3QgY2xhaW1zID0gdGhpcy5nZXRDbGFpbXMoKTtcbiAgICBjb25zdCB2YWx1ZSA9IGNsYWltc1trZXldO1xuICAgIGNvbnN0IGlzRW1wdHlTdHJpbmcgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJyc7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgaXNFbXB0eVN0cmluZykge1xuICAgICAgcmV0dXJuIHRoaXMubWlzc2luZ0NsYWltKGtleSBhcyBzdHJpbmcsIGlzRW1wdHlTdHJpbmcgPyAnYmxhbmsnIDogJ2Fic2VudCcpO1xuICAgIH1cbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiB2YWx1ZSkgYXMgTm9uTnVsbGFibGU8TnNTZXNzaW9uLklDbGFpbXNbS10+O1xuICB9XG5cbiAgLyoqIFJlY29yZHMgdGhlIGZhaWx1cmUgYW5kIHlpZWxkcyBgdW5kZWZpbmVkYCB3aGlsZSBgcnVuYCBpcyBjb2xsZWN0aW5nOyB0aHJvd3Mgb3RoZXJ3aXNlLiAqL1xuICBwcml2YXRlIG1pc3NpbmdDbGFpbShjbGFpbTogc3RyaW5nLCByZWFzb246IFNlc3Npb25DbGFpbUZhaWx1cmVSZWFzb24pOiBuZXZlciB7XG4gICAgaWYgKHRoaXMuY29sbGVjdGluZykge1xuICAgICAgdGhpcy5jb2xsZWN0aW5nLnB1c2goeyBjbGFpbSwgcmVhc29uIH0pO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBuZXZlcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFNlc3Npb25DbGFpbU5vdEZvdW5kRXJyb3IoY2xhaW0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgc3RhdGUoKTogU2Vzc2lvblN0YXRlIHtcbiAgICBjb25zdCB7IHRva2VuLCBpc1ZFVCB9ID0gdGhpcy5maW5kVG9rZW4oKTtcbiAgICBpZiAoIXRoaXMuY2FjaGVkU3RhdGUgfHwgdG9rZW4gIT09IHRoaXMuY2FjaGVkVG9rZW4pIHtcbiAgICAgIHRoaXMuY2FjaGVkVG9rZW4gPSB0b2tlbjtcbiAgICAgIHRoaXMuY2FjaGVkU3RhdGUgPSB0aGlzLmJ1aWxkKHRva2VuLCBpc1ZFVCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhY2hlZFN0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZCh0b2tlbjogc3RyaW5nLCBpc1ZFVDogYm9vbGVhbik6IFNlc3Npb25TdGF0ZSB7XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuIHsgc3RhdHVzOiAnbm90LWZvdW5kJywgaXNWRVQgfTtcbiAgICB9XG5cbiAgICBsZXQgY2xhaW1zOiBOc1Nlc3Npb24uSUNsYWltcztcbiAgICB0cnkge1xuICAgICAgY2xhaW1zID0gand0RGVjb2RlPE5zU2Vzc2lvbi5JQ2xhaW1zPih0b2tlbik7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4geyBzdGF0dXM6ICdpbnZhbGlkJywgaXNWRVQgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0V4cGlyZWQoY2xhaW1zKSkge1xuICAgICAgcmV0dXJuIHsgc3RhdHVzOiAnZXhwaXJlZCcsIGlzVkVUIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhdHVzOiAnb2snLCBjbGFpbXMsIGlzVkVUIH07XG4gIH1cblxuICBwcml2YXRlIGlzRXhwaXJlZChjbGFpbXM6IE5zU2Vzc2lvbi5JQ2xhaW1zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBjbGFpbXMuZXhwID09PSAnbnVtYmVyJyAmJiBjbGFpbXMuZXhwICogMTAwMCA8PSBEYXRlLm5vdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1ZFVFNvdXJjZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZ2V0UXVlcnlQYXJhbSgnc291cmNlJykgPT09IExBVU5DSF9TT1VSQ0VfVkVUO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlQnVpZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gZ2V0UXVlcnlQYXJhbSgnYnVpZCcpIHx8IGdldENvb2tpZSgnYnVpZCcpIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGZpbmRUb2tlbigpOiB7IHRva2VuOiBzdHJpbmc7IGlzVkVUOiBib29sZWFuIH0ge1xuICAgIGNvbnN0IGJ1aWQgPSB0aGlzLnJlc29sdmVCdWlkKCk7XG5cbiAgICBpZiAodGhpcy5pc1ZFVFNvdXJjZSgpKSB7XG4gICAgICBjb25zdCB2ZXRLZXkgPSB0aGlzLmNvbmZpZy52ZXRUb2tlbkNvb2tpZUtleSA/PyAoYnVpZCA/IGAke0RFRkFVTFRfVkVUX1RPS0VOX1BSRUZJWH0tJHtidWlkfWAgOiBudWxsKTtcbiAgICAgIGNvbnN0IHZldFRva2VuID0gKHZldEtleSA/IGdldENvb2tpZSh2ZXRLZXkpIDogJycpIHx8ICcnO1xuICAgICAgaWYgKHZldFRva2VuKSB7XG4gICAgICAgIHJldHVybiB7IHRva2VuOiB2ZXRUb2tlbiwgaXNWRVQ6IHRydWUgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZXNzaW9uVG9rZW4gPSB0aGlzLmNvbmZpZy5zZXNzaW9uVG9rZW5Db29raWVLZXlcbiAgICAgID8gZ2V0Q29va2llKHRoaXMuY29uZmlnLnNlc3Npb25Ub2tlbkNvb2tpZUtleSlcbiAgICAgIDogKGJ1aWQgPyBnZXRDb29raWUoYCR7REVGQVVMVF9TRVNTSU9OX1RPS0VOX1BSRUZJWH0tJHtidWlkfWApIDogJycpIHx8IGdldENvb2tpZShERUZBVUxUX1NFU1NJT05fVE9LRU5fRkFMTEJBQ0tfS0VZKTtcblxuICAgIHJldHVybiB7IHRva2VuOiBzZXNzaW9uVG9rZW4gfHwgJycsIGlzVkVUOiBmYWxzZSB9O1xuICB9XG59XG4iXX0=
@@ -8,25 +8,30 @@ import { LoaderComponent } from "./components/loader/loader.component";
8
8
  import { LoaderService } from "./services/loader.service";
9
9
  import { OverlayModule } from "@angular/cdk/overlay";
10
10
  import { SidenavComponent } from "./components/sidenav/sidenav.component";
11
+ import { CreateNonShiftModalComponent } from "./components/create-non-shift-modal/create-non-shift-modal.component";
12
+ import { DropdownModule } from "mis-crystal-design-system/dropdown";
13
+ import { ReactiveFormsModule } from "@angular/forms";
14
+ import { DatepickerModuleV2 } from "mis-crystal-design-system/datepicker_v2";
15
+ import { HttpClientModule } from "@angular/common/http";
11
16
  import * as i0 from "@angular/core";
12
17
  export class WisCommonModule {
13
18
  static forRoot(env) {
14
19
  return {
15
20
  ngModule: WisCommonModule,
16
- providers: [{ provide: CONSTANTS_WIS_COMMON, useValue: env }, ConfigurationService, LoaderService]
21
+ providers: [HttpService, { provide: CONSTANTS_WIS_COMMON, useValue: env }, ConfigurationService, LoaderService]
17
22
  };
18
23
  }
19
24
  }
20
25
  WisCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WisCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- WisCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: WisCommonModule, declarations: [LoaderComponent, SidenavComponent], imports: [CommonModule, OverlayModule, LoaderModule], exports: [SidenavComponent] });
22
- WisCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WisCommonModule, providers: [HttpService], imports: [CommonModule, OverlayModule, LoaderModule] });
26
+ WisCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: WisCommonModule, declarations: [LoaderComponent, SidenavComponent, CreateNonShiftModalComponent], imports: [CommonModule, HttpClientModule, OverlayModule, LoaderModule, DropdownModule, ReactiveFormsModule, DatepickerModuleV2], exports: [SidenavComponent, CreateNonShiftModalComponent] });
27
+ WisCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WisCommonModule, imports: [CommonModule, HttpClientModule, OverlayModule, LoaderModule, DropdownModule, ReactiveFormsModule, DatepickerModuleV2] });
23
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WisCommonModule, decorators: [{
24
29
  type: NgModule,
25
30
  args: [{
26
- declarations: [LoaderComponent, SidenavComponent],
27
- imports: [CommonModule, OverlayModule, LoaderModule],
28
- providers: [HttpService],
29
- exports: [SidenavComponent]
31
+ declarations: [LoaderComponent, SidenavComponent, CreateNonShiftModalComponent],
32
+ imports: [CommonModule, HttpClientModule, OverlayModule, LoaderModule, DropdownModule, ReactiveFormsModule, DatepickerModuleV2,],
33
+ providers: [],
34
+ exports: [SidenavComponent, CreateNonShiftModalComponent]
30
35
  }]
31
36
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzLWNvbW1vbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvd2lzLWNvbW1vbi9zcmMvbGliL3dpcy1jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVExRSxNQUFNLE9BQU8sZUFBZTtJQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQXFCO1FBQ2xDLE9BQU87WUFDTCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxDQUFDO1NBQ25HLENBQUM7SUFDSixDQUFDOzs0R0FOVSxlQUFlOzZHQUFmLGVBQWUsaUJBTFQsZUFBZSxFQUFFLGdCQUFnQixhQUN0QyxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksYUFFekMsZ0JBQWdCOzZHQUVqQixlQUFlLGFBSGIsQ0FBQyxXQUFXLENBQUMsWUFEZCxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVk7MkZBSTFDLGVBQWU7a0JBTjNCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLGdCQUFnQixDQUFDO29CQUNqRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQztvQkFDcEQsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDO29CQUN4QixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgTnNXSVNDb21tb24gfSBmcm9tIFwiLi9tb2RlbHMvZW52Lm1vZGVsXCI7XG5pbXBvcnQgeyBDT05TVEFOVFNfV0lTX0NPTU1PTiB9IGZyb20gXCIuL2NvbnN0YW50cy9lbXAtd2ViLWV4cC5jb25zdGFudHNcIjtcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBMb2FkZXJNb2R1bGUgfSBmcm9tIFwibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS9sb2FkZXJcIjtcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnRcIjtcbmltcG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgU2lkZW5hdkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0xvYWRlckNvbXBvbmVudCwgU2lkZW5hdkNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgT3ZlcmxheU1vZHVsZSwgTG9hZGVyTW9kdWxlXSxcbiAgICBwcm92aWRlcnM6IFtIdHRwU2VydmljZV0sXG4gICAgZXhwb3J0czogW1NpZGVuYXZDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFdpc0NvbW1vbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGVudjogTnNXSVNDb21tb24uSUVudik6IE1vZHVsZVdpdGhQcm92aWRlcnM8V2lzQ29tbW9uTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBXaXNDb21tb25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENPTlNUQU5UU19XSVNfQ09NTU9OLCB1c2VWYWx1ZTogZW52IH0sIENvbmZpZ3VyYXRpb25TZXJ2aWNlLCBMb2FkZXJTZXJ2aWNlXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzLWNvbW1vbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvd2lzLWNvbW1vbi9zcmMvbGliL3dpcy1jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFReEQsTUFBTSxPQUFPLGVBQWU7SUFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFxQjtRQUNsQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFDLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLENBQUM7U0FDL0csQ0FBQztJQUNKLENBQUM7OzRHQU5VLGVBQWU7NkdBQWYsZUFBZSxpQkFMWCxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLGFBQ3BFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsYUFFcEgsZ0JBQWdCLEVBQUUsNEJBQTRCOzZHQUU3QyxlQUFlLFlBSmhCLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0I7MkZBSW5ILGVBQWU7a0JBTjNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDO29CQUMvRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUU7b0JBQ2hJLFNBQVMsRUFBRSxFQUFFO29CQUNiLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDO2lCQUMxRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOc1dJU0NvbW1vbiB9IGZyb20gXCIuL21vZGVscy9lbnYubW9kZWxcIjtcbmltcG9ydCB7IENPTlNUQU5UU19XSVNfQ09NTU9OIH0gZnJvbSBcIi4vY29uc3RhbnRzL2VtcC13ZWItZXhwLmNvbnN0YW50c1wiO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9odHRwLnNlcnZpY2VcIjtcbmltcG9ydCB7IExvYWRlck1vZHVsZSB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL2xvYWRlclwiO1xuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBTaWRlbmF2Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zaWRlbmF2L3NpZGVuYXYuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDcmVhdGVOb25TaGlmdE1vZGFsQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jcmVhdGUtbm9uLXNoaWZ0LW1vZGFsL2NyZWF0ZS1ub24tc2hpZnQtbW9kYWwuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL2Ryb3Bkb3duXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBEYXRlcGlja2VyTW9kdWxlVjIgfSBmcm9tIFwibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS9kYXRlcGlja2VyX3YyXCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0xvYWRlckNvbXBvbmVudCwgU2lkZW5hdkNvbXBvbmVudCwgQ3JlYXRlTm9uU2hpZnRNb2RhbENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEh0dHBDbGllbnRNb2R1bGUsIE92ZXJsYXlNb2R1bGUsIExvYWRlck1vZHVsZSwgRHJvcGRvd25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIERhdGVwaWNrZXJNb2R1bGVWMixdLFxuICBwcm92aWRlcnM6IFtdLFxuICBleHBvcnRzOiBbU2lkZW5hdkNvbXBvbmVudCwgQ3JlYXRlTm9uU2hpZnRNb2RhbENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgV2lzQ29tbW9uTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoZW52OiBOc1dJU0NvbW1vbi5JRW52KTogTW9kdWxlV2l0aFByb3ZpZGVyczxXaXNDb21tb25Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFdpc0NvbW1vbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW0h0dHBTZXJ2aWNlLHsgcHJvdmlkZTogQ09OU1RBTlRTX1dJU19DT01NT04sIHVzZVZhbHVlOiBlbnYgfSwgQ29uZmlndXJhdGlvblNlcnZpY2UsIExvYWRlclNlcnZpY2VdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -16,4 +16,8 @@ export * from "./lib/wis-common.module";
16
16
  export * from "./lib/modules/logger/logger.model";
17
17
  export * from "./lib/components/sidenav/sidenav.component";
18
18
  export * from "./lib/services/mfe-communication.service";
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYnJhcmllcy93aXMtY29tbW9uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHdpcy1jb21tb25cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kdWxlcy9hdXRoL2F1dGguc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZHVsZXMvYXV0aC9hdXRoLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZGVscy9jb25maWd1cmF0aW9ucy5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2Z1bmN0aW9ucy9uYXYtZmlsdGVyLmZ1bmN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZnVuY3Rpb25zL2Nvb2tpZS5mdW5jdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2Z1bmN0aW9ucy91cmwuZnVuY3Rpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvaW50ZXJjZXB0b3JzL2F1dGguaW50ZXJjZXB0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZHVsZXMvbG9nZ2VyL2xvZ2dlci5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2R1bGVzL2xvZ2dlci9sb2dnZXIuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3dpcy1jb21tb24ubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kdWxlcy9sb2dnZXIvbG9nZ2VyLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zaWRlbmF2L3NpZGVuYXYuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvbWZlLWNvbW11bmljYXRpb24uc2VydmljZVwiO1xuXG4iXX0=
19
+ export * from "./lib/components/create-non-shift-modal/create-non-shift-modal.component";
20
+ export * from "./lib/services/session.service";
21
+ export * from "./lib/services/session.errors";
22
+ export * from "./lib/models/session.model";
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYnJhcmllcy93aXMtY29tbW9uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygd2lzLWNvbW1vblxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2R1bGVzL2F1dGgvYXV0aC5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kdWxlcy9hdXRoL2F1dGgubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kZWxzL2NvbmZpZ3VyYXRpb25zLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZnVuY3Rpb25zL25hdi1maWx0ZXIuZnVuY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9mdW5jdGlvbnMvY29va2llLmZ1bmN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZnVuY3Rpb25zL3VybC5mdW5jdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9pbnRlcmNlcHRvcnMvYXV0aC5pbnRlcmNlcHRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kdWxlcy9sb2dnZXIvbG9nZ2VyLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZHVsZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvd2lzLWNvbW1vbi5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2R1bGVzL2xvZ2dlci9sb2dnZXIubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3NpZGVuYXYvc2lkZW5hdi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9tZmUtY29tbXVuaWNhdGlvbi5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jcmVhdGUtbm9uLXNoaWZ0LW1vZGFsL2NyZWF0ZS1ub24tc2hpZnQtbW9kYWwuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvc2Vzc2lvbi5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvc2Vzc2lvbi5lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2RlbHMvc2Vzc2lvbi5tb2RlbFwiO1xuIl19