@o3r/routing 12.0.0-next.2 → 12.0.0-next.20

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.
@@ -64,10 +64,10 @@ class NgrxStoreRouterEffect {
64
64
  */
65
65
  this.resetRouterRegistrationOnNavigated$ = createEffect(() => this.actions$.pipe(ofType(ROUTER_NAVIGATED), map(() => clearRoutingGuardEntities())));
66
66
  }
67
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgrxStoreRouterEffect, deps: [{ token: i1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
68
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgrxStoreRouterEffect }); }
67
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgrxStoreRouterEffect, deps: [{ token: i1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
68
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgrxStoreRouterEffect }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgrxStoreRouterEffect, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgrxStoreRouterEffect, decorators: [{
71
71
  type: Injectable
72
72
  }], ctorParameters: () => [{ type: i1.Actions }] });
73
73
 
@@ -138,13 +138,13 @@ class RoutingGuardStoreModule {
138
138
  ]
139
139
  };
140
140
  }
141
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoutingGuardStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
142
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoutingGuardStoreModule, imports: [i1$1.StoreFeatureModule] }); }
143
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoutingGuardStoreModule, providers: [
141
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: RoutingGuardStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
142
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: RoutingGuardStoreModule, imports: [i1$1.StoreFeatureModule] }); }
143
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: RoutingGuardStoreModule, providers: [
144
144
  { provide: ROUTING_GUARD_REDUCER_TOKEN, useFactory: getDefaultRoutingGuardReducer }
145
145
  ], imports: [StoreModule.forFeature(ROUTING_GUARD_STORE_NAME, ROUTING_GUARD_REDUCER_TOKEN)] }); }
146
146
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoutingGuardStoreModule, decorators: [{
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: RoutingGuardStoreModule, decorators: [{
148
148
  type: NgModule,
149
149
  args: [{
150
150
  imports: [
@@ -250,11 +250,11 @@ class AppServerRoutingModule {
250
250
  ]
251
251
  };
252
252
  }
253
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppServerRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
254
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AppServerRoutingModule }); }
255
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppServerRoutingModule }); }
253
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AppServerRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
254
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: AppServerRoutingModule }); }
255
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AppServerRoutingModule }); }
256
256
  }
257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppServerRoutingModule, decorators: [{
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AppServerRoutingModule, decorators: [{
258
258
  type: NgModule
259
259
  }] });
260
260
 
@@ -300,10 +300,10 @@ class O3rOnNavigationPreloadingStrategy {
300
300
  }
301
301
  return of(null);
302
302
  }
303
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: O3rOnNavigationPreloadingStrategy, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
304
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: O3rOnNavigationPreloadingStrategy }); }
303
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: O3rOnNavigationPreloadingStrategy, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
304
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: O3rOnNavigationPreloadingStrategy }); }
305
305
  }
306
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: O3rOnNavigationPreloadingStrategy, decorators: [{
306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: O3rOnNavigationPreloadingStrategy, decorators: [{
307
307
  type: Injectable
308
308
  }], ctorParameters: () => [{ type: i1$2.Router }] });
