@hmcts/opal-frontend-common 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2022/hmcts-opal-frontend-common.mjs +5 -0
- package/esm2022/lib/components/govuk/govuk-button/govuk-button.component.mjs +34 -0
- package/esm2022/lib/components/govuk/govuk-text-input/govuk-text-input.component.mjs +57 -0
- package/esm2022/lib/components/govuk/index.mjs +3 -0
- package/esm2022/lib/guards/auth/auth.guard.mjs +20 -0
- package/esm2022/lib/guards/auth/index.mjs +2 -0
- package/esm2022/lib/guards/can-deactivate/can-deactivate.guard.mjs +6 -0
- package/esm2022/lib/guards/can-deactivate/index.mjs +5 -0
- package/esm2022/lib/guards/can-deactivate/interfaces/can-deactivate-can-component-deactivate.interface.mjs +2 -0
- package/esm2022/lib/guards/can-deactivate/interfaces/index.mjs +2 -0
- package/esm2022/lib/guards/has-flow-state/has-flow-state.guard.mjs +16 -0
- package/esm2022/lib/guards/has-flow-state/index.mjs +2 -0
- package/esm2022/lib/guards/helpers/get-guard-with-dummy-url.mjs +19 -0
- package/esm2022/lib/guards/helpers/handle-observable-result.mjs +13 -0
- package/esm2022/lib/guards/helpers/index.mjs +5 -0
- package/esm2022/lib/guards/helpers/run-auth-guard-with-context.mjs +15 -0
- package/esm2022/lib/guards/helpers/run-has-flow-state-guard-with-context.mjs +9 -0
- package/esm2022/lib/guards/index.mjs +10 -0
- package/esm2022/lib/guards/route-permissions/index.mjs +2 -0
- package/esm2022/lib/guards/route-permissions/route-permissions.guard.mjs +25 -0
- package/esm2022/lib/guards/signed-in/index.mjs +3 -0
- package/esm2022/lib/guards/signed-in/signed-in.guard.mjs +20 -0
- package/esm2022/lib/guards/types/can-deactivate.type.mjs +2 -0
- package/esm2022/lib/guards/types/guard-return.type.mjs +2 -0
- package/esm2022/lib/guards/types/index.mjs +3 -0
- package/esm2022/lib/interceptors/http-error/http-error.interceptor.mjs +24 -0
- package/esm2022/lib/interceptors/index.mjs +3 -0
- package/esm2022/lib/opal-frontend-common.module.mjs +22 -0
- package/esm2022/lib/pages/access-denied/access-denied.component.mjs +18 -0
- package/esm2022/lib/pages/index.mjs +4 -0
- package/esm2022/lib/pages/routing/constants/routing-paths.constant.mjs +9 -0
- package/esm2022/lib/pages/routing/constants/routing-titles.constant.mjs +9 -0
- package/esm2022/lib/pages/routing/interfaces/routing-paths.interface.mjs +2 -0
- package/esm2022/lib/pages/routing/pages.routes.mjs +24 -0
- package/esm2022/lib/pages/sign-in/interfaces/index.mjs +2 -0
- package/esm2022/lib/pages/sign-in/interfaces/sign-in-stub-form.interface.mjs +2 -0
- package/esm2022/lib/pages/sign-in/sign-in-sso/sign-in-sso.component.mjs +23 -0
- package/esm2022/lib/pages/sign-in/sign-in-stub/sign-in-stub.component.mjs +39 -0
- package/esm2022/lib/pages/sign-in/sign-in.component.mjs +38 -0
- package/esm2022/lib/resolvers/index.mjs +3 -0
- package/esm2022/lib/resolvers/title/index.mjs +2 -0
- package/esm2022/lib/resolvers/title/title.resolver.mjs +22 -0
- package/esm2022/lib/resolvers/user-state/index.mjs +2 -0
- package/esm2022/lib/resolvers/user-state/user-state.resolver.mjs +12 -0
- package/esm2022/lib/routing/constants/index.mjs +2 -0
- package/esm2022/lib/routing/constants/sso-endpoints.constant.mjs +7 -0
- package/esm2022/lib/routing/index.mjs +3 -0
- package/esm2022/lib/routing/interfaces/child-routing-paths.interface.mjs +2 -0
- package/esm2022/lib/routing/interfaces/index.mjs +4 -0
- package/esm2022/lib/routing/interfaces/nested-routes.interface.mjs +2 -0
- package/esm2022/lib/routing/interfaces/sso-endpoints.interface.mjs +2 -0
- package/esm2022/lib/services/app-initializer-service/app-initializer.service.mjs +36 -0
- package/esm2022/lib/services/app-initializer-service/index.mjs +2 -0
- package/esm2022/lib/services/app-insights/app-insights.service.mjs +73 -0
- package/esm2022/lib/services/app-insights/index.mjs +4 -0
- package/esm2022/lib/services/auth-service/auth.service.mjs +36 -0
- package/esm2022/lib/services/auth-service/index.mjs +2 -0
- package/esm2022/lib/services/date-service/date.service.mjs +182 -0
- package/esm2022/lib/services/date-service/index.mjs +4 -0
- package/esm2022/lib/services/index.mjs +12 -0
- package/esm2022/lib/services/launch-darkly/index.mjs +5 -0
- package/esm2022/lib/services/launch-darkly/launch-darkly.service.mjs +94 -0
- package/esm2022/lib/services/launch-darkly/mocks/index.mjs +3 -0
- package/esm2022/lib/services/launch-darkly/mocks/launch-darkly-change-flags.mock.mjs +5 -0
- package/esm2022/lib/services/launch-darkly/mocks/launch-darkly-flags.mock.mjs +5 -0
- package/esm2022/lib/services/permissions-service/index.mjs +4 -0
- package/esm2022/lib/services/permissions-service/permissions.service.mjs +40 -0
- package/esm2022/lib/services/session-service/constants/index.mjs +2 -0
- package/esm2022/lib/services/session-service/constants/session-endpoints.constant.mjs +5 -0
- package/esm2022/lib/services/session-service/index.mjs +7 -0
- package/esm2022/lib/services/session-service/interfaces/index.mjs +4 -0
- package/esm2022/lib/services/session-service/interfaces/session-endpoints.interface.mjs +2 -0
- package/esm2022/lib/services/session-service/interfaces/session-token-expiry.interface.mjs +2 -0
- package/esm2022/lib/services/session-service/interfaces/session-user-state.interface.mjs +2 -0
- package/esm2022/lib/services/session-service/mocks/index.mjs +3 -0
- package/esm2022/lib/services/session-service/mocks/session-token-expiry.mock.mjs +5 -0
- package/esm2022/lib/services/session-service/mocks/session-user-state.mock.mjs +386 -0
- package/esm2022/lib/services/session-service/session.service.mjs +64 -0
- package/esm2022/lib/services/sort-service/index.mjs +6 -0
- package/esm2022/lib/services/sort-service/interfaces/index.mjs +3 -0
- package/esm2022/lib/services/sort-service/interfaces/sort-service-values.interface.mjs +2 -0
- package/esm2022/lib/services/sort-service/interfaces/sort-service.interface.mjs +2 -0
- package/esm2022/lib/services/sort-service/sort-service.mjs +90 -0
- package/esm2022/lib/services/sort-service/types/index.mjs +2 -0
- package/esm2022/lib/services/sort-service/types/sort-service.type.mjs +2 -0
- package/esm2022/lib/services/transfer-state-service/index.mjs +6 -0
- package/esm2022/lib/services/transfer-state-service/interfaces/index.mjs +4 -0
- package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-app-insights-config.interface.mjs +2 -0
- package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-launch-darkly-config.interface.mjs +2 -0
- package/esm2022/lib/services/transfer-state-service/interfaces/transfer-state-server-state.interface.mjs +2 -0
- package/esm2022/lib/services/transfer-state-service/mocks/index.mjs +4 -0
- package/esm2022/lib/services/transfer-state-service/mocks/transfer-state-app-insights-config.mock.mjs +6 -0
- package/esm2022/lib/services/transfer-state-service/mocks/transfer-state-launch-darkly-config.mock.mjs +6 -0
- package/esm2022/lib/services/transfer-state-service/mocks/transfer-state.mock.mjs +8 -0
- package/esm2022/lib/services/transfer-state-service/transfer-state.service.mjs +59 -0
- package/esm2022/lib/services/transformation-service/index.mjs +5 -0
- package/esm2022/lib/services/transformation-service/interfaces/index.mjs +2 -0
- package/esm2022/lib/services/transformation-service/interfaces/transform-item.interface.mjs +2 -0
- package/esm2022/lib/services/transformation-service/transformation.service.mjs +69 -0
- package/esm2022/lib/services/utils/index.mjs +4 -0
- package/esm2022/lib/services/utils/utils.service.mjs +86 -0
- package/esm2022/lib/stores/global/global.store.mjs +33 -0
- package/esm2022/lib/stores/global/index.mjs +6 -0
- package/esm2022/lib/stores/global/interfaces/error-state.interface.mjs +2 -0
- package/esm2022/lib/stores/global/interfaces/index.mjs +2 -0
- package/esm2022/lib/stores/global/types/global-store.type.mjs +2 -0
- package/esm2022/lib/stores/global/types/index.mjs +2 -0
- package/esm2022/lib/stores/index.mjs +2 -0
- package/esm2022/lib/validators/alphabetical-text/alphabetical-text.validator.mjs +10 -0
- package/esm2022/lib/validators/amount/amount.validator.mjs +15 -0
- package/esm2022/lib/validators/date-after-year/date-after-year.validator.mjs +12 -0
- package/esm2022/lib/validators/date-before/date-before.validator.mjs +15 -0
- package/esm2022/lib/validators/date-of-birth/date-of-birth.validator.mjs +18 -0
- package/esm2022/lib/validators/future-date/future-date.validator.mjs +15 -0
- package/esm2022/lib/validators/index.mjs +20 -0
- package/esm2022/lib/validators/invalid-value/invalid-value.validator.mjs +9 -0
- package/esm2022/lib/validators/national-insurance-number/national-insurance-number.validator.mjs +16 -0
- package/esm2022/lib/validators/numerical-only/numerical-only.validator.mjs +10 -0
- package/esm2022/lib/validators/optional-max-length/optional-max-length.validator.mjs +10 -0
- package/esm2022/lib/validators/optional-valid-date/optional-valid-date.validator.mjs +23 -0
- package/esm2022/lib/validators/optional-valid-email-address/optional-valid-email-address.validator.mjs +11 -0
- package/esm2022/lib/validators/optional-valid-telephone/optional-valid-telephone.validator.mjs +14 -0
- package/esm2022/lib/validators/over-eighteen/over-eighteen.validator.mjs +45 -0
- package/esm2022/lib/validators/past-date/past-date.validator.mjs +16 -0
- package/esm2022/lib/validators/special-characters/special-characters.validator.mjs +11 -0
- package/esm2022/lib/validators/two-decimal-places/two-decimal-places.validator.mjs +12 -0
- package/esm2022/lib/validators/valid-value/valid-value.validator.mjs +9 -0
- package/esm2022/public-api.mjs +11 -0
- package/fesm2022/hmcts-opal-frontend-common-sign-in-stub.component-CysPzJGJ.mjs +41 -0
- package/fesm2022/hmcts-opal-frontend-common-sign-in-stub.component-CysPzJGJ.mjs.map +1 -0
- package/fesm2022/hmcts-opal-frontend-common.mjs +1947 -0
- package/fesm2022/hmcts-opal-frontend-common.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/govuk/govuk-button/govuk-button.component.d.ts +14 -0
- package/lib/components/govuk/govuk-text-input/govuk-text-input.component.d.ts +17 -0
- package/lib/components/govuk/index.d.ts +2 -0
- package/lib/guards/auth/auth.guard.d.ts +6 -0
- package/lib/guards/auth/index.d.ts +1 -0
- package/lib/guards/can-deactivate/can-deactivate.guard.d.ts +3 -0
- package/lib/guards/can-deactivate/index.d.ts +2 -0
- package/lib/guards/can-deactivate/interfaces/can-deactivate-can-component-deactivate.interface.d.ts +4 -0
- package/lib/guards/can-deactivate/interfaces/index.d.ts +2 -0
- package/lib/guards/has-flow-state/has-flow-state.guard.d.ts +2 -0
- package/lib/guards/has-flow-state/index.d.ts +1 -0
- package/lib/guards/helpers/get-guard-with-dummy-url.d.ts +12 -0
- package/lib/guards/helpers/handle-observable-result.d.ts +8 -0
- package/lib/guards/helpers/index.d.ts +4 -0
- package/lib/guards/helpers/run-auth-guard-with-context.d.ts +9 -0
- package/lib/guards/helpers/run-has-flow-state-guard-with-context.d.ts +3 -0
- package/lib/guards/index.d.ts +7 -0
- package/lib/guards/route-permissions/index.d.ts +1 -0
- package/lib/guards/route-permissions/route-permissions.guard.d.ts +2 -0
- package/lib/guards/signed-in/index.d.ts +1 -0
- package/lib/guards/signed-in/signed-in.guard.d.ts +8 -0
- package/lib/guards/types/can-deactivate.type.d.ts +3 -0
- package/lib/guards/types/guard-return.type.d.ts +2 -0
- package/lib/guards/types/index.d.ts +2 -0
- package/lib/interceptors/http-error/http-error.interceptor.d.ts +2 -0
- package/lib/interceptors/index.d.ts +2 -0
- package/lib/opal-frontend-common.module.d.ts +14 -0
- package/lib/pages/access-denied/access-denied.component.d.ts +7 -0
- package/lib/pages/index.d.ts +3 -0
- package/lib/pages/routing/constants/routing-paths.constant.d.ts +2 -0
- package/lib/pages/routing/constants/routing-titles.constant.d.ts +2 -0
- package/lib/pages/routing/interfaces/routing-paths.interface.d.ts +8 -0
- package/lib/pages/routing/pages.routes.d.ts +2 -0
- package/lib/pages/sign-in/interfaces/index.d.ts +2 -0
- package/lib/pages/sign-in/interfaces/sign-in-stub-form.interface.d.ts +3 -0
- package/lib/pages/sign-in/sign-in-sso/sign-in-sso.component.d.ts +11 -0
- package/lib/pages/sign-in/sign-in-stub/sign-in-stub.component.d.ts +19 -0
- package/lib/pages/sign-in/sign-in.component.d.ts +51 -0
- package/lib/resolvers/index.d.ts +2 -0
- package/lib/resolvers/title/index.d.ts +1 -0
- package/lib/resolvers/title/title.resolver.d.ts +10 -0
- package/lib/resolvers/user-state/index.d.ts +1 -0
- package/lib/resolvers/user-state/user-state.resolver.d.ts +7 -0
- package/lib/routing/constants/index.d.ts +1 -0
- package/lib/routing/constants/sso-endpoints.constant.d.ts +2 -0
- package/lib/routing/index.d.ts +2 -0
- package/lib/routing/interfaces/child-routing-paths.interface.d.ts +6 -0
- package/lib/routing/interfaces/index.d.ts +3 -0
- package/lib/routing/interfaces/nested-routes.interface.d.ts +4 -0
- package/lib/routing/interfaces/sso-endpoints.interface.d.ts +6 -0
- package/lib/services/app-initializer-service/app-initializer.service.d.ts +20 -0
- package/lib/services/app-initializer-service/index.d.ts +1 -0
- package/lib/services/app-insights/app-insights.service.d.ts +33 -0
- package/lib/services/app-insights/index.d.ts +1 -0
- package/lib/services/auth-service/auth.service.d.ts +8 -0
- package/lib/services/auth-service/index.d.ts +1 -0
- package/lib/services/date-service/date.service.d.ts +123 -0
- package/lib/services/date-service/index.d.ts +1 -0
- package/lib/services/index.d.ts +11 -0
- package/lib/services/launch-darkly/index.d.ts +2 -0
- package/lib/services/launch-darkly/launch-darkly.service.d.ts +41 -0
- package/lib/services/launch-darkly/mocks/index.d.ts +2 -0
- package/lib/services/launch-darkly/mocks/launch-darkly-change-flags.mock.d.ts +10 -0
- package/lib/services/launch-darkly/mocks/launch-darkly-flags.mock.d.ts +4 -0
- package/lib/services/permissions-service/index.d.ts +1 -0
- package/lib/services/permissions-service/permissions.service.d.ts +14 -0
- package/lib/services/session-service/constants/index.d.ts +1 -0
- package/lib/services/session-service/constants/session-endpoints.constant.d.ts +2 -0
- package/lib/services/session-service/index.d.ts +4 -0
- package/lib/services/session-service/interfaces/index.d.ts +3 -0
- package/lib/services/session-service/interfaces/session-endpoints.interface.d.ts +4 -0
- package/lib/services/session-service/interfaces/session-token-expiry.interface.d.ts +4 -0
- package/lib/services/session-service/interfaces/session-user-state.interface.d.ts +15 -0
- package/lib/services/session-service/mocks/index.d.ts +2 -0
- package/lib/services/session-service/mocks/session-token-expiry.mock.d.ts +2 -0
- package/lib/services/session-service/mocks/session-user-state.mock.d.ts +2 -0
- package/lib/services/session-service/session.service.d.ts +30 -0
- package/lib/services/sort-service/index.d.ts +3 -0
- package/lib/services/sort-service/interfaces/index.d.ts +2 -0
- package/lib/services/sort-service/interfaces/sort-service-values.interface.d.ts +6 -0
- package/lib/services/sort-service/interfaces/sort-service.interface.d.ts +4 -0
- package/lib/services/sort-service/sort-service.d.ts +64 -0
- package/lib/services/sort-service/types/index.d.ts +1 -0
- package/lib/services/sort-service/types/sort-service.type.d.ts +1 -0
- package/lib/services/transfer-state-service/index.d.ts +3 -0
- package/lib/services/transfer-state-service/interfaces/index.d.ts +3 -0
- package/lib/services/transfer-state-service/interfaces/transfer-state-app-insights-config.interface.d.ts +5 -0
- package/lib/services/transfer-state-service/interfaces/transfer-state-launch-darkly-config.interface.d.ts +5 -0
- package/lib/services/transfer-state-service/interfaces/transfer-state-server-state.interface.d.ts +7 -0
- package/lib/services/transfer-state-service/mocks/index.d.ts +3 -0
- package/lib/services/transfer-state-service/mocks/transfer-state-app-insights-config.mock.d.ts +5 -0
- package/lib/services/transfer-state-service/mocks/transfer-state-launch-darkly-config.mock.d.ts +5 -0
- package/lib/services/transfer-state-service/mocks/transfer-state.mock.d.ts +2 -0
- package/lib/services/transfer-state-service/transfer-state.service.d.ts +23 -0
- package/lib/services/transformation-service/index.d.ts +2 -0
- package/lib/services/transformation-service/interfaces/index.d.ts +1 -0
- package/lib/services/transformation-service/interfaces/transform-item.interface.d.ts +6 -0
- package/lib/services/transformation-service/transformation.service.d.ts +30 -0
- package/lib/services/utils/index.d.ts +1 -0
- package/lib/services/utils/utils.service.d.ts +54 -0
- package/lib/stores/global/global.store.d.ts +35 -0
- package/lib/stores/global/index.d.ts +3 -0
- package/lib/stores/global/interfaces/error-state.interface.d.ts +4 -0
- package/lib/stores/global/interfaces/index.d.ts +1 -0
- package/lib/stores/global/types/global-store.type.d.ts +2 -0
- package/lib/stores/global/types/index.d.ts +1 -0
- package/lib/stores/index.d.ts +1 -0
- package/lib/validators/alphabetical-text/alphabetical-text.validator.d.ts +2 -0
- package/lib/validators/amount/amount.validator.d.ts +2 -0
- package/lib/validators/date-after-year/date-after-year.validator.d.ts +2 -0
- package/lib/validators/date-before/date-before.validator.d.ts +2 -0
- package/lib/validators/date-of-birth/date-of-birth.validator.d.ts +2 -0
- package/lib/validators/future-date/future-date.validator.d.ts +2 -0
- package/lib/validators/index.d.ts +19 -0
- package/lib/validators/invalid-value/invalid-value.validator.d.ts +2 -0
- package/lib/validators/national-insurance-number/national-insurance-number.validator.d.ts +2 -0
- package/lib/validators/numerical-only/numerical-only.validator.d.ts +2 -0
- package/lib/validators/optional-max-length/optional-max-length.validator.d.ts +2 -0
- package/lib/validators/optional-valid-date/optional-valid-date.validator.d.ts +2 -0
- package/lib/validators/optional-valid-email-address/optional-valid-email-address.validator.d.ts +2 -0
- package/lib/validators/optional-valid-telephone/optional-valid-telephone.validator.d.ts +2 -0
- package/lib/validators/over-eighteen/over-eighteen.validator.d.ts +14 -0
- package/lib/validators/past-date/past-date.validator.d.ts +2 -0
- package/lib/validators/special-characters/special-characters.validator.d.ts +2 -0
- package/lib/validators/two-decimal-places/two-decimal-places.validator.d.ts +2 -0
- package/lib/validators/valid-value/valid-value.validator.d.ts +2 -0
- package/package.json +28 -0
- package/public-api.d.ts +10 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DateTime, Duration } from 'luxon';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DateService {
|
|
5
|
+
/**
|
|
6
|
+
* Calculates the difference in minutes between two DateTime objects.
|
|
7
|
+
* @param startDate The start date and time.
|
|
8
|
+
* @param endDate The end date and time.
|
|
9
|
+
* @returns The difference in minutes between the start and end dates.
|
|
10
|
+
*/
|
|
11
|
+
calculateMinutesDifference(startDate, endDate) {
|
|
12
|
+
const minuteDifference = endDate.diff(startDate, 'minutes');
|
|
13
|
+
return Math.max(0, Math.ceil(minuteDifference.minutes));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Converts milliseconds to minutes.
|
|
17
|
+
* @param milliseconds - The number of milliseconds to convert.
|
|
18
|
+
* @returns The equivalent number of minutes.
|
|
19
|
+
*/
|
|
20
|
+
convertMillisecondsToMinutes(milliseconds) {
|
|
21
|
+
const minutes = Duration.fromMillis(milliseconds).as('minutes');
|
|
22
|
+
return Math.max(0, Math.ceil(minutes));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Calculates the age based on the given date of birth.
|
|
26
|
+
* @param dateOfBirth - The date of birth to calculate the age from.
|
|
27
|
+
* @param format - The format of the date of birth. Defaults to 'dd/MM/yyyy'.
|
|
28
|
+
* @returns The calculated age.
|
|
29
|
+
*/
|
|
30
|
+
calculateAge(dateOfBirth, format = 'dd/MM/yyyy') {
|
|
31
|
+
const date = typeof dateOfBirth === 'string' ? this.getFromFormat(dateOfBirth, format) : dateOfBirth;
|
|
32
|
+
return Math.floor(DateTime.now().diff(date, 'years').years);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Checks if a given date is valid.
|
|
36
|
+
* @param dateInput - The date to be checked. It can be a DateTime object, a string, or null.
|
|
37
|
+
* @param format - The format of the date string (default: 'dd/MM/yyyy').
|
|
38
|
+
* @returns A boolean indicating whether the date is valid or not.
|
|
39
|
+
*/
|
|
40
|
+
isValidDate(dateInput, format = 'dd/MM/yyyy') {
|
|
41
|
+
if (dateInput) {
|
|
42
|
+
const date = typeof dateInput === 'string' ? this.getFromFormat(dateInput, format) : dateInput;
|
|
43
|
+
return date.isValid;
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns a string representation of a date subtracted by the given duration.
|
|
49
|
+
* @param duration A DurationLikeObject representing the amount of time to subtract from the current date.
|
|
50
|
+
* @returns A string representing the subtracted date in the format specified by the current locale.
|
|
51
|
+
*/
|
|
52
|
+
getPreviousDate(duration) {
|
|
53
|
+
return DateTime.now().minus(duration).setLocale('en-gb').toLocaleString();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parses a string value into a DateTime object based on the specified format.
|
|
57
|
+
* @param value - The string value to parse.
|
|
58
|
+
* @param format - The format of the string value.
|
|
59
|
+
* @returns A DateTime object representing the parsed value.
|
|
60
|
+
*/
|
|
61
|
+
getFromFormat(value, format) {
|
|
62
|
+
return DateTime.fromFormat(value, format);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Parses a string value into a native JavaScript Date object based on the specified format.
|
|
66
|
+
* @param value - The string value to parse.
|
|
67
|
+
* @param format - The format of the string value.
|
|
68
|
+
* @returns A Date object representing the parsed value, or null if parsing fails.
|
|
69
|
+
*/
|
|
70
|
+
getDateFromFormat(value, format) {
|
|
71
|
+
const dateTime = DateTime.fromFormat(value, format);
|
|
72
|
+
return dateTime.isValid ? dateTime.toJSDate() : null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Converts a DateTime value to a formatted string.
|
|
76
|
+
*
|
|
77
|
+
* @param value - The DateTime value to format.
|
|
78
|
+
* @param format - The format string to apply to the DateTime value.
|
|
79
|
+
* @returns The formatted string representation of the DateTime value.
|
|
80
|
+
*/
|
|
81
|
+
toFormat(value, format) {
|
|
82
|
+
return value.toFormat(format);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Converts a given Date object to a formatted string based on the specified format.
|
|
86
|
+
*
|
|
87
|
+
* @param value - The Date object to be formatted.
|
|
88
|
+
* @param format - The string format to apply to the Date object.
|
|
89
|
+
* @returns The formatted date string.
|
|
90
|
+
*/
|
|
91
|
+
toDateStringFormat(value, format) {
|
|
92
|
+
return DateTime.fromJSDate(value).toFormat(format);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Converts a string in ISO format to a DateTime object.
|
|
96
|
+
* @param value - The string value in ISO format.
|
|
97
|
+
* @returns A DateTime object representing the given value.
|
|
98
|
+
*/
|
|
99
|
+
getFromIso(value) {
|
|
100
|
+
return DateTime.fromISO(value);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Returns the current date and time.
|
|
104
|
+
* @returns {DateTime} The current date and time.
|
|
105
|
+
*/
|
|
106
|
+
getDateNow() {
|
|
107
|
+
return DateTime.now();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Adds a duration to a given date and returns the result in the specified format.
|
|
111
|
+
* @param date - The date to which the duration will be added.
|
|
112
|
+
* @param years - The number of years to add to the date (default: 0).
|
|
113
|
+
* @param months - The number of months to add to the date (default: 0).
|
|
114
|
+
* @param weeks - The number of weeks to add to the date (default: 0).
|
|
115
|
+
* @param days - The number of days to add to the date (default: 0).
|
|
116
|
+
* @param format - The format in which the resulting date will be returned (default: 'dd/MM/yyyy').
|
|
117
|
+
* @returns The resulting date in the specified format.
|
|
118
|
+
*/
|
|
119
|
+
addDurationToDate(date, years = 0, months = 0, weeks = 0, days = 0, format = 'dd/MM/yyyy') {
|
|
120
|
+
const dateObj = this.getFromFormat(date, format);
|
|
121
|
+
const newDate = dateObj.plus({ years, months, weeks, days });
|
|
122
|
+
return newDate.toFormat(format);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Calculates the number of days between two dates.
|
|
126
|
+
* @param startDate - The start date in the specified format.
|
|
127
|
+
* @param endDate - The end date in the specified format.
|
|
128
|
+
* @param format - The format of the dates (default: 'dd/MM/yyyy').
|
|
129
|
+
* @returns The number of days between the start and end dates.
|
|
130
|
+
*/
|
|
131
|
+
calculateDaysBetweenDates(startDate, endDate, format = 'dd/MM/yyyy') {
|
|
132
|
+
const start = this.getFromFormat(startDate, format);
|
|
133
|
+
const end = this.getFromFormat(endDate, format);
|
|
134
|
+
const diff = end.diff(start, 'days');
|
|
135
|
+
return diff.days;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Checks if a given date is in the past.
|
|
139
|
+
* @param date - The date to check.
|
|
140
|
+
* @param format - The format of the date string. Defaults to 'dd/MM/yyyy'.
|
|
141
|
+
* @returns True if the date is in the past, false otherwise.
|
|
142
|
+
*/
|
|
143
|
+
isDateInThePast(date, format = 'dd/MM/yyyy') {
|
|
144
|
+
return this.getFromFormat(date, format) < DateTime.now();
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Checks if a given date is in the future.
|
|
148
|
+
* @param date - The date to check.
|
|
149
|
+
* @param yearsInTheFuture - Optional. The number of years in the future to compare against. If not provided, the current date is used.
|
|
150
|
+
* @param format - Optional. The format of the input date. Defaults to 'dd/MM/yyyy'.
|
|
151
|
+
* @returns True if the date is in the future, false otherwise.
|
|
152
|
+
*/
|
|
153
|
+
isDateInTheFuture(date, yearsInTheFuture, format = 'dd/MM/yyyy') {
|
|
154
|
+
const now = DateTime.now();
|
|
155
|
+
const dateValue = this.getFromFormat(date, format);
|
|
156
|
+
if (yearsInTheFuture) {
|
|
157
|
+
const futureDate = now.plus({ years: yearsInTheFuture });
|
|
158
|
+
return dateValue > futureDate;
|
|
159
|
+
}
|
|
160
|
+
return dateValue > now;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Converts a date string from one format to another.
|
|
164
|
+
*
|
|
165
|
+
* @param date - The date string to be converted.
|
|
166
|
+
* @param fromFormat - The format of the input date string.
|
|
167
|
+
* @param toFormat - The desired format of the output date string.
|
|
168
|
+
* @returns The date string in the desired format.
|
|
169
|
+
*/
|
|
170
|
+
getFromFormatToFormat(date, fromFormat, toFormat) {
|
|
171
|
+
return this.getFromFormat(date, fromFormat).toFormat(toFormat);
|
|
172
|
+
}
|
|
173
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
174
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateService, providedIn: 'root' });
|
|
175
|
+
}
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateService, decorators: [{
|
|
177
|
+
type: Injectable,
|
|
178
|
+
args: [{
|
|
179
|
+
providedIn: 'root',
|
|
180
|
+
}]
|
|
181
|
+
}] });
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3BhbC1mcm9udGVuZC1jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9kYXRlLXNlcnZpY2UvZGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQXNCLE1BQU0sT0FBTyxDQUFDOztBQUsvRCxNQUFNLE9BQU8sV0FBVztJQUN0Qjs7Ozs7T0FLRztJQUNJLDBCQUEwQixDQUFDLFNBQW1CLEVBQUUsT0FBaUI7UUFDdEUsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDRCQUE0QixDQUFDLFlBQW9CO1FBQ3RELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFlBQVksQ0FBQyxXQUE4QixFQUFFLFNBQWlCLFlBQVk7UUFDL0UsTUFBTSxJQUFJLEdBQUcsT0FBTyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFD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cmUnO1xuaW1wb3J0IHsgRGF0ZVRpbWUsIER1cmF0aW9uLCBEdXJhdGlvbkxpa2VPYmplY3QgfSBmcm9tICdsdXhvbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlU2VydmljZSB7XG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBkaWZmZXJlbmNlIGluIG1pbnV0ZXMgYmV0d2VlbiB0d28gRGF0ZVRpbWUgb2JqZWN0cy5cbiAgICogQHBhcmFtIHN0YXJ0RGF0ZSBUaGUgc3RhcnQgZGF0ZSBhbmQgdGltZS5cbiAgICogQHBhcmFtIGVuZERhdGUgVGhlIGVuZCBkYXRlIGFuZCB0aW1lLlxuICAgKiBAcmV0dXJucyBUaGUgZGlmZmVyZW5jZSBpbiBtaW51dGVzIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgY2FsY3VsYXRlTWludXRlc0RpZmZlcmVuY2Uoc3RhcnREYXRlOiBEYXRlVGltZSwgZW5kRGF0ZTogRGF0ZVRpbWUpOiBudW1iZXIge1xuICAgIGNvbnN0IG1pbnV0ZURpZmZlcmVuY2UgPSBlbmREYXRlLmRpZmYoc3RhcnREYXRlLCAnbWludXRlcycpO1xuICAgIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLmNlaWwobWludXRlRGlmZmVyZW5jZS5taW51dGVzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgbWlsbGlzZWNvbmRzIHRvIG1pbnV0ZXMuXG4gICAqIEBwYXJhbSBtaWxsaXNlY29uZHMgLSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyBUaGUgZXF1aXZhbGVudCBudW1iZXIgb2YgbWludXRlcy5cbiAgICovXG4gIHB1YmxpYyBjb252ZXJ0TWlsbGlzZWNvbmRzVG9NaW51dGVzKG1pbGxpc2Vjb25kczogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBtaW51dGVzID0gRHVyYXRpb24uZnJvbU1pbGxpcyhtaWxsaXNlY29uZHMpLmFzKCdtaW51dGVzJyk7XG4gICAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGguY2VpbChtaW51dGVzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgYWdlIGJhc2VkIG9uIHRoZSBnaXZlbiBkYXRlIG9mIGJpcnRoLlxuICAgKiBAcGFyYW0gZGF0ZU9mQmlydGggLSBUaGUgZGF0ZSBvZiBiaXJ0aCB0byBjYWxjdWxhdGUgdGhlIGFnZSBmcm9tLlxuICAgKiBAcGFyYW0gZm9ybWF0IC0gVGhlIGZvcm1hdCBvZiB0aGUgZGF0ZSBvZiBiaXJ0aC4gRGVmYXVsdHMgdG8gJ2RkL01NL3l5eXknLlxuICAgKiBAcmV0dXJucyBUaGUgY2FsY3VsYXRlZCBhZ2UuXG4gICAqL1xuICBwdWJsaWMgY2FsY3VsYXRlQWdlKGRhdGVPZkJpcnRoOiBEYXRlVGltZSB8IHN0cmluZywgZm9ybWF0OiBzdHJpbmcgPSAnZGQvTU0veXl5eScpOiBudW1iZXIge1xuICAgIGNvbnN0IGRhdGUgPSB0eXBlb2YgZGF0ZU9mQmlydGggPT09ICdzdHJpbmcnID8gdGhpcy5nZXRGcm9tRm9ybWF0KGRhdGVPZkJpcnRoLCBmb3JtYXQpIDogZGF0ZU9mQmlydGg7XG5cbiAgICByZXR1cm4gTWF0aC5mbG9vcihEYXRlVGltZS5ub3coKS5kaWZmKGRhdGUsICd5ZWFycycpLnllYXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBnaXZlbiBkYXRlIGlzIHZhbGlkLlxuICAgKiBAcGFyYW0gZGF0ZUlucHV0IC0gVGhlIGRhdGUgdG8gYmUgY2hlY2tlZC4gSXQgY2FuIGJlIGEgRGF0ZVRpbWUgb2JqZWN0LCBhIHN0cmluZywgb3IgbnVsbC5cbiAgICogQHBhcmFtIGZvcm1hdCAtIFRoZSBmb3JtYXQgb2YgdGhlIGRhdGUgc3RyaW5nIChkZWZhdWx0OiAnZGQvTU0veXl5eScpLlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkYXRlIGlzIHZhbGlkIG9yIG5vdC5cbiAgICovXG4gIHB1YmxpYyBpc1ZhbGlkRGF0ZShkYXRlSW5wdXQ6IERhdGVUaW1lIHwgc3RyaW5nIHwgbnVsbCwgZm9ybWF0OiBzdHJpbmcgPSAnZGQvTU0veXl5eScpOiBib29sZWFuIHtcbiAgICBpZiAoZGF0ZUlucHV0KSB7XG4gICAgICBjb25zdCBkYXRlID0gdHlwZW9mIGRhdGVJbnB1dCA9PT0gJ3N0cmluZycgPyB0aGlzLmdldEZyb21Gb3JtYXQoZGF0ZUlucHV0LCBmb3JtYXQpIDogZGF0ZUlucHV0O1xuICAgICAgcmV0dXJuIGRhdGUuaXNWYWxpZDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBkYXRlIHN1YnRyYWN0ZWQgYnkgdGhlIGdpdmVuIGR1cmF0aW9uLlxuICAgKiBAcGFyYW0gZHVyYXRpb24gQSBEdXJhdGlvbkxpa2VPYmplY3QgcmVwcmVzZW50aW5nIHRoZSBhbW91bnQgb2YgdGltZSB0byBzdWJ0cmFjdCBmcm9tIHRoZSBjdXJyZW50IGRhdGUuXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgc3VidHJhY3RlZCBkYXRlIGluIHRoZSBmb3JtYXQgc3BlY2lmaWVkIGJ5IHRoZSBjdXJyZW50IGxvY2FsZS5cbiAgICovXG4gIHB1YmxpYyBnZXRQcmV2aW91c0RhdGUoZHVyYXRpb246IER1cmF0aW9uTGlrZU9iamVjdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIERhdGVUaW1lLm5vdygpLm1pbnVzKGR1cmF0aW9uKS5zZXRMb2NhbGUoJ2VuLWdiJykudG9Mb2NhbGVTdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgYSBzdHJpbmcgdmFsdWUgaW50byBhIERhdGVUaW1lIG9iamVjdCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIGZvcm1hdC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyB2YWx1ZSB0byBwYXJzZS5cbiAgICogQHBhcmFtIGZvcm1hdCAtIFRoZSBmb3JtYXQgb2YgdGhlIHN0cmluZyB2YWx1ZS5cbiAgICogQHJldHVybnMgQSBEYXRlVGltZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBwYXJzZWQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0RnJvbUZvcm1hdCh2YWx1ZTogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyk6IERhdGVUaW1lPHRydWU+IHwgRGF0ZVRpbWU8ZmFsc2U+IHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdCh2YWx1ZSwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgYSBzdHJpbmcgdmFsdWUgaW50byBhIG5hdGl2ZSBKYXZhU2NyaXB0IERhdGUgb2JqZWN0IGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgZm9ybWF0LlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHZhbHVlIHRvIHBhcnNlLlxuICAgKiBAcGFyYW0gZm9ybWF0IC0gVGhlIGZvcm1hdCBvZiB0aGUgc3RyaW5nIHZhbHVlLlxuICAgKiBAcmV0dXJucyBBIERhdGUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgcGFyc2VkIHZhbHVlLCBvciBudWxsIGlmIHBhcnNpbmcgZmFpbHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0ZUZyb21Gb3JtYXQodmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBEYXRlIHwgbnVsbCB7XG4gICAgY29uc3QgZGF0ZVRpbWUgPSBEYXRlVGltZS5mcm9tRm9ybWF0KHZhbHVlLCBmb3JtYXQpO1xuICAgIHJldHVybiBkYXRlVGltZS5pc1ZhbGlkID8gZGF0ZVRpbWUudG9KU0RhdGUoKSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBEYXRlVGltZSB2YWx1ZSB0byBhIGZvcm1hdHRlZCBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBEYXRlVGltZSB2YWx1ZSB0byBmb3JtYXQuXG4gICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgZm9ybWF0IHN0cmluZyB0byBhcHBseSB0byB0aGUgRGF0ZVRpbWUgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBEYXRlVGltZSB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyB0b0Zvcm1hdCh2YWx1ZTogRGF0ZVRpbWU8dHJ1ZT4gfCBEYXRlVGltZTxmYWxzZT4sIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUudG9Gb3JtYXQoZm9ybWF0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIGdpdmVuIERhdGUgb2JqZWN0IHRvIGEgZm9ybWF0dGVkIHN0cmluZyBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIGZvcm1hdC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIERhdGUgb2JqZWN0IHRvIGJlIGZvcm1hdHRlZC5cbiAgICogQHBhcmFtIGZvcm1hdCAtIFRoZSBzdHJpbmcgZm9ybWF0IHRvIGFwcGx5IHRvIHRoZSBEYXRlIG9iamVjdC5cbiAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBkYXRlIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyB0b0RhdGVTdHJpbmdGb3JtYXQodmFsdWU6IERhdGUsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUpTRGF0ZSh2YWx1ZSkudG9Gb3JtYXQoZm9ybWF0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIHN0cmluZyBpbiBJU08gZm9ybWF0IHRvIGEgRGF0ZVRpbWUgb2JqZWN0LlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHZhbHVlIGluIElTTyBmb3JtYXQuXG4gICAqIEByZXR1cm5zIEEgRGF0ZVRpbWUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0RnJvbUlzbyh2YWx1ZTogc3RyaW5nKTogRGF0ZVRpbWUge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tSVNPKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUuXG4gICAqIEByZXR1cm5zIHtEYXRlVGltZX0gVGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZS5cbiAgICovXG4gIHB1YmxpYyBnZXREYXRlTm93KCk6IERhdGVUaW1lIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUubm93KCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGR1cmF0aW9uIHRvIGEgZ2l2ZW4gZGF0ZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGluIHRoZSBzcGVjaWZpZWQgZm9ybWF0LlxuICAgKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIHdoaWNoIHRoZSBkdXJhdGlvbiB3aWxsIGJlIGFkZGVkLlxuICAgKiBAcGFyYW0geWVhcnMgLSBUaGUgbnVtYmVyIG9mIHllYXJzIHRvIGFkZCB0byB0aGUgZGF0ZSAoZGVmYXVsdDogMCkuXG4gICAqIEBwYXJhbSBtb250aHMgLSBUaGUgbnVtYmVyIG9mIG1vbnRocyB0byBhZGQgdG8gdGhlIGRhdGUgKGRlZmF1bHQ6IDApLlxuICAgKiBAcGFyYW0gd2Vla3MgLSBUaGUgbnVtYmVyIG9mIHdlZWtzIHRvIGFkZCB0byB0aGUgZGF0ZSAoZGVmYXVsdDogMCkuXG4gICAqIEBwYXJhbSBkYXlzIC0gVGhlIG51bWJlciBvZiBkYXlzIHRvIGFkZCB0byB0aGUgZGF0ZSAoZGVmYXVsdDogMCkuXG4gICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgZm9ybWF0IGluIHdoaWNoIHRoZSByZXN1bHRpbmcgZGF0ZSB3aWxsIGJlIHJldHVybmVkIChkZWZhdWx0OiAnZGQvTU0veXl5eScpLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0aW5nIGRhdGUgaW4gdGhlIHNwZWNpZmllZCBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgYWRkRHVyYXRpb25Ub0RhdGUoXG4gICAgZGF0ZTogc3RyaW5nLFxuICAgIHllYXJzOiBudW1iZXIgPSAwLFxuICAgIG1vbnRoczogbnVtYmVyID0gMCxcbiAgICB3ZWVrczogbnVtYmVyID0gMCxcbiAgICBkYXlzOiBudW1iZXIgPSAwLFxuICAgIGZvcm1hdDogc3RyaW5nID0gJ2RkL01NL3l5eXknLFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGVPYmogPSB0aGlzLmdldEZyb21Gb3JtYXQoZGF0ZSwgZm9ybWF0KTtcbiAgICBjb25zdCBuZXdEYXRlID0gZGF0ZU9iai5wbHVzKHsgeWVhcnMsIG1vbnRocywgd2Vla3MsIGRheXMgfSk7XG4gICAgcmV0dXJuIG5ld0RhdGUudG9Gb3JtYXQoZm9ybWF0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBudW1iZXIgb2YgZGF5cyBiZXR3ZWVuIHR3byBkYXRlcy5cbiAgICogQHBhcmFtIHN0YXJ0RGF0ZSAtIFRoZSBzdGFydCBkYXRlIGluIHRoZSBzcGVjaWZpZWQgZm9ybWF0LlxuICAgKiBAcGFyYW0gZW5kRGF0ZSAtIFRoZSBlbmQgZGF0ZSBpbiB0aGUgc3BlY2lmaWVkIGZvcm1hdC5cbiAgICogQHBhcmFtIGZvcm1hdCAtIFRoZSBmb3JtYXQgb2YgdGhlIGRhdGVzIChkZWZhdWx0OiAnZGQvTU0veXl5eScpLlxuICAgKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIGRheXMgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCBkYXRlcy5cbiAgICovXG4gIHB1YmxpYyBjYWxjdWxhdGVEYXlzQmV0d2VlbkRhdGVzKHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nID0gJ2RkL01NL3l5eXknKTogbnVtYmVyIHtcbiAgICBjb25zdCBzdGFydCA9IHRoaXMuZ2V0RnJvbUZvcm1hdChzdGFydERhdGUsIGZvcm1hdCk7XG4gICAgY29uc3QgZW5kID0gdGhpcy5nZXRGcm9tRm9ybWF0KGVuZERhdGUsIGZvcm1hdCk7XG4gICAgY29uc3QgZGlmZiA9IGVuZC5kaWZmKHN0YXJ0LCAnZGF5cycpO1xuICAgIHJldHVybiBkaWZmLmRheXM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgZ2l2ZW4gZGF0ZSBpcyBpbiB0aGUgcGFzdC5cbiAgICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIGZvcm1hdCAtIFRoZSBmb3JtYXQgb2YgdGhlIGRhdGUgc3RyaW5nLiBEZWZhdWx0cyB0byAnZGQvTU0veXl5eScuXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGRhdGUgaXMgaW4gdGhlIHBhc3QsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBpc0RhdGVJblRoZVBhc3QoZGF0ZTogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyA9ICdkZC9NTS95eXl5Jyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldEZyb21Gb3JtYXQoZGF0ZSwgZm9ybWF0KSA8IERhdGVUaW1lLm5vdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGdpdmVuIGRhdGUgaXMgaW4gdGhlIGZ1dHVyZS5cbiAgICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHllYXJzSW5UaGVGdXR1cmUgLSBPcHRpb25hbC4gVGhlIG51bWJlciBvZiB5ZWFycyBpbiB0aGUgZnV0dXJlIHRvIGNvbXBhcmUgYWdhaW5zdC4gSWYgbm90IHByb3ZpZGVkLCB0aGUgY3VycmVudCBkYXRlIGlzIHVzZWQuXG4gICAqIEBwYXJhbSBmb3JtYXQgLSBPcHRpb25hbC4gVGhlIGZvcm1hdCBvZiB0aGUgaW5wdXQgZGF0ZS4gRGVmYXVsdHMgdG8gJ2RkL01NL3l5eXknLlxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBkYXRlIGlzIGluIHRoZSBmdXR1cmUsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBpc0RhdGVJblRoZUZ1dHVyZShkYXRlOiBzdHJpbmcsIHllYXJzSW5UaGVGdXR1cmU/OiBudW1iZXIsIGZvcm1hdDogc3RyaW5nID0gJ2RkL01NL3l5eXknKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZVRpbWUubm93KCk7XG4gICAgY29uc3QgZGF0ZVZhbHVlID0gdGhpcy5nZXRGcm9tRm9ybWF0KGRhdGUsIGZvcm1hdCk7XG5cbiAgICBpZiAoeWVhcnNJblRoZUZ1dHVyZSkge1xuICAgICAgY29uc3QgZnV0dXJlRGF0ZSA9IG5vdy5wbHVzKHsgeWVhcnM6IHllYXJzSW5UaGVGdXR1cmUgfSk7XG4gICAgICByZXR1cm4gZGF0ZVZhbHVlID4gZnV0dXJlRGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0ZVZhbHVlID4gbm93O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgZGF0ZSBzdHJpbmcgZnJvbSBvbmUgZm9ybWF0IHRvIGFub3RoZXIuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgc3RyaW5nIHRvIGJlIGNvbnZlcnRlZC5cbiAgICogQHBhcmFtIGZyb21Gb3JtYXQgLSBUaGUgZm9ybWF0IG9mIHRoZSBpbnB1dCBkYXRlIHN0cmluZy5cbiAgICogQHBhcmFtIHRvRm9ybWF0IC0gVGhlIGRlc2lyZWQgZm9ybWF0IG9mIHRoZSBvdXRwdXQgZGF0ZSBzdHJpbmcuXG4gICAqIEByZXR1cm5zIFRoZSBkYXRlIHN0cmluZyBpbiB0aGUgZGVzaXJlZCBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgZ2V0RnJvbUZvcm1hdFRvRm9ybWF0KGRhdGU6IHN0cmluZywgZnJvbUZvcm1hdDogc3RyaW5nLCB0b0Zvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGcm9tRm9ybWF0KGRhdGUsIGZyb21Gb3JtYXQpLnRvRm9ybWF0KHRvRm9ybWF0KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// SERVICE
|
|
2
|
+
export * from './date.service';
|
|
3
|
+
// CONSTANTS, INTERFACES, AND MOCKS
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2RhdGUtc2VydmljZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTRVJWSUNFXG5leHBvcnQgKiBmcm9tICcuL2RhdGUuc2VydmljZSc7XG5cbi8vIENPTlNUQU5UUywgSU5URVJGQUNFUywgQU5EIE1PQ0tTXG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './app-initializer-service';
|
|
2
|
+
export * from './app-insights';
|
|
3
|
+
export * from './auth-service';
|
|
4
|
+
export * from './date-service';
|
|
5
|
+
export * from './launch-darkly';
|
|
6
|
+
export * from './permissions-service';
|
|
7
|
+
export * from './session-service';
|
|
8
|
+
export * from './sort-service';
|
|
9
|
+
export * from './transfer-state-service';
|
|
10
|
+
export * from './transformation-service';
|
|
11
|
+
export * from './utils';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcC1pbml0aWFsaXplci1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwLWluc2lnaHRzJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGF1bmNoLWRhcmtseSc7XG5leHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb25zLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXNzaW9uLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zb3J0LXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zlci1zdGF0ZS1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmb3JtYXRpb24tc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// SERVICE
|
|
2
|
+
export * from './launch-darkly.service';
|
|
3
|
+
// CONSTANTS, INTERFACES, AND MOCKS
|
|
4
|
+
export * from './mocks';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2xhdW5jaC1kYXJrbHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsbUNBQW1DO0FBQ25DLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU0VSVklDRVxuZXhwb3J0ICogZnJvbSAnLi9sYXVuY2gtZGFya2x5LnNlcnZpY2UnO1xuXG4vLyBDT05TVEFOVFMsIElOVEVSRkFDRVMsIEFORCBNT0NLU1xuZXhwb3J0ICogZnJvbSAnLi9tb2Nrcyc7XG4iXX0=
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { initialize } from 'launchdarkly-js-client-sdk';
|
|
3
|
+
import { GlobalStore } from '../../stores';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class LaunchDarklyService {
|
|
6
|
+
globalStore = inject(GlobalStore);
|
|
7
|
+
ldClient;
|
|
8
|
+
/**
|
|
9
|
+
* Sets the LaunchDarkly flags by updating the featureFlags in the state service.
|
|
10
|
+
*/
|
|
11
|
+
setLaunchDarklyFlags() {
|
|
12
|
+
if (this.ldClient) {
|
|
13
|
+
this.globalStore.setFeatureFlags(this.ldClient.allFlags());
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Formats the LDFlagChangeset into an LDFlagSet.
|
|
18
|
+
*
|
|
19
|
+
* @param flags - The LDFlagChangeset to be formatted.
|
|
20
|
+
* @returns The formatted LDFlagSet.
|
|
21
|
+
*/
|
|
22
|
+
formatChangeFlags(flags) {
|
|
23
|
+
return Object.keys(flags).reduce((flag, key) => {
|
|
24
|
+
flag[key] = flags[key].current;
|
|
25
|
+
return flag;
|
|
26
|
+
}, {});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Closes the LaunchDarkly client if it is open.
|
|
30
|
+
*/
|
|
31
|
+
closeLaunchDarklyClient() {
|
|
32
|
+
if (this.ldClient) {
|
|
33
|
+
this.ldClient.close();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Initializes the LaunchDarkly change listener.
|
|
38
|
+
* This method listens for changes in feature flags and updates the state accordingly.
|
|
39
|
+
*/
|
|
40
|
+
initializeLaunchDarklyChangeListener() {
|
|
41
|
+
if (this.ldClient && this.globalStore.launchDarklyConfig().stream) {
|
|
42
|
+
this.ldClient.on('change', (flags) => {
|
|
43
|
+
const updatedFlags = {
|
|
44
|
+
...this.globalStore.featureFlags(),
|
|
45
|
+
...this.formatChangeFlags(flags),
|
|
46
|
+
};
|
|
47
|
+
this.globalStore.setFeatureFlags(updatedFlags);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Initializes the LaunchDarkly flags and sets them.
|
|
53
|
+
* If the LD client is already initialized, it waits for initialization and then sets the flags.
|
|
54
|
+
* If the LD client is not initialized, it returns a resolved promise.
|
|
55
|
+
* @returns A promise that resolves when the flags are set.
|
|
56
|
+
*/
|
|
57
|
+
async initializeLaunchDarklyFlags() {
|
|
58
|
+
if (this.ldClient) {
|
|
59
|
+
return this.ldClient
|
|
60
|
+
.waitForInitialization()
|
|
61
|
+
.then(() => this.setLaunchDarklyFlags())
|
|
62
|
+
.catch((err) => {
|
|
63
|
+
throw err;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return Promise.resolve();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Initializes the LaunchDarkly client.
|
|
70
|
+
* If a stored LaunchDarkly client ID exists, it initializes the client with the ID and anonymous mode enabled.
|
|
71
|
+
*/
|
|
72
|
+
initializeLaunchDarklyClient() {
|
|
73
|
+
if (this.globalStore.launchDarklyConfig()) {
|
|
74
|
+
const { enabled, clientId } = this.globalStore.launchDarklyConfig();
|
|
75
|
+
if (enabled && clientId) {
|
|
76
|
+
this.ldClient = initialize(clientId, {
|
|
77
|
+
anonymous: true,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
ngOnDestroy() {
|
|
83
|
+
this.closeLaunchDarklyClient();
|
|
84
|
+
}
|
|
85
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LaunchDarklyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
86
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LaunchDarklyService, providedIn: 'root' });
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LaunchDarklyService, decorators: [{
|
|
89
|
+
type: Injectable,
|
|
90
|
+
args: [{
|
|
91
|
+
providedIn: 'root',
|
|
92
|
+
}]
|
|
93
|
+
}] });
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLWRhcmtseS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3BhbC1mcm9udGVuZC1jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9sYXVuY2gtZGFya2x5L2xhdW5jaC1kYXJrbHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUF3QyxNQUFNLDRCQUE0QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFDYixXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLFFBQVEsQ0FBWTtJQUU1Qjs7T0FFRztJQUNLLG9CQUFvQjtRQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGlCQUFpQixDQUFDLEtBQXNCO1FBQzlDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFlLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQ7O09BRUc7SUFDSyx1QkFBdUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLG9DQUFvQztRQUN6QyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQXNCLEVBQUUsRUFBRTtnQkFDcEQsTUFBTSxZQUFZLEdBQUc7b0JBQ25CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7b0JBQ2xDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztpQkFDakMsQ0FBQztnQkFDRixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsMkJBQTJCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVE7aUJBQ2pCLHFCQUFxQixFQUFFO2lCQUN2QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7aUJBQ3ZDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLE1BQU0sR0FBRyxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLDRCQUE0QjtRQUNqQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO1lBQzFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRXBFLElBQUksT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ25DLFNBQVMsRUFBRSxJQUFJO2lCQUNoQixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQzt3R0F4RlUsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbml0aWFsaXplLCBMRENsaWVudCwgTERGbGFnQ2hhbmdlc2V0LCBMREZsYWdTZXQgfSBmcm9tICdsYXVuY2hkYXJrbHktanMtY2xpZW50LXNkayc7XG5pbXBvcnQgeyBHbG9iYWxTdG9yZSB9IGZyb20gJy4uLy4uL3N0b3Jlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMYXVuY2hEYXJrbHlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBnbG9iYWxTdG9yZSA9IGluamVjdChHbG9iYWxTdG9yZSk7XG4gIHByaXZhdGUgbGRDbGllbnQhOiBMRENsaWVudDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgTGF1bmNoRGFya2x5IGZsYWdzIGJ5IHVwZGF0aW5nIHRoZSBmZWF0dXJlRmxhZ3MgaW4gdGhlIHN0YXRlIHNlcnZpY2UuXG4gICAqL1xuICBwcml2YXRlIHNldExhdW5jaERhcmtseUZsYWdzKCkge1xuICAgIGlmICh0aGlzLmxkQ2xpZW50KSB7XG4gICAgICB0aGlzLmdsb2JhbFN0b3JlLnNldEZlYXR1cmVGbGFncyh0aGlzLmxkQ2xpZW50LmFsbEZsYWdzKCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXRzIHRoZSBMREZsYWdDaGFuZ2VzZXQgaW50byBhbiBMREZsYWdTZXQuXG4gICAqXG4gICAqIEBwYXJhbSBmbGFncyAtIFRoZSBMREZsYWdDaGFuZ2VzZXQgdG8gYmUgZm9ybWF0dGVkLlxuICAgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIExERmxhZ1NldC5cbiAgICovXG4gIHByaXZhdGUgZm9ybWF0Q2hhbmdlRmxhZ3MoZmxhZ3M6IExERmxhZ0NoYW5nZXNldCk6IExERmxhZ1NldCB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZsYWdzKS5yZWR1Y2UoKGZsYWc6IExERmxhZ1NldCwga2V5KSA9PiB7XG4gICAgICBmbGFnW2tleV0gPSBmbGFnc1trZXldLmN1cnJlbnQ7XG4gICAgICByZXR1cm4gZmxhZztcbiAgICB9LCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBMYXVuY2hEYXJrbHkgY2xpZW50IGlmIGl0IGlzIG9wZW4uXG4gICAqL1xuICBwcml2YXRlIGNsb3NlTGF1bmNoRGFya2x5Q2xpZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxkQ2xpZW50KSB7XG4gICAgICB0aGlzLmxkQ2xpZW50LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBMYXVuY2hEYXJrbHkgY2hhbmdlIGxpc3RlbmVyLlxuICAgKiBUaGlzIG1ldGhvZCBsaXN0ZW5zIGZvciBjaGFuZ2VzIGluIGZlYXR1cmUgZmxhZ3MgYW5kIHVwZGF0ZXMgdGhlIHN0YXRlIGFjY29yZGluZ2x5LlxuICAgKi9cbiAgcHVibGljIGluaXRpYWxpemVMYXVuY2hEYXJrbHlDaGFuZ2VMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy5sZENsaWVudCAmJiB0aGlzLmdsb2JhbFN0b3JlLmxhdW5jaERhcmtseUNvbmZpZygpLnN0cmVhbSkge1xuICAgICAgdGhpcy5sZENsaWVudC5vbignY2hhbmdlJywgKGZsYWdzOiBMREZsYWdDaGFuZ2VzZXQpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZEZsYWdzID0ge1xuICAgICAgICAgIC4uLnRoaXMuZ2xvYmFsU3RvcmUuZmVhdHVyZUZsYWdzKCksXG4gICAgICAgICAgLi4udGhpcy5mb3JtYXRDaGFuZ2VGbGFncyhmbGFncyksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZ2xvYmFsU3RvcmUuc2V0RmVhdHVyZUZsYWdzKHVwZGF0ZWRGbGFncyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIExhdW5jaERhcmtseSBmbGFncyBhbmQgc2V0cyB0aGVtLlxuICAgKiBJZiB0aGUgTEQgY2xpZW50IGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQsIGl0IHdhaXRzIGZvciBpbml0aWFsaXphdGlvbiBhbmQgdGhlbiBzZXRzIHRoZSBmbGFncy5cbiAgICogSWYgdGhlIExEIGNsaWVudCBpcyBub3QgaW5pdGlhbGl6ZWQsIGl0IHJldHVybnMgYSByZXNvbHZlZCBwcm9taXNlLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmbGFncyBhcmUgc2V0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemVMYXVuY2hEYXJrbHlGbGFncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5sZENsaWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMubGRDbGllbnRcbiAgICAgICAgLndhaXRGb3JJbml0aWFsaXphdGlvbigpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuc2V0TGF1bmNoRGFya2x5RmxhZ3MoKSlcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgTGF1bmNoRGFya2x5IGNsaWVudC5cbiAgICogSWYgYSBzdG9yZWQgTGF1bmNoRGFya2x5IGNsaWVudCBJRCBleGlzdHMsIGl0IGluaXRpYWxpemVzIHRoZSBjbGllbnQgd2l0aCB0aGUgSUQgYW5kIGFub255bW91cyBtb2RlIGVuYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgaW5pdGlhbGl6ZUxhdW5jaERhcmtseUNsaWVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nbG9iYWxTdG9yZS5sYXVuY2hEYXJrbHlDb25maWcoKSkge1xuICAgICAgY29uc3QgeyBlbmFibGVkLCBjbGllbnRJZCB9ID0gdGhpcy5nbG9iYWxTdG9yZS5sYXVuY2hEYXJrbHlDb25maWcoKTtcblxuICAgICAgaWYgKGVuYWJsZWQgJiYgY2xpZW50SWQpIHtcbiAgICAgICAgdGhpcy5sZENsaWVudCA9IGluaXRpYWxpemUoY2xpZW50SWQsIHtcbiAgICAgICAgICBhbm9ueW1vdXM6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VMYXVuY2hEYXJrbHlDbGllbnQoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './launch-darkly-change-flags.mock';
|
|
2
|
+
export * from './launch-darkly-flags.mock';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2xhdW5jaC1kYXJrbHkvbW9ja3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXVuY2gtZGFya2x5LWNoYW5nZS1mbGFncy5tb2NrJztcbmV4cG9ydCAqIGZyb20gJy4vbGF1bmNoLWRhcmtseS1mbGFncy5tb2NrJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const LAUNCH_DARKLY_CHANGE_FLAGS_MOCK = {
|
|
2
|
+
flag1: { current: true, previous: false },
|
|
3
|
+
flag2: { current: false, previous: true },
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLWRhcmtseS1jaGFuZ2UtZmxhZ3MubW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29wYWwtZnJvbnRlbmQtY29tbW9uL3NyYy9saWIvc2VydmljZXMvbGF1bmNoLWRhcmtseS9tb2Nrcy9sYXVuY2gtZGFya2x5LWNoYW5nZS1mbGFncy5tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHO0lBQzdDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtJQUN6QyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Q0FDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBMQVVOQ0hfREFSS0xZX0NIQU5HRV9GTEFHU19NT0NLID0ge1xuICBmbGFnMTogeyBjdXJyZW50OiB0cnVlLCBwcmV2aW91czogZmFsc2UgfSxcbiAgZmxhZzI6IHsgY3VycmVudDogZmFsc2UsIHByZXZpb3VzOiB0cnVlIH0sXG59O1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const LAUNCH_DARKLY_FLAGS_MOCK = {
|
|
2
|
+
flag1: true,
|
|
3
|
+
flag2: false,
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLWRhcmtseS1mbGFncy5tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3BhbC1mcm9udGVuZC1jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9sYXVuY2gtZGFya2x5L21vY2tzL2xhdW5jaC1kYXJrbHktZmxhZ3MubW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxLQUFLO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBMQVVOQ0hfREFSS0xZX0ZMQUdTX01PQ0sgPSB7XG4gIGZsYWcxOiB0cnVlLFxuICBmbGFnMjogZmFsc2UsXG59O1xuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// SERVICE
|
|
2
|
+
export * from './permissions.service';
|
|
3
|
+
// CONSTANTS, INTERFACES, AND MOCKS
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3Blcm1pc3Npb25zLXNlcnZpY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU0VSVklDRVxuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9ucy5zZXJ2aWNlJztcblxuLy8gQ09OU1RBTlRTLCBJTlRFUkZBQ0VTLCBBTkQgTU9DS1NcbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class PermissionsService {
|
|
4
|
+
storedUniquePermissionIds = [];
|
|
5
|
+
/**
|
|
6
|
+
* Retrieves the unique permission IDs associated with the user.
|
|
7
|
+
* If the unique permission IDs have not been stored yet, it calculates them based on the user's roles and permissions.
|
|
8
|
+
* @returns An array of unique permission IDs.
|
|
9
|
+
*/
|
|
10
|
+
getUniquePermissions(userState) {
|
|
11
|
+
const roles = userState ? userState['business_unit_user'] : null;
|
|
12
|
+
if (!this.storedUniquePermissionIds.length && roles) {
|
|
13
|
+
const permissionIds = roles.flatMap((role) => {
|
|
14
|
+
return role.permissions.map(({ permission_id: permissionId }) => permissionId);
|
|
15
|
+
});
|
|
16
|
+
this.storedUniquePermissionIds = [...new Set(permissionIds)];
|
|
17
|
+
}
|
|
18
|
+
return this.storedUniquePermissionIds;
|
|
19
|
+
}
|
|
20
|
+
hasPermissionAccess(permissionId, businessUnitId, roles) {
|
|
21
|
+
if (roles?.length) {
|
|
22
|
+
// First we need to find the matching role
|
|
23
|
+
const role = roles?.find((role) => role.business_unit_id === businessUnitId);
|
|
24
|
+
// Then we need to find the matching permission
|
|
25
|
+
const hasPermission = !!role?.permissions.find((permission) => permission.permission_id === permissionId);
|
|
26
|
+
return hasPermission;
|
|
27
|
+
}
|
|
28
|
+
// if we don't have any roles, we can't have any permissions
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService, providedIn: 'root' });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService, decorators: [{
|
|
35
|
+
type: Injectable,
|
|
36
|
+
args: [{
|
|
37
|
+
providedIn: 'root',
|
|
38
|
+
}]
|
|
39
|
+
}] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29wYWwtZnJvbnRlbmQtY29tbW9uL3NyYy9saWIvc2VydmljZXMvcGVybWlzc2lvbnMtc2VydmljZS9wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFDckIseUJBQXlCLEdBQWEsRUFBRSxDQUFDO0lBRWpEOzs7O09BSUc7SUFDSSxvQkFBb0IsQ0FBQyxTQUFtQztRQUM3RCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFakUsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDcEQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMzQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2pGLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLHlCQUF5QixHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztJQUN4QyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxjQUFzQixFQUFFLEtBQThCO1FBQ3JHLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLDBDQUEwQztZQUMxQyxNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssY0FBYyxDQUFDLENBQUM7WUFFN0UsK0NBQStDO1lBQy9DLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FDNUMsQ0FBQyxVQUF1QyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxLQUFLLFlBQVksQ0FDdkYsQ0FBQztZQUVGLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCw0REFBNEQ7UUFDNUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3dHQXBDVSxrQkFBa0I7NEdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVNlc3Npb25Vc2VyU3RhdGUsIElTZXNzaW9uVXNlclN0YXRlUGVybWlzc2lvbiwgSVNlc3Npb25Vc2VyU3RhdGVSb2xlIH0gZnJvbSAnLi4vc2Vzc2lvbi1zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zU2VydmljZSB7XG4gIHByaXZhdGUgc3RvcmVkVW5pcXVlUGVybWlzc2lvbklkczogbnVtYmVyW10gPSBbXTtcblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB1bmlxdWUgcGVybWlzc2lvbiBJRHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyLlxuICAgKiBJZiB0aGUgdW5pcXVlIHBlcm1pc3Npb24gSURzIGhhdmUgbm90IGJlZW4gc3RvcmVkIHlldCwgaXQgY2FsY3VsYXRlcyB0aGVtIGJhc2VkIG9uIHRoZSB1c2VyJ3Mgcm9sZXMgYW5kIHBlcm1pc3Npb25zLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB1bmlxdWUgcGVybWlzc2lvbiBJRHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0VW5pcXVlUGVybWlzc2lvbnModXNlclN0YXRlOiBJU2Vzc2lvblVzZXJTdGF0ZSB8IG51bGwpOiBudW1iZXJbXSB7XG4gICAgY29uc3Qgcm9sZXMgPSB1c2VyU3RhdGUgPyB1c2VyU3RhdGVbJ2J1c2luZXNzX3VuaXRfdXNlciddIDogbnVsbDtcblxuICAgIGlmICghdGhpcy5zdG9yZWRVbmlxdWVQZXJtaXNzaW9uSWRzLmxlbmd0aCAmJiByb2xlcykge1xuICAgICAgY29uc3QgcGVybWlzc2lvbklkcyA9IHJvbGVzLmZsYXRNYXAoKHJvbGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHJvbGUucGVybWlzc2lvbnMubWFwKCh7IHBlcm1pc3Npb25faWQ6IHBlcm1pc3Npb25JZCB9KSA9PiBwZXJtaXNzaW9uSWQpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc3RvcmVkVW5pcXVlUGVybWlzc2lvbklkcyA9IFsuLi5uZXcgU2V0KHBlcm1pc3Npb25JZHMpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZWRVbmlxdWVQZXJtaXNzaW9uSWRzO1xuICB9XG5cbiAgcHVibGljIGhhc1Blcm1pc3Npb25BY2Nlc3MocGVybWlzc2lvbklkOiBudW1iZXIsIGJ1c2luZXNzVW5pdElkOiBudW1iZXIsIHJvbGVzOiBJU2Vzc2lvblVzZXJTdGF0ZVJvbGVbXSk6IGJvb2xlYW4ge1xuICAgIGlmIChyb2xlcz8ubGVuZ3RoKSB7XG4gICAgICAvLyBGaXJzdCB3ZSBuZWVkIHRvIGZpbmQgdGhlIG1hdGNoaW5nIHJvbGVcbiAgICAgIGNvbnN0IHJvbGUgPSByb2xlcz8uZmluZCgocm9sZSkgPT4gcm9sZS5idXNpbmVzc191bml0X2lkID09PSBidXNpbmVzc1VuaXRJZCk7XG5cbiAgICAgIC8vIFRoZW4gd2UgbmVlZCB0byBmaW5kIHRoZSBtYXRjaGluZyBwZXJtaXNzaW9uXG4gICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gISFyb2xlPy5wZXJtaXNzaW9ucy5maW5kKFxuICAgICAgICAocGVybWlzc2lvbjogSVNlc3Npb25Vc2VyU3RhdGVQZXJtaXNzaW9uKSA9PiBwZXJtaXNzaW9uLnBlcm1pc3Npb25faWQgPT09IHBlcm1pc3Npb25JZCxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBoYXNQZXJtaXNzaW9uO1xuICAgIH1cbiAgICAvLyBpZiB3ZSBkb24ndCBoYXZlIGFueSByb2xlcywgd2UgY2FuJ3QgaGF2ZSBhbnkgcGVybWlzc2lvbnNcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './session-endpoints.constant';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3Nlc3Npb24tc2VydmljZS9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2Vzc2lvbi1lbmRwb2ludHMuY29uc3RhbnQnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const SESSION_ENDPOINTS = {
|
|
2
|
+
userState: '/session/user-state',
|
|
3
|
+
expiry: '/session/expiry',
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1lbmRwb2ludHMuY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3Nlc3Npb24tc2VydmljZS9jb25zdGFudHMvc2Vzc2lvbi1lbmRwb2ludHMuY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQXNCO0lBQ2xELFNBQVMsRUFBRSxxQkFBcUI7SUFDaEMsTUFBTSxFQUFFLGlCQUFpQjtDQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNlc3Npb25FbmRwb2ludHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IFNFU1NJT05fRU5EUE9JTlRTOiBJU2Vzc2lvbkVuZHBvaW50cyA9IHtcbiAgdXNlclN0YXRlOiAnL3Nlc3Npb24vdXNlci1zdGF0ZScsXG4gIGV4cGlyeTogJy9zZXNzaW9uL2V4cGlyeScsXG59O1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// SERVICE
|
|
2
|
+
export * from './session.service';
|
|
3
|
+
// CONSTANTS, INTERFACES, AND MOCKS
|
|
4
|
+
export * from './constants';
|
|
5
|
+
export * from './interfaces';
|
|
6
|
+
export * from './mocks';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3Nlc3Npb24tc2VydmljZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxtQ0FBbUM7QUFDbkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTRVJWSUNFXG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XG5cbi8vIENPTlNUQU5UUywgSU5URVJGQUNFUywgQU5EIE1PQ0tTXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2Nrcyc7XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './session-endpoints.interface';
|
|
2
|
+
export * from './session-token-expiry.interface';
|
|
3
|
+
export * from './session-user-state.interface';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3Nlc3Npb24tc2VydmljZS9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZXNzaW9uLWVuZHBvaW50cy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXNzaW9uLXRva2VuLWV4cGlyeS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXNzaW9uLXVzZXItc3RhdGUuaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1lbmRwb2ludHMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3BhbC1mcm9udGVuZC1jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9zZXNzaW9uLXNlcnZpY2UvaW50ZXJmYWNlcy9zZXNzaW9uLWVuZHBvaW50cy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVNlc3Npb25FbmRwb2ludHMge1xuICB1c2VyU3RhdGU6IHN0cmluZztcbiAgZXhwaXJ5OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi10b2tlbi1leHBpcnkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3BhbC1mcm9udGVuZC1jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9zZXNzaW9uLXNlcnZpY2UvaW50ZXJmYWNlcy9zZXNzaW9uLXRva2VuLWV4cGlyeS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVNlc3Npb25Ub2tlbkV4cGlyeSB7XG4gIGV4cGlyeTogc3RyaW5nIHwgbnVsbDtcbiAgd2FybmluZ1RocmVzaG9sZEluTWlsbGlzZWNvbmRzOiBudW1iZXIgfCBudWxsO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi11c2VyLXN0YXRlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29wYWwtZnJvbnRlbmQtY29tbW9uL3NyYy9saWIvc2VydmljZXMvc2Vzc2lvbi1zZXJ2aWNlL2ludGVyZmFjZXMvc2Vzc2lvbi11c2VyLXN0YXRlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJU2Vzc2lvblVzZXJTdGF0ZVBlcm1pc3Npb24ge1xuICBwZXJtaXNzaW9uX2lkOiBudW1iZXI7XG4gIHBlcm1pc3Npb25fbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZXNzaW9uVXNlclN0YXRlUm9sZSB7XG4gIGJ1c2luZXNzX3VuaXRfdXNlcl9pZDogc3RyaW5nO1xuICBidXNpbmVzc191bml0X2lkOiBudW1iZXI7XG4gIHBlcm1pc3Npb25zOiBJU2Vzc2lvblVzZXJTdGF0ZVBlcm1pc3Npb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2Vzc2lvblVzZXJTdGF0ZSB7XG4gIHVzZXJfaWQ6IHN0cmluZztcbiAgdXNlcl9uYW1lOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgYnVzaW5lc3NfdW5pdF91c2VyOiBJU2Vzc2lvblVzZXJTdGF0ZVJvbGVbXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './session-token-expiry.mock';
|
|
2
|
+
export * from './session-user-state.mock';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcGFsLWZyb250ZW5kLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3Nlc3Npb24tc2VydmljZS9tb2Nrcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Nlc3Npb24tdG9rZW4tZXhwaXJ5Lm1vY2snO1xuZXhwb3J0ICogZnJvbSAnLi9zZXNzaW9uLXVzZXItc3RhdGUubW9jayc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const SESSION_TOKEN_EXPIRY_MOCK = {
|
|
2
|
+
expiry: 'test',
|
|
3
|
+
warningThresholdInMilliseconds: 5,
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi10b2tlbi1leHBpcnkubW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29wYWwtZnJvbnRlbmQtY29tbW9uL3NyYy9saWIvc2VydmljZXMvc2Vzc2lvbi1zZXJ2aWNlL21vY2tzL3Nlc3Npb24tdG9rZW4tZXhwaXJ5Lm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQXdCO0lBQzVELE1BQU0sRUFBRSxNQUFNO0lBQ2QsOEJBQThCLEVBQUUsQ0FBQztDQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNlc3Npb25Ub2tlbkV4cGlyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY29uc3QgU0VTU0lPTl9UT0tFTl9FWFBJUllfTU9DSzogSVNlc3Npb25Ub2tlbkV4cGlyeSA9IHtcbiAgZXhwaXJ5OiAndGVzdCcsXG4gIHdhcm5pbmdUaHJlc2hvbGRJbk1pbGxpc2Vjb25kczogNSxcbn07XG4iXX0=
|