@mis-wis/common 0.2.0 → 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.
- package/esm2020/lib/components/create-non-shift-modal/create-non-shift-modal.component.mjs +12 -8
- package/esm2020/lib/models/session.model.mjs +1 -1
- package/esm2020/lib/services/session.errors.mjs +18 -1
- package/esm2020/lib/services/session.service.mjs +61 -11
- package/fesm2015/mis-wis-common.mjs +89 -18
- package/fesm2015/mis-wis-common.mjs.map +1 -1
- package/fesm2020/mis-wis-common.mjs +88 -17
- package/fesm2020/mis-wis-common.mjs.map +1 -1
- package/lib/components/create-non-shift-modal/create-non-shift-modal.component.d.ts +1 -1
- package/lib/models/session.model.d.ts +1 -0
- package/lib/services/session.errors.d.ts +16 -0
- package/lib/services/session.service.d.ts +31 -1
- package/package.json +7 -2
- package/mis-wis-common-0.2.0.tgz +0 -0
|
@@ -15,9 +15,10 @@ import { LoaderModule } from 'mis-crystal-design-system/loader';
|
|
|
15
15
|
import { map, forkJoin, ReplaySubject } from 'rxjs';
|
|
16
16
|
import * as i2$2 from '@angular/forms';
|
|
17
17
|
import { Validators, ReactiveFormsModule } from '@angular/forms';
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
18
|
+
import dayjs from 'dayjs';
|
|
19
|
+
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
20
|
+
import * as i1$3 from 'mis-crystal-design-system/modal';
|
|
21
|
+
import { MODAL_DATA_VAR } from 'mis-crystal-design-system/modal';
|
|
21
22
|
import * as i6 from 'mis-crystal-design-system/dropdown';
|
|
22
23
|
import { DropdownModule } from 'mis-crystal-design-system/dropdown';
|
|
23
24
|
import * as i7 from 'mis-crystal-design-system/datepicker_v2';
|
|
@@ -395,7 +396,10 @@ const CONSTANTS_ASSETS_WIS_COMMON = {
|
|
|
395
396
|
ICONS: {}
|
|
396
397
|
};
|
|
397
398
|
|
|
399
|
+
dayjs.extend(customParseFormat);
|
|
398
400
|
const PROPERTIES = ["NON_SHIFT_TRIPS_CATEGORIES", "USE_VALID_OFFICE_FOR_IRREGULAR_TRIPS"];
|
|
401
|
+
const DATE_FORMAT = "DD/MM/YYYY";
|
|
402
|
+
const PICKUP_TIME_FORMAT = "DD/MM/YYYY HH/mm/ss";
|
|
399
403
|
class CreateNonShiftModalComponent {
|
|
400
404
|
constructor(modalData, modalRef, fb, http, toast) {
|
|
401
405
|
this.modalData = modalData;
|
|
@@ -405,8 +409,8 @@ class CreateNonShiftModalComponent {
|
|
|
405
409
|
this.toast = toast;
|
|
406
410
|
this.CONSTANTS_ASSETS_WIS_COMMON = CONSTANTS_ASSETS_WIS_COMMON;
|
|
407
411
|
this.dateConfig = {
|
|
408
|
-
minDate:
|
|
409
|
-
format:
|
|
412
|
+
minDate: dayjs().format(DATE_FORMAT),
|
|
413
|
+
format: DATE_FORMAT
|
|
410
414
|
};
|
|
411
415
|
this.offices = [];
|
|
412
416
|
this.locationDropdownData = [];
|
|
@@ -442,7 +446,7 @@ class CreateNonShiftModalComponent {
|
|
|
442
446
|
}
|
|
443
447
|
initializeForm() {
|
|
444
448
|
var _a, _b, _c;
|
|
445
|
-
const currentTime = (_b = (_a = this.modalData) === null || _a === void 0 ? void 0 : _a.date) !== null && _b !== void 0 ? _b :
|
|
449
|
+
const currentTime = (_b = (_a = this.modalData) === null || _a === void 0 ? void 0 : _a.date) !== null && _b !== void 0 ? _b : dayjs().format(DATE_FORMAT);
|
|
446
450
|
this.createTripsheetForm = this.fb.group({
|
|
447
451
|
direction: [((_c = this.modalData) === null || _c === void 0 ? void 0 : _c.shiftType) === "logout" ? "OUT" : "IN", Validators.required],
|
|
448
452
|
location: [{ label: "", value: "" }],
|
|
@@ -517,7 +521,7 @@ class CreateNonShiftModalComponent {
|
|
|
517
521
|
}
|
|
518
522
|
const formValue = this.createTripsheetForm.value;
|
|
519
523
|
const pickupTime = `${formValue.date} ${formValue.hours.value}/${formValue.mins.value}/00`;
|
|
520
|
-
const pickupTimeDate =
|
|
524
|
+
const pickupTimeDate = dayjs(pickupTime, PICKUP_TIME_FORMAT).toDate();
|
|
521
525
|
if (this.isDateAndTimeFromPast(pickupTimeDate)) {
|
|
522
526
|
this.toast.displayMsg("Please select a future date and time.");
|
|
523
527
|
return;
|
|
@@ -693,6 +697,23 @@ class SessionClaimNotFoundError extends SessionError {
|
|
|
693
697
|
this.name = 'SessionClaimNotFoundError';
|
|
694
698
|
}
|
|
695
699
|
}
|
|
700
|
+
/** Renders failures as `claim (reason), claim (reason)` for error messages. */
|
|
701
|
+
function describeClaimFailures(failures) {
|
|
702
|
+
return failures.map(f => `${f.claim} (${f.reason})`).join(', ');
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* Every claim `run`'s `next` failed to read, reported once after the block has finished.
|
|
706
|
+
* Extends `SessionClaimNotFoundError` — and reports the first failure as `claim` — so handlers
|
|
707
|
+
* written against the single-claim error keep working.
|
|
708
|
+
*/
|
|
709
|
+
class SessionClaimsMissingError extends SessionClaimNotFoundError {
|
|
710
|
+
constructor(failures) {
|
|
711
|
+
super(failures[0].claim);
|
|
712
|
+
this.failures = failures;
|
|
713
|
+
this.name = 'SessionClaimsMissingError';
|
|
714
|
+
this.message = `Session claims not found: ${describeClaimFailures(failures)}.`;
|
|
715
|
+
}
|
|
716
|
+
}
|
|
696
717
|
|
|
697
718
|
const DEFAULT_SESSION_TOKEN_PREFIX = 'sso-wis-token';
|
|
698
719
|
const DEFAULT_SESSION_TOKEN_FALLBACK_KEY = 'x-wis-token';
|
|
@@ -703,6 +724,7 @@ class SessionService {
|
|
|
703
724
|
this.config = {};
|
|
704
725
|
this.cachedToken = null;
|
|
705
726
|
this.cachedState = null;
|
|
727
|
+
this.collecting = null;
|
|
706
728
|
}
|
|
707
729
|
init(config) {
|
|
708
730
|
this.config = Object.assign({}, config);
|
|
@@ -726,18 +748,50 @@ class SessionService {
|
|
|
726
748
|
}
|
|
727
749
|
/**
|
|
728
750
|
* Statement-style variant of `read` for blocks of assignments/side effects with no return value.
|
|
751
|
+
*
|
|
752
|
+
* `next` always runs to completion: a claim that is absent or blank yields `undefined` instead of
|
|
753
|
+
* throwing, and every such failure is reported once afterwards via `handlers.error`, as a
|
|
754
|
+
* `SessionClaimsMissingError` listing all of them. An unusable token (missing, expired,
|
|
755
|
+
* undecodable) still aborts `next` immediately with the matching `SessionError`.
|
|
756
|
+
*
|
|
757
|
+
* Collecting covers the synchronous body of `next` only — claim reads deferred into a subscription,
|
|
758
|
+
* timeout or promise run after it has returned and throw as usual.
|
|
759
|
+
*
|
|
760
|
+
* An error `next` throws for any other reason propagates untouched, except that any claims missing
|
|
761
|
+
* at the time are appended to its message and attached as `sessionClaimFailures` — a collected
|
|
762
|
+
* `undefined` reaching the block is the usual cause, and that is the part worth knowing.
|
|
729
763
|
*/
|
|
730
764
|
run(handlers) {
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
765
|
+
const failures = [];
|
|
766
|
+
const previous = this.collecting;
|
|
767
|
+
this.collecting = failures;
|
|
768
|
+
try {
|
|
769
|
+
handlers.next(this);
|
|
770
|
+
}
|
|
771
|
+
catch (e) {
|
|
772
|
+
if (e instanceof SessionError) {
|
|
773
|
+
handlers.error(e);
|
|
774
|
+
return;
|
|
775
|
+
}
|
|
776
|
+
if (failures.length && e instanceof Error) {
|
|
777
|
+
e.sessionClaimFailures = failures;
|
|
778
|
+
e.message = `${e.message} — session claims missing during run(): ${describeClaimFailures(failures)}`;
|
|
779
|
+
}
|
|
780
|
+
throw e;
|
|
781
|
+
}
|
|
782
|
+
finally {
|
|
783
|
+
this.collecting = previous;
|
|
784
|
+
}
|
|
785
|
+
if (failures.length) {
|
|
786
|
+
handlers.error(new SessionClaimsMissingError(failures));
|
|
787
|
+
}
|
|
735
788
|
}
|
|
736
789
|
get isVET() {
|
|
737
790
|
return this.state.isVET;
|
|
738
791
|
}
|
|
739
792
|
get sub() { return this.getClaim('sub'); }
|
|
740
793
|
get empGuid() { return this.getClaim('employeeGUID'); }
|
|
794
|
+
get employeeId() { return this.getClaim('employeeId'); }
|
|
741
795
|
get internalSsoRole() { return this.getClaim('internal_sso_role'); }
|
|
742
796
|
get roles() { return this.getClaim('roles'); }
|
|
743
797
|
get sessionId() { return this.getClaim('sessionId'); }
|
|
@@ -750,14 +804,23 @@ class SessionService {
|
|
|
750
804
|
get vetUserId() { return this.getClaim('vetUserId'); }
|
|
751
805
|
get source() { return this.getClaim('source'); }
|
|
752
806
|
get roleId() {
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
if (!raw || !/^\d+$/.test(raw)) {
|
|
757
|
-
throw new SessionClaimNotFoundError('roleId');
|
|
807
|
+
const raw = this.resolveRole(this.getClaims());
|
|
808
|
+
if (!raw) {
|
|
809
|
+
return this.missingClaim('roleId', 'absent');
|
|
758
810
|
}
|
|
759
811
|
return Number(raw);
|
|
760
812
|
}
|
|
813
|
+
/** First numeric role in `internal_sso_role` then `roles`, or `''` when the token carries none. */
|
|
814
|
+
resolveRole(claims) {
|
|
815
|
+
var _a, _b;
|
|
816
|
+
const candidates = [claims.internal_sso_role, ...((_a = claims.roles) !== null && _a !== void 0 ? _a : [])];
|
|
817
|
+
return (_b = candidates
|
|
818
|
+
.map(value => value === null || value === void 0 ? void 0 : value.trim())
|
|
819
|
+
.find(value => this.isDigitsOnly(value))) !== null && _b !== void 0 ? _b : '';
|
|
820
|
+
}
|
|
821
|
+
isDigitsOnly(value) {
|
|
822
|
+
return !!value && /^\d+$/.test(value);
|
|
823
|
+
}
|
|
761
824
|
getClaims() {
|
|
762
825
|
const state = this.state;
|
|
763
826
|
if (state.status === 'ok') {
|
|
@@ -776,10 +839,18 @@ class SessionService {
|
|
|
776
839
|
const value = claims[key];
|
|
777
840
|
const isEmptyString = typeof value === 'string' && value.trim() === '';
|
|
778
841
|
if (value === undefined || value === null || isEmptyString) {
|
|
779
|
-
|
|
842
|
+
return this.missingClaim(key, isEmptyString ? 'blank' : 'absent');
|
|
780
843
|
}
|
|
781
844
|
return (typeof value === 'string' ? value.trim() : value);
|
|
782
845
|
}
|
|
846
|
+
/** Records the failure and yields `undefined` while `run` is collecting; throws otherwise. */
|
|
847
|
+
missingClaim(claim, reason) {
|
|
848
|
+
if (this.collecting) {
|
|
849
|
+
this.collecting.push({ claim, reason });
|
|
850
|
+
return undefined;
|
|
851
|
+
}
|
|
852
|
+
throw new SessionClaimNotFoundError(claim);
|
|
853
|
+
}
|
|
783
854
|
get state() {
|
|
784
855
|
const { token, isVET } = this.findToken();
|
|
785
856
|
if (!this.cachedState || token !== this.cachedToken) {
|
|
@@ -846,5 +917,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
846
917
|
* Generated bundle index. Do not edit.
|
|
847
918
|
*/
|
|
848
919
|
|
|
849
|
-
export { AuthInterceptor, AuthModule, AuthService, ConfigurationService, CreateNonShiftModalComponent, LoaderService, LoggerModule, LoggerService, MfeCommunicationService, SessionClaimNotFoundError, SessionError, SessionService, SessionTokenExpiredError, SessionTokenInvalidError, SessionTokenNotFoundError, SidenavComponent, WisCommonModule, filterNavList, getCookie, getQueryParam, removeCookie, setCookie };
|
|
920
|
+
export { AuthInterceptor, AuthModule, AuthService, ConfigurationService, CreateNonShiftModalComponent, LoaderService, LoggerModule, LoggerService, MfeCommunicationService, SessionClaimNotFoundError, SessionClaimsMissingError, SessionError, SessionService, SessionTokenExpiredError, SessionTokenInvalidError, SessionTokenNotFoundError, SidenavComponent, WisCommonModule, describeClaimFailures, filterNavList, getCookie, getQueryParam, removeCookie, setCookie };
|
|
850
921
|
//# sourceMappingURL=mis-wis-common.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-wis-common.mjs","sources":["../../../libraries/wis-common/src/lib/modules/auth/auth.service.ts","../../../libraries/wis-common/src/lib/modules/auth/auth.module.ts","../../../libraries/wis-common/src/lib/services/configuration.service.ts","../../../libraries/wis-common/src/lib/functions/nav-filter.function.ts","../../../libraries/wis-common/src/lib/functions/cookie.function.ts","../../../libraries/wis-common/src/lib/functions/url.functions.ts","../../../libraries/wis-common/src/lib/interceptors/auth.interceptor.ts","../../../libraries/wis-common/src/lib/components/loader/loader.component.ts","../../../libraries/wis-common/src/lib/components/loader/loader.component.html","../../../libraries/wis-common/src/lib/services/loader.service.ts","../../../libraries/wis-common/src/lib/modules/logger/logger.constant.ts","../../../libraries/wis-common/src/lib/modules/logger/logger.functions.ts","../../../libraries/wis-common/src/lib/modules/logger/logger.service.ts","../../../libraries/wis-common/src/lib/modules/logger/logger.module.ts","../../../libraries/wis-common/src/lib/constants/emp-web-exp.constants.ts","../../../libraries/wis-common/src/lib/services/http.service.ts","../../../libraries/wis-common/src/lib/components/sidenav/sidenav.component.ts","../../../libraries/wis-common/src/lib/components/sidenav/sidenav.component.html","../../../libraries/wis-common/src/lib/constants/assets.constants.ts","../../../libraries/wis-common/src/lib/components/create-non-shift-modal/create-non-shift-modal.component.ts","../../../libraries/wis-common/src/lib/components/create-non-shift-modal/create-non-shift-modal.component.html","../../../libraries/wis-common/src/lib/wis-common.module.ts","../../../libraries/wis-common/src/lib/services/mfe-communication.service.ts","../../../libraries/wis-common/src/lib/services/session.errors.ts","../../../libraries/wis-common/src/lib/services/session.service.ts","../../../libraries/wis-common/src/public-api.ts","../../../libraries/wis-common/src/mis-wis-common.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\nimport { IUserInfo } from \"./auth.model\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class AuthService {\n userDetails: IUserInfo;\n\n constructor() {}\n\n init(user: IUserInfo) {\n this.userDetails = user;\n }\n}\n","import { ErrorHandler, ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { AuthService } from \"./auth.service\";\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n providers: []\n})\nexport class AuthModule {\n /**\n *\n * @returns ModuleWithProviders<AuthModule>\n */\n static forRoot(): ModuleWithProviders<AuthModule> {\n return {\n ngModule: AuthModule,\n providers: [AuthService]\n };\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class ConfigurationService {\n constructor() {}\n}\n","import { NsWISConfigurations } from \"../models/configurations.model\";\n\nexport const filterNavList = (\n navList: NsWISConfigurations.ISidenavLink[],\n features: NsWISConfigurations.IFeaturesMap\n): NsWISConfigurations.ISidenavLink[] => {\n return navList.filter(nav => {\n const mustHave = nav.mustHaveBasedProperty && nav.mustHaveBasedProperty.every(basedProperty => features[basedProperty]);\n const canHave = nav.canHaveBasedProperty && nav.canHaveBasedProperty.some(basedProperty => features[basedProperty]);\n if ((mustHave || canHave) && nav.children) {\n nav.children = filterNavList(nav.children, features);\n }\n return mustHave || canHave;\n });\n};\n","interface ICookieOptions {\n expires?: string;\n path?: string;\n domain?: string;\n \"Max-Age\"?: string;\n Secure?: boolean;\n HttpOnly?: boolean;\n SameSite?: \"Strict\" | \"Lax\" | \"None\";\n}\n\nexport function getCookie(name: string): string {\n const cookies = {};\n const cookieString = document.cookie;\n cookieString.split(\"; \").forEach(cookie => {\n const [key, value] = cookie.split(\"=\");\n cookies[key] = value;\n });\n return cookies[name] || undefined;\n}\n\nexport function setCookie(name: string, value: string, options?: ICookieOptions): void {\n let cookieStr = `${name}=${value};`;\n if (options) {\n const optsSelected = Object.keys(options);\n for (const opt of optsSelected) {\n cookieStr += ` ${opt}${(typeof options[opt] === \"string\" && `=${options[opt]}`) || \"\"};`;\n }\n }\n cookieStr += \";secure; SameSite=Strict;\";\n document.cookie = cookieStr;\n}\n\nexport function removeCookie(name: string, domain?: string): void {\n setCookie(name, \"\", { expires: new Date(0).toUTCString(), domain });\n}\n","export function getQueryParam(queryString: string): string | null {\n const results = new RegExp(\"[?&]\" + queryString + \"=([^&#]*)\").exec(window.location.href);\n if (results === null) {\n return null;\n } else {\n return decodeURIComponent(results[1]) || null;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpErrorResponse, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { tap } from \"rxjs/operators\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { getCookie } from \"../functions/cookie.function\";\nimport { getQueryParam } from \"../functions/url.functions\";\n\nconst TOKEN_NAME = \"x-wis-token\";\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n constructor(private route: ActivatedRoute, private toast: ToastService) {}\n\n intercept(request: HttpRequest<any>, next: HttpHandler) {\n const paramsMap = this.route.snapshot.queryParamMap;\n const buid = getQueryParam(\"buid\") || getQueryParam(\"buId\") || \"\";\n const empGuid = getQueryParam(\"empGuid\") || getQueryParam(\"empGuId\") || getQueryParam(\"userId\") || \"\";\n // const source = getQueryParam(\"source\");\n const authToken = getQueryParam(\"auth-token\");\n const token = getCookie(`sso-wis-token-${buid}`);\n const mobile_app_token = getCookie(TOKEN_NAME);\n const cloneReq = request.clone({\n setHeaders: {\n \"x-tenant-id\": buid,\n \"x-user-id\": empGuid,\n ...(!!token && { [TOKEN_NAME]: token }),\n ...(!!authToken && { [TOKEN_NAME]: authToken }),\n ...(!!mobile_app_token && { [TOKEN_NAME]: mobile_app_token })\n }\n });\n return next.handle(cloneReq).pipe(\n tap(\n () => {},\n err => {\n if (err instanceof HttpErrorResponse && err.status === 401) {\n this.toast.displayMsg(\"Your session has expired. Please login again.\",6000);\n }\n }\n )\n );\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"mis-common-loader\",\n templateUrl: \"./loader.component.html\",\n styleUrls: [\"./loader.component.scss\"]\n})\nexport class LoaderComponent implements OnInit {\n message: string;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"message-wrapper\" *ngIf=\"message; else noMessageLoader\">\n <span><mis-loader type=\"block\"></mis-loader></span>\n <p>{{ message }}</p>\n</div>\n<ng-template #noMessageLoader>\n <mis-loader></mis-loader>\n</ng-template>\n","/** @format */\n\nimport { GlobalPositionStrategy, Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\nimport { LoaderComponent } from \"../components/loader/loader.component\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class LoaderService {\n private overlayRef: OverlayRef;\n public loading = false;\n\n constructor(private overlay: Overlay) {}\n\n show(message?: string): void {\n this.loading = true;\n if (this.overlayRef?.hasAttached()) {\n return;\n }\n const { positionStrategy, width, backdropClass, hasMessage } = this.calcLoaderProperties(!!message);\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n width,\n backdropClass\n });\n this.overlayRef = this.overlay.create(config);\n const portal = new ComponentPortal(LoaderComponent, null);\n const componentRef = this.overlayRef.attach(portal);\n if (hasMessage) {\n componentRef.instance.message = message;\n }\n }\n\n hide(): void {\n this.loading = false;\n this.overlayRef?.detach();\n this.overlayRef?.dispose();\n }\n\n private calcLoaderProperties(hasMessage: boolean): {\n positionStrategy: GlobalPositionStrategy;\n width: string;\n backdropClass: string;\n hasMessage: boolean;\n } {\n const positionStrategy = this.overlay.position().global();\n let width = \"100vh\";\n let backdropClass = \"cdk-overlay-transparent-backdrop\";\n if (hasMessage) {\n width = \"initial\";\n backdropClass = \"wis-common-loader-bg\";\n positionStrategy.centerHorizontally().centerVertically();\n } else {\n positionStrategy.top(\"0px\").right(\"0px\");\n }\n return { positionStrategy, width, backdropClass, hasMessage };\n }\n}\n","/** @format */\n\nexport const CONSTANTS_LOGGER = {\n APP_NAME: \"wisLoggerApp\",\n ENV_VAR: \"wisLoggerEnv\"\n};\n","import { TEnvName } from \"./logger.model\";\nconst envMap = {\n dev: \"https://bff.devcl.moveinsync.com\",\n qa: \"https://bff.stage.moveinsync.com\",\n production: \"https://bff.moveinsync.com\",\n uat: \"https://wisbff-uat.moveinsync.com\",\n \"production-green\": \"https://wisempweb-green.moveinsync.com\",\n \"production-beta\": \"https://bff-beta.moveinsync.com\",\n \"production-eu\": \"https://bff.eu.moveinsync.com\",\n \"production-eu-green\": \"https://bff-green.eu.moveinsync.com\",\n \"production-mu\": \"https://bff.moveinsync.in\"\n};\nexport function environmentHandler(env: TEnvName) {\n if (!env) {\n return \"/bff\";\n }\n return envMap[env];\n}\n","import { TEnvName } from \"./logger.model\";\nimport { CONSTANTS_LOGGER } from \"./logger.constant\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { environmentHandler } from \"./logger.functions\";\n@Injectable({\n providedIn: \"root\"\n})\nexport class LoggerService {\n private cookies: boolean = false;\n\n constructor(\n private http: HttpClient,\n @Inject(CONSTANTS_LOGGER.APP_NAME) private appName: string,\n @Inject(CONSTANTS_LOGGER.ENV_VAR) private appEnv: TEnvName\n ) {}\n\n useCookies(useCookies: boolean) {\n this.cookies = useCookies;\n }\n\n private logRequest(data: any, logLevel: \"info\" | \"error\" | \"warn\") {\n const request = {\n data,\n cookies: this.cookies ? document.cookie : undefined,\n logLevel\n };\n this.postLog(request);\n }\n\n private postLog(request) {\n const url = `${environmentHandler(this.appEnv)}/report-log/${this.appName}`;\n this.http.post(`${url}`, request).subscribe();\n }\n\n info(data: any) {\n this.logRequest(data, \"info\");\n }\n\n warn(data: any) {\n this.logRequest(data, \"warn\");\n }\n\n error(data: any, componentName: string, serviceUrl?: string) {\n this.logRequest({ ...data, componentName, serviceUrl }, \"error\");\n }\n}\n","import { CONSTANTS_LOGGER } from \"./logger.constant\";\nimport { ErrorHandler, ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { LoggerService } from \"./logger.service\";\nimport { TEnvName } from \"./logger.model\";\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n providers: []\n})\nexport class LoggerModule {\n /**\n *\n * @param appName any app name eg. FAQ, Floor Plan, In App Popup, etc.\n * @param env \"dev\" | \"qa\" | \"uat\" | \"prod\" | \"prod-beta\" | \"prod-green\" | \"prod-eu\" | \"prod-eu-green\" | undefined\n * @returns ModuleWithProviders<LoggerModule>\n */\n static forChild(appName: string, env?: TEnvName): ModuleWithProviders<LoggerModule> {\n return {\n ngModule: LoggerModule,\n providers: [\n {\n provide: CONSTANTS_LOGGER.APP_NAME,\n useValue: appName\n },\n {\n provide: CONSTANTS_LOGGER.ENV_VAR,\n useValue: env\n },\n LoggerService\n ]\n };\n }\n}\n","/** @format */\n\nexport const CONSTANTS_WIS_COMMON = {\n ENV_VAR: \"wisCommonEnvironment\"\n};\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { map, Observable } from \"rxjs\";\nimport { CONSTANTS_WIS_COMMON } from \"../constants/emp-web-exp.constants\";\nimport { NsWISConfigurations } from \"../models/configurations.model\";\nimport { NsWISCommon } from \"../models/env.model\";\nimport { AuthService } from \"../modules/auth/auth.service\";\n\nconst API_URLS = {\n CONFIGURATIONS: \"configurations\"\n};\n\n@Injectable()\nexport class HttpService {\n constructor(@Inject(CONSTANTS_WIS_COMMON) public env: NsWISCommon.IEnv, private http: HttpClient) {}\n\n getProperties(Porperties: string[]) {\n return this.http.get(`${this.env.ets}/ets/apis/properties/${Porperties.join(\",\")}`).pipe(\n map((res: any) => {\n return res.reduce((acc: any, item: any) => {\n acc[item.propertyName] = item.propertyValue === \"true\" ? true : item.propertyValue === \"false\" ? false : item.propertyValue;\n return acc;\n }, {});\n })\n );\n }\n\n getOffices(nonce) {\n const body = `CSRF_NONCE=${nonce}&method=getOfficeList`;\n return this.http.post(`${this.env.ets}/Locality_Servlet`, body, { headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" } });\n }\n\n listTransportLocalities(nonce) {\n const body = `CSRF_NONCE=${nonce}&method=listTransportLocalities`;\n return this.http.post(`${this.env.ets}/Locality_Servlet`, body, { headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" } });\n }\n\n createEmptyIrregularTripSheet(nonce: string, direction: string): Observable<any> {\n const body = `CSRF_NONCE=${nonce}&method=createEmptyIrregularTripSheet&direction=${direction}`;\n return this.http.post(`${this.env.ets}/Tripsheet_Edit_Servlet`, body, { headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" } });\n }\n\n addEmployeeToTripSheet(\n nonce: string,\n params: {\n tripsheet: any;\n employee: any;\n pickupLoc: any;\n dropLoc: any;\n pickUpTime: string;\n dropTime: string;\n position: number;\n routeSource?: string;\n assetList?: any;\n }\n ): Observable<any> {\n const body = `CSRF_NONCE=${nonce}&method=addEmployeeToTripSheet&tripsheet=${encodeURIComponent(\n JSON.stringify(params.tripsheet)\n )}&employee=${encodeURIComponent(JSON.stringify(params.employee))}&pickupLoc=${encodeURIComponent(\n JSON.stringify(params.pickupLoc)\n )}&dropLoc=${encodeURIComponent(JSON.stringify(params.dropLoc))}&pickUpTime=\"${params.pickUpTime}\"&dropTime=\"${params.dropTime}\"&position=${\n params.position\n }${params.routeSource ? \"&routeSource=\" + params.routeSource : \"\"}${\n params.assetList ? \"&assetList=\" + encodeURIComponent(JSON.stringify(params.assetList)) : \"\"\n }`;\n return this.http.post(`${this.env.ets}/Tripsheet_Edit_Servlet`, body, { headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" } });\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"wis-common-sidenav\",\n templateUrl: \"./sidenav.component.html\",\n styleUrls: [\"./sidenav.component.scss\"]\n})\nexport class SidenavComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"wis-sidenav-wrapper\">\n <div class=\"wis-sidenav-header\">\n <div class=\"wis-sidenav-header-logo\">\n <img src=\"assets/sidenav/assets/Wis-icon.svg\" alt=\"\" />\n </div>\n <div class=\"wis-sidenav-header-title\">\n <h1>WIS</h1>\n </div>\n </div>\n <div class=\"wis-sidenav-body\">\n <div class=\"wis-sidenav-body-item\">\n <div class=\"wis-sidenav-body-item-icon\">\n <i class=\"fas fa-home\"></i>\n </div>\n <div class=\"wis-sidenav-body-item-text\">\n <h3>Home</h3>\n </div>\n </div>\n <div class=\"wis-sidenav-body-item\">\n <div class=\"wis-sidenav-body-item-icon\">\n <i class=\"fas fa-user\"></i>\n </div>\n <div class=\"wis-sidenav-body-item-text\">\n <h3>Profile</h3>\n </div>\n </div>\n <div class=\"wis-sidenav-body-item\">\n <div class=\"wis-sidenav-body-item-icon\">\n <i class=\"fas fa-users\"></i>\n </div>\n <div class=\"wis-sidenav-body-item-text\">\n <h3>Users</h3>\n </div>\n </div>\n <div class=\"wis-sidenav-body-item\">\n <div class=\"wis-sidenav-body-item-icon\">\n <i class=\"fas fa-cog\"></i>\n </div>\n <div class=\"wis-sidenav-body-item-text\">\n <h3>Settings</h3>\n </div>\n </div>\n </div>\n</div>\n","/** @format */\n\nexport const CONSTANTS_ASSETS_WIS_COMMON = {\n IMAGES: {\n CALENDAR_ICON: \"assets/libraries/wis-common/calendar.svg\"\n },\n ICONS: {}\n};\n","import { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport * as dayjs from \"dayjs\";\nimport { IDatePickerConfig } from \"mis-crystal-design-system/datepicker_v2\";\nimport { parseZone } from \"moment\";\nimport { CONSTANTS_ASSETS_WIS_COMMON } from \"../../constants/assets.constants\";\nimport { HttpService } from \"../../services/http.service\";\nimport { DropdownItem } from \"mis-crystal-design-system/dropdown\";\nimport { forkJoin } from \"rxjs\";\nimport { finalize } from \"rxjs/operators\";\nimport { MODAL_DATA_VAR, ModalRef } from \"mis-design-system/mis-modal\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\n\nconst PROPERTIES = [\"NON_SHIFT_TRIPS_CATEGORIES\", \"USE_VALID_OFFICE_FOR_IRREGULAR_TRIPS\"];\n\ninterface LocationValue {\n type: number;\n office: any | null;\n}\n\ninterface LocationDropdownItem {\n label: string;\n value: LocationValue;\n}\n\n@Component({\n selector: \"app-create-non-shift-modal\",\n templateUrl: \"./create-non-shift-modal.component.html\",\n styleUrls: [\"./create-non-shift-modal.component.scss\"]\n})\nexport class CreateNonShiftModalComponent implements OnInit {\n CONSTANTS_ASSETS_WIS_COMMON = CONSTANTS_ASSETS_WIS_COMMON;\n\n dateConfig: Partial<IDatePickerConfig> = {\n minDate: parseZone().format(\"DD/MM/YYYY\"),\n format: \"DD/MM/YYYY\"\n };\n createTripsheetForm!: FormGroup;\n offices: DropdownItem[] = [];\n\n locationDropdownData: LocationDropdownItem[] = [];\n\n categoryDropdownData: DropdownItem[] = [];\n\n hoursDropdownData: DropdownItem[] = [];\n\n minutesDropdownData: DropdownItem[] = [];\n\n showOtherAddress: boolean = false;\n\n loading: boolean = false;\n isSubmitting: boolean = false;\n\n readonly TYPE_OFFICE = 6;\n readonly TYPE_TRANSPORT = 3;\n readonly TYPE_OTHER = 4;\n properties: Record<string, any> = {};\n\n constructor(@Inject(MODAL_DATA_VAR) public modalData: any, private modalRef: ModalRef, private fb: FormBuilder, private http: HttpService,private toast: ToastService) {}\n\n ngOnInit(): void {\n this.loading = true;\n\n const $office = this.http.getOffices(this.modalData.nonce);\n const $properties = this.http.getProperties(PROPERTIES);\n\n forkJoin([$office, $properties])\n .pipe(finalize(() => (this.loading = false)))\n .subscribe({\n next: ([offices, properties]) => {\n this.properties = properties;\n this.initializeForm();\n this.initializeDropdownData(offices);\n this.setupFormListeners();\n },\n error: error => {\n console.error(\"Error loading form data:\", error);\n this.modalRef.close();\n }\n });\n }\n\n private initializeForm(): void {\n const currentTime = this.modalData?.date ?? parseZone().format(\"DD/MM/YYYY\");\n\n this.createTripsheetForm = this.fb.group({\n direction: [this.modalData?.shiftType === \"logout\" ? \"OUT\" : \"IN\", Validators.required],\n location: [{ label: \"\", value: \"\" }],\n otherAddress: \"\",\n tripCategory: [{ label: \"\", value: \"\" }],\n date: [currentTime, Validators.required],\n hours: [{ label: \"\", value: \"\" }],\n mins: [{ label: \"\", value: \"\" }]\n });\n }\n\n private initializeDropdownData(offices: any): void {\n this.locationDropdownData = offices.map(\n (office: any): LocationDropdownItem => ({\n label: office.address,\n value: { type: this.TYPE_OFFICE, office: office || null }\n })\n );\n this.createTripsheetForm.get(\"location\")?.setValue(this.locationDropdownData[0]);\n\n if (!this.properties?.[\"USE_VALID_OFFICE_FOR_IRREGULAR_TRIPS\"]) {\n this.locationDropdownData.push(\n { label: \"Airport\", value: { type: this.TYPE_TRANSPORT, office: null } } as LocationDropdownItem,\n { label: \"Other\", value: { type: this.TYPE_OTHER, office: null } } as LocationDropdownItem\n );\n }\n\n // Initialize category dropdown\n const categoriesString = this.properties?.[\"NON_SHIFT_TRIPS_CATEGORIES\"];\n if (categoriesString && typeof categoriesString === \"string\") {\n const categories = categoriesString.split(\",\").filter(cat => cat && cat.trim());\n if (categories.length > 0) {\n this.categoryDropdownData = categories.map(category => ({\n label: category.trim(),\n value: category.trim()\n }));\n }\n }\n\n const currentHour = new Date().getHours();\n this.hoursDropdownData = Array.from({ length: 24 }, (_, i) => ({\n label: this.padZero(i),\n value: this.padZero(i)\n }));\n this.createTripsheetForm.patchValue({ hours: this.hoursDropdownData[currentHour] });\n\n const currentMinute = new Date().getMinutes();\n this.minutesDropdownData = Array.from({ length: 60 }, (_, i) => ({\n label: this.padZero(i),\n value: this.padZero(i)\n }));\n this.createTripsheetForm.patchValue({ mins: this.minutesDropdownData[currentMinute] });\n }\n\n private setupFormListeners(): void {\n this.createTripsheetForm?.valueChanges.subscribe(value => {\n const { location } = this.createTripsheetForm?.value;\n if (this.showOtherAddress !== (location?.value?.type === this.TYPE_OTHER)) {\n this.showOtherAddress = location?.value?.type === this.TYPE_OTHER;\n if (this.showOtherAddress) {\n this.createTripsheetForm.get(\"otherAddress\")?.setValidators([Validators.required]);\n } else {\n this.createTripsheetForm.get(\"otherAddress\")?.clearValidators();\n }\n this.createTripsheetForm.get(\"otherAddress\")?.updateValueAndValidity();\n }\n });\n }\n\n private padZero(num: number): string {\n return num.toString().padStart(2, \"0\");\n }\n\n onCancel(): void {\n this.modalRef.close();\n }\n\n onSubmit(): void {\n if (this.createTripsheetForm.invalid) {\n return;\n }\n\n const formValue = this.createTripsheetForm.value;\n\n const pickupTime = `${formValue.date} ${formValue.hours.value}/${formValue.mins.value}/00`;\n const pickupTimeDate = parseZone(pickupTime).toDate();\n if (this.isDateAndTimeFromPast(pickupTimeDate)) {\n this.toast.displayMsg(\"Please select a future date and time.\");\n return;\n }\n\n if (this.categoryDropdownData.length > 0 && (!formValue.tripCategory || !formValue.tripCategory.value)) {\n this.toast.displayMsg(\"Please provide a trip category.\");\n return;\n }\n\n if (formValue.location?.value?.type === this.TYPE_OTHER) {\n if (!formValue.otherAddress || formValue.otherAddress.trim() === \"\") {\n this.toast.displayMsg(\"Please provide the address.\");\n return;\n }\n if (formValue.otherAddress.includes(\",\")) {\n this.toast.displayMsg(\"Special character (,) not allowed in address.\");\n return;\n }\n }\n\n this.isSubmitting = true;\n\n this.http.createEmptyIrregularTripSheet(this.modalData.nonce, formValue.direction).subscribe({\n next: routeTripSheet => {\n const pickupLoc = routeTripSheet.dir === \"IN\" ? this.modalData.employee.home : this.getLocation(formValue);\n const dropLoc = routeTripSheet.dir === \"OUT\" ? this.modalData.employee.home : this.getLocation(formValue);\n const pickupTimeFormatted = pickupTime;\n const dropTimeFormatted = pickupTime;\n\n const employee = { ...this.modalData.employee, employee_status: 1 };\n\n const addEmployeeParams = {\n tripsheet: routeTripSheet,\n employee: employee,\n pickupLoc: pickupLoc,\n dropLoc: dropLoc,\n pickUpTime: pickupTimeFormatted,\n dropTime: dropTimeFormatted,\n position: 0,\n routeSource: this.modalData.routeSource,\n assetList: this.modalData.assetList\n };\n\n this.http.addEmployeeToTripSheet(this.modalData.nonce, addEmployeeParams).subscribe({\n next: updatedTripSheet => {\n if (!updatedTripSheet.customMap) {\n updatedTripSheet.customMap = {};\n }\n updatedTripSheet.customMap.tripCategory = formValue.tripCategory?.value || \"\";\n\n this.modalRef.close({\n success: true,\n tripsheet: updatedTripSheet\n });\n },\n error: error => {\n console.error(\"Error adding employee to tripsheet:\", error);\n this.toast.displayMsg(\"Failed to add employee to tripsheet. Please try again.\");\n this.isSubmitting = false;\n }\n });\n },\n error: error => {\n console.error(\"Error creating tripsheet:\", error);\n this.toast.displayMsg(\"Failed to create tripsheet. Please try again.\");\n this.isSubmitting = false;\n }\n });\n }\n\n private isDateAndTimeFromPast(date: Date): boolean {\n const now = new Date();\n return date < now;\n }\n\n private getLocation(formValue: any): any {\n const location = formValue.location?.value;\n\n if (!location) {\n return null;\n }\n\n const locType = location.type;\n\n switch (locType) {\n case this.TYPE_OFFICE:\n return location.office;\n\n case this.TYPE_TRANSPORT:\n return {\n id: null,\n type: this.TYPE_TRANSPORT,\n address: \"Airport\",\n geoCord: null\n };\n\n case this.TYPE_OTHER:\n return {\n ...location.office,\n address: formValue.otherAddress || \"\"\n };\n }\n }\n}\n","<div class=\"createTripsheet\">\n <h2 class=\"modal-header\">Create Non-Shift Tripsheet</h2>\n\n <div *ngIf=\"loading\" class=\"loading-container\">\n <div class=\"spinner\"></div>\n <p>Loading...</p>\n </div>\n\n <form\n *ngIf=\"!loading && createTripsheetForm\"\n [formGroup]=\"createTripsheetForm\"\n (ngSubmit)=\"onSubmit()\"\n class=\"createTripsheetForm\"\n id=\"createTripsheetForm\"\n >\n <div class=\"form-content\">\n <!-- Radio buttons row -->\n <div [ngClass]=\"{ 'radio-row': true, disabled: modalData?.shiftSelectionDisabled }\">\n <label class=\"radio-label\">\n <input class=\"modern-checkbox\" type=\"radio\" formControlName=\"direction\" value=\"OUT\" id=\"startLoc\" />\n <span>Start Location Fixed (Logout)</span>\n </label>\n <label class=\"radio-label\">\n <input class=\"modern-checkbox\" type=\"radio\" formControlName=\"direction\" value=\"IN\" id=\"endLoc\" />\n <span>End Location Fixed (Login)</span>\n </label>\n </div>\n\n <!-- Location field -->\n <div class=\"form-field\">\n <div class=\"label-cell\">\n <label class=\"locText\">Location</label>\n </div>\n <div class=\"input-cell\">\n <mis-dropdown\n [searchEnabled]=\"true\"\n [width]=\"'100%'\"\n [height]=\"'40px'\"\n [data]=\"locationDropdownData\"\n [selectedItem]=\"createTripsheetForm.get('location')?.value\"\n [label]=\"'Select location...'\"\n (onChange)=\"createTripsheetForm.get('location')?.setValue($event)\"\n ></mis-dropdown>\n </div>\n </div>\n\n <!-- Other address field -->\n <div class=\"form-field otherAddress\" *ngIf=\"showOtherAddress\">\n <div class=\"label-cell\">\n <label>Pick/Drop point <sup>*</sup></label>\n </div>\n <div class=\"input-cell\">\n <input type=\"text\" formControlName=\"otherAddress\" class=\"modern-input\" />\n </div>\n </div>\n\n <!-- Trip category field -->\n <div class=\"form-field\" *ngIf=\"categoryDropdownData.length > 0\">\n <div class=\"label-cell\">\n <label>Trip Category</label>\n </div>\n <div class=\"input-cell\">\n <mis-dropdown\n [searchEnabled]=\"false\"\n [width]=\"'250px'\"\n [height]=\"'40px'\"\n [data]=\"categoryDropdownData\"\n [selectedItem]=\"createTripsheetForm.get('tripCategory')?.value\"\n [label]=\"'Select category...'\"\n (onChange)=\"createTripsheetForm.get('tripCategory')?.setValue($event)\"\n ></mis-dropdown>\n </div>\n </div>\n\n <!-- Time field -->\n <div class=\"form-field\">\n <div class=\"label-cell\">\n <label class=\"fixedTimeText\">Time</label>\n </div>\n <div class=\"input-cell modern-date-container\">\n <div class=\"date-select\">\n <input\n misTzDp\n readonly\n [dpConfig]=\"dateConfig\"\n [formControl]=\"createTripsheetForm.get('date')\"\n style=\"height: 44px !important; font-size: 16px !important; cursor: pointer; vertical-align: middle !important\"\n />\n <img [src]=\"CONSTANTS_ASSETS_WIS_COMMON.IMAGES.CALENDAR_ICON\" alt=\"Calendar Icon\" class=\"date-icon data-picker-icon\" />\n </div>\n\n <mis-dropdown\n [searchEnabled]=\"false\"\n [width]=\"'5rem'\"\n [height]=\"'40px'\"\n [data]=\"hoursDropdownData\"\n [selectedItem]=\"createTripsheetForm.get('hours')?.value\"\n [label]=\"'HH'\"\n (onChange)=\"createTripsheetForm.get('hours')?.setValue($event)\"\n ></mis-dropdown>\n\n <mis-dropdown\n [searchEnabled]=\"false\"\n [width]=\"'5rem'\"\n [height]=\"'40px'\"\n [data]=\"minutesDropdownData\"\n [selectedItem]=\"createTripsheetForm.get('mins')?.value\"\n [label]=\"'MM'\"\n (onChange)=\"createTripsheetForm.get('mins')?.setValue($event)\"\n ></mis-dropdown>\n </div>\n </div>\n </div>\n\n <div class=\"form-actions\">\n <button mis-button type=\"outline\" (click)=\"onCancel()\" [disabled]=\"isSubmitting\">Cancel</button>\n <button mis-button type=\"primary\" [disabled]=\"isSubmitting || createTripsheetForm?.invalid\">\n {{ isSubmitting ? \"Creating...\" : \"Create\" }}\n </button>\n </div>\n </form>\n</div>\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ConfigurationService } from \"./services/configuration.service\";\nimport { NsWISCommon } from \"./models/env.model\";\nimport { CONSTANTS_WIS_COMMON } from \"./constants/emp-web-exp.constants\";\nimport { HttpService } from \"./services/http.service\";\nimport { LoaderModule } from \"mis-crystal-design-system/loader\";\nimport { LoaderComponent } from \"./components/loader/loader.component\";\nimport { LoaderService } from \"./services/loader.service\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { SidenavComponent } from \"./components/sidenav/sidenav.component\";\nimport { CreateNonShiftModalComponent } from \"./components/create-non-shift-modal/create-non-shift-modal.component\";\nimport { DropdownModule } from \"mis-crystal-design-system/dropdown\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { DatepickerModuleV2 } from \"mis-crystal-design-system/datepicker_v2\";\nimport { HttpClientModule } from \"@angular/common/http\";\n\n@NgModule({\n declarations: [LoaderComponent, SidenavComponent, CreateNonShiftModalComponent],\n imports: [CommonModule, HttpClientModule, OverlayModule, LoaderModule, DropdownModule, ReactiveFormsModule, DatepickerModuleV2,],\n providers: [],\n exports: [SidenavComponent, CreateNonShiftModalComponent]\n})\nexport class WisCommonModule {\n static forRoot(env: NsWISCommon.IEnv): ModuleWithProviders<WisCommonModule> {\n return {\n ngModule: WisCommonModule,\n providers: [HttpService,{ provide: CONSTANTS_WIS_COMMON, useValue: env }, ConfigurationService, LoaderService]\n };\n }\n}\n","import { ReplaySubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { NsWISConfigurations } from \"../models/configurations.model\";\n@Injectable({\n providedIn: 'root'\n})\nexport class MfeCommunicationService {\n private _etsLoginUser: NsWISConfigurations.ILoginUserDetails;\n\n setUserDetails(userDetails: NsWISConfigurations.ILoginUserDetails): void {\n this._etsLoginUser = userDetails;\n }\n\n getUserDetails(): NsWISConfigurations.ILoginUserDetails {\n return this._etsLoginUser;\n }\n\n constructor() { }\n loginDetails = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n employeeExperience = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n floorPlan = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n meetingRooms = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n adminUI = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n paymentsDetails = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1); \n visitorMgmt = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n}\n","export abstract class SessionError extends Error {}\n\nexport class SessionTokenNotFoundError extends SessionError {\n constructor() {\n super('Session token was not found.');\n this.name = 'SessionTokenNotFoundError';\n }\n}\n\nexport class SessionTokenExpiredError extends SessionError {\n constructor() {\n super('Session token has expired.');\n this.name = 'SessionTokenExpiredError';\n }\n}\n\nexport class SessionTokenInvalidError extends SessionError {\n constructor() {\n super('Session token could not be decoded.');\n this.name = 'SessionTokenInvalidError';\n }\n}\n\nexport class SessionClaimNotFoundError extends SessionError {\n constructor(public readonly claim: string) {\n super(`Session claim \"${claim}\" was not found in the token.`);\n this.name = 'SessionClaimNotFoundError';\n }\n}\n","import { Injectable } from '@angular/core';\nimport jwtDecode from 'jwt-decode';\n\nimport { getCookie } from '../functions/cookie.function';\nimport { getQueryParam } from '../functions/url.functions';\nimport { NsSession } from '../models/session.model';\nimport {\n SessionClaimNotFoundError,\n SessionError,\n SessionTokenExpiredError,\n SessionTokenInvalidError,\n SessionTokenNotFoundError,\n} from './session.errors';\n\nconst DEFAULT_SESSION_TOKEN_PREFIX = 'sso-wis-token';\nconst DEFAULT_SESSION_TOKEN_FALLBACK_KEY = 'x-wis-token';\nconst DEFAULT_VET_TOKEN_PREFIX = 'x-vet-token';\nconst LAUNCH_SOURCE_VET = 'VET';\n\ntype SessionState =\n | { status: 'ok'; claims: NsSession.IClaims; isVET: boolean }\n | { status: 'not-found'; isVET: boolean }\n | { status: 'expired'; isVET: boolean }\n | { status: 'invalid'; isVET: boolean };\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionService {\n private config: NsSession.IInitConfig = {};\n private cachedToken: string | null = null;\n private cachedState: SessionState | null = null;\n\n init(config: NsSession.IInitConfig): void {\n this.config = { ...config };\n this.cachedToken = null;\n this.cachedState = null;\n }\n\n /**\n * Runs `handlers.next` and returns its result, or `handlers.error(error)` if it throws a `SessionError`.\n * Centralizes the try/catch mechanics; the caller still supplies the actual handling logic.\n */\n read<T>(handlers: { next: (session: SessionService) => T; error: (error: SessionError) => T }): T {\n try {\n return handlers.next(this);\n } catch (e) {\n if (e instanceof SessionError) {\n return handlers.error(e);\n }\n throw e;\n }\n }\n\n /**\n * Statement-style variant of `read` for blocks of assignments/side effects with no return value.\n */\n run(handlers: { next: (session: SessionService) => void; error: (error: SessionError) => void }): void {\n this.read({\n next: s => { handlers.next(s); return undefined; },\n error: err => { handlers.error(err); return undefined; }\n });\n }\n\n get isVET(): boolean {\n return this.state.isVET;\n }\n\n get sub(): string { return this.getClaim('sub'); }\n get empGuid(): string { return this.getClaim('employeeGUID'); }\n get internalSsoRole(): string { return this.getClaim('internal_sso_role'); }\n get roles(): string[] { return this.getClaim('roles'); }\n get sessionId(): string { return this.getClaim('sessionId'); }\n get loggedInUser(): string { return this.getClaim('loggedInUser'); }\n get exp(): number { return this.getClaim('exp'); }\n get iat(): number { return this.getClaim('iat'); }\n get businessUnitId(): string { return this.getClaim('businessUnitId'); }\n get allowedBuids(): string[] { return this.getClaim('ALLOWED_BUIDS'); }\n get vetUserEmailId(): string { return this.getClaim('vetUserEmailId'); }\n get vetUserId(): number { return this.getClaim('vetUserId'); }\n get source(): string { return this.getClaim('source'); }\n\n get roleId(): number {\n const claims = this.getClaims();\n const raw = claims.internal_sso_role?.trim() || claims.roles?.[0]?.trim();\n if (!raw || !/^\\d+$/.test(raw)) {\n throw new SessionClaimNotFoundError('roleId');\n }\n return Number(raw);\n }\n\n private getClaims(): NsSession.IClaims {\n const state = this.state;\n if (state.status === 'ok') {\n return state.claims;\n }\n if (state.status === 'not-found') {\n throw new SessionTokenNotFoundError();\n }\n if (state.status === 'expired') {\n throw new SessionTokenExpiredError();\n }\n throw new SessionTokenInvalidError();\n }\n\n private getClaim<K extends keyof NsSession.IClaims>(key: K): NonNullable<NsSession.IClaims[K]> {\n const claims = this.getClaims();\n const value = claims[key];\n const isEmptyString = typeof value === 'string' && value.trim() === '';\n if (value === undefined || value === null || isEmptyString) {\n throw new SessionClaimNotFoundError(key as string);\n }\n return (typeof value === 'string' ? value.trim() : value) as NonNullable<NsSession.IClaims[K]>;\n }\n\n private get state(): SessionState {\n const { token, isVET } = this.findToken();\n if (!this.cachedState || token !== this.cachedToken) {\n this.cachedToken = token;\n this.cachedState = this.build(token, isVET);\n }\n return this.cachedState;\n }\n\n private build(token: string, isVET: boolean): SessionState {\n if (!token) {\n return { status: 'not-found', isVET };\n }\n\n let claims: NsSession.IClaims;\n try {\n claims = jwtDecode<NsSession.IClaims>(token);\n } catch {\n return { status: 'invalid', isVET };\n }\n\n if (this.isExpired(claims)) {\n return { status: 'expired', isVET };\n }\n\n return { status: 'ok', claims, isVET };\n }\n\n private isExpired(claims: NsSession.IClaims): boolean {\n return typeof claims.exp === 'number' && claims.exp * 1000 <= Date.now();\n }\n\n private isVETSource(): boolean {\n return getQueryParam('source') === LAUNCH_SOURCE_VET;\n }\n\n private resolveBuid(): string | null {\n return getQueryParam('buid') || getCookie('buid') || null;\n }\n\n private findToken(): { token: string; isVET: boolean } {\n const buid = this.resolveBuid();\n\n if (this.isVETSource()) {\n const vetKey = this.config.vetTokenCookieKey ?? (buid ? `${DEFAULT_VET_TOKEN_PREFIX}-${buid}` : null);\n const vetToken = (vetKey ? getCookie(vetKey) : '') || '';\n if (vetToken) {\n return { token: vetToken, isVET: true };\n }\n }\n\n const sessionToken = this.config.sessionTokenCookieKey\n ? getCookie(this.config.sessionTokenCookieKey)\n : (buid ? getCookie(`${DEFAULT_SESSION_TOKEN_PREFIX}-${buid}`) : '') || getCookie(DEFAULT_SESSION_TOKEN_FALLBACK_KEY);\n\n return { token: sessionToken || '', isVET: false };\n }\n}\n","/*\n * Public API Surface of wis-common\n */\n\nexport * from \"./lib/modules/auth/auth.service\";\nexport * from \"./lib/modules/auth/auth.module\";\nexport * from \"./lib/services/configuration.service\";\nexport * from \"./lib/models/configurations.model\";\nexport * from \"./lib/functions/nav-filter.function\";\nexport * from \"./lib/functions/cookie.function\";\nexport * from \"./lib/functions/url.functions\";\nexport * from \"./lib/interceptors/auth.interceptor\";\nexport * from \"./lib/services/loader.service\";\nexport * from \"./lib/modules/logger/logger.module\";\nexport * from \"./lib/modules/logger/logger.service\";\nexport * from \"./lib/wis-common.module\";\nexport * from \"./lib/modules/logger/logger.model\";\nexport * from \"./lib/components/sidenav/sidenav.component\";\nexport * from \"./lib/services/mfe-communication.service\";\nexport * from \"./lib/components/create-non-shift-modal/create-non-shift-modal.component\";\nexport * from \"./lib/services/session.service\";\nexport * from \"./lib/services/session.errors\";\nexport * from \"./lib/models/session.model\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.HttpService","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-wis-common.mjs","sources":["../../../libraries/wis-common/src/lib/modules/auth/auth.service.ts","../../../libraries/wis-common/src/lib/modules/auth/auth.module.ts","../../../libraries/wis-common/src/lib/services/configuration.service.ts","../../../libraries/wis-common/src/lib/functions/nav-filter.function.ts","../../../libraries/wis-common/src/lib/functions/cookie.function.ts","../../../libraries/wis-common/src/lib/functions/url.functions.ts","../../../libraries/wis-common/src/lib/interceptors/auth.interceptor.ts","../../../libraries/wis-common/src/lib/components/loader/loader.component.ts","../../../libraries/wis-common/src/lib/components/loader/loader.component.html","../../../libraries/wis-common/src/lib/services/loader.service.ts","../../../libraries/wis-common/src/lib/modules/logger/logger.constant.ts","../../../libraries/wis-common/src/lib/modules/logger/logger.functions.ts","../../../libraries/wis-common/src/lib/modules/logger/logger.service.ts","../../../libraries/wis-common/src/lib/modules/logger/logger.module.ts","../../../libraries/wis-common/src/lib/constants/emp-web-exp.constants.ts","../../../libraries/wis-common/src/lib/services/http.service.ts","../../../libraries/wis-common/src/lib/components/sidenav/sidenav.component.ts","../../../libraries/wis-common/src/lib/components/sidenav/sidenav.component.html","../../../libraries/wis-common/src/lib/constants/assets.constants.ts","../../../libraries/wis-common/src/lib/components/create-non-shift-modal/create-non-shift-modal.component.ts","../../../libraries/wis-common/src/lib/components/create-non-shift-modal/create-non-shift-modal.component.html","../../../libraries/wis-common/src/lib/wis-common.module.ts","../../../libraries/wis-common/src/lib/services/mfe-communication.service.ts","../../../libraries/wis-common/src/lib/services/session.errors.ts","../../../libraries/wis-common/src/lib/services/session.service.ts","../../../libraries/wis-common/src/public-api.ts","../../../libraries/wis-common/src/mis-wis-common.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\nimport { IUserInfo } from \"./auth.model\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class AuthService {\n userDetails: IUserInfo;\n\n constructor() {}\n\n init(user: IUserInfo) {\n this.userDetails = user;\n }\n}\n","import { ErrorHandler, ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { AuthService } from \"./auth.service\";\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n providers: []\n})\nexport class AuthModule {\n /**\n *\n * @returns ModuleWithProviders<AuthModule>\n */\n static forRoot(): ModuleWithProviders<AuthModule> {\n return {\n ngModule: AuthModule,\n providers: [AuthService]\n };\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class ConfigurationService {\n constructor() {}\n}\n","import { NsWISConfigurations } from \"../models/configurations.model\";\n\nexport const filterNavList = (\n navList: NsWISConfigurations.ISidenavLink[],\n features: NsWISConfigurations.IFeaturesMap\n): NsWISConfigurations.ISidenavLink[] => {\n return navList.filter(nav => {\n const mustHave = nav.mustHaveBasedProperty && nav.mustHaveBasedProperty.every(basedProperty => features[basedProperty]);\n const canHave = nav.canHaveBasedProperty && nav.canHaveBasedProperty.some(basedProperty => features[basedProperty]);\n if ((mustHave || canHave) && nav.children) {\n nav.children = filterNavList(nav.children, features);\n }\n return mustHave || canHave;\n });\n};\n","interface ICookieOptions {\n expires?: string;\n path?: string;\n domain?: string;\n \"Max-Age\"?: string;\n Secure?: boolean;\n HttpOnly?: boolean;\n SameSite?: \"Strict\" | \"Lax\" | \"None\";\n}\n\nexport function getCookie(name: string): string {\n const cookies = {};\n const cookieString = document.cookie;\n cookieString.split(\"; \").forEach(cookie => {\n const [key, value] = cookie.split(\"=\");\n cookies[key] = value;\n });\n return cookies[name] || undefined;\n}\n\nexport function setCookie(name: string, value: string, options?: ICookieOptions): void {\n let cookieStr = `${name}=${value};`;\n if (options) {\n const optsSelected = Object.keys(options);\n for (const opt of optsSelected) {\n cookieStr += ` ${opt}${(typeof options[opt] === \"string\" && `=${options[opt]}`) || \"\"};`;\n }\n }\n cookieStr += \";secure; SameSite=Strict;\";\n document.cookie = cookieStr;\n}\n\nexport function removeCookie(name: string, domain?: string): void {\n setCookie(name, \"\", { expires: new Date(0).toUTCString(), domain });\n}\n","export function getQueryParam(queryString: string): string | null {\n const results = new RegExp(\"[?&]\" + queryString + \"=([^&#]*)\").exec(window.location.href);\n if (results === null) {\n return null;\n } else {\n return decodeURIComponent(results[1]) || null;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpErrorResponse, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { tap } from \"rxjs/operators\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { getCookie } from \"../functions/cookie.function\";\nimport { getQueryParam } from \"../functions/url.functions\";\n\nconst TOKEN_NAME = \"x-wis-token\";\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n constructor(private route: ActivatedRoute, private toast: ToastService) {}\n\n intercept(request: HttpRequest<any>, next: HttpHandler) {\n const paramsMap = this.route.snapshot.queryParamMap;\n const buid = getQueryParam(\"buid\") || getQueryParam(\"buId\") || \"\";\n const empGuid = getQueryParam(\"empGuid\") || getQueryParam(\"empGuId\") || getQueryParam(\"userId\") || \"\";\n // const source = getQueryParam(\"source\");\n const authToken = getQueryParam(\"auth-token\");\n const token = getCookie(`sso-wis-token-${buid}`);\n const mobile_app_token = getCookie(TOKEN_NAME);\n const cloneReq = request.clone({\n setHeaders: {\n \"x-tenant-id\": buid,\n \"x-user-id\": empGuid,\n ...(!!token && { [TOKEN_NAME]: token }),\n ...(!!authToken && { [TOKEN_NAME]: authToken }),\n ...(!!mobile_app_token && { [TOKEN_NAME]: mobile_app_token })\n }\n });\n return next.handle(cloneReq).pipe(\n tap(\n () => {},\n err => {\n if (err instanceof HttpErrorResponse && err.status === 401) {\n this.toast.displayMsg(\"Your session has expired. Please login again.\",6000);\n }\n }\n )\n );\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"mis-common-loader\",\n templateUrl: \"./loader.component.html\",\n styleUrls: [\"./loader.component.scss\"]\n})\nexport class LoaderComponent implements OnInit {\n message: string;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"message-wrapper\" *ngIf=\"message; else noMessageLoader\">\n <span><mis-loader type=\"block\"></mis-loader></span>\n <p>{{ message }}</p>\n</div>\n<ng-template #noMessageLoader>\n <mis-loader></mis-loader>\n</ng-template>\n","/** @format */\n\nimport { GlobalPositionStrategy, Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\nimport { LoaderComponent } from \"../components/loader/loader.component\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class LoaderService {\n private overlayRef: OverlayRef;\n public loading = false;\n\n constructor(private overlay: Overlay) {}\n\n show(message?: string): void {\n this.loading = true;\n if (this.overlayRef?.hasAttached()) {\n return;\n }\n const { positionStrategy, width, backdropClass, hasMessage } = this.calcLoaderProperties(!!message);\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n width,\n backdropClass\n });\n this.overlayRef = this.overlay.create(config);\n const portal = new ComponentPortal(LoaderComponent, null);\n const componentRef = this.overlayRef.attach(portal);\n if (hasMessage) {\n componentRef.instance.message = message;\n }\n }\n\n hide(): void {\n this.loading = false;\n this.overlayRef?.detach();\n this.overlayRef?.dispose();\n }\n\n private calcLoaderProperties(hasMessage: boolean): {\n positionStrategy: GlobalPositionStrategy;\n width: string;\n backdropClass: string;\n hasMessage: boolean;\n } {\n const positionStrategy = this.overlay.position().global();\n let width = \"100vh\";\n let backdropClass = \"cdk-overlay-transparent-backdrop\";\n if (hasMessage) {\n width = \"initial\";\n backdropClass = \"wis-common-loader-bg\";\n positionStrategy.centerHorizontally().centerVertically();\n } else {\n positionStrategy.top(\"0px\").right(\"0px\");\n }\n return { positionStrategy, width, backdropClass, hasMessage };\n }\n}\n","/** @format */\n\nexport const CONSTANTS_LOGGER = {\n APP_NAME: \"wisLoggerApp\",\n ENV_VAR: \"wisLoggerEnv\"\n};\n","import { TEnvName } from \"./logger.model\";\nconst envMap = {\n dev: \"https://bff.devcl.moveinsync.com\",\n qa: \"https://bff.stage.moveinsync.com\",\n production: \"https://bff.moveinsync.com\",\n uat: \"https://wisbff-uat.moveinsync.com\",\n \"production-green\": \"https://wisempweb-green.moveinsync.com\",\n \"production-beta\": \"https://bff-beta.moveinsync.com\",\n \"production-eu\": \"https://bff.eu.moveinsync.com\",\n \"production-eu-green\": \"https://bff-green.eu.moveinsync.com\",\n \"production-mu\": \"https://bff.moveinsync.in\"\n};\nexport function environmentHandler(env: TEnvName) {\n if (!env) {\n return \"/bff\";\n }\n return envMap[env];\n}\n","import { TEnvName } from \"./logger.model\";\nimport { CONSTANTS_LOGGER } from \"./logger.constant\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { environmentHandler } from \"./logger.functions\";\n@Injectable({\n providedIn: \"root\"\n})\nexport class LoggerService {\n private cookies: boolean = false;\n\n constructor(\n private http: HttpClient,\n @Inject(CONSTANTS_LOGGER.APP_NAME) private appName: string,\n @Inject(CONSTANTS_LOGGER.ENV_VAR) private appEnv: TEnvName\n ) {}\n\n useCookies(useCookies: boolean) {\n this.cookies = useCookies;\n }\n\n private logRequest(data: any, logLevel: \"info\" | \"error\" | \"warn\") {\n const request = {\n data,\n cookies: this.cookies ? document.cookie : undefined,\n logLevel\n };\n this.postLog(request);\n }\n\n private postLog(request) {\n const url = `${environmentHandler(this.appEnv)}/report-log/${this.appName}`;\n this.http.post(`${url}`, request).subscribe();\n }\n\n info(data: any) {\n this.logRequest(data, \"info\");\n }\n\n warn(data: any) {\n this.logRequest(data, \"warn\");\n }\n\n error(data: any, componentName: string, serviceUrl?: string) {\n this.logRequest({ ...data, componentName, serviceUrl }, \"error\");\n }\n}\n","import { CONSTANTS_LOGGER } from \"./logger.constant\";\nimport { ErrorHandler, ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { LoggerService } from \"./logger.service\";\nimport { TEnvName } from \"./logger.model\";\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n providers: []\n})\nexport class LoggerModule {\n /**\n *\n * @param appName any app name eg. FAQ, Floor Plan, In App Popup, etc.\n * @param env \"dev\" | \"qa\" | \"uat\" | \"prod\" | \"prod-beta\" | \"prod-green\" | \"prod-eu\" | \"prod-eu-green\" | undefined\n * @returns ModuleWithProviders<LoggerModule>\n */\n static forChild(appName: string, env?: TEnvName): ModuleWithProviders<LoggerModule> {\n return {\n ngModule: LoggerModule,\n providers: [\n {\n provide: CONSTANTS_LOGGER.APP_NAME,\n useValue: appName\n },\n {\n provide: CONSTANTS_LOGGER.ENV_VAR,\n useValue: env\n },\n LoggerService\n ]\n };\n }\n}\n","/** @format */\n\nexport const CONSTANTS_WIS_COMMON = {\n ENV_VAR: \"wisCommonEnvironment\"\n};\n","import { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { map, Observable } from \"rxjs\";\nimport { CONSTANTS_WIS_COMMON } from \"../constants/emp-web-exp.constants\";\nimport { NsWISConfigurations } from \"../models/configurations.model\";\nimport { NsWISCommon } from \"../models/env.model\";\nimport { AuthService } from \"../modules/auth/auth.service\";\n\nconst API_URLS = {\n CONFIGURATIONS: \"configurations\"\n};\n\n@Injectable()\nexport class HttpService {\n constructor(@Inject(CONSTANTS_WIS_COMMON) public env: NsWISCommon.IEnv, private http: HttpClient) {}\n\n getProperties(Porperties: string[]) {\n return this.http.get(`${this.env.ets}/ets/apis/properties/${Porperties.join(\",\")}`).pipe(\n map((res: any) => {\n return res.reduce((acc: any, item: any) => {\n acc[item.propertyName] = item.propertyValue === \"true\" ? true : item.propertyValue === \"false\" ? false : item.propertyValue;\n return acc;\n }, {});\n })\n );\n }\n\n getOffices(nonce) {\n const body = `CSRF_NONCE=${nonce}&method=getOfficeList`;\n return this.http.post(`${this.env.ets}/Locality_Servlet`, body, { headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" } });\n }\n\n listTransportLocalities(nonce) {\n const body = `CSRF_NONCE=${nonce}&method=listTransportLocalities`;\n return this.http.post(`${this.env.ets}/Locality_Servlet`, body, { headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" } });\n }\n\n createEmptyIrregularTripSheet(nonce: string, direction: string): Observable<any> {\n const body = `CSRF_NONCE=${nonce}&method=createEmptyIrregularTripSheet&direction=${direction}`;\n return this.http.post(`${this.env.ets}/Tripsheet_Edit_Servlet`, body, { headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" } });\n }\n\n addEmployeeToTripSheet(\n nonce: string,\n params: {\n tripsheet: any;\n employee: any;\n pickupLoc: any;\n dropLoc: any;\n pickUpTime: string;\n dropTime: string;\n position: number;\n routeSource?: string;\n assetList?: any;\n }\n ): Observable<any> {\n const body = `CSRF_NONCE=${nonce}&method=addEmployeeToTripSheet&tripsheet=${encodeURIComponent(\n JSON.stringify(params.tripsheet)\n )}&employee=${encodeURIComponent(JSON.stringify(params.employee))}&pickupLoc=${encodeURIComponent(\n JSON.stringify(params.pickupLoc)\n )}&dropLoc=${encodeURIComponent(JSON.stringify(params.dropLoc))}&pickUpTime=\"${params.pickUpTime}\"&dropTime=\"${params.dropTime}\"&position=${\n params.position\n }${params.routeSource ? \"&routeSource=\" + params.routeSource : \"\"}${\n params.assetList ? \"&assetList=\" + encodeURIComponent(JSON.stringify(params.assetList)) : \"\"\n }`;\n return this.http.post(`${this.env.ets}/Tripsheet_Edit_Servlet`, body, { headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" } });\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"wis-common-sidenav\",\n templateUrl: \"./sidenav.component.html\",\n styleUrls: [\"./sidenav.component.scss\"]\n})\nexport class SidenavComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"wis-sidenav-wrapper\">\n <div class=\"wis-sidenav-header\">\n <div class=\"wis-sidenav-header-logo\">\n <img src=\"assets/sidenav/assets/Wis-icon.svg\" alt=\"\" />\n </div>\n <div class=\"wis-sidenav-header-title\">\n <h1>WIS</h1>\n </div>\n </div>\n <div class=\"wis-sidenav-body\">\n <div class=\"wis-sidenav-body-item\">\n <div class=\"wis-sidenav-body-item-icon\">\n <i class=\"fas fa-home\"></i>\n </div>\n <div class=\"wis-sidenav-body-item-text\">\n <h3>Home</h3>\n </div>\n </div>\n <div class=\"wis-sidenav-body-item\">\n <div class=\"wis-sidenav-body-item-icon\">\n <i class=\"fas fa-user\"></i>\n </div>\n <div class=\"wis-sidenav-body-item-text\">\n <h3>Profile</h3>\n </div>\n </div>\n <div class=\"wis-sidenav-body-item\">\n <div class=\"wis-sidenav-body-item-icon\">\n <i class=\"fas fa-users\"></i>\n </div>\n <div class=\"wis-sidenav-body-item-text\">\n <h3>Users</h3>\n </div>\n </div>\n <div class=\"wis-sidenav-body-item\">\n <div class=\"wis-sidenav-body-item-icon\">\n <i class=\"fas fa-cog\"></i>\n </div>\n <div class=\"wis-sidenav-body-item-text\">\n <h3>Settings</h3>\n </div>\n </div>\n </div>\n</div>\n","/** @format */\n\nexport const CONSTANTS_ASSETS_WIS_COMMON = {\n IMAGES: {\n CALENDAR_ICON: \"assets/libraries/wis-common/calendar.svg\"\n },\n ICONS: {}\n};\n","import { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport { IDatePickerConfig } from \"mis-crystal-design-system/datepicker_v2\";\nimport { CONSTANTS_ASSETS_WIS_COMMON } from \"../../constants/assets.constants\";\nimport { HttpService } from \"../../services/http.service\";\nimport { DropdownItem } from \"mis-crystal-design-system/dropdown\";\nimport { forkJoin } from \"rxjs\";\nimport { finalize } from \"rxjs/operators\";\nimport { MODAL_DATA_VAR, ModalRef } from \"mis-crystal-design-system/modal\";\nimport { ToastService } from \"mis-crystal-design-system/toast\";\n\ndayjs.extend(customParseFormat);\n\nconst PROPERTIES = [\"NON_SHIFT_TRIPS_CATEGORIES\", \"USE_VALID_OFFICE_FOR_IRREGULAR_TRIPS\"];\nconst DATE_FORMAT = \"DD/MM/YYYY\";\nconst PICKUP_TIME_FORMAT = \"DD/MM/YYYY HH/mm/ss\";\n\ninterface LocationValue {\n type: number;\n office: any | null;\n}\n\ninterface LocationDropdownItem {\n label: string;\n value: LocationValue;\n}\n\n@Component({\n selector: \"app-create-non-shift-modal\",\n templateUrl: \"./create-non-shift-modal.component.html\",\n styleUrls: [\"./create-non-shift-modal.component.scss\"]\n})\nexport class CreateNonShiftModalComponent implements OnInit {\n CONSTANTS_ASSETS_WIS_COMMON = CONSTANTS_ASSETS_WIS_COMMON;\n\n dateConfig: Partial<IDatePickerConfig> = {\n minDate: dayjs().format(DATE_FORMAT),\n format: DATE_FORMAT\n };\n createTripsheetForm!: FormGroup;\n offices: DropdownItem[] = [];\n\n locationDropdownData: LocationDropdownItem[] = [];\n\n categoryDropdownData: DropdownItem[] = [];\n\n hoursDropdownData: DropdownItem[] = [];\n\n minutesDropdownData: DropdownItem[] = [];\n\n showOtherAddress: boolean = false;\n\n loading: boolean = false;\n isSubmitting: boolean = false;\n\n readonly TYPE_OFFICE = 6;\n readonly TYPE_TRANSPORT = 3;\n readonly TYPE_OTHER = 4;\n properties: Record<string, any> = {};\n\n constructor(@Inject(MODAL_DATA_VAR) public modalData: any, private modalRef: ModalRef, private fb: FormBuilder, private http: HttpService,private toast: ToastService) {}\n\n ngOnInit(): void {\n this.loading = true;\n\n const $office = this.http.getOffices(this.modalData.nonce);\n const $properties = this.http.getProperties(PROPERTIES);\n\n forkJoin([$office, $properties])\n .pipe(finalize(() => (this.loading = false)))\n .subscribe({\n next: ([offices, properties]) => {\n this.properties = properties;\n this.initializeForm();\n this.initializeDropdownData(offices);\n this.setupFormListeners();\n },\n error: error => {\n console.error(\"Error loading form data:\", error);\n this.modalRef.close();\n }\n });\n }\n\n private initializeForm(): void {\n const currentTime = this.modalData?.date ?? dayjs().format(DATE_FORMAT);\n\n this.createTripsheetForm = this.fb.group({\n direction: [this.modalData?.shiftType === \"logout\" ? \"OUT\" : \"IN\", Validators.required],\n location: [{ label: \"\", value: \"\" }],\n otherAddress: \"\",\n tripCategory: [{ label: \"\", value: \"\" }],\n date: [currentTime, Validators.required],\n hours: [{ label: \"\", value: \"\" }],\n mins: [{ label: \"\", value: \"\" }]\n });\n }\n\n private initializeDropdownData(offices: any): void {\n this.locationDropdownData = offices.map(\n (office: any): LocationDropdownItem => ({\n label: office.address,\n value: { type: this.TYPE_OFFICE, office: office || null }\n })\n );\n this.createTripsheetForm.get(\"location\")?.setValue(this.locationDropdownData[0]);\n\n if (!this.properties?.[\"USE_VALID_OFFICE_FOR_IRREGULAR_TRIPS\"]) {\n this.locationDropdownData.push(\n { label: \"Airport\", value: { type: this.TYPE_TRANSPORT, office: null } } as LocationDropdownItem,\n { label: \"Other\", value: { type: this.TYPE_OTHER, office: null } } as LocationDropdownItem\n );\n }\n\n // Initialize category dropdown\n const categoriesString = this.properties?.[\"NON_SHIFT_TRIPS_CATEGORIES\"];\n if (categoriesString && typeof categoriesString === \"string\") {\n const categories = categoriesString.split(\",\").filter(cat => cat && cat.trim());\n if (categories.length > 0) {\n this.categoryDropdownData = categories.map(category => ({\n label: category.trim(),\n value: category.trim()\n }));\n }\n }\n\n const currentHour = new Date().getHours();\n this.hoursDropdownData = Array.from({ length: 24 }, (_, i) => ({\n label: this.padZero(i),\n value: this.padZero(i)\n }));\n this.createTripsheetForm.patchValue({ hours: this.hoursDropdownData[currentHour] });\n\n const currentMinute = new Date().getMinutes();\n this.minutesDropdownData = Array.from({ length: 60 }, (_, i) => ({\n label: this.padZero(i),\n value: this.padZero(i)\n }));\n this.createTripsheetForm.patchValue({ mins: this.minutesDropdownData[currentMinute] });\n }\n\n private setupFormListeners(): void {\n this.createTripsheetForm?.valueChanges.subscribe(value => {\n const { location } = this.createTripsheetForm?.value;\n if (this.showOtherAddress !== (location?.value?.type === this.TYPE_OTHER)) {\n this.showOtherAddress = location?.value?.type === this.TYPE_OTHER;\n if (this.showOtherAddress) {\n this.createTripsheetForm.get(\"otherAddress\")?.setValidators([Validators.required]);\n } else {\n this.createTripsheetForm.get(\"otherAddress\")?.clearValidators();\n }\n this.createTripsheetForm.get(\"otherAddress\")?.updateValueAndValidity();\n }\n });\n }\n\n private padZero(num: number): string {\n return num.toString().padStart(2, \"0\");\n }\n\n onCancel(): void {\n this.modalRef.close();\n }\n\n onSubmit(): void {\n if (this.createTripsheetForm.invalid) {\n return;\n }\n\n const formValue = this.createTripsheetForm.value;\n\n const pickupTime = `${formValue.date} ${formValue.hours.value}/${formValue.mins.value}/00`;\n const pickupTimeDate = dayjs(pickupTime, PICKUP_TIME_FORMAT).toDate();\n if (this.isDateAndTimeFromPast(pickupTimeDate)) {\n this.toast.displayMsg(\"Please select a future date and time.\");\n return;\n }\n\n if (this.categoryDropdownData.length > 0 && (!formValue.tripCategory || !formValue.tripCategory.value)) {\n this.toast.displayMsg(\"Please provide a trip category.\");\n return;\n }\n\n if (formValue.location?.value?.type === this.TYPE_OTHER) {\n if (!formValue.otherAddress || formValue.otherAddress.trim() === \"\") {\n this.toast.displayMsg(\"Please provide the address.\");\n return;\n }\n if (formValue.otherAddress.includes(\",\")) {\n this.toast.displayMsg(\"Special character (,) not allowed in address.\");\n return;\n }\n }\n\n this.isSubmitting = true;\n\n this.http.createEmptyIrregularTripSheet(this.modalData.nonce, formValue.direction).subscribe({\n next: routeTripSheet => {\n const pickupLoc = routeTripSheet.dir === \"IN\" ? this.modalData.employee.home : this.getLocation(formValue);\n const dropLoc = routeTripSheet.dir === \"OUT\" ? this.modalData.employee.home : this.getLocation(formValue);\n const pickupTimeFormatted = pickupTime;\n const dropTimeFormatted = pickupTime;\n\n const employee = { ...this.modalData.employee, employee_status: 1 };\n\n const addEmployeeParams = {\n tripsheet: routeTripSheet,\n employee: employee,\n pickupLoc: pickupLoc,\n dropLoc: dropLoc,\n pickUpTime: pickupTimeFormatted,\n dropTime: dropTimeFormatted,\n position: 0,\n routeSource: this.modalData.routeSource,\n assetList: this.modalData.assetList\n };\n\n this.http.addEmployeeToTripSheet(this.modalData.nonce, addEmployeeParams).subscribe({\n next: updatedTripSheet => {\n if (!updatedTripSheet.customMap) {\n updatedTripSheet.customMap = {};\n }\n updatedTripSheet.customMap.tripCategory = formValue.tripCategory?.value || \"\";\n\n this.modalRef.close({\n success: true,\n tripsheet: updatedTripSheet\n });\n },\n error: error => {\n console.error(\"Error adding employee to tripsheet:\", error);\n this.toast.displayMsg(\"Failed to add employee to tripsheet. Please try again.\");\n this.isSubmitting = false;\n }\n });\n },\n error: error => {\n console.error(\"Error creating tripsheet:\", error);\n this.toast.displayMsg(\"Failed to create tripsheet. Please try again.\");\n this.isSubmitting = false;\n }\n });\n }\n\n private isDateAndTimeFromPast(date: Date): boolean {\n const now = new Date();\n return date < now;\n }\n\n private getLocation(formValue: any): any {\n const location = formValue.location?.value;\n\n if (!location) {\n return null;\n }\n\n const locType = location.type;\n\n switch (locType) {\n case this.TYPE_OFFICE:\n return location.office;\n\n case this.TYPE_TRANSPORT:\n return {\n id: null,\n type: this.TYPE_TRANSPORT,\n address: \"Airport\",\n geoCord: null\n };\n\n case this.TYPE_OTHER:\n return {\n ...location.office,\n address: formValue.otherAddress || \"\"\n };\n }\n }\n}\n","<div class=\"createTripsheet\">\n <h2 class=\"modal-header\">Create Non-Shift Tripsheet</h2>\n\n <div *ngIf=\"loading\" class=\"loading-container\">\n <div class=\"spinner\"></div>\n <p>Loading...</p>\n </div>\n\n <form\n *ngIf=\"!loading && createTripsheetForm\"\n [formGroup]=\"createTripsheetForm\"\n (ngSubmit)=\"onSubmit()\"\n class=\"createTripsheetForm\"\n id=\"createTripsheetForm\"\n >\n <div class=\"form-content\">\n <!-- Radio buttons row -->\n <div [ngClass]=\"{ 'radio-row': true, disabled: modalData?.shiftSelectionDisabled }\">\n <label class=\"radio-label\">\n <input class=\"modern-checkbox\" type=\"radio\" formControlName=\"direction\" value=\"OUT\" id=\"startLoc\" />\n <span>Start Location Fixed (Logout)</span>\n </label>\n <label class=\"radio-label\">\n <input class=\"modern-checkbox\" type=\"radio\" formControlName=\"direction\" value=\"IN\" id=\"endLoc\" />\n <span>End Location Fixed (Login)</span>\n </label>\n </div>\n\n <!-- Location field -->\n <div class=\"form-field\">\n <div class=\"label-cell\">\n <label class=\"locText\">Location</label>\n </div>\n <div class=\"input-cell\">\n <mis-dropdown\n [searchEnabled]=\"true\"\n [width]=\"'100%'\"\n [height]=\"'40px'\"\n [data]=\"locationDropdownData\"\n [selectedItem]=\"createTripsheetForm.get('location')?.value\"\n [label]=\"'Select location...'\"\n (onChange)=\"createTripsheetForm.get('location')?.setValue($event)\"\n ></mis-dropdown>\n </div>\n </div>\n\n <!-- Other address field -->\n <div class=\"form-field otherAddress\" *ngIf=\"showOtherAddress\">\n <div class=\"label-cell\">\n <label>Pick/Drop point <sup>*</sup></label>\n </div>\n <div class=\"input-cell\">\n <input type=\"text\" formControlName=\"otherAddress\" class=\"modern-input\" />\n </div>\n </div>\n\n <!-- Trip category field -->\n <div class=\"form-field\" *ngIf=\"categoryDropdownData.length > 0\">\n <div class=\"label-cell\">\n <label>Trip Category</label>\n </div>\n <div class=\"input-cell\">\n <mis-dropdown\n [searchEnabled]=\"false\"\n [width]=\"'250px'\"\n [height]=\"'40px'\"\n [data]=\"categoryDropdownData\"\n [selectedItem]=\"createTripsheetForm.get('tripCategory')?.value\"\n [label]=\"'Select category...'\"\n (onChange)=\"createTripsheetForm.get('tripCategory')?.setValue($event)\"\n ></mis-dropdown>\n </div>\n </div>\n\n <!-- Time field -->\n <div class=\"form-field\">\n <div class=\"label-cell\">\n <label class=\"fixedTimeText\">Time</label>\n </div>\n <div class=\"input-cell modern-date-container\">\n <div class=\"date-select\">\n <input\n misTzDp\n readonly\n [dpConfig]=\"dateConfig\"\n [formControl]=\"createTripsheetForm.get('date')\"\n style=\"height: 44px !important; font-size: 16px !important; cursor: pointer; vertical-align: middle !important\"\n />\n <img [src]=\"CONSTANTS_ASSETS_WIS_COMMON.IMAGES.CALENDAR_ICON\" alt=\"Calendar Icon\" class=\"date-icon data-picker-icon\" />\n </div>\n\n <mis-dropdown\n [searchEnabled]=\"false\"\n [width]=\"'5rem'\"\n [height]=\"'40px'\"\n [data]=\"hoursDropdownData\"\n [selectedItem]=\"createTripsheetForm.get('hours')?.value\"\n [label]=\"'HH'\"\n (onChange)=\"createTripsheetForm.get('hours')?.setValue($event)\"\n ></mis-dropdown>\n\n <mis-dropdown\n [searchEnabled]=\"false\"\n [width]=\"'5rem'\"\n [height]=\"'40px'\"\n [data]=\"minutesDropdownData\"\n [selectedItem]=\"createTripsheetForm.get('mins')?.value\"\n [label]=\"'MM'\"\n (onChange)=\"createTripsheetForm.get('mins')?.setValue($event)\"\n ></mis-dropdown>\n </div>\n </div>\n </div>\n\n <div class=\"form-actions\">\n <button mis-button type=\"outline\" (click)=\"onCancel()\" [disabled]=\"isSubmitting\">Cancel</button>\n <button mis-button type=\"primary\" [disabled]=\"isSubmitting || createTripsheetForm?.invalid\">\n {{ isSubmitting ? \"Creating...\" : \"Create\" }}\n </button>\n </div>\n </form>\n</div>\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ConfigurationService } from \"./services/configuration.service\";\nimport { NsWISCommon } from \"./models/env.model\";\nimport { CONSTANTS_WIS_COMMON } from \"./constants/emp-web-exp.constants\";\nimport { HttpService } from \"./services/http.service\";\nimport { LoaderModule } from \"mis-crystal-design-system/loader\";\nimport { LoaderComponent } from \"./components/loader/loader.component\";\nimport { LoaderService } from \"./services/loader.service\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { SidenavComponent } from \"./components/sidenav/sidenav.component\";\nimport { CreateNonShiftModalComponent } from \"./components/create-non-shift-modal/create-non-shift-modal.component\";\nimport { DropdownModule } from \"mis-crystal-design-system/dropdown\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { DatepickerModuleV2 } from \"mis-crystal-design-system/datepicker_v2\";\nimport { HttpClientModule } from \"@angular/common/http\";\n\n@NgModule({\n declarations: [LoaderComponent, SidenavComponent, CreateNonShiftModalComponent],\n imports: [CommonModule, HttpClientModule, OverlayModule, LoaderModule, DropdownModule, ReactiveFormsModule, DatepickerModuleV2,],\n providers: [],\n exports: [SidenavComponent, CreateNonShiftModalComponent]\n})\nexport class WisCommonModule {\n static forRoot(env: NsWISCommon.IEnv): ModuleWithProviders<WisCommonModule> {\n return {\n ngModule: WisCommonModule,\n providers: [HttpService,{ provide: CONSTANTS_WIS_COMMON, useValue: env }, ConfigurationService, LoaderService]\n };\n }\n}\n","import { ReplaySubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { NsWISConfigurations } from \"../models/configurations.model\";\n@Injectable({\n providedIn: 'root'\n})\nexport class MfeCommunicationService {\n private _etsLoginUser: NsWISConfigurations.ILoginUserDetails;\n\n setUserDetails(userDetails: NsWISConfigurations.ILoginUserDetails): void {\n this._etsLoginUser = userDetails;\n }\n\n getUserDetails(): NsWISConfigurations.ILoginUserDetails {\n return this._etsLoginUser;\n }\n\n constructor() { }\n loginDetails = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n employeeExperience = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n floorPlan = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n meetingRooms = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n adminUI = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n paymentsDetails = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1); \n visitorMgmt = new ReplaySubject<NsWISConfigurations.IMfeCommunication>(1);\n}\n","export abstract class SessionError extends Error {}\n\nexport class SessionTokenNotFoundError extends SessionError {\n constructor() {\n super('Session token was not found.');\n this.name = 'SessionTokenNotFoundError';\n }\n}\n\nexport class SessionTokenExpiredError extends SessionError {\n constructor() {\n super('Session token has expired.');\n this.name = 'SessionTokenExpiredError';\n }\n}\n\nexport class SessionTokenInvalidError extends SessionError {\n constructor() {\n super('Session token could not be decoded.');\n this.name = 'SessionTokenInvalidError';\n }\n}\n\nexport class SessionClaimNotFoundError extends SessionError {\n constructor(public readonly claim: string) {\n super(`Session claim \"${claim}\" was not found in the token.`);\n this.name = 'SessionClaimNotFoundError';\n }\n}\n\nexport type SessionClaimFailureReason = 'absent' | 'blank';\n\nexport interface ISessionClaimFailure {\n claim: string;\n reason: SessionClaimFailureReason;\n}\n\n/** Renders failures as `claim (reason), claim (reason)` for error messages. */\nexport function describeClaimFailures(failures: ISessionClaimFailure[]): string {\n return failures.map(f => `${f.claim} (${f.reason})`).join(', ');\n}\n\n/**\n * Every claim `run`'s `next` failed to read, reported once after the block has finished.\n * Extends `SessionClaimNotFoundError` — and reports the first failure as `claim` — so handlers\n * written against the single-claim error keep working.\n */\nexport class SessionClaimsMissingError extends SessionClaimNotFoundError {\n constructor(public readonly failures: ISessionClaimFailure[]) {\n super(failures[0].claim);\n this.name = 'SessionClaimsMissingError';\n this.message = `Session claims not found: ${describeClaimFailures(failures)}.`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport jwtDecode from 'jwt-decode';\n\nimport { getCookie } from '../functions/cookie.function';\nimport { getQueryParam } from '../functions/url.functions';\nimport { NsSession } from '../models/session.model';\nimport {\n describeClaimFailures,\n ISessionClaimFailure,\n SessionClaimFailureReason,\n SessionClaimNotFoundError,\n SessionClaimsMissingError,\n SessionError,\n SessionTokenExpiredError,\n SessionTokenInvalidError,\n SessionTokenNotFoundError,\n} from './session.errors';\n\nconst DEFAULT_SESSION_TOKEN_PREFIX = 'sso-wis-token';\nconst DEFAULT_SESSION_TOKEN_FALLBACK_KEY = 'x-wis-token';\nconst DEFAULT_VET_TOKEN_PREFIX = 'x-vet-token';\nconst LAUNCH_SOURCE_VET = 'VET';\n\n/** The accessors that read a single claim, and so can come back `undefined` inside `run`. */\ntype ClaimAccessor =\n | 'sub'\n | 'empGuid'\n | 'employeeId'\n | 'internalSsoRole'\n | 'roles'\n | 'sessionId'\n | 'loggedInUser'\n | 'exp'\n | 'iat'\n | 'businessUnitId'\n | 'allowedBuids'\n | 'vetUserEmailId'\n | 'vetUserId'\n | 'source'\n | 'roleId';\n\n/**\n * The session as seen inside `run`'s `next`. `run` collects missing claims instead of throwing\n * so the block always completes, which means any claim accessor may yield `undefined`.\n * Outside `run` — direct access, or `read` — the accessors still throw and stay non-optional.\n */\nexport type PartialSession = Omit<SessionService, ClaimAccessor> & {\n readonly [K in ClaimAccessor]: SessionService[K] | undefined;\n};\n\ntype SessionState =\n | { status: 'ok'; claims: NsSession.IClaims; isVET: boolean }\n | { status: 'not-found'; isVET: boolean }\n | { status: 'expired'; isVET: boolean }\n | { status: 'invalid'; isVET: boolean };\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionService {\n private config: NsSession.IInitConfig = {};\n private cachedToken: string | null = null;\n private cachedState: SessionState | null = null;\n private collecting: ISessionClaimFailure[] | null = null;\n\n init(config: NsSession.IInitConfig): void {\n this.config = { ...config };\n this.cachedToken = null;\n this.cachedState = null;\n }\n\n /**\n * Runs `handlers.next` and returns its result, or `handlers.error(error)` if it throws a `SessionError`.\n * Centralizes the try/catch mechanics; the caller still supplies the actual handling logic.\n */\n read<T>(handlers: { next: (session: SessionService) => T; error: (error: SessionError) => T }): T {\n try {\n return handlers.next(this);\n } catch (e) {\n if (e instanceof SessionError) {\n return handlers.error(e);\n }\n throw e;\n }\n }\n\n /**\n * Statement-style variant of `read` for blocks of assignments/side effects with no return value.\n *\n * `next` always runs to completion: a claim that is absent or blank yields `undefined` instead of\n * throwing, and every such failure is reported once afterwards via `handlers.error`, as a\n * `SessionClaimsMissingError` listing all of them. An unusable token (missing, expired,\n * undecodable) still aborts `next` immediately with the matching `SessionError`.\n *\n * Collecting covers the synchronous body of `next` only — claim reads deferred into a subscription,\n * timeout or promise run after it has returned and throw as usual.\n *\n * An error `next` throws for any other reason propagates untouched, except that any claims missing\n * at the time are appended to its message and attached as `sessionClaimFailures` — a collected\n * `undefined` reaching the block is the usual cause, and that is the part worth knowing.\n */\n run(handlers: { next: (session: PartialSession) => void; error: (error: SessionError) => void }): void {\n const failures: ISessionClaimFailure[] = [];\n const previous = this.collecting;\n this.collecting = failures;\n try {\n handlers.next(this);\n } catch (e) {\n if (e instanceof SessionError) {\n handlers.error(e);\n return;\n }\n if (failures.length && e instanceof Error) {\n (e as Error & { sessionClaimFailures?: ISessionClaimFailure[] }).sessionClaimFailures = failures;\n e.message = `${e.message} — session claims missing during run(): ${describeClaimFailures(failures)}`;\n }\n throw e;\n } finally {\n this.collecting = previous;\n }\n if (failures.length) {\n handlers.error(new SessionClaimsMissingError(failures));\n }\n }\n\n get isVET(): boolean {\n return this.state.isVET;\n }\n\n get sub(): string { return this.getClaim('sub'); }\n get empGuid(): string { return this.getClaim('employeeGUID'); }\n get employeeId(): string { return this.getClaim('employeeId'); }\n get internalSsoRole(): string { return this.getClaim('internal_sso_role'); }\n get roles(): string[] { return this.getClaim('roles'); }\n get sessionId(): string { return this.getClaim('sessionId'); }\n get loggedInUser(): string { return this.getClaim('loggedInUser'); }\n get exp(): number { return this.getClaim('exp'); }\n get iat(): number { return this.getClaim('iat'); }\n get businessUnitId(): string { return this.getClaim('businessUnitId'); }\n get allowedBuids(): string[] { return this.getClaim('ALLOWED_BUIDS'); }\n get vetUserEmailId(): string { return this.getClaim('vetUserEmailId'); }\n get vetUserId(): number { return this.getClaim('vetUserId'); }\n get source(): string { return this.getClaim('source'); }\n\n get roleId(): number {\n const raw = this.resolveRole(this.getClaims());\n if (!raw) {\n return this.missingClaim('roleId', 'absent');\n }\n return Number(raw);\n }\n\n /** First numeric role in `internal_sso_role` then `roles`, or `''` when the token carries none. */\n private resolveRole(claims: NsSession.IClaims): string {\n const candidates = [claims.internal_sso_role, ...(claims.roles ?? [])];\n return candidates\n .map(value => value?.trim())\n .find(value => this.isDigitsOnly(value)) ?? '';\n }\n\n private isDigitsOnly(value: string | undefined): value is string {\n return !!value && /^\\d+$/.test(value);\n }\n\n private getClaims(): NsSession.IClaims {\n const state = this.state;\n if (state.status === 'ok') {\n return state.claims;\n }\n if (state.status === 'not-found') {\n throw new SessionTokenNotFoundError();\n }\n if (state.status === 'expired') {\n throw new SessionTokenExpiredError();\n }\n throw new SessionTokenInvalidError();\n }\n\n private getClaim<K extends keyof NsSession.IClaims>(key: K): NonNullable<NsSession.IClaims[K]> {\n const claims = this.getClaims();\n const value = claims[key];\n const isEmptyString = typeof value === 'string' && value.trim() === '';\n if (value === undefined || value === null || isEmptyString) {\n return this.missingClaim(key as string, isEmptyString ? 'blank' : 'absent');\n }\n return (typeof value === 'string' ? value.trim() : value) as NonNullable<NsSession.IClaims[K]>;\n }\n\n /** Records the failure and yields `undefined` while `run` is collecting; throws otherwise. */\n private missingClaim(claim: string, reason: SessionClaimFailureReason): never {\n if (this.collecting) {\n this.collecting.push({ claim, reason });\n return undefined as never;\n }\n throw new SessionClaimNotFoundError(claim);\n }\n\n private get state(): SessionState {\n const { token, isVET } = this.findToken();\n if (!this.cachedState || token !== this.cachedToken) {\n this.cachedToken = token;\n this.cachedState = this.build(token, isVET);\n }\n return this.cachedState;\n }\n\n private build(token: string, isVET: boolean): SessionState {\n if (!token) {\n return { status: 'not-found', isVET };\n }\n\n let claims: NsSession.IClaims;\n try {\n claims = jwtDecode<NsSession.IClaims>(token);\n } catch {\n return { status: 'invalid', isVET };\n }\n\n if (this.isExpired(claims)) {\n return { status: 'expired', isVET };\n }\n\n return { status: 'ok', claims, isVET };\n }\n\n private isExpired(claims: NsSession.IClaims): boolean {\n return typeof claims.exp === 'number' && claims.exp * 1000 <= Date.now();\n }\n\n private isVETSource(): boolean {\n return getQueryParam('source') === LAUNCH_SOURCE_VET;\n }\n\n private resolveBuid(): string | null {\n return getQueryParam('buid') || getCookie('buid') || null;\n }\n\n private findToken(): { token: string; isVET: boolean } {\n const buid = this.resolveBuid();\n\n if (this.isVETSource()) {\n const vetKey = this.config.vetTokenCookieKey ?? (buid ? `${DEFAULT_VET_TOKEN_PREFIX}-${buid}` : null);\n const vetToken = (vetKey ? getCookie(vetKey) : '') || '';\n if (vetToken) {\n return { token: vetToken, isVET: true };\n }\n }\n\n const sessionToken = this.config.sessionTokenCookieKey\n ? getCookie(this.config.sessionTokenCookieKey)\n : (buid ? getCookie(`${DEFAULT_SESSION_TOKEN_PREFIX}-${buid}`) : '') || getCookie(DEFAULT_SESSION_TOKEN_FALLBACK_KEY);\n\n return { token: sessionToken || '', isVET: false };\n }\n}\n","/*\n * Public API Surface of wis-common\n */\n\nexport * from \"./lib/modules/auth/auth.service\";\nexport * from \"./lib/modules/auth/auth.module\";\nexport * from \"./lib/services/configuration.service\";\nexport * from \"./lib/models/configurations.model\";\nexport * from \"./lib/functions/nav-filter.function\";\nexport * from \"./lib/functions/cookie.function\";\nexport * from \"./lib/functions/url.functions\";\nexport * from \"./lib/interceptors/auth.interceptor\";\nexport * from \"./lib/services/loader.service\";\nexport * from \"./lib/modules/logger/logger.module\";\nexport * from \"./lib/modules/logger/logger.service\";\nexport * from \"./lib/wis-common.module\";\nexport * from \"./lib/modules/logger/logger.model\";\nexport * from \"./lib/components/sidenav/sidenav.component\";\nexport * from \"./lib/services/mfe-communication.service\";\nexport * from \"./lib/components/create-non-shift-modal/create-non-shift-modal.component\";\nexport * from \"./lib/services/session.service\";\nexport * from \"./lib/services/session.errors\";\nexport * from \"./lib/models/session.model\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.HttpService","i4"],"mappings":"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"}
|