309
309
 
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-routing.mjs","sources":["../../src/stores/routing-guard/routing-guard.actions.ts","../../src/stores/routing-guard/extra-effects/ngrx-store-router.effect.ts","../../src/stores/routing-guard/routing-guard.state.ts","../../src/stores/routing-guard/routing-guard.reducer.ts","../../src/stores/routing-guard/routing-guard.module.ts","../../src/stores/routing-guard/routing-guard.selectors.ts","../../src/tools/app-server-routing.module.ts","../../src/tools/on-navigation-strategy.preloader.ts","../../src/o3r-routing.ts"],"sourcesContent":["import {\n createAction,\n props,\n} from '@ngrx/store';\nimport {\n RegisteredItemFailureReason,\n} from './routing-guard.state';\n\n/** Entity Actions */\nconst ACTION_REGISTER_ENTITY = '[RoutingGuard] register an entity';\nconst ACTION_SET_ENTITY_AS_FAILURE = '[RoutingGuard] set an entity state as FAILURE';\nconst ACTION_SET_ENTITY_AS_SUCCESS_AND_CLEAR_REASON = '[RoutingGuard] set an entity state as SUCCESS and clear reason';\nconst ACTION_SET_ENTITY_AS_PENDING = '[RoutingGuard] set an entity state as PENDING';\nconst ACTION_CLEAR_ENTITIES = '[RoutingGuard] clear entities';\nconst ACTION_CLEAR_FAILURE_REASON = '[RoutingGuard] clear failure reason for an entity';\nconst ACTION_SET_ENTITY_AS_FAILURE_WITH_REASON = '[RoutingGuard] set an entity state as FAILURE with a reason';\n\nexport interface RoutingGuardActionPayload {\n /** Id of the block instance */\n id: string;\n}\n\nexport interface RoutingGuardFailureReasonPayload {\n /** Id of the block instance */\n id: string;\n /** Reason for failure */\n reason: RegisteredItemFailureReason;\n}\n\n/**\n * Register a new entity in routing guard store\n */\nexport const registerRoutingGuardEntity = createAction(ACTION_REGISTER_ENTITY, props<RoutingGuardActionPayload>());\n\n/**\n * Set an entity in FAILURE status\n */\nexport const setRoutingGuardEntityAsFailure = createAction(ACTION_SET_ENTITY_AS_FAILURE, props<RoutingGuardActionPayload>());\n\n/**\n * Set an entity in SUCCESS status and clear the reason\n */\nexport const setRoutingGuardEntityAsSuccessAndClearReason = createAction(ACTION_SET_ENTITY_AS_SUCCESS_AND_CLEAR_REASON, props<RoutingGuardActionPayload>());\n\n/**\n * Set an entity in PENDING status\n */\nexport const setRoutingGuardEntityAsPending = createAction(ACTION_SET_ENTITY_AS_PENDING, props<RoutingGuardActionPayload>());\n\n/**\n * Clear only the entities, keeps the other attributes in the state\n */\nexport const clearRoutingGuardEntities = createAction(ACTION_CLEAR_ENTITIES);\n\n/**\n * Clear only the entities, keeps the other attributes in the state\n */\nexport const clearRoutingGuardEntitiesFailureReason = createAction(ACTION_CLEAR_FAILURE_REASON, props<RoutingGuardActionPayload>());\n\n/**\n * Set entity in FAILURE status with a reason\n */\nexport const setRoutingGuardEntityFailureWithReason = createAction(ACTION_SET_ENTITY_AS_FAILURE_WITH_REASON, props<RoutingGuardFailureReasonPayload>());\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n Actions,\n createEffect,\n ofType,\n} from '@ngrx/effects';\nimport {\n BaseRouterStoreState,\n ROUTER_NAVIGATED,\n ROUTER_REQUEST,\n RouterRequestAction,\n} from '@ngrx/router-store';\nimport {\n filter,\n map,\n} from 'rxjs/operators';\nimport {\n clearRoutingGuardEntities,\n} from '../routing-guard.actions';\n\n/**\n * Effect to react on Ngrx router store actions\n */\n@Injectable()\nexport class NgrxStoreRouterEffect {\n /**\n * Clear Router registrations when the active history entry changes (ex : click on back/next button Action)\n */\n public resetRouterRegistrationOnRequest$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_REQUEST),\n filter((action: RouterRequestAction<BaseRouterStoreState>) => action.payload.event.navigationTrigger === 'popstate'),\n map(() => clearRoutingGuardEntities())\n )\n );\n\n /**\n * Clear Router registrations when navigation happened\n */\n public resetRouterRegistrationOnNavigated$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATED),\n map(() => clearRoutingGuardEntities())\n )\n );\n\n constructor(protected actions$: Actions) {}\n}\n","import {\n EntityState,\n} from '@ngrx/entity';\n\n/** Identifies the status of a registered block */\nexport enum RegisteredItemStatus {\n /** block is ready (async call has not been triggered) */\n READY = 'READY',\n /** block is waiting for async call to resolve */\n PENDING = 'PENDING',\n /** block received the async call result and it's a failure */\n FAILURE = 'FAILURE',\n /** block received the async call result and it's a success */\n SUCCESS = 'SUCCESS'\n}\n\n/** Identifies the failure reason for the registered block */\nexport enum RegisteredItemFailureReason {\n /** Routing Failed because the async call result is failure */\n ASYNC_CALL_FAILURE = 'ASYNC_CALL_FAILURE',\n /** Routing failed because the changes to the form has not been saved */\n FORM_UNSAVED = 'FORM_UNSAVED'\n}\n\n/**\n * RoutingGuard model\n */\nexport interface RoutingGuardModel {\n /** Id of the block instance */\n id: string;\n /** Routing status of the block */\n status: RegisteredItemStatus;\n /** Routing Guard blocking reason */\n blockingReason?: RegisteredItemFailureReason;\n}\n\n/**\n * RoutingGuard store state\n */\nexport interface RoutingGuardState extends EntityState<RoutingGuardModel> {}\n\n/**\n * Name of the RoutingGuard Store\n */\nexport const ROUTING_GUARD_STORE_NAME = 'routingGuard';\n\n/**\n * RoutingGuard Store Interface\n */\nexport interface RoutingGuardStore {\n /** RoutingGuard state */\n [ROUTING_GUARD_STORE_NAME]: RoutingGuardState;\n}\n","import {\n createEntityAdapter,\n EntityAdapter,\n} from '@ngrx/entity';\nimport {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './routing-guard.actions';\nimport {\n RegisteredItemStatus,\n RoutingGuardModel,\n RoutingGuardState,\n} from './routing-guard.state';\n\n/**\n * RoutingGuard Store adapter\n */\nexport const routingGuardAdapter: EntityAdapter<RoutingGuardModel> = createEntityAdapter<RoutingGuardModel>({\n selectId: (model) => model.id\n});\n\n/**\n * RoutingGuard Store initial value\n */\nexport const routingGuardInitialState: RoutingGuardState = routingGuardAdapter.getInitialState({});\n\n/**\n * List of basic actions for RoutingGuard Store\n */\nexport const routingGuardReducerFeatures: ReducerTypes<RoutingGuardState, ActionCreator[]>[] = [\n on(actions.registerRoutingGuardEntity, (state, payload) =>\n routingGuardAdapter.addOne({ id: payload.id, status: RegisteredItemStatus.READY }, state)),\n\n on(actions.setRoutingGuardEntityAsPending, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.PENDING } }, state)),\n\n on(actions.setRoutingGuardEntityAsFailure, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.FAILURE } }, state)),\n\n on(actions.setRoutingGuardEntityAsSuccessAndClearReason, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.SUCCESS, blockingReason: undefined } }, state)),\n\n on(actions.clearRoutingGuardEntities, (state) => routingGuardAdapter.removeAll(state)),\n\n on(actions.clearRoutingGuardEntitiesFailureReason, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.READY, blockingReason: undefined } }, state)),\n\n on(actions.setRoutingGuardEntityFailureWithReason, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.FAILURE, blockingReason: payload.reason } }, state))\n];\n\n/**\n * RoutingGuard Store reducer\n */\nexport const routingGuardReducer = createReducer(\n routingGuardInitialState,\n ...routingGuardReducerFeatures\n);\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n routingGuardReducer,\n} from './routing-guard.reducer';\nimport {\n ROUTING_GUARD_STORE_NAME,\n RoutingGuardState,\n} from './routing-guard.state';\n\n/** Token of the RoutingGuard reducer */\nexport const ROUTING_GUARD_REDUCER_TOKEN = new InjectionToken<ActionReducer<RoutingGuardState, Action>>('Feature RoutingGuard Reducer');\n\n/** Provide default reducer for RoutingGuard store */\nexport function getDefaultRoutingGuardReducer() {\n return routingGuardReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(ROUTING_GUARD_STORE_NAME, ROUTING_GUARD_REDUCER_TOKEN)\n ],\n providers: [\n { provide: ROUTING_GUARD_REDUCER_TOKEN, useFactory: getDefaultRoutingGuardReducer }\n ]\n})\nexport class RoutingGuardStoreModule {\n public static forRoot<T extends RoutingGuardState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<RoutingGuardStoreModule> {\n return {\n ngModule: RoutingGuardStoreModule,\n providers: [\n { provide: ROUTING_GUARD_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createFeatureSelector,\n createSelector,\n} from '@ngrx/store';\nimport {\n routingGuardAdapter,\n} from './routing-guard.reducer';\nimport {\n RegisteredItemFailureReason,\n RegisteredItemStatus,\n ROUTING_GUARD_STORE_NAME,\n RoutingGuardState,\n} from './routing-guard.state';\n\nconst { selectIds, selectEntities, selectAll, selectTotal } = routingGuardAdapter.getSelectors();\n\n/** Select RoutingGuard State */\nexport const selectRoutingGuardState = createFeatureSelector<RoutingGuardState>(ROUTING_GUARD_STORE_NAME);\n\n/** Select the array of RoutingGuard ids */\nexport const selectRoutingGuardIds = createSelector(selectRoutingGuardState, selectIds);\n\n/** Select the array of RoutingGuard */\nexport const selectAllRoutingGuard = createSelector(selectRoutingGuardState, selectAll);\n\n/** Select the dictionary of RoutingGuard entities */\nexport const selectRoutingGuardEntities = createSelector(selectRoutingGuardState, selectEntities);\n\n/** Select the total RoutingGuard count */\nexport const selectRoutingGuardTotal = createSelector(selectRoutingGuardState, selectTotal);\n\n/**\n * Selector used to retrieve the list of entities' status\n */\nexport const selectRoutingGuardEntitiesStatusList = createSelector(\n selectRoutingGuardState,\n (state: RoutingGuardState) => {\n return Object.keys(state.entities)\n .filter((key) => !!state.entities[key])\n .map((key) => state.entities[key]!.status);\n }\n);\n\n/**\n * Selector used to retrieve the list of entities' blocking reasons for FAILURE status.\n */\nexport const selectRoutingGuardEntitiesBlockingReasons = createSelector(\n selectRoutingGuardState,\n (state: RoutingGuardState) => {\n return Object.values(state.entities)\n .filter((entity) => !!entity && !!entity.blockingReason)\n .map((entity) => entity!.blockingReason!);\n }\n);\n\n/**\n * Selector used to check that no item is in PENDING state.\n * For example, we will rely on this selector to trigger the canDeactivate logic in the RoutingGuard\n */\nexport const hasNoEntitiesInPendingState = createSelector(\n selectRoutingGuardEntitiesStatusList,\n (statusList: string[]) => {\n return !statusList.includes(RegisteredItemStatus.PENDING);\n }\n);\n\n/**\n * Selector used to check that no item is in FAILURE state.\n * For example, we will rely on this selector to authorize or not the navigation in the RoutingGuard\n */\nexport const hasNoEntitiesInFailureState = createSelector(\n selectRoutingGuardEntitiesStatusList,\n (statusList: string[]) => {\n return !statusList.includes(RegisteredItemStatus.FAILURE);\n }\n);\n\n/**\n * Selector used to check that no item is in READY or FAILURE state.\n * For example, we will rely on this selector to trigger the router navigation and display a loader\n */\nexport const hasNoEntityInReadyOrFailureState = createSelector(\n selectRoutingGuardEntitiesStatusList,\n (statusList: RegisteredItemStatus[]) => {\n return !statusList.some((status) => status === RegisteredItemStatus.READY || status === RegisteredItemStatus.FAILURE);\n }\n);\n\n/**\n * Selector used to check that no item is in FAILURE state with a blocking reason provided.\n * Takes `blockingReason: RegisteredItemFailureReason` as aproperty parameter.\n */\nexport const hasNoEntityFailureStateWithReasons = createSelector(\n selectRoutingGuardEntitiesBlockingReasons,\n (reasons: RegisteredItemFailureReason[], properties: { blockingReason: RegisteredItemFailureReason }) => {\n return !reasons.includes(properties.blockingReason);\n }\n);\n","import {\n APP_BASE_HREF,\n} from '@angular/common';\nimport {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport type {\n BuildTimeProperties,\n} from '@o3r/core';\n\n/**\n * AppBaseHref factory function\n * The APP_BASE_HREF will assume one of the following values (ordered by priority):\n * 1- undefined (or disabled) if it's not a PROD environment\n * 2- the content of the data tag data-appbasehref in the body if it exists\n * 3- the content of config.APP_BASE_HREF if defined\n * 4- otherwise, undefined\n * @param config The application environment configuration\n */\nexport function appBaseHrefFactory(config: BuildTimeProperties) {\n if (config.ENVIRONMENT !== 'prod') {\n return;\n }\n const dynamicBaseHref: string | undefined = document.body.dataset.appbasehref;\n if (typeof dynamicBaseHref !== 'undefined') {\n return dynamicBaseHref;\n }\n return typeof config.APP_BASE_HREF === 'string' ? config.APP_BASE_HREF : undefined;\n}\n\nexport const ENVIRONMENT_CONFIG_TOKEN = new InjectionToken<BuildTimeProperties>('Environment config');\n\n@NgModule()\nexport class AppServerRoutingModule {\n /**\n * Injects the APP_BASE_HREF with a custom factory\n * @param config The application environment configuration\n */\n public static forRoot(config: BuildTimeProperties): ModuleWithProviders<AppServerRoutingModule> {\n return {\n ngModule: AppServerRoutingModule,\n providers: [\n { provide: ENVIRONMENT_CONFIG_TOKEN, useValue: config },\n {\n provide: APP_BASE_HREF,\n useFactory: appBaseHrefFactory,\n deps: [ENVIRONMENT_CONFIG_TOKEN]\n }\n ]\n };\n }\n}\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n NavigationEnd,\n PreloadingStrategy,\n Route,\n Router,\n} from '@angular/router';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n filter,\n switchMap,\n} from 'rxjs/operators';\n\n/**\n * Data to inject to the route parameter to specify preloading strategy\n */\nexport interface O3rOnDemandPreloadingData {\n /** List of page reached that trigger preloading */\n preloadOn: string[] | '*' | RegExp;\n}\n\n/**\n * Check if the route has preload instructions\n * @param data Route data\n */\nexport function hasPreloadingOnDemand(data: any): data is O3rOnDemandPreloadingData {\n if (!data) {\n return false;\n }\n\n return (Array.isArray(data.preloadOn) && data.preloadOn.length > 0)\n || data.preloadOn === '*'\n || data.preloadOn instanceof RegExp;\n}\n\n/**\n * Otter Preloading strategy base on previous route\n * @inheritDoc\n */\n@Injectable()\nexport class O3rOnNavigationPreloadingStrategy implements PreloadingStrategy {\n constructor(private readonly router: Router) {}\n\n /**\n * Check if the module should be preloaded based on the data preload array of routes or regex value\n * @param data Route data\n * @param url URL of current page\n */\n private isUrlMatchingPreloadConfig(data: any, url: string): boolean {\n return (Array.isArray(data.preloadOn) && data.preloadOn.includes(url))\n || (data.preloadOn instanceof RegExp && data.preloadOn.test(url));\n }\n\n /** @inheritDoc */\n public preload(route: Route, preload: () => Observable<any>): Observable<any> {\n if ((route.path || route.matcher) && hasPreloadingOnDemand(route.data)) {\n // On application landing page, check the route to preload.\n if (route.data.preloadOn === '*' || this.isUrlMatchingPreloadConfig(route.data, this.router.routerState.snapshot.url)) {\n return preload();\n }\n\n // On route navigation end, load the routes to preload for the current route.\n return this.router.events\n .pipe(\n filter((r) => r instanceof NavigationEnd && this.isUrlMatchingPreloadConfig(route.data, r.url)),\n switchMap(() => preload())\n );\n }\n return of(null);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["actions.registerRoutingGuardEntity","actions.setRoutingGuardEntityAsPending","actions.setRoutingGuardEntityAsFailure","actions.setRoutingGuardEntityAsSuccessAndClearReason","actions.clearRoutingGuardEntities","actions.clearRoutingGuardEntitiesFailureReason","actions.setRoutingGuardEntityFailureWithReason","i1"],"mappings":"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"}
1
+ {"version":3,"file":"o3r-routing.mjs","sources":["../../src/stores/routing-guard/routing-guard.actions.ts","../../src/stores/routing-guard/extra-effects/ngrx-store-router.effect.ts","../../src/stores/routing-guard/routing-guard.state.ts","../../src/stores/routing-guard/routing-guard.reducer.ts","../../src/stores/routing-guard/routing-guard.module.ts","../../src/stores/routing-guard/routing-guard.selectors.ts","../../src/tools/app-server-routing.module.ts","../../src/tools/on-navigation-strategy.preloader.ts","../../src/o3r-routing.ts"],"sourcesContent":["import {\n createAction,\n props,\n} from '@ngrx/store';\nimport {\n RegisteredItemFailureReason,\n} from './routing-guard.state';\n\n/** Entity Actions */\nconst ACTION_REGISTER_ENTITY = '[RoutingGuard] register an entity';\nconst ACTION_SET_ENTITY_AS_FAILURE = '[RoutingGuard] set an entity state as FAILURE';\nconst ACTION_SET_ENTITY_AS_SUCCESS_AND_CLEAR_REASON = '[RoutingGuard] set an entity state as SUCCESS and clear reason';\nconst ACTION_SET_ENTITY_AS_PENDING = '[RoutingGuard] set an entity state as PENDING';\nconst ACTION_CLEAR_ENTITIES = '[RoutingGuard] clear entities';\nconst ACTION_CLEAR_FAILURE_REASON = '[RoutingGuard] clear failure reason for an entity';\nconst ACTION_SET_ENTITY_AS_FAILURE_WITH_REASON = '[RoutingGuard] set an entity state as FAILURE with a reason';\n\nexport interface RoutingGuardActionPayload {\n /** Id of the block instance */\n id: string;\n}\n\nexport interface RoutingGuardFailureReasonPayload {\n /** Id of the block instance */\n id: string;\n /** Reason for failure */\n reason: RegisteredItemFailureReason;\n}\n\n/**\n * Register a new entity in routing guard store\n */\nexport const registerRoutingGuardEntity = createAction(ACTION_REGISTER_ENTITY, props<RoutingGuardActionPayload>());\n\n/**\n * Set an entity in FAILURE status\n */\nexport const setRoutingGuardEntityAsFailure = createAction(ACTION_SET_ENTITY_AS_FAILURE, props<RoutingGuardActionPayload>());\n\n/**\n * Set an entity in SUCCESS status and clear the reason\n */\nexport const setRoutingGuardEntityAsSuccessAndClearReason = createAction(ACTION_SET_ENTITY_AS_SUCCESS_AND_CLEAR_REASON, props<RoutingGuardActionPayload>());\n\n/**\n * Set an entity in PENDING status\n */\nexport const setRoutingGuardEntityAsPending = createAction(ACTION_SET_ENTITY_AS_PENDING, props<RoutingGuardActionPayload>());\n\n/**\n * Clear only the entities, keeps the other attributes in the state\n */\nexport const clearRoutingGuardEntities = createAction(ACTION_CLEAR_ENTITIES);\n\n/**\n * Clear only the entities, keeps the other attributes in the state\n */\nexport const clearRoutingGuardEntitiesFailureReason = createAction(ACTION_CLEAR_FAILURE_REASON, props<RoutingGuardActionPayload>());\n\n/**\n * Set entity in FAILURE status with a reason\n */\nexport const setRoutingGuardEntityFailureWithReason = createAction(ACTION_SET_ENTITY_AS_FAILURE_WITH_REASON, props<RoutingGuardFailureReasonPayload>());\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n Actions,\n createEffect,\n ofType,\n} from '@ngrx/effects';\nimport {\n BaseRouterStoreState,\n ROUTER_NAVIGATED,\n ROUTER_REQUEST,\n RouterRequestAction,\n} from '@ngrx/router-store';\nimport {\n filter,\n map,\n} from 'rxjs/operators';\nimport {\n clearRoutingGuardEntities,\n} from '../routing-guard.actions';\n\n/**\n * Effect to react on Ngrx router store actions\n */\n@Injectable()\nexport class NgrxStoreRouterEffect {\n /**\n * Clear Router registrations when the active history entry changes (ex : click on back/next button Action)\n */\n public resetRouterRegistrationOnRequest$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_REQUEST),\n filter((action: RouterRequestAction<BaseRouterStoreState>) => action.payload.event.navigationTrigger === 'popstate'),\n map(() => clearRoutingGuardEntities())\n )\n );\n\n /**\n * Clear Router registrations when navigation happened\n */\n public resetRouterRegistrationOnNavigated$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATED),\n map(() => clearRoutingGuardEntities())\n )\n );\n\n constructor(protected actions$: Actions) {}\n}\n","import {\n EntityState,\n} from '@ngrx/entity';\n\n/** Identifies the status of a registered block */\nexport enum RegisteredItemStatus {\n /** block is ready (async call has not been triggered) */\n READY = 'READY',\n /** block is waiting for async call to resolve */\n PENDING = 'PENDING',\n /** block received the async call result and it's a failure */\n FAILURE = 'FAILURE',\n /** block received the async call result and it's a success */\n SUCCESS = 'SUCCESS'\n}\n\n/** Identifies the failure reason for the registered block */\nexport enum RegisteredItemFailureReason {\n /** Routing Failed because the async call result is failure */\n ASYNC_CALL_FAILURE = 'ASYNC_CALL_FAILURE',\n /** Routing failed because the changes to the form has not been saved */\n FORM_UNSAVED = 'FORM_UNSAVED'\n}\n\n/**\n * RoutingGuard model\n */\nexport interface RoutingGuardModel {\n /** Id of the block instance */\n id: string;\n /** Routing status of the block */\n status: RegisteredItemStatus;\n /** Routing Guard blocking reason */\n blockingReason?: RegisteredItemFailureReason;\n}\n\n/**\n * RoutingGuard store state\n */\nexport interface RoutingGuardState extends EntityState<RoutingGuardModel> {}\n\n/**\n * Name of the RoutingGuard Store\n */\nexport const ROUTING_GUARD_STORE_NAME = 'routingGuard';\n\n/**\n * RoutingGuard Store Interface\n */\nexport interface RoutingGuardStore {\n /** RoutingGuard state */\n [ROUTING_GUARD_STORE_NAME]: RoutingGuardState;\n}\n","import {\n createEntityAdapter,\n EntityAdapter,\n} from '@ngrx/entity';\nimport {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './routing-guard.actions';\nimport {\n RegisteredItemStatus,\n RoutingGuardModel,\n RoutingGuardState,\n} from './routing-guard.state';\n\n/**\n * RoutingGuard Store adapter\n */\nexport const routingGuardAdapter: EntityAdapter<RoutingGuardModel> = createEntityAdapter<RoutingGuardModel>({\n selectId: (model) => model.id\n});\n\n/**\n * RoutingGuard Store initial value\n */\nexport const routingGuardInitialState: RoutingGuardState = routingGuardAdapter.getInitialState({});\n\n/**\n * List of basic actions for RoutingGuard Store\n */\nexport const routingGuardReducerFeatures: ReducerTypes<RoutingGuardState, ActionCreator[]>[] = [\n on(actions.registerRoutingGuardEntity, (state, payload) =>\n routingGuardAdapter.addOne({ id: payload.id, status: RegisteredItemStatus.READY }, state)),\n\n on(actions.setRoutingGuardEntityAsPending, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.PENDING } }, state)),\n\n on(actions.setRoutingGuardEntityAsFailure, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.FAILURE } }, state)),\n\n on(actions.setRoutingGuardEntityAsSuccessAndClearReason, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.SUCCESS, blockingReason: undefined } }, state)),\n\n on(actions.clearRoutingGuardEntities, (state) => routingGuardAdapter.removeAll(state)),\n\n on(actions.clearRoutingGuardEntitiesFailureReason, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.READY, blockingReason: undefined } }, state)),\n\n on(actions.setRoutingGuardEntityFailureWithReason, (state, payload) =>\n routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.FAILURE, blockingReason: payload.reason } }, state))\n];\n\n/**\n * RoutingGuard Store reducer\n */\nexport const routingGuardReducer = createReducer(\n routingGuardInitialState,\n ...routingGuardReducerFeatures\n);\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n routingGuardReducer,\n} from './routing-guard.reducer';\nimport {\n ROUTING_GUARD_STORE_NAME,\n RoutingGuardState,\n} from './routing-guard.state';\n\n/** Token of the RoutingGuard reducer */\nexport const ROUTING_GUARD_REDUCER_TOKEN = new InjectionToken<ActionReducer<RoutingGuardState, Action>>('Feature RoutingGuard Reducer');\n\n/** Provide default reducer for RoutingGuard store */\nexport function getDefaultRoutingGuardReducer() {\n return routingGuardReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(ROUTING_GUARD_STORE_NAME, ROUTING_GUARD_REDUCER_TOKEN)\n ],\n providers: [\n { provide: ROUTING_GUARD_REDUCER_TOKEN, useFactory: getDefaultRoutingGuardReducer }\n ]\n})\nexport class RoutingGuardStoreModule {\n public static forRoot<T extends RoutingGuardState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<RoutingGuardStoreModule> {\n return {\n ngModule: RoutingGuardStoreModule,\n providers: [\n { provide: ROUTING_GUARD_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createFeatureSelector,\n createSelector,\n} from '@ngrx/store';\nimport {\n routingGuardAdapter,\n} from './routing-guard.reducer';\nimport {\n RegisteredItemFailureReason,\n RegisteredItemStatus,\n ROUTING_GUARD_STORE_NAME,\n RoutingGuardState,\n} from './routing-guard.state';\n\nconst { selectIds, selectEntities, selectAll, selectTotal } = routingGuardAdapter.getSelectors();\n\n/** Select RoutingGuard State */\nexport const selectRoutingGuardState = createFeatureSelector<RoutingGuardState>(ROUTING_GUARD_STORE_NAME);\n\n/** Select the array of RoutingGuard ids */\nexport const selectRoutingGuardIds = createSelector(selectRoutingGuardState, selectIds);\n\n/** Select the array of RoutingGuard */\nexport const selectAllRoutingGuard = createSelector(selectRoutingGuardState, selectAll);\n\n/** Select the dictionary of RoutingGuard entities */\nexport const selectRoutingGuardEntities = createSelector(selectRoutingGuardState, selectEntities);\n\n/** Select the total RoutingGuard count */\nexport const selectRoutingGuardTotal = createSelector(selectRoutingGuardState, selectTotal);\n\n/**\n * Selector used to retrieve the list of entities' status\n */\nexport const selectRoutingGuardEntitiesStatusList = createSelector(\n selectRoutingGuardState,\n (state: RoutingGuardState) => {\n return Object.keys(state.entities)\n .filter((key) => !!state.entities[key])\n .map((key) => state.entities[key]!.status);\n }\n);\n\n/**\n * Selector used to retrieve the list of entities' blocking reasons for FAILURE status.\n */\nexport const selectRoutingGuardEntitiesBlockingReasons = createSelector(\n selectRoutingGuardState,\n (state: RoutingGuardState) => {\n return Object.values(state.entities)\n .filter((entity) => !!entity && !!entity.blockingReason)\n .map((entity) => entity!.blockingReason!);\n }\n);\n\n/**\n * Selector used to check that no item is in PENDING state.\n * For example, we will rely on this selector to trigger the canDeactivate logic in the RoutingGuard\n */\nexport const hasNoEntitiesInPendingState = createSelector(\n selectRoutingGuardEntitiesStatusList,\n (statusList: string[]) => {\n return !statusList.includes(RegisteredItemStatus.PENDING);\n }\n);\n\n/**\n * Selector used to check that no item is in FAILURE state.\n * For example, we will rely on this selector to authorize or not the navigation in the RoutingGuard\n */\nexport const hasNoEntitiesInFailureState = createSelector(\n selectRoutingGuardEntitiesStatusList,\n (statusList: string[]) => {\n return !statusList.includes(RegisteredItemStatus.FAILURE);\n }\n);\n\n/**\n * Selector used to check that no item is in READY or FAILURE state.\n * For example, we will rely on this selector to trigger the router navigation and display a loader\n */\nexport const hasNoEntityInReadyOrFailureState = createSelector(\n selectRoutingGuardEntitiesStatusList,\n (statusList: RegisteredItemStatus[]) => {\n return !statusList.some((status) => status === RegisteredItemStatus.READY || status === RegisteredItemStatus.FAILURE);\n }\n);\n\n/**\n * Selector used to check that no item is in FAILURE state with a blocking reason provided.\n * Takes `blockingReason: RegisteredItemFailureReason` as aproperty parameter.\n */\nexport const hasNoEntityFailureStateWithReasons = createSelector(\n selectRoutingGuardEntitiesBlockingReasons,\n (reasons: RegisteredItemFailureReason[], properties: { blockingReason: RegisteredItemFailureReason }) => {\n return !reasons.includes(properties.blockingReason);\n }\n);\n","import {\n APP_BASE_HREF,\n} from '@angular/common';\nimport {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport type {\n BuildTimeProperties,\n} from '@o3r/core';\n\n/**\n * AppBaseHref factory function\n * The APP_BASE_HREF will assume one of the following values (ordered by priority):\n * 1- undefined (or disabled) if it's not a PROD environment\n * 2- the content of the data tag data-appbasehref in the body if it exists\n * 3- the content of config.APP_BASE_HREF if defined\n * 4- otherwise, undefined\n * @param config The application environment configuration\n */\nexport function appBaseHrefFactory(config: BuildTimeProperties) {\n if (config.ENVIRONMENT !== 'prod') {\n return;\n }\n const dynamicBaseHref: string | undefined = document.body.dataset.appbasehref;\n if (typeof dynamicBaseHref !== 'undefined') {\n return dynamicBaseHref;\n }\n return typeof config.APP_BASE_HREF === 'string' ? config.APP_BASE_HREF : undefined;\n}\n\nexport const ENVIRONMENT_CONFIG_TOKEN = new InjectionToken<BuildTimeProperties>('Environment config');\n\n@NgModule()\nexport class AppServerRoutingModule {\n /**\n * Injects the APP_BASE_HREF with a custom factory\n * @param config The application environment configuration\n */\n public static forRoot(config: BuildTimeProperties): ModuleWithProviders<AppServerRoutingModule> {\n return {\n ngModule: AppServerRoutingModule,\n providers: [\n { provide: ENVIRONMENT_CONFIG_TOKEN, useValue: config },\n {\n provide: APP_BASE_HREF,\n useFactory: appBaseHrefFactory,\n deps: [ENVIRONMENT_CONFIG_TOKEN]\n }\n ]\n };\n }\n}\n","import {\n Injectable,\n} from '@angular/core';\nimport {\n NavigationEnd,\n PreloadingStrategy,\n Route,\n Router,\n} from '@angular/router';\nimport {\n Observable,\n of,\n} from 'rxjs';\nimport {\n filter,\n switchMap,\n} from 'rxjs/operators';\n\n/**\n * Data to inject to the route parameter to specify preloading strategy\n */\nexport interface O3rOnDemandPreloadingData {\n /** List of page reached that trigger preloading */\n preloadOn: string[] | '*' | RegExp;\n}\n\n/**\n * Check if the route has preload instructions\n * @param data Route data\n */\nexport function hasPreloadingOnDemand(data: any): data is O3rOnDemandPreloadingData {\n if (!data) {\n return false;\n }\n\n return (Array.isArray(data.preloadOn) && data.preloadOn.length > 0)\n || data.preloadOn === '*'\n || data.preloadOn instanceof RegExp;\n}\n\n/**\n * Otter Preloading strategy base on previous route\n * @inheritDoc\n */\n@Injectable()\nexport class O3rOnNavigationPreloadingStrategy implements PreloadingStrategy {\n constructor(private readonly router: Router) {}\n\n /**\n * Check if the module should be preloaded based on the data preload array of routes or regex value\n * @param data Route data\n * @param url URL of current page\n */\n private isUrlMatchingPreloadConfig(data: any, url: string): boolean {\n return (Array.isArray(data.preloadOn) && data.preloadOn.includes(url))\n || (data.preloadOn instanceof RegExp && data.preloadOn.test(url));\n }\n\n /** @inheritDoc */\n public preload(route: Route, preload: () => Observable<any>): Observable<any> {\n if ((route.path || route.matcher) && hasPreloadingOnDemand(route.data)) {\n // On application landing page, check the route to preload.\n if (route.data.preloadOn === '*' || this.isUrlMatchingPreloadConfig(route.data, this.router.routerState.snapshot.url)) {\n return preload();\n }\n\n // On route navigation end, load the routes to preload for the current route.\n return this.router.events\n .pipe(\n filter((r) => r instanceof NavigationEnd && this.isUrlMatchingPreloadConfig(route.data, r.url)),\n switchMap(() => preload())\n );\n }\n return of(null);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["actions.registerRoutingGuardEntity","actions.setRoutingGuardEntityAsPending","actions.setRoutingGuardEntityAsFailure","actions.setRoutingGuardEntityAsSuccessAndClearReason","actions.clearRoutingGuardEntities","actions.clearRoutingGuardEntitiesFailureReason","actions.setRoutingGuardEntityFailureWithReason","i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/routing",
3
- "version": "12.0.0-next.2",
3
+ "version": "12.0.0-next.20",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -11,21 +11,22 @@
11
11
  "otter-module"
12
12
  ],
13
13
  "peerDependencies": {
14
- "@angular-devkit/schematics": "^18.2.0",
15
- "@angular/common": "^18.2.0",
16
- "@angular/core": "^18.2.0",
17
- "@angular/platform-browser-dynamic": "^18.2.0",
18
- "@angular/router": "^18.2.0",
19
- "@ngrx/effects": "^18.0.0",
20
- "@ngrx/entity": "^18.0.0",
21
- "@ngrx/router-store": "^18.0.0",
22
- "@ngrx/store": "^18.0.0",
23
- "@o3r/core": "^12.0.0-next.2",
24
- "@o3r/routing": "^12.0.0-next.2",
25
- "@o3r/schematics": "^12.0.0-next.2",
26
- "@schematics/angular": "^18.2.0",
14
+ "@angular-devkit/schematics": "^19.0.0",
15
+ "@angular/common": "^19.0.0",
16
+ "@angular/core": "^19.0.0",
17
+ "@angular/platform-browser-dynamic": "^19.0.0",
18
+ "@angular/router": "^19.0.0",
19
+ "@ngrx/effects": "^19.0.0",
20
+ "@ngrx/entity": "^19.0.0",
21
+ "@ngrx/router-store": "^19.0.0",
22
+ "@ngrx/store": "^19.0.0",
23
+ "@o3r/core": "^12.0.0-next.20",
24
+ "@o3r/routing": "^12.0.0-next.20",
25
+ "@o3r/schematics": "^12.0.0-next.20",
26
+ "@schematics/angular": "^19.0.0",
27
27
  "jasmine": "^5.0.0",
28
- "rxjs": "^7.8.1"
28
+ "rxjs": "^7.8.1",
29
+ "ts-node": "~10.9.2"
29
30
  },
30
31
  "peerDependenciesMeta": {
31
32
  "@angular-devkit/schematics": {
@@ -56,8 +57,6 @@
56
57
  },
57
58
  ".": {
58
59
  "types": "./index.d.ts",
59
- "esm2022": "./esm2022/o3r-routing.mjs",
60
- "esm": "./esm2022/o3r-routing.mjs",
61
60
  "default": "./fesm2022/o3r-routing.mjs"
62
61
  }
63
62
  },
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLXJvdXRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbzNyLXJvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './stores/index';
2
- export * from './tools/index';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N0b3Jlcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xzL2luZGV4JztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './routing-guard/index';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JvdXRpbmctZ3VhcmQvaW5kZXgnO1xuIl19
@@ -1,2 +0,0 @@
1
- export * from './ngrx-store-router.effect';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc3RvcmVzL3JvdXRpbmctZ3VhcmQvZXh0cmEtZWZmZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uZ3J4LXN0b3JlLXJvdXRlci5lZmZlY3QnO1xuIl19
@@ -1,29 +0,0 @@
1
- import { Injectable, } from '@angular/core';
2
- import { Actions, createEffect, ofType, } from '@ngrx/effects';
3
- import { ROUTER_NAVIGATED, ROUTER_REQUEST, } from '@ngrx/router-store';
4
- import { filter, map, } from 'rxjs/operators';
5
- import { clearRoutingGuardEntities, } from '../routing-guard.actions';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ngrx/effects";
8
- /**
9
- * Effect to react on Ngrx router store actions
10
- */
11
- export class NgrxStoreRouterEffect {
12
- constructor(actions$) {
13
- this.actions$ = actions$;
14
- /**
15
- * Clear Router registrations when the active history entry changes (ex : click on back/next button Action)
16
- */
17
- this.resetRouterRegistrationOnRequest$ = createEffect(() => this.actions$.pipe(ofType(ROUTER_REQUEST), filter((action) => action.payload.event.navigationTrigger === 'popstate'), map(() => clearRoutingGuardEntities())));
18
- /**
19
- * Clear Router registrations when navigation happened
20
- */
21
- this.resetRouterRegistrationOnNavigated$ = createEffect(() => this.actions$.pipe(ofType(ROUTER_NAVIGATED), map(() => clearRoutingGuardEntities())));
22
- }
23
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgrxStoreRouterEffect, deps: [{ token: i1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
24
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgrxStoreRouterEffect }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgrxStoreRouterEffect, decorators: [{
27
- type: Injectable
28
- }], ctorParameters: () => [{ type: i1.Actions }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyeC1zdG9yZS1yb3V0ZXIuZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9yb3V0aW5nLWd1YXJkL2V4dHJhLWVmZmVjdHMvbmdyeC1zdG9yZS1yb3V0ZXIuZWZmZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxZQUFZLEVBQ1osTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsY0FBYyxHQUVmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wseUJBQXlCLEdBQzFCLE1BQU0sMEJBQTBCLENBQUM7OztBQUVsQzs7R0FFRztBQUVILE1BQU0sT0FBTyxxQkFBcUI7SUFzQmhDLFlBQXNCLFFBQWlCO1FBQWpCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFyQnZDOztXQUVHO1FBQ0ksc0NBQWlDLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUN0QixNQUFNLENBQUMsQ0FBQyxNQUFpRCxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxVQUFVLENBQUMsRUFDcEgsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FDdkMsQ0FDRixDQUFDO1FBRUY7O1dBRUc7UUFDSSx3Q0FBbUMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFDeEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FDdkMsQ0FDRixDQUFDO0lBRXdDLENBQUM7a0lBdEJoQyxxQkFBcUI7c0lBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9ucyxcbiAgY3JlYXRlRWZmZWN0LFxuICBvZlR5cGUsXG59IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHtcbiAgQmFzZVJvdXRlclN0b3JlU3RhdGUsXG4gIFJPVVRFUl9OQVZJR0FURUQsXG4gIFJPVVRFUl9SRVFVRVNULFxuICBSb3V0ZXJSZXF1ZXN0QWN0aW9uLFxufSBmcm9tICdAbmdyeC9yb3V0ZXItc3RvcmUnO1xuaW1wb3J0IHtcbiAgZmlsdGVyLFxuICBtYXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGNsZWFyUm91dGluZ0d1YXJkRW50aXRpZXMsXG59IGZyb20gJy4uL3JvdXRpbmctZ3VhcmQuYWN0aW9ucyc7XG5cbi8qKlxuICogRWZmZWN0IHRvIHJlYWN0IG9uIE5ncnggcm91dGVyIHN0b3JlIGFjdGlvbnNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5ncnhTdG9yZVJvdXRlckVmZmVjdCB7XG4gIC8qKlxuICAgKiBDbGVhciBSb3V0ZXIgcmVnaXN0cmF0aW9ucyB3aGVuIHRoZSBhY3RpdmUgaGlzdG9yeSBlbnRyeSBjaGFuZ2VzIChleCA6IGNsaWNrIG9uIGJhY2svbmV4dCBidXR0b24gQWN0aW9uKVxuICAgKi9cbiAgcHVibGljIHJlc2V0Um91dGVyUmVnaXN0cmF0aW9uT25SZXF1ZXN0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShST1VURVJfUkVRVUVTVCksXG4gICAgICBmaWx0ZXIoKGFjdGlvbjogUm91dGVyUmVxdWVzdEFjdGlvbjxCYXNlUm91dGVyU3RvcmVTdGF0ZT4pID0+IGFjdGlvbi5wYXlsb2FkLmV2ZW50Lm5hdmlnYXRpb25UcmlnZ2VyID09PSAncG9wc3RhdGUnKSxcbiAgICAgIG1hcCgoKSA9PiBjbGVhclJvdXRpbmdHdWFyZEVudGl0aWVzKCkpXG4gICAgKVxuICApO1xuXG4gIC8qKlxuICAgKiBDbGVhciBSb3V0ZXIgcmVnaXN0cmF0aW9ucyB3aGVuIG5hdmlnYXRpb24gaGFwcGVuZWRcbiAgICovXG4gIHB1YmxpYyByZXNldFJvdXRlclJlZ2lzdHJhdGlvbk9uTmF2aWdhdGVkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShST1VURVJfTkFWSUdBVEVEKSxcbiAgICAgIG1hcCgoKSA9PiBjbGVhclJvdXRpbmdHdWFyZEVudGl0aWVzKCkpXG4gICAgKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBhY3Rpb25zJDogQWN0aW9ucykge31cbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- export * from './extra-effects/index';
2
- export * from './routing-guard.actions';
3
- export * from './routing-guard.module';
4
- export * from './routing-guard.reducer';
5
- export * from './routing-guard.selectors';
6
- export * from './routing-guard.state';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RvcmVzL3JvdXRpbmctZ3VhcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2V4dHJhLWVmZmVjdHMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0aW5nLWd1YXJkLmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0aW5nLWd1YXJkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRpbmctZ3VhcmQucmVkdWNlcic7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRpbmctZ3VhcmQuc2VsZWN0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vcm91dGluZy1ndWFyZC5zdGF0ZSc7XG4iXX0=
@@ -1,38 +0,0 @@
1
- import { createAction, props, } from '@ngrx/store';
2
- /** Entity Actions */
3
- const ACTION_REGISTER_ENTITY = '[RoutingGuard] register an entity';
4
- const ACTION_SET_ENTITY_AS_FAILURE = '[RoutingGuard] set an entity state as FAILURE';
5
- const ACTION_SET_ENTITY_AS_SUCCESS_AND_CLEAR_REASON = '[RoutingGuard] set an entity state as SUCCESS and clear reason';
6
- const ACTION_SET_ENTITY_AS_PENDING = '[RoutingGuard] set an entity state as PENDING';
7
- const ACTION_CLEAR_ENTITIES = '[RoutingGuard] clear entities';
8
- const ACTION_CLEAR_FAILURE_REASON = '[RoutingGuard] clear failure reason for an entity';
9
- const ACTION_SET_ENTITY_AS_FAILURE_WITH_REASON = '[RoutingGuard] set an entity state as FAILURE with a reason';
10
- /**
11
- * Register a new entity in routing guard store
12
- */
13
- export const registerRoutingGuardEntity = createAction(ACTION_REGISTER_ENTITY, props());
14
- /**
15
- * Set an entity in FAILURE status
16
- */
17
- export const setRoutingGuardEntityAsFailure = createAction(ACTION_SET_ENTITY_AS_FAILURE, props());
18
- /**
19
- * Set an entity in SUCCESS status and clear the reason
20
- */
21
- export const setRoutingGuardEntityAsSuccessAndClearReason = createAction(ACTION_SET_ENTITY_AS_SUCCESS_AND_CLEAR_REASON, props());
22
- /**
23
- * Set an entity in PENDING status
24
- */
25
- export const setRoutingGuardEntityAsPending = createAction(ACTION_SET_ENTITY_AS_PENDING, props());
26
- /**
27
- * Clear only the entities, keeps the other attributes in the state
28
- */
29
- export const clearRoutingGuardEntities = createAction(ACTION_CLEAR_ENTITIES);
30
- /**
31
- * Clear only the entities, keeps the other attributes in the state
32
- */
33
- export const clearRoutingGuardEntitiesFailureReason = createAction(ACTION_CLEAR_FAILURE_REASON, props());
34
- /**
35
- * Set entity in FAILURE status with a reason
36
- */
37
- export const setRoutingGuardEntityFailureWithReason = createAction(ACTION_SET_ENTITY_AS_FAILURE_WITH_REASON, props());
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy1ndWFyZC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9yb3V0aW5nLWd1YXJkL3JvdXRpbmctZ3VhcmQuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLEtBQUssR0FDTixNQUFNLGFBQWEsQ0FBQztBQUtyQixxQkFBcUI7QUFDckIsTUFBTSxzQkFBc0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUNuRSxNQUFNLDRCQUE0QixHQUFHLCtDQUErQyxDQUFDO0FBQ3JGLE1BQU0sNkNBQTZDLEdBQUcsZ0VBQWdFLENBQUM7QUFDdkgsTUFBTSw0QkFBNEIsR0FBRywrQ0FBK0MsQ0FBQztBQUNyRixNQUFNLHFCQUFxQixHQUFHLCtCQUErQixDQUFDO0FBQzlELE1BQU0sMkJBQTJCLEdBQUcsbURBQW1ELENBQUM7QUFDeEYsTUFBTSx3Q0FBd0MsR0FBRyw2REFBNkQsQ0FBQztBQWMvRzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLEVBQTZCLENBQUMsQ0FBQztBQUVuSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLFlBQVksQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLEVBQTZCLENBQUMsQ0FBQztBQUU3SDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRDQUE0QyxHQUFHLFlBQVksQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLLEVBQTZCLENBQUMsQ0FBQztBQUU1Sjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLFlBQVksQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLEVBQTZCLENBQUMsQ0FBQztBQUU3SDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRTdFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsWUFBWSxDQUFDLDJCQUEyQixFQUFFLEtBQUssRUFBNkIsQ0FBQyxDQUFDO0FBRXBJOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsWUFBWSxDQUFDLHdDQUF3QyxFQUFFLEtBQUssRUFBb0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlQWN0aW9uLFxuICBwcm9wcyxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgUmVnaXN0ZXJlZEl0ZW1GYWlsdXJlUmVhc29uLFxufSBmcm9tICcuL3JvdXRpbmctZ3VhcmQuc3RhdGUnO1xuXG4vKiogRW50aXR5IEFjdGlvbnMgKi9cbmNvbnN0IEFDVElPTl9SRUdJU1RFUl9FTlRJVFkgPSAnW1JvdXRpbmdHdWFyZF0gcmVnaXN0ZXIgYW4gZW50aXR5JztcbmNvbnN0IEFDVElPTl9TRVRfRU5USVRZX0FTX0ZBSUxVUkUgPSAnW1JvdXRpbmdHdWFyZF0gc2V0IGFuIGVudGl0eSBzdGF0ZSBhcyBGQUlMVVJFJztcbmNvbnN0IEFDVElPTl9TRVRfRU5USVRZX0FTX1NVQ0NFU1NfQU5EX0NMRUFSX1JFQVNPTiA9ICdbUm91dGluZ0d1YXJkXSBzZXQgYW4gZW50aXR5IHN0YXRlIGFzIFNVQ0NFU1MgYW5kIGNsZWFyIHJlYXNvbic7XG5jb25zdCBBQ1RJT05fU0VUX0VOVElUWV9BU19QRU5ESU5HID0gJ1tSb3V0aW5nR3VhcmRdIHNldCBhbiBlbnRpdHkgc3RhdGUgYXMgUEVORElORyc7XG5jb25zdCBBQ1RJT05fQ0xFQVJfRU5USVRJRVMgPSAnW1JvdXRpbmdHdWFyZF0gY2xlYXIgZW50aXRpZXMnO1xuY29uc3QgQUNUSU9OX0NMRUFSX0ZBSUxVUkVfUkVBU09OID0gJ1tSb3V0aW5nR3VhcmRdIGNsZWFyIGZhaWx1cmUgcmVhc29uIGZvciBhbiBlbnRpdHknO1xuY29uc3QgQUNUSU9OX1NFVF9FTlRJVFlfQVNfRkFJTFVSRV9XSVRIX1JFQVNPTiA9ICdbUm91dGluZ0d1YXJkXSBzZXQgYW4gZW50aXR5IHN0YXRlIGFzIEZBSUxVUkUgd2l0aCBhIHJlYXNvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGluZ0d1YXJkQWN0aW9uUGF5bG9hZCB7XG4gIC8qKiBJZCBvZiB0aGUgYmxvY2sgaW5zdGFuY2UgKi9cbiAgaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0aW5nR3VhcmRGYWlsdXJlUmVhc29uUGF5bG9hZCB7XG4gIC8qKiBJZCBvZiB0aGUgYmxvY2sgaW5zdGFuY2UgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIFJlYXNvbiBmb3IgZmFpbHVyZSAqL1xuICByZWFzb246IFJlZ2lzdGVyZWRJdGVtRmFpbHVyZVJlYXNvbjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIG5ldyBlbnRpdHkgaW4gcm91dGluZyBndWFyZCBzdG9yZVxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJSb3V0aW5nR3VhcmRFbnRpdHkgPSBjcmVhdGVBY3Rpb24oQUNUSU9OX1JFR0lTVEVSX0VOVElUWSwgcHJvcHM8Um91dGluZ0d1YXJkQWN0aW9uUGF5bG9hZD4oKSk7XG5cbi8qKlxuICogU2V0IGFuIGVudGl0eSBpbiBGQUlMVVJFIHN0YXR1c1xuICovXG5leHBvcnQgY29uc3Qgc2V0Um91dGluZ0d1YXJkRW50aXR5QXNGYWlsdXJlID0gY3JlYXRlQWN0aW9uKEFDVElPTl9TRVRfRU5USVRZX0FTX0ZBSUxVUkUsIHByb3BzPFJvdXRpbmdHdWFyZEFjdGlvblBheWxvYWQ+KCkpO1xuXG4vKipcbiAqIFNldCBhbiBlbnRpdHkgaW4gU1VDQ0VTUyBzdGF0dXMgYW5kIGNsZWFyIHRoZSByZWFzb25cbiAqL1xuZXhwb3J0IGNvbnN0IHNldFJvdXRpbmdHdWFyZEVudGl0eUFzU3VjY2Vzc0FuZENsZWFyUmVhc29uID0gY3JlYXRlQWN0aW9uKEFDVElPTl9TRVRfRU5USVRZX0FTX1NVQ0NFU1NfQU5EX0NMRUFSX1JFQVNPTiwgcHJvcHM8Um91dGluZ0d1YXJkQWN0aW9uUGF5bG9hZD4oKSk7XG5cbi8qKlxuICogU2V0IGFuIGVudGl0eSBpbiBQRU5ESU5HIHN0YXR1c1xuICovXG5leHBvcnQgY29uc3Qgc2V0Um91dGluZ0d1YXJkRW50aXR5QXNQZW5kaW5nID0gY3JlYXRlQWN0aW9uKEFDVElPTl9TRVRfRU5USVRZX0FTX1BFTkRJTkcsIHByb3BzPFJvdXRpbmdHdWFyZEFjdGlvblBheWxvYWQ+KCkpO1xuXG4vKipcbiAqIENsZWFyIG9ubHkgdGhlIGVudGl0aWVzLCBrZWVwcyB0aGUgb3RoZXIgYXR0cmlidXRlcyBpbiB0aGUgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGNsZWFyUm91dGluZ0d1YXJkRW50aXRpZXMgPSBjcmVhdGVBY3Rpb24oQUNUSU9OX0NMRUFSX0VOVElUSUVTKTtcblxuLyoqXG4gKiBDbGVhciBvbmx5IHRoZSBlbnRpdGllcywga2VlcHMgdGhlIG90aGVyIGF0dHJpYnV0ZXMgaW4gdGhlIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBjbGVhclJvdXRpbmdHdWFyZEVudGl0aWVzRmFpbHVyZVJlYXNvbiA9IGNyZWF0ZUFjdGlvbihBQ1RJT05fQ0xFQVJfRkFJTFVSRV9SRUFTT04sIHByb3BzPFJvdXRpbmdHdWFyZEFjdGlvblBheWxvYWQ+KCkpO1xuXG4vKipcbiAqIFNldCBlbnRpdHkgaW4gRkFJTFVSRSBzdGF0dXMgd2l0aCBhIHJlYXNvblxuICovXG5leHBvcnQgY29uc3Qgc2V0Um91dGluZ0d1YXJkRW50aXR5RmFpbHVyZVdpdGhSZWFzb24gPSBjcmVhdGVBY3Rpb24oQUNUSU9OX1NFVF9FTlRJVFlfQVNfRkFJTFVSRV9XSVRIX1JFQVNPTiwgcHJvcHM8Um91dGluZ0d1YXJkRmFpbHVyZVJlYXNvblBheWxvYWQ+KCkpO1xuIl19
@@ -1,39 +0,0 @@
1
- import { InjectionToken, NgModule, } from '@angular/core';
2
- import { StoreModule, } from '@ngrx/store';
3
- import { routingGuardReducer, } from './routing-guard.reducer';
4
- import { ROUTING_GUARD_STORE_NAME, } from './routing-guard.state';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ngrx/store";
7
- /** Token of the RoutingGuard reducer */
8
- export const ROUTING_GUARD_REDUCER_TOKEN = new InjectionToken('Feature RoutingGuard Reducer');
9
- /** Provide default reducer for RoutingGuard store */
10
- export function getDefaultRoutingGuardReducer() {
11
- return routingGuardReducer;
12
- }
13
- export class RoutingGuardStoreModule {
14
- static forRoot(reducerFactory) {
15
- return {
16
- ngModule: RoutingGuardStoreModule,
17
- providers: [
18
- { provide: ROUTING_GUARD_REDUCER_TOKEN, useFactory: reducerFactory }
19
- ]
20
- };
21
- }
22
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoutingGuardStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoutingGuardStoreModule, imports: [i1.StoreFeatureModule] }); }
24
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoutingGuardStoreModule, providers: [
25
- { provide: ROUTING_GUARD_REDUCER_TOKEN, useFactory: getDefaultRoutingGuardReducer }
26
- ], imports: [StoreModule.forFeature(ROUTING_GUARD_STORE_NAME, ROUTING_GUARD_REDUCER_TOKEN)] }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoutingGuardStoreModule, decorators: [{
29
- type: NgModule,
30
- args: [{
31
- imports: [
32
- StoreModule.forFeature(ROUTING_GUARD_STORE_NAME, ROUTING_GUARD_REDUCER_TOKEN)
33
- ],
34
- providers: [
35
- { provide: ROUTING_GUARD_REDUCER_TOKEN, useFactory: getDefaultRoutingGuardReducer }
36
- ]
37
- }]
38
- }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy1ndWFyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RvcmVzL3JvdXRpbmctZ3VhcmQvcm91dGluZy1ndWFyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFFZCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFdBQVcsR0FDWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsbUJBQW1CLEdBQ3BCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLHdCQUF3QixHQUV6QixNQUFNLHVCQUF1QixDQUFDOzs7QUFFL0Isd0NBQXdDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUEyQyw4QkFBOEIsQ0FBQyxDQUFDO0FBRXhJLHFEQUFxRDtBQUNyRCxNQUFNLFVBQVUsNkJBQTZCO0lBQzNDLE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQztBQVVELE1BQU0sT0FBTyx1QkFBdUI7SUFDM0IsTUFBTSxDQUFDLE9BQU8sQ0FBOEIsY0FBOEM7UUFDL0YsT0FBTztZQUNMLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUU7YUFDckU7U0FDRixDQUFDO0lBQ0osQ0FBQztrSUFSVSx1QkFBdUI7bUlBQXZCLHVCQUF1QjttSUFBdkIsdUJBQXVCLGFBSnZCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLDZCQUE2QixFQUFFO1NBQ3BGLFlBSkMsV0FBVyxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSwyQkFBMkIsQ0FBQzs7NEZBTXBFLHVCQUF1QjtrQkFSbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsV0FBVyxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSwyQkFBMkIsQ0FBQztxQkFDOUU7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFVBQVUsRUFBRSw2QkFBNkIsRUFBRTtxQkFDcEY7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3Rpb25Ub2tlbixcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uLFxuICBBY3Rpb25SZWR1Y2VyLFxuICBTdG9yZU1vZHVsZSxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgcm91dGluZ0d1YXJkUmVkdWNlcixcbn0gZnJvbSAnLi9yb3V0aW5nLWd1YXJkLnJlZHVjZXInO1xuaW1wb3J0IHtcbiAgUk9VVElOR19HVUFSRF9TVE9SRV9OQU1FLFxuICBSb3V0aW5nR3VhcmRTdGF0ZSxcbn0gZnJvbSAnLi9yb3V0aW5nLWd1YXJkLnN0YXRlJztcblxuLyoqIFRva2VuIG9mIHRoZSBSb3V0aW5nR3VhcmQgcmVkdWNlciAqL1xuZXhwb3J0IGNvbnN0IFJPVVRJTkdfR1VBUkRfUkVEVUNFUl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBY3Rpb25SZWR1Y2VyPFJvdXRpbmdHdWFyZFN0YXRlLCBBY3Rpb24+PignRmVhdHVyZSBSb3V0aW5nR3VhcmQgUmVkdWNlcicpO1xuXG4vKiogUHJvdmlkZSBkZWZhdWx0IHJlZHVjZXIgZm9yIFJvdXRpbmdHdWFyZCBzdG9yZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRSb3V0aW5nR3VhcmRSZWR1Y2VyKCkge1xuICByZXR1cm4gcm91dGluZ0d1YXJkUmVkdWNlcjtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoUk9VVElOR19HVUFSRF9TVE9SRV9OQU1FLCBST1VUSU5HX0dVQVJEX1JFRFVDRVJfVE9LRU4pXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogUk9VVElOR19HVUFSRF9SRURVQ0VSX1RPS0VOLCB1c2VGYWN0b3J5OiBnZXREZWZhdWx0Um91dGluZ0d1YXJkUmVkdWNlciB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUm91dGluZ0d1YXJkU3RvcmVNb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIGZvclJvb3Q8VCBleHRlbmRzIFJvdXRpbmdHdWFyZFN0YXRlPihyZWR1Y2VyRmFjdG9yeTogKCkgPT4gQWN0aW9uUmVkdWNlcjxULCBBY3Rpb24+KTogTW9kdWxlV2l0aFByb3ZpZGVyczxSb3V0aW5nR3VhcmRTdG9yZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUm91dGluZ0d1YXJkU3RvcmVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBST1VUSU5HX0dVQVJEX1JFRFVDRVJfVE9LRU4sIHVzZUZhY3Rvcnk6IHJlZHVjZXJGYWN0b3J5IH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,31 +0,0 @@
1
- import { createEntityAdapter, } from '@ngrx/entity';
2
- import { createReducer, on, } from '@ngrx/store';
3
- import * as actions from './routing-guard.actions';
4
- import { RegisteredItemStatus, } from './routing-guard.state';
5
- /**
6
- * RoutingGuard Store adapter
7
- */
8
- export const routingGuardAdapter = createEntityAdapter({
9
- selectId: (model) => model.id
10
- });
11
- /**
12
- * RoutingGuard Store initial value
13
- */
14
- export const routingGuardInitialState = routingGuardAdapter.getInitialState({});
15
- /**
16
- * List of basic actions for RoutingGuard Store
17
- */
18
- export const routingGuardReducerFeatures = [
19
- on(actions.registerRoutingGuardEntity, (state, payload) => routingGuardAdapter.addOne({ id: payload.id, status: RegisteredItemStatus.READY }, state)),
20
- on(actions.setRoutingGuardEntityAsPending, (state, payload) => routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.PENDING } }, state)),
21
- on(actions.setRoutingGuardEntityAsFailure, (state, payload) => routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.FAILURE } }, state)),
22
- on(actions.setRoutingGuardEntityAsSuccessAndClearReason, (state, payload) => routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.SUCCESS, blockingReason: undefined } }, state)),
23
- on(actions.clearRoutingGuardEntities, (state) => routingGuardAdapter.removeAll(state)),
24
- on(actions.clearRoutingGuardEntitiesFailureReason, (state, payload) => routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.READY, blockingReason: undefined } }, state)),
25
- on(actions.setRoutingGuardEntityFailureWithReason, (state, payload) => routingGuardAdapter.updateOne({ id: payload.id, changes: { status: RegisteredItemStatus.FAILURE, blockingReason: payload.reason } }, state))
26
- ];
27
- /**
28
- * RoutingGuard Store reducer
29
- */
30
- export const routingGuardReducer = createReducer(routingGuardInitialState, ...routingGuardReducerFeatures);
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy1ndWFyZC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9yb3V0aW5nLWd1YXJkL3JvdXRpbmctZ3VhcmQucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsbUJBQW1CLEdBRXBCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFFTCxhQUFhLEVBQ2IsRUFBRSxHQUVILE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sS0FBSyxPQUFPLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLG9CQUFvQixHQUdyQixNQUFNLHVCQUF1QixDQUFDO0FBRS9COztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXFDLG1CQUFtQixDQUFvQjtJQUMxRyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO0NBQzlCLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXNCLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVuRzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUF1RDtJQUM3RixFQUFFLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ3hELG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUU1RixFQUFFLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQzVELG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRTlHLEVBQUUsQ0FBQyxPQUFPLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDNUQsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFOUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyw0Q0FBNEMsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUMxRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXpJLEVBQUUsQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV0RixFQUFFLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQ3BFLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFdkksRUFBRSxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUNwRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztDQUMvSSxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxhQUFhLENBQzlDLHdCQUF3QixFQUN4QixHQUFHLDJCQUEyQixDQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlRW50aXR5QWRhcHRlcixcbiAgRW50aXR5QWRhcHRlcixcbn0gZnJvbSAnQG5ncngvZW50aXR5JztcbmltcG9ydCB7XG4gIEFjdGlvbkNyZWF0b3IsXG4gIGNyZWF0ZVJlZHVjZXIsXG4gIG9uLFxuICBSZWR1Y2VyVHlwZXMsXG59IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGFjdGlvbnMgZnJvbSAnLi9yb3V0aW5nLWd1YXJkLmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgUmVnaXN0ZXJlZEl0ZW1TdGF0dXMsXG4gIFJvdXRpbmdHdWFyZE1vZGVsLFxuICBSb3V0aW5nR3VhcmRTdGF0ZSxcbn0gZnJvbSAnLi9yb3V0aW5nLWd1YXJkLnN0YXRlJztcblxuLyoqXG4gKiBSb3V0aW5nR3VhcmQgU3RvcmUgYWRhcHRlclxuICovXG5leHBvcnQgY29uc3Qgcm91dGluZ0d1YXJkQWRhcHRlcjogRW50aXR5QWRhcHRlcjxSb3V0aW5nR3VhcmRNb2RlbD4gPSBjcmVhdGVFbnRpdHlBZGFwdGVyPFJvdXRpbmdHdWFyZE1vZGVsPih7XG4gIHNlbGVjdElkOiAobW9kZWwpID0+IG1vZGVsLmlkXG59KTtcblxuLyoqXG4gKiBSb3V0aW5nR3VhcmQgU3RvcmUgaW5pdGlhbCB2YWx1ZVxuICovXG5leHBvcnQgY29uc3Qgcm91dGluZ0d1YXJkSW5pdGlhbFN0YXRlOiBSb3V0aW5nR3VhcmRTdGF0ZSA9IHJvdXRpbmdHdWFyZEFkYXB0ZXIuZ2V0SW5pdGlhbFN0YXRlKHt9KTtcblxuLyoqXG4gKiAgTGlzdCBvZiBiYXNpYyBhY3Rpb25zIGZvciBSb3V0aW5nR3VhcmQgU3RvcmVcbiAqL1xuZXhwb3J0IGNvbnN0IHJvdXRpbmdHdWFyZFJlZHVjZXJGZWF0dXJlczogUmVkdWNlclR5cGVzPFJvdXRpbmdHdWFyZFN0YXRlLCBBY3Rpb25DcmVhdG9yW10+W10gPSBbXG4gIG9uKGFjdGlvbnMucmVnaXN0ZXJSb3V0aW5nR3VhcmRFbnRpdHksIChzdGF0ZSwgcGF5bG9hZCkgPT5cbiAgICByb3V0aW5nR3VhcmRBZGFwdGVyLmFkZE9uZSh7IGlkOiBwYXlsb2FkLmlkLCBzdGF0dXM6IFJlZ2lzdGVyZWRJdGVtU3RhdHVzLlJFQURZIH0sIHN0YXRlKSksXG5cbiAgb24oYWN0aW9ucy5zZXRSb3V0aW5nR3VhcmRFbnRpdHlBc1BlbmRpbmcsIChzdGF0ZSwgcGF5bG9hZCkgPT5cbiAgICByb3V0aW5nR3VhcmRBZGFwdGVyLnVwZGF0ZU9uZSh7IGlkOiBwYXlsb2FkLmlkLCBjaGFuZ2VzOiB7IHN0YXR1czogUmVnaXN0ZXJlZEl0ZW1TdGF0dXMuUEVORElORyB9IH0sIHN0YXRlKSksXG5cbiAgb24oYWN0aW9ucy5zZXRSb3V0aW5nR3VhcmRFbnRpdHlBc0ZhaWx1cmUsIChzdGF0ZSwgcGF5bG9hZCkgPT5cbiAgICByb3V0aW5nR3VhcmRBZGFwdGVyLnVwZGF0ZU9uZSh7IGlkOiBwYXlsb2FkLmlkLCBjaGFuZ2VzOiB7IHN0YXR1czogUmVnaXN0ZXJlZEl0ZW1TdGF0dXMuRkFJTFVSRSB9IH0sIHN0YXRlKSksXG5cbiAgb24oYWN0aW9ucy5zZXRSb3V0aW5nR3VhcmRFbnRpdHlBc1N1Y2Nlc3NBbmRDbGVhclJlYXNvbiwgKHN0YXRlLCBwYXlsb2FkKSA9PlxuICAgIHJvdXRpbmdHdWFyZEFkYXB0ZXIudXBkYXRlT25lKHsgaWQ6IHBheWxvYWQuaWQsIGNoYW5nZXM6IHsgc3RhdHVzOiBSZWdpc3RlcmVkSXRlbVN0YXR1cy5TVUNDRVNTLCBibG9ja2luZ1JlYXNvbjogdW5kZWZpbmVkIH0gfSwgc3RhdGUpKSxcblxuICBvbihhY3Rpb25zLmNsZWFyUm91dGluZ0d1YXJkRW50aXRpZXMsIChzdGF0ZSkgPT4gcm91dGluZ0d1YXJkQWRhcHRlci5yZW1vdmVBbGwoc3RhdGUpKSxcblxuICBvbihhY3Rpb25zLmNsZWFyUm91dGluZ0d1YXJkRW50aXRpZXNGYWlsdXJlUmVhc29uLCAoc3RhdGUsIHBheWxvYWQpID0+XG4gICAgcm91dGluZ0d1YXJkQWRhcHRlci51cGRhdGVPbmUoeyBpZDogcGF5bG9hZC5pZCwgY2hhbmdlczogeyBzdGF0dXM6IFJlZ2lzdGVyZWRJdGVtU3RhdHVzLlJFQURZLCBibG9ja2luZ1JlYXNvbjogdW5kZWZpbmVkIH0gfSwgc3RhdGUpKSxcblxuICBvbihhY3Rpb25zLnNldFJvdXRpbmdHdWFyZEVudGl0eUZhaWx1cmVXaXRoUmVhc29uLCAoc3RhdGUsIHBheWxvYWQpID0+XG4gICAgcm91dGluZ0d1YXJkQWRhcHRlci51cGRhdGVPbmUoeyBpZDogcGF5bG9hZC5pZCwgY2hhbmdlczogeyBzdGF0dXM6IFJlZ2lzdGVyZWRJdGVtU3RhdHVzLkZBSUxVUkUsIGJsb2NraW5nUmVhc29uOiBwYXlsb2FkLnJlYXNvbiB9IH0sIHN0YXRlKSlcbl07XG5cbi8qKlxuICogUm91dGluZ0d1YXJkIFN0b3JlIHJlZHVjZXJcbiAqL1xuZXhwb3J0IGNvbnN0IHJvdXRpbmdHdWFyZFJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICByb3V0aW5nR3VhcmRJbml0aWFsU3RhdGUsXG4gIC4uLnJvdXRpbmdHdWFyZFJlZHVjZXJGZWF0dXJlc1xuKTtcbiJdfQ==
@@ -1,59 +0,0 @@
1
- import { createFeatureSelector, createSelector, } from '@ngrx/store';
2
- import { routingGuardAdapter, } from './routing-guard.reducer';
3
- import { RegisteredItemStatus, ROUTING_GUARD_STORE_NAME, } from './routing-guard.state';
4
- const { selectIds, selectEntities, selectAll, selectTotal } = routingGuardAdapter.getSelectors();
5
- /** Select RoutingGuard State */
6
- export const selectRoutingGuardState = createFeatureSelector(ROUTING_GUARD_STORE_NAME);
7
- /** Select the array of RoutingGuard ids */
8
- export const selectRoutingGuardIds = createSelector(selectRoutingGuardState, selectIds);
9
- /** Select the array of RoutingGuard */
10
- export const selectAllRoutingGuard = createSelector(selectRoutingGuardState, selectAll);
11
- /** Select the dictionary of RoutingGuard entities */
12
- export const selectRoutingGuardEntities = createSelector(selectRoutingGuardState, selectEntities);
13
- /** Select the total RoutingGuard count */
14
- export const selectRoutingGuardTotal = createSelector(selectRoutingGuardState, selectTotal);
15
- /**
16
- * Selector used to retrieve the list of entities' status
17
- */
18
- export const selectRoutingGuardEntitiesStatusList = createSelector(selectRoutingGuardState, (state) => {
19
- return Object.keys(state.entities)
20
- .filter((key) => !!state.entities[key])
21
- .map((key) => state.entities[key].status);
22
- });
23
- /**
24
- * Selector used to retrieve the list of entities' blocking reasons for FAILURE status.
25
- */
26
- export const selectRoutingGuardEntitiesBlockingReasons = createSelector(selectRoutingGuardState, (state) => {
27
- return Object.values(state.entities)
28
- .filter((entity) => !!entity && !!entity.blockingReason)
29
- .map((entity) => entity.blockingReason);
30
- });
31
- /**
32
- * Selector used to check that no item is in PENDING state.
33
- * For example, we will rely on this selector to trigger the canDeactivate logic in the RoutingGuard
34
- */
35
- export const hasNoEntitiesInPendingState = createSelector(selectRoutingGuardEntitiesStatusList, (statusList) => {
36
- return !statusList.includes(RegisteredItemStatus.PENDING);
37
- });
38
- /**
39
- * Selector used to check that no item is in FAILURE state.
40
- * For example, we will rely on this selector to authorize or not the navigation in the RoutingGuard
41
- */
42
- export const hasNoEntitiesInFailureState = createSelector(selectRoutingGuardEntitiesStatusList, (statusList) => {
43
- return !statusList.includes(RegisteredItemStatus.FAILURE);
44
- });
45
- /**
46
- * Selector used to check that no item is in READY or FAILURE state.
47
- * For example, we will rely on this selector to trigger the router navigation and display a loader
48
- */
49
- export const hasNoEntityInReadyOrFailureState = createSelector(selectRoutingGuardEntitiesStatusList, (statusList) => {
50
- return !statusList.some((status) => status === RegisteredItemStatus.READY || status === RegisteredItemStatus.FAILURE);
51
- });
52
- /**
53
- * Selector used to check that no item is in FAILURE state with a blocking reason provided.
54
- * Takes `blockingReason: RegisteredItemFailureReason` as aproperty parameter.
55
- */
56
- export const hasNoEntityFailureStateWithReasons = createSelector(selectRoutingGuardEntitiesBlockingReasons, (reasons, properties) => {
57
- return !reasons.includes(properties.blockingReason);
58
- });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy1ndWFyZC5zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RvcmVzL3JvdXRpbmctZ3VhcmQvcm91dGluZy1ndWFyZC5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixjQUFjLEdBQ2YsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLG1CQUFtQixHQUNwQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFFTCxvQkFBb0IsRUFDcEIsd0JBQXdCLEdBRXpCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0FBRWpHLGdDQUFnQztBQUNoQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxxQkFBcUIsQ0FBb0Isd0JBQXdCLENBQUMsQ0FBQztBQUUxRywyQ0FBMkM7QUFDM0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsY0FBYyxDQUFDLHVCQUF1QixFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRXhGLHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFeEYscURBQXFEO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUVsRywwQ0FBMEM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDLHVCQUF1QixFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRTVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsY0FBYyxDQUNoRSx1QkFBdUIsRUFDdkIsQ0FBQyxLQUF3QixFQUFFLEVBQUU7SUFDM0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7U0FDL0IsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN0QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHlDQUF5QyxHQUFHLGNBQWMsQ0FDckUsdUJBQXVCLEVBQ3ZCLENBQUMsS0FBd0IsRUFBRSxFQUFFO0lBQzNCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1NBQ2pDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztTQUN2RCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU8sQ0FBQyxjQUFlLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQ0YsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLGNBQWMsQ0FDdkQsb0NBQW9DLEVBQ3BDLENBQUMsVUFBb0IsRUFBRSxFQUFFO0lBQ3ZCLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVELENBQUMsQ0FDRixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsY0FBYyxDQUN2RCxvQ0FBb0MsRUFDcEMsQ0FBQyxVQUFvQixFQUFFLEVBQUU7SUFDdkIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNUQsQ0FBQyxDQUNGLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxjQUFjLENBQzVELG9DQUFvQyxFQUNwQyxDQUFDLFVBQWtDLEVBQUUsRUFBRTtJQUNyQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLG9CQUFvQixDQUFDLEtBQUssSUFBSSxNQUFNLEtBQUssb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDeEgsQ0FBQyxDQUNGLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxjQUFjLENBQzlELHlDQUF5QyxFQUN6QyxDQUFDLE9BQXNDLEVBQUUsVUFBMkQsRUFBRSxFQUFFO0lBQ3RHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUZlYXR1cmVTZWxlY3RvcixcbiAgY3JlYXRlU2VsZWN0b3IsXG59IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIHJvdXRpbmdHdWFyZEFkYXB0ZXIsXG59IGZyb20gJy4vcm91dGluZy1ndWFyZC5yZWR1Y2VyJztcbmltcG9ydCB7XG4gIFJlZ2lzdGVyZWRJdGVtRmFpbHVyZVJlYXNvbixcbiAgUmVnaXN0ZXJlZEl0ZW1TdGF0dXMsXG4gIFJPVVRJTkdfR1VBUkRfU1RPUkVfTkFNRSxcbiAgUm91dGluZ0d1YXJkU3RhdGUsXG59IGZyb20gJy4vcm91dGluZy1ndWFyZC5zdGF0ZSc7XG5cbmNvbnN0IHsgc2VsZWN0SWRzLCBzZWxlY3RFbnRpdGllcywgc2VsZWN0QWxsLCBzZWxlY3RUb3RhbCB9ID0gcm91dGluZ0d1YXJkQWRhcHRlci5nZXRTZWxlY3RvcnMoKTtcblxuLyoqIFNlbGVjdCBSb3V0aW5nR3VhcmQgU3RhdGUgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RSb3V0aW5nR3VhcmRTdGF0ZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxSb3V0aW5nR3VhcmRTdGF0ZT4oUk9VVElOR19HVUFSRF9TVE9SRV9OQU1FKTtcblxuLyoqIFNlbGVjdCB0aGUgYXJyYXkgb2YgUm91dGluZ0d1YXJkIGlkcyAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJvdXRpbmdHdWFyZElkcyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFJvdXRpbmdHdWFyZFN0YXRlLCBzZWxlY3RJZHMpO1xuXG4vKiogU2VsZWN0IHRoZSBhcnJheSBvZiBSb3V0aW5nR3VhcmQgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RBbGxSb3V0aW5nR3VhcmQgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RSb3V0aW5nR3VhcmRTdGF0ZSwgc2VsZWN0QWxsKTtcblxuLyoqIFNlbGVjdCB0aGUgZGljdGlvbmFyeSBvZiBSb3V0aW5nR3VhcmQgZW50aXRpZXMgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RSb3V0aW5nR3VhcmRFbnRpdGllcyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFJvdXRpbmdHdWFyZFN0YXRlLCBzZWxlY3RFbnRpdGllcyk7XG5cbi8qKiBTZWxlY3QgdGhlIHRvdGFsIFJvdXRpbmdHdWFyZCBjb3VudCAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJvdXRpbmdHdWFyZFRvdGFsID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0Um91dGluZ0d1YXJkU3RhdGUsIHNlbGVjdFRvdGFsKTtcblxuLyoqXG4gKiBTZWxlY3RvciB1c2VkIHRvIHJldHJpZXZlIHRoZSBsaXN0IG9mIGVudGl0aWVzJyBzdGF0dXNcbiAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJvdXRpbmdHdWFyZEVudGl0aWVzU3RhdHVzTGlzdCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RSb3V0aW5nR3VhcmRTdGF0ZSxcbiAgKHN0YXRlOiBSb3V0aW5nR3VhcmRTdGF0ZSkgPT4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzdGF0ZS5lbnRpdGllcylcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4gISFzdGF0ZS5lbnRpdGllc1trZXldKVxuICAgICAgLm1hcCgoa2V5KSA9PiBzdGF0ZS5lbnRpdGllc1trZXldIS5zdGF0dXMpO1xuICB9XG4pO1xuXG4vKipcbiAqIFNlbGVjdG9yIHVzZWQgdG8gcmV0cmlldmUgdGhlIGxpc3Qgb2YgZW50aXRpZXMnIGJsb2NraW5nIHJlYXNvbnMgZm9yIEZBSUxVUkUgc3RhdHVzLlxuICovXG5leHBvcnQgY29uc3Qgc2VsZWN0Um91dGluZ0d1YXJkRW50aXRpZXNCbG9ja2luZ1JlYXNvbnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0Um91dGluZ0d1YXJkU3RhdGUsXG4gIChzdGF0ZTogUm91dGluZ0d1YXJkU3RhdGUpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhzdGF0ZS5lbnRpdGllcylcbiAgICAgIC5maWx0ZXIoKGVudGl0eSkgPT4gISFlbnRpdHkgJiYgISFlbnRpdHkuYmxvY2tpbmdSZWFzb24pXG4gICAgICAubWFwKChlbnRpdHkpID0+IGVudGl0eSEuYmxvY2tpbmdSZWFzb24hKTtcbiAgfVxuKTtcblxuLyoqXG4gKiBTZWxlY3RvciB1c2VkIHRvIGNoZWNrIHRoYXQgbm8gaXRlbSBpcyBpbiBQRU5ESU5HIHN0YXRlLlxuICogRm9yIGV4YW1wbGUsIHdlIHdpbGwgcmVseSBvbiB0aGlzIHNlbGVjdG9yIHRvIHRyaWdnZXIgdGhlIGNhbkRlYWN0aXZhdGUgbG9naWMgaW4gdGhlIFJvdXRpbmdHdWFyZFxuICovXG5leHBvcnQgY29uc3QgaGFzTm9FbnRpdGllc0luUGVuZGluZ1N0YXRlID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdFJvdXRpbmdHdWFyZEVudGl0aWVzU3RhdHVzTGlzdCxcbiAgKHN0YXR1c0xpc3Q6IHN0cmluZ1tdKSA9PiB7XG4gICAgcmV0dXJuICFzdGF0dXNMaXN0LmluY2x1ZGVzKFJlZ2lzdGVyZWRJdGVtU3RhdHVzLlBFTkRJTkcpO1xuICB9XG4pO1xuXG4vKipcbiAqIFNlbGVjdG9yIHVzZWQgdG8gY2hlY2sgdGhhdCBubyBpdGVtIGlzIGluIEZBSUxVUkUgc3RhdGUuXG4gKiBGb3IgZXhhbXBsZSwgd2Ugd2lsbCByZWx5IG9uIHRoaXMgc2VsZWN0b3IgdG8gYXV0aG9yaXplIG9yIG5vdCB0aGUgbmF2aWdhdGlvbiBpbiB0aGUgUm91dGluZ0d1YXJkXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNOb0VudGl0aWVzSW5GYWlsdXJlU3RhdGUgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0Um91dGluZ0d1YXJkRW50aXRpZXNTdGF0dXNMaXN0LFxuICAoc3RhdHVzTGlzdDogc3RyaW5nW10pID0+IHtcbiAgICByZXR1cm4gIXN0YXR1c0xpc3QuaW5jbHVkZXMoUmVnaXN0ZXJlZEl0ZW1TdGF0dXMuRkFJTFVSRSk7XG4gIH1cbik7XG5cbi8qKlxuICogU2VsZWN0b3IgdXNlZCB0byBjaGVjayB0aGF0IG5vIGl0ZW0gaXMgaW4gUkVBRFkgb3IgRkFJTFVSRSBzdGF0ZS5cbiAqIEZvciBleGFtcGxlLCB3ZSB3aWxsIHJlbHkgb24gdGhpcyBzZWxlY3RvciB0byB0cmlnZ2VyIHRoZSByb3V0ZXIgbmF2aWdhdGlvbiBhbmQgZGlzcGxheSBhIGxvYWRlclxuICovXG5leHBvcnQgY29uc3QgaGFzTm9FbnRpdHlJblJlYWR5T3JGYWlsdXJlU3RhdGUgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0Um91dGluZ0d1YXJkRW50aXRpZXNTdGF0dXNMaXN0LFxuICAoc3RhdHVzTGlzdDogUmVnaXN0ZXJlZEl0ZW1TdGF0dXNbXSkgPT4ge1xuICAgIHJldHVybiAhc3RhdHVzTGlzdC5zb21lKChzdGF0dXMpID0+IHN0YXR1cyA9PT0gUmVnaXN0ZXJlZEl0ZW1TdGF0dXMuUkVBRFkgfHwgc3RhdHVzID09PSBSZWdpc3RlcmVkSXRlbVN0YXR1cy5GQUlMVVJFKTtcbiAgfVxuKTtcblxuLyoqXG4gKiBTZWxlY3RvciB1c2VkIHRvIGNoZWNrIHRoYXQgbm8gaXRlbSBpcyBpbiBGQUlMVVJFIHN0YXRlIHdpdGggYSBibG9ja2luZyByZWFzb24gcHJvdmlkZWQuXG4gKiBUYWtlcyBgYmxvY2tpbmdSZWFzb246IFJlZ2lzdGVyZWRJdGVtRmFpbHVyZVJlYXNvbmAgYXMgYXByb3BlcnR5IHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGhhc05vRW50aXR5RmFpbHVyZVN0YXRlV2l0aFJlYXNvbnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0Um91dGluZ0d1YXJkRW50aXRpZXNCbG9ja2luZ1JlYXNvbnMsXG4gIChyZWFzb25zOiBSZWdpc3RlcmVkSXRlbUZhaWx1cmVSZWFzb25bXSwgcHJvcGVydGllczogeyBibG9ja2luZ1JlYXNvbjogUmVnaXN0ZXJlZEl0ZW1GYWlsdXJlUmVhc29uIH0pID0+IHtcbiAgICByZXR1cm4gIXJlYXNvbnMuaW5jbHVkZXMocHJvcGVydGllcy5ibG9ja2luZ1JlYXNvbik7XG4gIH1cbik7XG4iXX0=
@@ -1,25 +0,0 @@
1
- /** Identifies the status of a registered block */
2
- export var RegisteredItemStatus;
3
- (function (RegisteredItemStatus) {
4
- /** block is ready (async call has not been triggered) */
5
- RegisteredItemStatus["READY"] = "READY";
6
- /** block is waiting for async call to resolve */
7
- RegisteredItemStatus["PENDING"] = "PENDING";
8
- /** block received the async call result and it's a failure */
9
- RegisteredItemStatus["FAILURE"] = "FAILURE";
10
- /** block received the async call result and it's a success */
11
- RegisteredItemStatus["SUCCESS"] = "SUCCESS";
12
- })(RegisteredItemStatus || (RegisteredItemStatus = {}));
13
- /** Identifies the failure reason for the registered block */
14
- export var RegisteredItemFailureReason;
15
- (function (RegisteredItemFailureReason) {
16
- /** Routing Failed because the async call result is failure */
17
- RegisteredItemFailureReason["ASYNC_CALL_FAILURE"] = "ASYNC_CALL_FAILURE";
18
- /** Routing failed because the changes to the form has not been saved */
19
- RegisteredItemFailureReason["FORM_UNSAVED"] = "FORM_UNSAVED";
20
- })(RegisteredItemFailureReason || (RegisteredItemFailureReason = {}));
21
- /**
22
- * Name of the RoutingGuard Store
23
- */
24
- export const ROUTING_GUARD_STORE_NAME = 'routingGuard';
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy1ndWFyZC5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdG9yZXMvcm91dGluZy1ndWFyZC9yb3V0aW5nLWd1YXJkLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGtEQUFrRDtBQUNsRCxNQUFNLENBQU4sSUFBWSxvQkFTWDtBQVRELFdBQVksb0JBQW9CO0lBQzlCLHlEQUF5RDtJQUN6RCx1Q0FBZSxDQUFBO0lBQ2YsaURBQWlEO0lBQ2pELDJDQUFtQixDQUFBO0lBQ25CLDhEQUE4RDtJQUM5RCwyQ0FBbUIsQ0FBQTtJQUNuQiw4REFBOEQ7SUFDOUQsMkNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVRXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFTL0I7QUFFRCw2REFBNkQ7QUFDN0QsTUFBTSxDQUFOLElBQVksMkJBS1g7QUFMRCxXQUFZLDJCQUEyQjtJQUNyQyw4REFBOEQ7SUFDOUQsd0VBQXlDLENBQUE7SUFDekMsd0VBQXdFO0lBQ3hFLDREQUE2QixDQUFBO0FBQy9CLENBQUMsRUFMVywyQkFBMkIsS0FBM0IsMkJBQTJCLFFBS3RDO0FBbUJEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5U3RhdGUsXG59IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5cbi8qKiBJZGVudGlmaWVzIHRoZSBzdGF0dXMgb2YgYSByZWdpc3RlcmVkIGJsb2NrICovXG5leHBvcnQgZW51bSBSZWdpc3RlcmVkSXRlbVN0YXR1cyB7XG4gIC8qKiBibG9jayBpcyByZWFkeSAoYXN5bmMgY2FsbCBoYXMgbm90IGJlZW4gdHJpZ2dlcmVkKSAqL1xuICBSRUFEWSA9ICdSRUFEWScsXG4gIC8qKiBibG9jayBpcyB3YWl0aW5nIGZvciBhc3luYyBjYWxsIHRvIHJlc29sdmUgKi9cbiAgUEVORElORyA9ICdQRU5ESU5HJyxcbiAgLyoqIGJsb2NrIHJlY2VpdmVkIHRoZSBhc3luYyBjYWxsIHJlc3VsdCBhbmQgaXQncyBhIGZhaWx1cmUgKi9cbiAgRkFJTFVSRSA9ICdGQUlMVVJFJyxcbiAgLyoqIGJsb2NrIHJlY2VpdmVkIHRoZSBhc3luYyBjYWxsIHJlc3VsdCBhbmQgaXQncyBhIHN1Y2Nlc3MgKi9cbiAgU1VDQ0VTUyA9ICdTVUNDRVNTJ1xufVxuXG4vKiogSWRlbnRpZmllcyB0aGUgZmFpbHVyZSByZWFzb24gZm9yIHRoZSByZWdpc3RlcmVkIGJsb2NrICovXG5leHBvcnQgZW51bSBSZWdpc3RlcmVkSXRlbUZhaWx1cmVSZWFzb24ge1xuICAvKiogUm91dGluZyBGYWlsZWQgYmVjYXVzZSB0aGUgYXN5bmMgY2FsbCByZXN1bHQgaXMgZmFpbHVyZSAqL1xuICBBU1lOQ19DQUxMX0ZBSUxVUkUgPSAnQVNZTkNfQ0FMTF9GQUlMVVJFJyxcbiAgLyoqIFJvdXRpbmcgZmFpbGVkIGJlY2F1c2UgdGhlIGNoYW5nZXMgdG8gdGhlIGZvcm0gaGFzIG5vdCBiZWVuIHNhdmVkICovXG4gIEZPUk1fVU5TQVZFRCA9ICdGT1JNX1VOU0FWRUQnXG59XG5cbi8qKlxuICogUm91dGluZ0d1YXJkIG1vZGVsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGluZ0d1YXJkTW9kZWwge1xuICAvKiogSWQgb2YgdGhlIGJsb2NrIGluc3RhbmNlICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBSb3V0aW5nIHN0YXR1cyBvZiB0aGUgYmxvY2sgKi9cbiAgc3RhdHVzOiBSZWdpc3RlcmVkSXRlbVN0YXR1cztcbiAgLyoqIFJvdXRpbmcgR3VhcmQgYmxvY2tpbmcgcmVhc29uICovXG4gIGJsb2NraW5nUmVhc29uPzogUmVnaXN0ZXJlZEl0ZW1GYWlsdXJlUmVhc29uO1xufVxuXG4vKipcbiAqIFJvdXRpbmdHdWFyZCBzdG9yZSBzdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRpbmdHdWFyZFN0YXRlIGV4dGVuZHMgRW50aXR5U3RhdGU8Um91dGluZ0d1YXJkTW9kZWw+IHt9XG5cbi8qKlxuICogTmFtZSBvZiB0aGUgUm91dGluZ0d1YXJkIFN0b3JlXG4gKi9cbmV4cG9ydCBjb25zdCBST1VUSU5HX0dVQVJEX1NUT1JFX05BTUUgPSAncm91dGluZ0d1YXJkJztcblxuLyoqXG4gKiBSb3V0aW5nR3VhcmQgU3RvcmUgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGluZ0d1YXJkU3RvcmUge1xuICAvKiogUm91dGluZ0d1YXJkIHN0YXRlICovXG4gIFtST1VUSU5HX0dVQVJEX1NUT1JFX05BTUVdOiBSb3V0aW5nR3VhcmRTdGF0ZTtcbn1cbiJdfQ==
@@ -1,49 +0,0 @@
1
- import { APP_BASE_HREF, } from '@angular/common';
2
- import { InjectionToken, NgModule, } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * AppBaseHref factory function
6
- * The APP_BASE_HREF will assume one of the following values (ordered by priority):
7
- * 1- undefined (or disabled) if it's not a PROD environment
8
- * 2- the content of the data tag data-appbasehref in the body if it exists
9
- * 3- the content of config.APP_BASE_HREF if defined
10
- * 4- otherwise, undefined
11
- * @param config The application environment configuration
12
- */
13
- export function appBaseHrefFactory(config) {
14
- if (config.ENVIRONMENT !== 'prod') {
15
- return;
16
- }
17
- const dynamicBaseHref = document.body.dataset.appbasehref;
18
- if (typeof dynamicBaseHref !== 'undefined') {
19
- return dynamicBaseHref;
20
- }
21
- return typeof config.APP_BASE_HREF === 'string' ? config.APP_BASE_HREF : undefined;
22
- }
23
- export const ENVIRONMENT_CONFIG_TOKEN = new InjectionToken('Environment config');
24
- export class AppServerRoutingModule {
25
- /**
26
- * Injects the APP_BASE_HREF with a custom factory
27
- * @param config The application environment configuration
28
- */
29
- static forRoot(config) {
30
- return {
31
- ngModule: AppServerRoutingModule,
32
- providers: [
33
- { provide: ENVIRONMENT_CONFIG_TOKEN, useValue: config },
34
- {
35
- provide: APP_BASE_HREF,
36
- useFactory: appBaseHrefFactory,
37
- deps: [ENVIRONMENT_CONFIG_TOKEN]
38
- }
39
- ]
40
- };
41
- }
42
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppServerRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
43
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AppServerRoutingModule }); }
44
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppServerRoutingModule }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppServerRoutingModule, decorators: [{
47
- type: NgModule
48
- }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNlcnZlci1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9hcHAtc2VydmVyLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEdBQ2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsY0FBYyxFQUVkLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQzs7QUFLdkI7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBMkI7SUFDNUQsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ2xDLE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxlQUFlLEdBQXVCLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUM5RSxJQUFJLE9BQU8sZUFBZSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQzNDLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLE9BQU8sTUFBTSxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNyRixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXNCLG9CQUFvQixDQUFDLENBQUM7QUFHdEcsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQzs7O09BR0c7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQTJCO1FBQy9DLE9BQU87WUFDTCxRQUFRLEVBQUUsc0JBQXNCO1lBQ2hDLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUN2RDtvQkFDRSxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsVUFBVSxFQUFFLGtCQUFrQjtvQkFDOUIsSUFBSSxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQ2pDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztrSUFqQlUsc0JBQXNCO21JQUF0QixzQkFBc0I7bUlBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFQUF9CQVNFX0hSRUYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJbmplY3Rpb25Ub2tlbixcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBCdWlsZFRpbWVQcm9wZXJ0aWVzLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuXG4vKipcbiAqIEFwcEJhc2VIcmVmIGZhY3RvcnkgZnVuY3Rpb25cbiAqIFRoZSBBUFBfQkFTRV9IUkVGIHdpbGwgYXNzdW1lIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlcyAob3JkZXJlZCBieSBwcmlvcml0eSk6XG4gKiAxLSB1bmRlZmluZWQgKG9yIGRpc2FibGVkKSBpZiBpdCdzIG5vdCBhIFBST0QgZW52aXJvbm1lbnRcbiAqIDItIHRoZSBjb250ZW50IG9mIHRoZSBkYXRhIHRhZyBkYXRhLWFwcGJhc2VocmVmIGluIHRoZSBib2R5IGlmIGl0IGV4aXN0c1xuICogMy0gdGhlIGNvbnRlbnQgb2YgY29uZmlnLkFQUF9CQVNFX0hSRUYgaWYgZGVmaW5lZFxuICogNC0gb3RoZXJ3aXNlLCB1bmRlZmluZWRcbiAqIEBwYXJhbSBjb25maWcgVGhlIGFwcGxpY2F0aW9uIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcEJhc2VIcmVmRmFjdG9yeShjb25maWc6IEJ1aWxkVGltZVByb3BlcnRpZXMpIHtcbiAgaWYgKGNvbmZpZy5FTlZJUk9OTUVOVCAhPT0gJ3Byb2QnKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGR5bmFtaWNCYXNlSHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkID0gZG9jdW1lbnQuYm9keS5kYXRhc2V0LmFwcGJhc2VocmVmO1xuICBpZiAodHlwZW9mIGR5bmFtaWNCYXNlSHJlZiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gZHluYW1pY0Jhc2VIcmVmO1xuICB9XG4gIHJldHVybiB0eXBlb2YgY29uZmlnLkFQUF9CQVNFX0hSRUYgPT09ICdzdHJpbmcnID8gY29uZmlnLkFQUF9CQVNFX0hSRUYgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBFTlZJUk9OTUVOVF9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QnVpbGRUaW1lUHJvcGVydGllcz4oJ0Vudmlyb25tZW50IGNvbmZpZycpO1xuXG5ATmdNb2R1bGUoKVxuZXhwb3J0IGNsYXNzIEFwcFNlcnZlclJvdXRpbmdNb2R1bGUge1xuICAvKipcbiAgICogSW5qZWN0cyB0aGUgQVBQX0JBU0VfSFJFRiB3aXRoIGEgY3VzdG9tIGZhY3RvcnlcbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgYXBwbGljYXRpb24gZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQnVpbGRUaW1lUHJvcGVydGllcyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QXBwU2VydmVyUm91dGluZ01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQXBwU2VydmVyUm91dGluZ01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEVOVklST05NRU5UX0NPTkZJR19UT0tFTiwgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBQX0JBU0VfSFJFRixcbiAgICAgICAgICB1c2VGYWN0b3J5OiBhcHBCYXNlSHJlZkZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0VOVklST05NRU5UX0NPTkZJR19UT0tFTl1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './app-server-routing.module';
2
- export * from './on-navigation-strategy.preloader';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHAtc2VydmVyLXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vb24tbmF2aWdhdGlvbi1zdHJhdGVneS5wcmVsb2FkZXInO1xuIl19
@@ -1,55 +0,0 @@
1
- import { Injectable, } from '@angular/core';
2
- import { NavigationEnd, Router, } from '@angular/router';
3
- import { of, } from 'rxjs';
4
- import { filter, switchMap, } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/router";
7
- /**
8
- * Check if the route has preload instructions
9
- * @param data Route data
10
- */
11
- export function hasPreloadingOnDemand(data) {
12
- if (!data) {
13
- return false;
14
- }
15
- return (Array.isArray(data.preloadOn) && data.preloadOn.length > 0)
16
- || data.preloadOn === '*'
17
- || data.preloadOn instanceof RegExp;
18
- }
19
- /**
20
- * Otter Preloading strategy base on previous route
21
- * @inheritDoc
22
- */
23
- export class O3rOnNavigationPreloadingStrategy {
24
- constructor(router) {
25
- this.router = router;
26
- }
27
- /**
28
- * Check if the module should be preloaded based on the data preload array of routes or regex value
29
- * @param data Route data
30
- * @param url URL of current page
31
- */
32
- isUrlMatchingPreloadConfig(data, url) {
33
- return (Array.isArray(data.preloadOn) && data.preloadOn.includes(url))
34
- || (data.preloadOn instanceof RegExp && data.preloadOn.test(url));
35
- }
36
- /** @inheritDoc */
37
- preload(route, preload) {
38
- if ((route.path || route.matcher) && hasPreloadingOnDemand(route.data)) {
39
- // On application landing page, check the route to preload.
40
- if (route.data.preloadOn === '*' || this.isUrlMatchingPreloadConfig(route.data, this.router.routerState.snapshot.url)) {
41
- return preload();
42
- }
43
- // On route navigation end, load the routes to preload for the current route.
44
- return this.router.events
45
- .pipe(filter((r) => r instanceof NavigationEnd && this.isUrlMatchingPreloadConfig(route.data, r.url)), switchMap(() => preload()));
46
- }
47
- return of(null);
48
- }
49
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: O3rOnNavigationPreloadingStrategy, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
50
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: O3rOnNavigationPreloadingStrategy }); }
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: O3rOnNavigationPreloadingStrategy, decorators: [{
53
- type: Injectable
54
- }], ctorParameters: () => [{ type: i1.Router }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tbmF2aWdhdGlvbi1zdHJhdGVneS5wcmVsb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvb24tbmF2aWdhdGlvbi1zdHJhdGVneS5wcmVsb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsYUFBYSxFQUdiLE1BQU0sR0FDUCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFFTCxFQUFFLEdBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDOzs7QUFVeEI7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQVM7SUFDN0MsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztXQUM5RCxJQUFJLENBQUMsU0FBUyxLQUFLLEdBQUc7V0FDdEIsSUFBSSxDQUFDLFNBQVMsWUFBWSxNQUFNLENBQUM7QUFDeEMsQ0FBQztBQUVEOzs7R0FHRztBQUVILE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUMsWUFBNkIsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBRS9DOzs7O09BSUc7SUFDSywwQkFBMEIsQ0FBQyxJQUFTLEVBQUUsR0FBVztRQUN2RCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7ZUFDakUsQ0FBQyxJQUFJLENBQUMsU0FBUyxZQUFZLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxrQkFBa0I7SUFDWCxPQUFPLENBQUMsS0FBWSxFQUFFLE9BQThCO1FBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2RSwyREFBMkQ7WUFDM0QsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RILE9BQU8sT0FBTyxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUVELDZFQUE2RTtZQUM3RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtpQkFDdEIsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLGFBQWEsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDL0YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQzNCLENBQUM7UUFDTixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztrSUE3QlUsaUNBQWlDO3NJQUFqQyxpQ0FBaUM7OzRGQUFqQyxpQ0FBaUM7a0JBRDdDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE5hdmlnYXRpb25FbmQsXG4gIFByZWxvYWRpbmdTdHJhdGVneSxcbiAgUm91dGUsXG4gIFJvdXRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIG9mLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGZpbHRlcixcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogRGF0YSB0byBpbmplY3QgdG8gdGhlIHJvdXRlIHBhcmFtZXRlciB0byBzcGVjaWZ5IHByZWxvYWRpbmcgc3RyYXRlZ3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPM3JPbkRlbWFuZFByZWxvYWRpbmdEYXRhIHtcbiAgLyoqIExpc3Qgb2YgcGFnZSByZWFjaGVkIHRoYXQgdHJpZ2dlciBwcmVsb2FkaW5nICovXG4gIHByZWxvYWRPbjogc3RyaW5nW10gfCAnKicgfCBSZWdFeHA7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHJvdXRlIGhhcyBwcmVsb2FkIGluc3RydWN0aW9uc1xuICogQHBhcmFtICBkYXRhIFJvdXRlIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1ByZWxvYWRpbmdPbkRlbWFuZChkYXRhOiBhbnkpOiBkYXRhIGlzIE8zck9uRGVtYW5kUHJlbG9hZGluZ0RhdGEge1xuICBpZiAoIWRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gKEFycmF5LmlzQXJyYXkoZGF0YS5wcmVsb2FkT24pICYmIGRhdGEucHJlbG9hZE9uLmxlbmd0aCA+IDApXG4gICAgfHwgZGF0YS5wcmVsb2FkT24gPT09ICcqJ1xuICAgIHx8IGRhdGEucHJlbG9hZE9uIGluc3RhbmNlb2YgUmVnRXhwO1xufVxuXG4vKipcbiAqIE90dGVyIFByZWxvYWRpbmcgc3RyYXRlZ3kgYmFzZSBvbiBwcmV2aW91cyByb3V0ZVxuICogQGluaGVyaXREb2NcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE8zck9uTmF2aWdhdGlvblByZWxvYWRpbmdTdHJhdGVneSBpbXBsZW1lbnRzIFByZWxvYWRpbmdTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBtb2R1bGUgc2hvdWxkIGJlIHByZWxvYWRlZCBiYXNlZCBvbiB0aGUgZGF0YSBwcmVsb2FkIGFycmF5IG9mIHJvdXRlcyBvciByZWdleCB2YWx1ZVxuICAgKiBAcGFyYW0gZGF0YSBSb3V0ZSBkYXRhXG4gICAqIEBwYXJhbSB1cmwgVVJMIG9mIGN1cnJlbnQgcGFnZVxuICAgKi9cbiAgcHJpdmF0ZSBpc1VybE1hdGNoaW5nUHJlbG9hZENvbmZpZyhkYXRhOiBhbnksIHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChBcnJheS5pc0FycmF5KGRhdGEucHJlbG9hZE9uKSAmJiBkYXRhLnByZWxvYWRPbi5pbmNsdWRlcyh1cmwpKVxuICAgICAgfHwgKGRhdGEucHJlbG9hZE9uIGluc3RhbmNlb2YgUmVnRXhwICYmIGRhdGEucHJlbG9hZE9uLnRlc3QodXJsKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHByZWxvYWQocm91dGU6IFJvdXRlLCBwcmVsb2FkOiAoKSA9PiBPYnNlcnZhYmxlPGFueT4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICgocm91dGUucGF0aCB8fCByb3V0ZS5tYXRjaGVyKSAmJiBoYXNQcmVsb2FkaW5nT25EZW1hbmQocm91dGUuZGF0YSkpIHtcbiAgICAgIC8vIE9uIGFwcGxpY2F0aW9uIGxhbmRpbmcgcGFnZSwgY2hlY2sgdGhlIHJvdXRlIHRvIHByZWxvYWQuXG4gICAgICBpZiAocm91dGUuZGF0YS5wcmVsb2FkT24gPT09ICcqJyB8fCB0aGlzLmlzVXJsTWF0Y2hpbmdQcmVsb2FkQ29uZmlnKHJvdXRlLmRhdGEsIHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnVybCkpIHtcbiAgICAgICAgcmV0dXJuIHByZWxvYWQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gT24gcm91dGUgbmF2aWdhdGlvbiBlbmQsIGxvYWQgdGhlIHJvdXRlcyB0byBwcmVsb2FkIGZvciB0aGUgY3VycmVudCByb3V0ZS5cbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChyKSA9PiByIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJiB0aGlzLmlzVXJsTWF0Y2hpbmdQcmVsb2FkQ29uZmlnKHJvdXRlLmRhdGEsIHIudXJsKSksXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHByZWxvYWQoKSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG59XG4iXX0=