{"version":3,"sources":["node_modules/@ngrx/store/fesm2022/ngrx-store.mjs","src/app/state/article.actions.ts","node_modules/@ngrx/entity/fesm2022/ngrx-entity.mjs","src/app/state/article.reducer.ts","src/app/state/menus.actions.ts","src/app/state/menus.reducer.ts","node_modules/@ngrx/router-store/fesm2022/ngrx-router-store.mjs","node_modules/@ngrx/effects/fesm2022/ngrx-effects.mjs","src/app/state/router.effects.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject, computed, effect, untracked, inject, Injector, isDevMode, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, NgModule, Optional } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject, queueScheduler } from 'rxjs';\nimport { observeOn, withLatestFrom, scan, pluck, map, distinctUntilChanged } from 'rxjs/operators';\nimport { toSignal } from '@angular/core/rxjs-interop';\nconst REGISTERED_ACTION_TYPES = {};\nfunction resetRegisteredActionTypes() {\n for (const key of Object.keys(REGISTERED_ACTION_TYPES)) {\n delete REGISTERED_ACTION_TYPES[key];\n }\n}\n\n/**\n * @description\n * Creates a configured `Creator` function that, when called, returns an object in the shape of the `Action` interface.\n *\n * Action creators reduce the explicitness of class-based action creators.\n *\n * @param type Describes the action that will be dispatched\n * @param config Additional metadata needed for the handling of the action. See {@link createAction#usage-notes Usage Notes}.\n *\n * @usageNotes\n *\n * **Declaring an action creator**\n *\n * Without additional metadata:\n * ```ts\n * export const increment = createAction('[Counter] Increment');\n * ```\n * With additional metadata:\n * ```ts\n * export const loginSuccess = createAction(\n * '[Auth/API] Login Success',\n * props<{ user: User }>()\n * );\n * ```\n * With a function:\n * ```ts\n * export const loginSuccess = createAction(\n * '[Auth/API] Login Success',\n * (response: Response) => response.user\n * );\n * ```\n *\n * **Dispatching an action**\n *\n * Without additional metadata:\n * ```ts\n * store.dispatch(increment());\n * ```\n * With additional metadata:\n * ```ts\n * store.dispatch(loginSuccess({ user: newUser }));\n * ```\n *\n * **Referencing an action in a reducer**\n *\n * Using a switch statement:\n * ```ts\n * switch (action.type) {\n * // ...\n * case AuthApiActions.loginSuccess.type: {\n * return {\n * ...state,\n * user: action.user\n * };\n * }\n * }\n * ```\n * Using a reducer creator:\n * ```ts\n * on(AuthApiActions.loginSuccess, (state, { user }) => ({ ...state, user }))\n * ```\n *\n * **Referencing an action in an effect**\n * ```ts\n * effectName$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(AuthApiActions.loginSuccess),\n * // ...\n * )\n * );\n * ```\n */\nfunction createAction(type, config) {\n REGISTERED_ACTION_TYPES[type] = (REGISTERED_ACTION_TYPES[type] || 0) + 1;\n if (typeof config === 'function') {\n return defineType(type, (...args) => ({\n ...config(...args),\n type\n }));\n }\n const as = config ? config._as : 'empty';\n switch (as) {\n case 'empty':\n return defineType(type, () => ({\n type\n }));\n case 'props':\n return defineType(type, props => ({\n ...props,\n type\n }));\n default:\n throw new Error('Unexpected config.');\n }\n}\nfunction props() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return {\n _as: 'props',\n _p: undefined\n };\n}\nfunction union(creators) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return undefined;\n}\nfunction defineType(type, creator) {\n return Object.defineProperty(creator, 'type', {\n value: type,\n writable: false\n });\n}\nfunction capitalize(text) {\n return text.charAt(0).toUpperCase() + text.substring(1);\n}\nfunction uncapitalize(text) {\n return text.charAt(0).toLowerCase() + text.substring(1);\n}\nfunction assertDefined(value, name) {\n if (value === null || value === undefined) {\n throw new Error(`${name} must be defined.`);\n }\n}\n\n/**\n * @description\n * A function that creates a group of action creators with the same source.\n *\n * @param config An object that contains a source and dictionary of events.\n * An event is a key-value pair of an event name and event props.\n * @returns A dictionary of action creators.\n * The name of each action creator is created by camel casing the event name.\n * The type of each action is created using the \"[Source] Event Name\" pattern.\n *\n * @usageNotes\n *\n * ```ts\n * const authApiActions = createActionGroup({\n * source: 'Auth API',\n * events: {\n * // defining events with payload using the `props` function\n * 'Login Success': props<{ userId: number; token: string }>(),\n * 'Login Failure': props<{ error: string }>(),\n *\n * // defining an event without payload using the `emptyProps` function\n * 'Logout Success': emptyProps(),\n *\n * // defining an event with payload using the props factory\n * 'Logout Failure': (error: Error) => ({ error }),\n * },\n * });\n *\n * // action type: \"[Auth API] Login Success\"\n * authApiActions.loginSuccess({ userId: 10, token: 'ngrx' });\n *\n * // action type: \"[Auth API] Login Failure\"\n * authApiActions.loginFailure({ error: 'Login Failure!' });\n *\n * // action type: \"[Auth API] Logout Success\"\n * authApiActions.logoutSuccess();\n *\n * // action type: \"[Auth API] Logout Failure\";\n * authApiActions.logoutFailure(new Error('Logout Failure!'));\n * ```\n */\nfunction createActionGroup(config) {\n const {\n source,\n events\n } = config;\n return Object.keys(events).reduce((actionGroup, eventName) => ({\n ...actionGroup,\n [toActionName(eventName)]: createAction(toActionType(source, eventName), events[eventName])\n }), {});\n}\nfunction emptyProps() {\n return props();\n}\nfunction toActionName(eventName) {\n return eventName.trim().split(' ').map((word, i) => i === 0 ? uncapitalize(word) : capitalize(word)).join('');\n}\nfunction toActionType(source, eventName) {\n return `[${source}] ${eventName}`;\n}\nconst INIT = '@ngrx/store/init';\nlet ActionsSubject = /*#__PURE__*/(() => {\n class ActionsSubject extends BehaviorSubject {\n constructor() {\n super({\n type: INIT\n });\n }\n next(action) {\n if (typeof action === 'function') {\n throw new TypeError(`\n Dispatch expected an object, instead it received a function.\n If you're using the createAction function, make sure to invoke the function\n before dispatching the action. For example, someAction should be someAction().`);\n } else if (typeof action === 'undefined') {\n throw new TypeError(`Actions must be objects`);\n } else if (typeof action.type === 'undefined') {\n throw new TypeError(`Actions must have a type property`);\n }\n super.next(action);\n }\n complete() {\n /* noop */\n }\n ngOnDestroy() {\n super.complete();\n }\n /** @nocollapse */\n static {\n this.ɵfac = function ActionsSubject_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ActionsSubject)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ActionsSubject,\n factory: ActionsSubject.ɵfac\n });\n }\n }\n return ActionsSubject;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst ACTIONS_SUBJECT_PROVIDERS = [ActionsSubject];\nconst _ROOT_STORE_GUARD = new InjectionToken('@ngrx/store Internal Root Guard');\nconst _INITIAL_STATE = new InjectionToken('@ngrx/store Internal Initial State');\nconst INITIAL_STATE = new InjectionToken('@ngrx/store Initial State');\nconst REDUCER_FACTORY = new InjectionToken('@ngrx/store Reducer Factory');\nconst _REDUCER_FACTORY = new InjectionToken('@ngrx/store Internal Reducer Factory Provider');\nconst INITIAL_REDUCERS = new InjectionToken('@ngrx/store Initial Reducers');\nconst _INITIAL_REDUCERS = new InjectionToken('@ngrx/store Internal Initial Reducers');\nconst STORE_FEATURES = new InjectionToken('@ngrx/store Store Features');\nconst _STORE_REDUCERS = new InjectionToken('@ngrx/store Internal Store Reducers');\nconst _FEATURE_REDUCERS = new InjectionToken('@ngrx/store Internal Feature Reducers');\nconst _FEATURE_CONFIGS = new InjectionToken('@ngrx/store Internal Feature Configs');\nconst _STORE_FEATURES = new InjectionToken('@ngrx/store Internal Store Features');\nconst _FEATURE_REDUCERS_TOKEN = new InjectionToken('@ngrx/store Internal Feature Reducers Token');\nconst FEATURE_REDUCERS = new InjectionToken('@ngrx/store Feature Reducers');\n/**\n * User-defined meta reducers from StoreModule.forRoot()\n */\nconst USER_PROVIDED_META_REDUCERS = new InjectionToken('@ngrx/store User Provided Meta Reducers');\n/**\n * Meta reducers defined either internally by @ngrx/store or by library authors\n */\nconst META_REDUCERS = new InjectionToken('@ngrx/store Meta Reducers');\n/**\n * Concats the user provided meta reducers and the meta reducers provided on the multi\n * injection token\n */\nconst _RESOLVED_META_REDUCERS = new InjectionToken('@ngrx/store Internal Resolved Meta Reducers');\n/**\n * Runtime checks defined by the user via an InjectionToken\n * Defaults to `_USER_RUNTIME_CHECKS`\n */\nconst USER_RUNTIME_CHECKS = new InjectionToken('@ngrx/store User Runtime Checks Config');\n/**\n * Runtime checks defined by the user via forRoot()\n */\nconst _USER_RUNTIME_CHECKS = new InjectionToken('@ngrx/store Internal User Runtime Checks Config');\n/**\n * Runtime checks currently in use\n */\nconst ACTIVE_RUNTIME_CHECKS = new InjectionToken('@ngrx/store Internal Runtime Checks');\nconst _ACTION_TYPE_UNIQUENESS_CHECK = new InjectionToken('@ngrx/store Check if Action types are unique');\n/**\n * InjectionToken that registers the global Store.\n * Mainly used to provide a hook that can be injected\n * to ensure the root state is loaded before something\n * that depends on it.\n */\nconst ROOT_STORE_PROVIDER = new InjectionToken('@ngrx/store Root Store Provider');\n/**\n * InjectionToken that registers feature states.\n * Mainly used to provide a hook that can be injected\n * to ensure feature state is loaded before something\n * that depends on it.\n */\nconst FEATURE_STATE_PROVIDER = new InjectionToken('@ngrx/store Feature State Provider');\n\n/**\n * @description\n * Combines reducers for individual features into a single reducer.\n *\n * You can use this function to delegate handling of state transitions to multiple reducers, each acting on their\n * own sub-state within the root state.\n *\n * @param reducers An object mapping keys of the root state to their corresponding feature reducer.\n * @param initialState Provides a state value if the current state is `undefined`, as it is initially.\n * @returns A reducer function.\n *\n * @usageNotes\n *\n * **Example combining two feature reducers into one \"root\" reducer**\n *\n * ```ts\n * export const reducer = combineReducers({\n * featureA: featureAReducer,\n * featureB: featureBReducer\n * });\n * ```\n *\n * You can also override the initial states of the sub-features:\n * ```ts\n * export const reducer = combineReducers({\n * featureA: featureAReducer,\n * featureB: featureBReducer\n * }, {\n * featureA: { counterA: 13 },\n * featureB: { counterB: 37 }\n * });\n * ```\n */\nfunction combineReducers(reducers, initialState = {}) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n return function combination(state, action) {\n state = state === undefined ? initialState : state;\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\nfunction omit(object, keyToRemove) {\n return Object.keys(object).filter(key => key !== keyToRemove).reduce((result, key) => Object.assign(result, {\n [key]: object[key]\n }), {});\n}\nfunction compose(...functions) {\n return function (arg) {\n if (functions.length === 0) {\n return arg;\n }\n const last = functions[functions.length - 1];\n const rest = functions.slice(0, -1);\n return rest.reduceRight((composed, fn) => fn(composed), last(arg));\n };\n}\nfunction createReducerFactory(reducerFactory, metaReducers) {\n if (Array.isArray(metaReducers) && metaReducers.length > 0) {\n reducerFactory = compose.apply(null, [...metaReducers, reducerFactory]);\n }\n return (reducers, initialState) => {\n const reducer = reducerFactory(reducers);\n return (state, action) => {\n state = state === undefined ? initialState : state;\n return reducer(state, action);\n };\n };\n}\nfunction createFeatureReducerFactory(metaReducers) {\n const reducerFactory = Array.isArray(metaReducers) && metaReducers.length > 0 ? compose(...metaReducers) : r => r;\n return (reducer, initialState) => {\n reducer = reducerFactory(reducer);\n return (state, action) => {\n state = state === undefined ? initialState : state;\n return reducer(state, action);\n };\n };\n}\nclass ReducerObservable extends Observable {}\nclass ReducerManagerDispatcher extends ActionsSubject {}\nconst UPDATE = '@ngrx/store/update-reducers';\nlet ReducerManager = /*#__PURE__*/(() => {\n class ReducerManager extends BehaviorSubject {\n get currentReducers() {\n return this.reducers;\n }\n constructor(dispatcher, initialState, reducers, reducerFactory) {\n super(reducerFactory(reducers, initialState));\n this.dispatcher = dispatcher;\n this.initialState = initialState;\n this.reducers = reducers;\n this.reducerFactory = reducerFactory;\n }\n addFeature(feature) {\n this.addFeatures([feature]);\n }\n addFeatures(features) {\n const reducers = features.reduce((reducerDict, {\n reducers,\n reducerFactory,\n metaReducers,\n initialState,\n key\n }) => {\n const reducer = typeof reducers === 'function' ? createFeatureReducerFactory(metaReducers)(reducers, initialState) : createReducerFactory(reducerFactory, metaReducers)(reducers, initialState);\n reducerDict[key] = reducer;\n return reducerDict;\n }, {});\n this.addReducers(reducers);\n }\n removeFeature(feature) {\n this.removeFeatures([feature]);\n }\n removeFeatures(features) {\n this.removeReducers(features.map(p => p.key));\n }\n addReducer(key, reducer) {\n this.addReducers({\n [key]: reducer\n });\n }\n addReducers(reducers) {\n this.reducers = {\n ...this.reducers,\n ...reducers\n };\n this.updateReducers(Object.keys(reducers));\n }\n removeReducer(featureKey) {\n this.removeReducers([featureKey]);\n }\n removeReducers(featureKeys) {\n featureKeys.forEach(key => {\n this.reducers = omit(this.reducers, key) /*TODO(#823)*/;\n });\n this.updateReducers(featureKeys);\n }\n updateReducers(featureKeys) {\n this.next(this.reducerFactory(this.reducers, this.initialState));\n this.dispatcher.next({\n type: UPDATE,\n features: featureKeys\n });\n }\n ngOnDestroy() {\n this.complete();\n }\n /** @nocollapse */\n static {\n this.ɵfac = function ReducerManager_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ReducerManager)(i0.ɵɵinject(ReducerManagerDispatcher), i0.ɵɵinject(INITIAL_STATE), i0.ɵɵinject(INITIAL_REDUCERS), i0.ɵɵinject(REDUCER_FACTORY));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ReducerManager,\n factory: ReducerManager.ɵfac\n });\n }\n }\n return ReducerManager;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst REDUCER_MANAGER_PROVIDERS = [ReducerManager, {\n provide: ReducerObservable,\n useExisting: ReducerManager\n}, {\n provide: ReducerManagerDispatcher,\n useExisting: ActionsSubject\n}];\nlet ScannedActionsSubject = /*#__PURE__*/(() => {\n class ScannedActionsSubject extends Subject {\n ngOnDestroy() {\n this.complete();\n }\n /** @nocollapse */\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵScannedActionsSubject_BaseFactory;\n return function ScannedActionsSubject_Factory(__ngFactoryType__) {\n return (ɵScannedActionsSubject_BaseFactory || (ɵScannedActionsSubject_BaseFactory = i0.ɵɵgetInheritedFactory(ScannedActionsSubject)))(__ngFactoryType__ || ScannedActionsSubject);\n };\n })();\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScannedActionsSubject,\n factory: ScannedActionsSubject.ɵfac\n });\n }\n }\n return ScannedActionsSubject;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst SCANNED_ACTIONS_SUBJECT_PROVIDERS = [ScannedActionsSubject];\nclass StateObservable extends Observable {}\nlet State = /*#__PURE__*/(() => {\n class State extends BehaviorSubject {\n static {\n this.INIT = INIT;\n }\n constructor(actions$, reducer$, scannedActions, initialState) {\n super(initialState);\n const actionsOnQueue$ = actions$.pipe(observeOn(queueScheduler));\n const withLatestReducer$ = actionsOnQueue$.pipe(withLatestFrom(reducer$));\n const seed = {\n state: initialState\n };\n const stateAndAction$ = withLatestReducer$.pipe(scan(reduceState, seed));\n this.stateSubscription = stateAndAction$.subscribe(({\n state,\n action\n }) => {\n this.next(state);\n scannedActions.next(action);\n });\n this.state = toSignal(this, {\n manualCleanup: true,\n requireSync: true\n });\n }\n ngOnDestroy() {\n this.stateSubscription.unsubscribe();\n this.complete();\n }\n /** @nocollapse */\n static {\n this.ɵfac = function State_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || State)(i0.ɵɵinject(ActionsSubject), i0.ɵɵinject(ReducerObservable), i0.ɵɵinject(ScannedActionsSubject), i0.ɵɵinject(INITIAL_STATE));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: State,\n factory: State.ɵfac\n });\n }\n }\n return State;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction reduceState(stateActionPair = {\n state: undefined\n}, [action, reducer]) {\n const {\n state\n } = stateActionPair;\n return {\n state: reducer(state, action),\n action\n };\n}\nconst STATE_PROVIDERS = [State, {\n provide: StateObservable,\n useExisting: State\n}];\n\n// disabled because we have lowercase generics for `select`\nlet Store = /*#__PURE__*/(() => {\n class Store extends Observable {\n constructor(state$, actionsObserver, reducerManager, injector) {\n super();\n this.actionsObserver = actionsObserver;\n this.reducerManager = reducerManager;\n this.injector = injector;\n this.source = state$;\n this.state = state$.state;\n }\n select(pathOrMapFn, ...paths) {\n return select.call(null, pathOrMapFn, ...paths)(this);\n }\n /**\n * Returns a signal of the provided selector.\n *\n * @param selector selector function\n * @param options select signal options\n */\n selectSignal(selector, options) {\n return computed(() => selector(this.state()), options);\n }\n lift(operator) {\n const store = new Store(this, this.actionsObserver, this.reducerManager);\n store.operator = operator;\n return store;\n }\n dispatch(actionOrDispatchFn, config) {\n if (typeof actionOrDispatchFn === 'function') {\n return this.processDispatchFn(actionOrDispatchFn, config);\n }\n this.actionsObserver.next(actionOrDispatchFn);\n }\n next(action) {\n this.actionsObserver.next(action);\n }\n error(err) {\n this.actionsObserver.error(err);\n }\n complete() {\n this.actionsObserver.complete();\n }\n addReducer(key, reducer) {\n this.reducerManager.addReducer(key, reducer);\n }\n removeReducer(key) {\n this.reducerManager.removeReducer(key);\n }\n processDispatchFn(dispatchFn, config) {\n assertDefined(this.injector, 'Store Injector');\n const effectInjector = config?.injector ?? getCallerInjector() ?? this.injector;\n return effect(() => {\n const action = dispatchFn();\n untracked(() => this.dispatch(action));\n }, {\n injector: effectInjector\n });\n }\n /** @nocollapse */\n static {\n this.ɵfac = function Store_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Store)(i0.ɵɵinject(StateObservable), i0.ɵɵinject(ActionsSubject), i0.ɵɵinject(ReducerManager), i0.ɵɵinject(i0.Injector));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Store,\n factory: Store.ɵfac\n });\n }\n }\n return Store;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst STORE_PROVIDERS = [Store];\nfunction select(pathOrMapFn, propsOrPath, ...paths) {\n return function selectOperator(source$) {\n let mapped$;\n if (typeof pathOrMapFn === 'string') {\n const pathSlices = [propsOrPath, ...paths].filter(Boolean);\n mapped$ = source$.pipe(pluck(pathOrMapFn, ...pathSlices));\n } else if (typeof pathOrMapFn === 'function') {\n mapped$ = source$.pipe(map(source => pathOrMapFn(source, propsOrPath)));\n } else {\n throw new TypeError(`Unexpected type '${typeof pathOrMapFn}' in select operator,` + ` expected 'string' or 'function'`);\n }\n return mapped$.pipe(distinctUntilChanged());\n };\n}\nfunction getCallerInjector() {\n try {\n return inject(Injector);\n } catch (_) {\n return undefined;\n }\n}\nconst RUNTIME_CHECK_URL = 'https://ngrx.io/guide/store/configuration/runtime-checks';\nfunction isUndefined(target) {\n return target === undefined;\n}\nfunction isNull(target) {\n return target === null;\n}\nfunction isArray(target) {\n return Array.isArray(target);\n}\nfunction isString(target) {\n return typeof target === 'string';\n}\nfunction isBoolean(target) {\n return typeof target === 'boolean';\n}\nfunction isNumber(target) {\n return typeof target === 'number';\n}\nfunction isObjectLike(target) {\n return typeof target === 'object' && target !== null;\n}\nfunction isObject(target) {\n return isObjectLike(target) && !isArray(target);\n}\nfunction isPlainObject(target) {\n if (!isObject(target)) {\n return false;\n }\n const targetPrototype = Object.getPrototypeOf(target);\n return targetPrototype === Object.prototype || targetPrototype === null;\n}\nfunction isFunction(target) {\n return typeof target === 'function';\n}\nfunction isComponent(target) {\n return isFunction(target) && target.hasOwnProperty('ɵcmp');\n}\nfunction hasOwnProperty(target, propertyName) {\n return Object.prototype.hasOwnProperty.call(target, propertyName);\n}\nlet _ngrxMockEnvironment = false;\nfunction setNgrxMockEnvironment(value) {\n _ngrxMockEnvironment = value;\n}\nfunction isNgrxMockEnvironment() {\n return _ngrxMockEnvironment;\n}\nfunction isEqualCheck(a, b) {\n return a === b;\n}\nfunction isArgumentsChanged(args, lastArguments, comparator) {\n for (let i = 0; i < args.length; i++) {\n if (!comparator(args[i], lastArguments[i])) {\n return true;\n }\n }\n return false;\n}\nfunction resultMemoize(projectionFn, isResultEqual) {\n return defaultMemoize(projectionFn, isEqualCheck, isResultEqual);\n}\nfunction defaultMemoize(projectionFn, isArgumentsEqual = isEqualCheck, isResultEqual = isEqualCheck) {\n let lastArguments = null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, , , , ,\n let lastResult = null;\n let overrideResult;\n function reset() {\n lastArguments = null;\n lastResult = null;\n }\n function setResult(result = undefined) {\n overrideResult = {\n result\n };\n }\n function clearResult() {\n overrideResult = undefined;\n }\n /* eslint-disable prefer-rest-params, prefer-spread */\n // disabled because of the use of `arguments`\n function memoized() {\n if (overrideResult !== undefined) {\n return overrideResult.result;\n }\n if (!lastArguments) {\n lastResult = projectionFn.apply(null, arguments);\n lastArguments = arguments;\n return lastResult;\n }\n if (!isArgumentsChanged(arguments, lastArguments, isArgumentsEqual)) {\n return lastResult;\n }\n const newResult = projectionFn.apply(null, arguments);\n lastArguments = arguments;\n if (isResultEqual(lastResult, newResult)) {\n return lastResult;\n }\n lastResult = newResult;\n return newResult;\n }\n return {\n memoized,\n reset,\n setResult,\n clearResult\n };\n}\nfunction createSelector(...input) {\n return createSelectorFactory(defaultMemoize)(...input);\n}\nfunction defaultStateFn(state, selectors, props, memoizedProjector) {\n if (props === undefined) {\n const args = selectors.map(fn => fn(state));\n return memoizedProjector.memoized.apply(null, args);\n }\n const args = selectors.map(fn => fn(state, props));\n return memoizedProjector.memoized.apply(null, [...args, props]);\n}\n/**\n *\n * @param memoize The function used to memoize selectors\n * @param options Config Object that may include a `stateFn` function defining how to return the selector's value, given the entire `Store`'s state, parent `Selector`s, `Props`, and a `MemoizedProjection`\n *\n * @usageNotes\n *\n * **Creating a Selector Factory Where Array Order Does Not Matter**\n *\n * ```ts\n * function removeMatch(arr: string[], target: string): string[] {\n * const matchIndex = arr.indexOf(target);\n * return [...arr.slice(0, matchIndex), ...arr.slice(matchIndex + 1)];\n * }\n *\n * function orderDoesNotMatterComparer(a: any, b: any): boolean {\n * if (!Array.isArray(a) || !Array.isArray(b)) {\n * return a === b;\n * }\n * if (a.length !== b.length) {\n * return false;\n * }\n * let tempB = [...b];\n * function reduceToDetermineIfArraysContainSameContents(\n * previousCallResult: boolean,\n * arrayMember: any\n * ): boolean {\n * if (previousCallResult === false) {\n * return false;\n * }\n * if (tempB.includes(arrayMember)) {\n * tempB = removeMatch(tempB, arrayMember);\n * return true;\n * }\n * return false;\n * }\n * return a.reduce(reduceToDetermineIfArraysContainSameContents, true);\n * }\n *\n * export const createOrderDoesNotMatterSelector = createSelectorFactory(\n * (projectionFun) => defaultMemoize(\n * projectionFun,\n * orderDoesNotMatterComparer,\n * orderDoesNotMatterComparer\n * )\n * );\n * ```\n *\n * **Creating an Alternative Memoization Strategy**\n *\n * ```ts\n * function serialize(x: any): string {\n * return JSON.stringify(x);\n * }\n *\n * export const createFullHistorySelector = createSelectorFactory(\n * (projectionFunction) => {\n * const cache = {};\n *\n * function memoized() {\n * const serializedArguments = serialize(...arguments);\n * if (cache[serializedArguments] != null) {\n * cache[serializedArguments] = projectionFunction.apply(null, arguments);\n * }\n * return cache[serializedArguments];\n * }\n * return {\n * memoized,\n * reset: () => {},\n * setResult: () => {},\n * clearResult: () => {},\n * };\n * }\n * );\n * ```\n */\nfunction createSelectorFactory(memoize, options = {\n stateFn: defaultStateFn\n}) {\n return function (...input) {\n let args = input;\n if (Array.isArray(args[0])) {\n const [head, ...tail] = args;\n args = [...head, ...tail];\n } else if (args.length === 1 && isSelectorsDictionary(args[0])) {\n args = extractArgsFromSelectorsDictionary(args[0]);\n }\n const selectors = args.slice(0, args.length - 1);\n const projector = args[args.length - 1];\n const memoizedSelectors = selectors.filter(selector => selector.release && typeof selector.release === 'function');\n const memoizedProjector = memoize(function (...selectors) {\n return projector.apply(null, selectors);\n });\n const memoizedState = defaultMemoize(function (state, props) {\n return options.stateFn.apply(null, [state, selectors, props, memoizedProjector]);\n });\n function release() {\n memoizedState.reset();\n memoizedProjector.reset();\n memoizedSelectors.forEach(selector => selector.release());\n }\n return Object.assign(memoizedState.memoized, {\n release,\n projector: memoizedProjector.memoized,\n setResult: memoizedState.setResult,\n clearResult: memoizedState.clearResult\n });\n };\n}\nfunction createFeatureSelector(featureName) {\n return createSelector(state => {\n const featureState = state[featureName];\n if (!isNgrxMockEnvironment() && isDevMode() && !(featureName in state)) {\n console.warn(`@ngrx/store: The feature name \"${featureName}\" does ` + 'not exist in the state, therefore createFeatureSelector ' + 'cannot access it. Be sure it is imported in a loaded module ' + `using StoreModule.forRoot('${featureName}', ...) or ` + `StoreModule.forFeature('${featureName}', ...). If the default ` + 'state is intended to be undefined, as is the case with router ' + 'state, this development-only warning message can be ignored.');\n }\n return featureState;\n }, featureState => featureState);\n}\nfunction isSelectorsDictionary(selectors) {\n return !!selectors && typeof selectors === 'object' && Object.values(selectors).every(selector => typeof selector === 'function');\n}\nfunction extractArgsFromSelectorsDictionary(selectorsDictionary) {\n const selectors = Object.values(selectorsDictionary);\n const resultKeys = Object.keys(selectorsDictionary);\n const projector = (...selectorResults) => resultKeys.reduce((result, key, index) => ({\n ...result,\n [key]: selectorResults[index]\n }), {});\n return [...selectors, projector];\n}\n\n/**\n * @description\n * A function that accepts a feature name and a feature reducer, and creates\n * a feature selector and a selector for each feature state property.\n * This function also provides the ability to add extra selectors to\n * the feature object.\n *\n * @param featureConfig An object that contains a feature name and a feature\n * reducer as required, and extra selectors factory as an optional argument.\n * @returns An object that contains a feature name, a feature reducer,\n * a feature selector, a selector for each feature state property, and extra\n * selectors.\n *\n * @usageNotes\n *\n * ```ts\n * interface ProductsState {\n * products: Product[];\n * selectedId: string | null;\n * }\n *\n * const initialState: ProductsState = {\n * products: [],\n * selectedId: null,\n * };\n *\n * const productsFeature = createFeature({\n * name: 'products',\n * reducer: createReducer(\n * initialState,\n * on(ProductsApiActions.loadSuccess(state, { products }) => ({\n * ...state,\n * products,\n * }),\n * ),\n * });\n *\n * const {\n * name,\n * reducer,\n * // feature selector\n * selectProductsState, // type: MemoizedSelector, ProductsState>\n * // feature state properties selectors\n * selectProducts, // type: MemoizedSelector, Product[]>\n * selectSelectedId, // type: MemoizedSelector, string | null>\n * } = productsFeature;\n * ```\n *\n * **Creating Feature with Extra Selectors**\n *\n * ```ts\n * type CallState = 'init' | 'loading' | 'loaded' | { error: string };\n *\n * interface State extends EntityState {\n * callState: CallState;\n * }\n *\n * const adapter = createEntityAdapter();\n * const initialState: State = adapter.getInitialState({\n * callState: 'init',\n * });\n *\n * export const productsFeature = createFeature({\n * name: 'products',\n * reducer: createReducer(initialState),\n * extraSelectors: ({ selectProductsState, selectCallState }) => ({\n * ...adapter.getSelectors(selectProductsState),\n * ...getCallStateSelectors(selectCallState)\n * }),\n * });\n *\n * const {\n * name,\n * reducer,\n * // feature selector\n * selectProductsState,\n * // feature state properties selectors\n * selectIds,\n * selectEntities,\n * selectCallState,\n * // selectors returned by `adapter.getSelectors`\n * selectAll,\n * selectTotal,\n * // selectors returned by `getCallStateSelectors`\n * selectIsLoading,\n * selectIsLoaded,\n * selectError,\n * } = productsFeature;\n * ```\n */\nfunction createFeature(featureConfig) {\n const {\n name,\n reducer,\n extraSelectors: extraSelectorsFactory\n } = featureConfig;\n const featureSelector = createFeatureSelector(name);\n const nestedSelectors = createNestedSelectors(featureSelector, reducer);\n const baseSelectors = {\n [`select${capitalize(name)}State`]: featureSelector,\n ...nestedSelectors\n };\n const extraSelectors = extraSelectorsFactory ? extraSelectorsFactory(baseSelectors) : {};\n return {\n name,\n reducer,\n ...baseSelectors,\n ...extraSelectors\n };\n}\nfunction createNestedSelectors(featureSelector, reducer) {\n const initialState = getInitialState(reducer);\n const nestedKeys = isPlainObject(initialState) ? Object.keys(initialState) : [];\n return nestedKeys.reduce((nestedSelectors, nestedKey) => ({\n ...nestedSelectors,\n [`select${capitalize(nestedKey)}`]: createSelector(featureSelector, parentState => parentState?.[nestedKey])\n }), {});\n}\nfunction getInitialState(reducer) {\n return reducer(undefined, {\n type: '@ngrx/feature/init'\n });\n}\nfunction _createStoreReducers(reducers) {\n return reducers instanceof InjectionToken ? inject(reducers) : reducers;\n}\nfunction _createFeatureStore(configs, featureStores) {\n return featureStores.map((feat, index) => {\n if (configs[index] instanceof InjectionToken) {\n const conf = inject(configs[index]);\n return {\n key: feat.key,\n reducerFactory: conf.reducerFactory ? conf.reducerFactory : combineReducers,\n metaReducers: conf.metaReducers ? conf.metaReducers : [],\n initialState: conf.initialState\n };\n }\n return feat;\n });\n}\nfunction _createFeatureReducers(reducerCollection) {\n return reducerCollection.map(reducer => {\n return reducer instanceof InjectionToken ? inject(reducer) : reducer;\n });\n}\nfunction _initialStateFactory(initialState) {\n if (typeof initialState === 'function') {\n return initialState();\n }\n return initialState;\n}\nfunction _concatMetaReducers(metaReducers, userProvidedMetaReducers) {\n return metaReducers.concat(userProvidedMetaReducers);\n}\nfunction _provideForRootGuard() {\n const store = inject(Store, {\n optional: true,\n skipSelf: true\n });\n if (store) {\n throw new TypeError(`The root Store has been provided more than once. Feature modules should provide feature states instead.`);\n }\n return 'guarded';\n}\nfunction immutabilityCheckMetaReducer(reducer, checks) {\n return function (state, action) {\n const act = checks.action(action) ? freeze(action) : action;\n const nextState = reducer(state, act);\n return checks.state() ? freeze(nextState) : nextState;\n };\n}\nfunction freeze(target) {\n Object.freeze(target);\n const targetIsFunction = isFunction(target);\n Object.getOwnPropertyNames(target).forEach(prop => {\n // Ignore Ivy properties, ref: https://github.com/ngrx/platform/issues/2109#issuecomment-582689060\n if (prop.startsWith('ɵ')) {\n return;\n }\n if (hasOwnProperty(target, prop) && (targetIsFunction ? prop !== 'caller' && prop !== 'callee' && prop !== 'arguments' : true)) {\n const propValue = target[prop];\n if ((isObjectLike(propValue) || isFunction(propValue)) && !Object.isFrozen(propValue)) {\n freeze(propValue);\n }\n }\n });\n return target;\n}\nfunction serializationCheckMetaReducer(reducer, checks) {\n return function (state, action) {\n if (checks.action(action)) {\n const unserializableAction = getUnserializable(action);\n throwIfUnserializable(unserializableAction, 'action');\n }\n const nextState = reducer(state, action);\n if (checks.state()) {\n const unserializableState = getUnserializable(nextState);\n throwIfUnserializable(unserializableState, 'state');\n }\n return nextState;\n };\n}\nfunction getUnserializable(target, path = []) {\n // Guard against undefined and null, e.g. a reducer that returns undefined\n if ((isUndefined(target) || isNull(target)) && path.length === 0) {\n return {\n path: ['root'],\n value: target\n };\n }\n const keys = Object.keys(target);\n return keys.reduce((result, key) => {\n if (result) {\n return result;\n }\n const value = target[key];\n // Ignore Ivy components\n if (isComponent(value)) {\n return result;\n }\n if (isUndefined(value) || isNull(value) || isNumber(value) || isBoolean(value) || isString(value) || isArray(value)) {\n return false;\n }\n if (isPlainObject(value)) {\n return getUnserializable(value, [...path, key]);\n }\n return {\n path: [...path, key],\n value\n };\n }, false);\n}\nfunction throwIfUnserializable(unserializable, context) {\n if (unserializable === false) {\n return;\n }\n const unserializablePath = unserializable.path.join('.');\n const error = new Error(`Detected unserializable ${context} at \"${unserializablePath}\". ${RUNTIME_CHECK_URL}#strict${context}serializability`);\n error.value = unserializable.value;\n error.unserializablePath = unserializablePath;\n throw error;\n}\nfunction inNgZoneAssertMetaReducer(reducer, checks) {\n return function (state, action) {\n if (checks.action(action) && !i0.NgZone.isInAngularZone()) {\n throw new Error(`Action '${action.type}' running outside NgZone. ${RUNTIME_CHECK_URL}#strictactionwithinngzone`);\n }\n return reducer(state, action);\n };\n}\nfunction createActiveRuntimeChecks(runtimeChecks) {\n if (isDevMode()) {\n return {\n strictStateSerializability: false,\n strictActionSerializability: false,\n strictStateImmutability: true,\n strictActionImmutability: true,\n strictActionWithinNgZone: false,\n strictActionTypeUniqueness: false,\n ...runtimeChecks\n };\n }\n return {\n strictStateSerializability: false,\n strictActionSerializability: false,\n strictStateImmutability: false,\n strictActionImmutability: false,\n strictActionWithinNgZone: false,\n strictActionTypeUniqueness: false\n };\n}\nfunction createSerializationCheckMetaReducer({\n strictActionSerializability,\n strictStateSerializability\n}) {\n return reducer => strictActionSerializability || strictStateSerializability ? serializationCheckMetaReducer(reducer, {\n action: action => strictActionSerializability && !ignoreNgrxAction(action),\n state: () => strictStateSerializability\n }) : reducer;\n}\nfunction createImmutabilityCheckMetaReducer({\n strictActionImmutability,\n strictStateImmutability\n}) {\n return reducer => strictActionImmutability || strictStateImmutability ? immutabilityCheckMetaReducer(reducer, {\n action: action => strictActionImmutability && !ignoreNgrxAction(action),\n state: () => strictStateImmutability\n }) : reducer;\n}\nfunction ignoreNgrxAction(action) {\n return action.type.startsWith('@ngrx');\n}\nfunction createInNgZoneCheckMetaReducer({\n strictActionWithinNgZone\n}) {\n return reducer => strictActionWithinNgZone ? inNgZoneAssertMetaReducer(reducer, {\n action: action => strictActionWithinNgZone && !ignoreNgrxAction(action)\n }) : reducer;\n}\nfunction provideRuntimeChecks(runtimeChecks) {\n return [{\n provide: _USER_RUNTIME_CHECKS,\n useValue: runtimeChecks\n }, {\n provide: USER_RUNTIME_CHECKS,\n useFactory: _runtimeChecksFactory,\n deps: [_USER_RUNTIME_CHECKS]\n }, {\n provide: ACTIVE_RUNTIME_CHECKS,\n deps: [USER_RUNTIME_CHECKS],\n useFactory: createActiveRuntimeChecks\n }, {\n provide: META_REDUCERS,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: createImmutabilityCheckMetaReducer\n }, {\n provide: META_REDUCERS,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: createSerializationCheckMetaReducer\n }, {\n provide: META_REDUCERS,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: createInNgZoneCheckMetaReducer\n }];\n}\nfunction checkForActionTypeUniqueness() {\n return [{\n provide: _ACTION_TYPE_UNIQUENESS_CHECK,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: _actionTypeUniquenessCheck\n }];\n}\nfunction _runtimeChecksFactory(runtimeChecks) {\n return runtimeChecks;\n}\nfunction _actionTypeUniquenessCheck(config) {\n if (!config.strictActionTypeUniqueness) {\n return;\n }\n const duplicates = Object.entries(REGISTERED_ACTION_TYPES).filter(([, registrations]) => registrations > 1).map(([type]) => type);\n if (duplicates.length) {\n throw new Error(`Action types are registered more than once, ${duplicates.map(type => `\"${type}\"`).join(', ')}. ${RUNTIME_CHECK_URL}#strictactiontypeuniqueness`);\n }\n}\n\n/**\n * Provides additional slices of state in the Store.\n * These providers cannot be used at the component level.\n *\n * @usageNotes\n *\n * ### Providing Store Features\n *\n * ```ts\n * const booksRoutes: Route[] = [\n * {\n * path: '',\n * providers: [provideState('books', booksReducer)],\n * children: [\n * { path: '', component: BookListComponent },\n * { path: ':id', component: BookDetailsComponent },\n * ],\n * },\n * ];\n * ```\n */\nfunction provideState(featureNameOrSlice, reducers, config = {}) {\n return makeEnvironmentProviders([..._provideState(featureNameOrSlice, reducers, config), ENVIRONMENT_STATE_PROVIDER]);\n}\nfunction _provideStore(reducers = {}, config = {}) {\n return [{\n provide: _ROOT_STORE_GUARD,\n useFactory: _provideForRootGuard\n }, {\n provide: _INITIAL_STATE,\n useValue: config.initialState\n }, {\n provide: INITIAL_STATE,\n useFactory: _initialStateFactory,\n deps: [_INITIAL_STATE]\n }, {\n provide: _INITIAL_REDUCERS,\n useValue: reducers\n }, {\n provide: _STORE_REDUCERS,\n useExisting: reducers instanceof InjectionToken ? reducers : _INITIAL_REDUCERS\n }, {\n provide: INITIAL_REDUCERS,\n deps: [_INITIAL_REDUCERS, [new Inject(_STORE_REDUCERS)]],\n useFactory: _createStoreReducers\n }, {\n provide: USER_PROVIDED_META_REDUCERS,\n useValue: config.metaReducers ? config.metaReducers : []\n }, {\n provide: _RESOLVED_META_REDUCERS,\n deps: [META_REDUCERS, USER_PROVIDED_META_REDUCERS],\n useFactory: _concatMetaReducers\n }, {\n provide: _REDUCER_FACTORY,\n useValue: config.reducerFactory ? config.reducerFactory : combineReducers\n }, {\n provide: REDUCER_FACTORY,\n deps: [_REDUCER_FACTORY, _RESOLVED_META_REDUCERS],\n useFactory: createReducerFactory\n }, ACTIONS_SUBJECT_PROVIDERS, REDUCER_MANAGER_PROVIDERS, SCANNED_ACTIONS_SUBJECT_PROVIDERS, STATE_PROVIDERS, STORE_PROVIDERS, provideRuntimeChecks(config.runtimeChecks), checkForActionTypeUniqueness()];\n}\nfunction rootStoreProviderFactory() {\n inject(ActionsSubject);\n inject(ReducerObservable);\n inject(ScannedActionsSubject);\n inject(Store);\n inject(_ROOT_STORE_GUARD, {\n optional: true\n });\n inject(_ACTION_TYPE_UNIQUENESS_CHECK, {\n optional: true\n });\n}\n/**\n * Environment Initializer used in the root\n * providers to initialize the Store\n */\nconst ENVIRONMENT_STORE_PROVIDER = [{\n provide: ROOT_STORE_PROVIDER,\n useFactory: rootStoreProviderFactory\n}, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => inject(ROOT_STORE_PROVIDER);\n }\n}];\n/**\n * Provides the global Store providers and initializes\n * the Store.\n * These providers cannot be used at the component level.\n *\n * @usageNotes\n *\n * ### Providing the Global Store\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideStore()],\n * });\n * ```\n */\nfunction provideStore(reducers, config) {\n return makeEnvironmentProviders([..._provideStore(reducers, config), ENVIRONMENT_STORE_PROVIDER]);\n}\nfunction featureStateProviderFactory() {\n inject(ROOT_STORE_PROVIDER);\n const features = inject(_STORE_FEATURES);\n const featureReducers = inject(FEATURE_REDUCERS);\n const reducerManager = inject(ReducerManager);\n inject(_ACTION_TYPE_UNIQUENESS_CHECK, {\n optional: true\n });\n const feats = features.map((feature, index) => {\n const featureReducerCollection = featureReducers.shift();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const reducers = featureReducerCollection /*TODO(#823)*/[index];\n return {\n ...feature,\n reducers,\n initialState: _initialStateFactory(feature.initialState)\n };\n });\n reducerManager.addFeatures(feats);\n}\n/**\n * Environment Initializer used in the feature\n * providers to register state features\n */\nconst ENVIRONMENT_STATE_PROVIDER = [{\n provide: FEATURE_STATE_PROVIDER,\n useFactory: featureStateProviderFactory\n}, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => inject(FEATURE_STATE_PROVIDER);\n }\n}];\nfunction _provideState(featureNameOrSlice, reducers, config = {}) {\n return [{\n provide: _FEATURE_CONFIGS,\n multi: true,\n useValue: featureNameOrSlice instanceof Object ? {} : config\n }, {\n provide: STORE_FEATURES,\n multi: true,\n useValue: {\n key: featureNameOrSlice instanceof Object ? featureNameOrSlice.name : featureNameOrSlice,\n reducerFactory: !(config instanceof InjectionToken) && config.reducerFactory ? config.reducerFactory : combineReducers,\n metaReducers: !(config instanceof InjectionToken) && config.metaReducers ? config.metaReducers : [],\n initialState: !(config instanceof InjectionToken) && config.initialState ? config.initialState : undefined\n }\n }, {\n provide: _STORE_FEATURES,\n deps: [_FEATURE_CONFIGS, STORE_FEATURES],\n useFactory: _createFeatureStore\n }, {\n provide: _FEATURE_REDUCERS,\n multi: true,\n useValue: featureNameOrSlice instanceof Object ? featureNameOrSlice.reducer : reducers\n }, {\n provide: _FEATURE_REDUCERS_TOKEN,\n multi: true,\n useExisting: reducers instanceof InjectionToken ? reducers : _FEATURE_REDUCERS\n }, {\n provide: FEATURE_REDUCERS,\n multi: true,\n deps: [_FEATURE_REDUCERS, [new Inject(_FEATURE_REDUCERS_TOKEN)]],\n useFactory: _createFeatureReducers\n }, checkForActionTypeUniqueness()];\n}\nlet StoreRootModule = /*#__PURE__*/(() => {\n class StoreRootModule {\n constructor(actions$, reducer$, scannedActions$, store, guard, actionCheck) {}\n /** @nocollapse */\n static {\n this.ɵfac = function StoreRootModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StoreRootModule)(i0.ɵɵinject(ActionsSubject), i0.ɵɵinject(ReducerObservable), i0.ɵɵinject(ScannedActionsSubject), i0.ɵɵinject(Store), i0.ɵɵinject(_ROOT_STORE_GUARD, 8), i0.ɵɵinject(_ACTION_TYPE_UNIQUENESS_CHECK, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreRootModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return StoreRootModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet StoreFeatureModule = /*#__PURE__*/(() => {\n class StoreFeatureModule {\n constructor(features, featureReducers, reducerManager, root, actionCheck) {\n this.features = features;\n this.featureReducers = featureReducers;\n this.reducerManager = reducerManager;\n const feats = features.map((feature, index) => {\n const featureReducerCollection = featureReducers.shift();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const reducers = featureReducerCollection /*TODO(#823)*/[index];\n return {\n ...feature,\n reducers,\n initialState: _initialStateFactory(feature.initialState)\n };\n });\n reducerManager.addFeatures(feats);\n }\n // eslint-disable-next-line @angular-eslint/contextual-lifecycle\n ngOnDestroy() {\n this.reducerManager.removeFeatures(this.features);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreFeatureModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StoreFeatureModule)(i0.ɵɵinject(_STORE_FEATURES), i0.ɵɵinject(FEATURE_REDUCERS), i0.ɵɵinject(ReducerManager), i0.ɵɵinject(StoreRootModule), i0.ɵɵinject(_ACTION_TYPE_UNIQUENESS_CHECK, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreFeatureModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return StoreFeatureModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet StoreModule = /*#__PURE__*/(() => {\n class StoreModule {\n static forRoot(reducers, config) {\n return {\n ngModule: StoreRootModule,\n providers: [..._provideStore(reducers, config)]\n };\n }\n static forFeature(featureNameOrSlice, reducers, config = {}) {\n return {\n ngModule: StoreFeatureModule,\n providers: [..._provideState(featureNameOrSlice, reducers, config)]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StoreModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return StoreModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @description\n * Associates actions with a given state change function.\n * A state change function must be provided as the last parameter.\n *\n * @param args `ActionCreator`'s followed by a state change function.\n *\n * @returns an association of action types with a state change function.\n *\n * @usageNotes\n * ```ts\n * on(AuthApiActions.loginSuccess, (state, { user }) => ({ ...state, user }))\n * ```\n */\nfunction on(...args) {\n const reducer = args.pop();\n const types = args.map(creator => creator.type);\n return {\n reducer,\n types\n };\n}\n/**\n * @description\n * Creates a reducer function to handle state transitions.\n *\n * Reducer creators reduce the explicitness of reducer functions with switch statements.\n *\n * @param initialState Provides a state value if the current state is `undefined`, as it is initially.\n * @param ons Associations between actions and state changes.\n * @returns A reducer function.\n *\n * @usageNotes\n *\n * - Must be used with `ActionCreator`'s (returned by `createAction`). Cannot be used with class-based action creators.\n * - The returned `ActionReducer` does not require being wrapped with another function.\n *\n * **Declaring a reducer creator**\n *\n * ```ts\n * export const reducer = createReducer(\n * initialState,\n * on(\n * featureActions.actionOne,\n * featureActions.actionTwo,\n * (state, { updatedValue }) => ({ ...state, prop: updatedValue })\n * ),\n * on(featureActions.actionThree, () => initialState);\n * );\n * ```\n */\nfunction createReducer(initialState, ...ons) {\n const map = new Map();\n for (const on of ons) {\n for (const type of on.types) {\n const existingReducer = map.get(type);\n if (existingReducer) {\n const newReducer = (state, action) => on.reducer(existingReducer(state, action), action);\n map.set(type, newReducer);\n } else {\n map.set(type, on.reducer);\n }\n }\n }\n return function (state = initialState, action) {\n const reducer = map.get(action.type);\n return reducer ? reducer(state, action) : state;\n };\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ACTIVE_RUNTIME_CHECKS, ActionsSubject, FEATURE_REDUCERS, FEATURE_STATE_PROVIDER, INIT, INITIAL_REDUCERS, INITIAL_STATE, META_REDUCERS, REDUCER_FACTORY, ROOT_STORE_PROVIDER, ReducerManager, ReducerManagerDispatcher, ReducerObservable, STORE_FEATURES, ScannedActionsSubject, State, StateObservable, Store, StoreFeatureModule, StoreModule, StoreRootModule, UPDATE, USER_PROVIDED_META_REDUCERS, USER_RUNTIME_CHECKS, combineReducers, compose, createAction, createActionGroup, createFeature, createFeatureSelector, createReducer, createReducerFactory, createSelector, createSelectorFactory, defaultMemoize, defaultStateFn, emptyProps, isNgrxMockEnvironment, on, props, provideState, provideStore, reduceState, resultMemoize, select, setNgrxMockEnvironment, union };\n","import { createAction, props } from '@ngrx/store'\nimport { Article } from './article.model'\nimport { ListingState } from './article.reducer'\nimport { NamedSearchParameters } from '../shared/components/filtering-search-component-base/filtering-search-types'\nimport { Dictionary } from '@ngrx/entity'\n\nexport const loadArticles = createAction(\n '[Articles] Load',\n props<{ articles: Article[], listing: ListingState, search: NamedSearchParameters, area: string, extraData: Dictionary }>()\n)\n\nexport const loadAnArticle = createAction(\n '[Articles] Load An Article',\n props<{ article: Article, listing: ListingState, search: NamedSearchParameters, area: string, extraData: Dictionary }>()\n)\n\nexport const loadArticlesRemote = createAction(\n '[Articles] Get Articles',\n props<{ action: any }>()\n)\nexport const loadArticlesFromNewsletterRemote = createAction(\n '[Articles] Get Articles From Newsletter',\n props<{ action: any }>()\n)\n\nexport const loadAnArticleRemote = createAction(\n '[Articles] Get An Article',\n props<{ action: any }>()\n)\n\nexport const articlesLoaded = createAction(\n '[Articles] Articles Loaded',\n)\n\nexport const articleLoaded = createAction(\n '[Articles] Article Loaded',\n)\n\nexport const setCurrentArticle = createAction(\n '[Articles] Set Current Article',\n props<{ id: number }>()\n)\n\nexport const removeAllArticles = createAction(\n '[Articles] Remove All',\n)\n\nexport const resetArticleState = createAction(\n '[Articles] Reset',\n)\n\nexport const updateSearchParameters = createAction(\n '[Articles] Update Search',\n props<{ parameters: Dictionary, area: string, order: any}>()\n)\n\nexport const downloadArticlesRemote = createAction(\n '[Articles] Download',\n props<{ action: any }>()\n)\n\nexport const downloadInProgress = createAction(\n '[Articles] Download in progress',\n props<{ downloadID: string }>()\n)\n\nexport const downloadFinished = createAction(\n '[Articles] Download finished',\n)\n\n\nexport const articlesLoadedError = createAction(\n '[Articles API] Articles Loaded Error'\n)","import { createSelector } from '@ngrx/store';\nimport { isDevMode } from '@angular/core';\nfunction getInitialEntityState() {\n return {\n ids: [],\n entities: {}\n };\n}\nfunction createInitialStateFactory() {\n function getInitialState(additionalState = {}) {\n return Object.assign(getInitialEntityState(), additionalState);\n }\n return {\n getInitialState\n };\n}\nfunction createSelectorsFactory() {\n function getSelectors(selectState) {\n const selectIds = state => state.ids;\n const selectEntities = state => state.entities;\n const selectAll = createSelector(selectIds, selectEntities, (ids, entities) => ids.map(id => entities[id]));\n const selectTotal = createSelector(selectIds, ids => ids.length);\n if (!selectState) {\n return {\n selectIds,\n selectEntities,\n selectAll,\n selectTotal\n };\n }\n return {\n selectIds: createSelector(selectState, selectIds),\n selectEntities: createSelector(selectState, selectEntities),\n selectAll: createSelector(selectState, selectAll),\n selectTotal: createSelector(selectState, selectTotal)\n };\n }\n return {\n getSelectors\n };\n}\nvar DidMutate = /*#__PURE__*/function (DidMutate) {\n DidMutate[DidMutate[\"EntitiesOnly\"] = 0] = \"EntitiesOnly\";\n DidMutate[DidMutate[\"Both\"] = 1] = \"Both\";\n DidMutate[DidMutate[\"None\"] = 2] = \"None\";\n return DidMutate;\n}(DidMutate || {});\nfunction createStateOperator(mutator) {\n return function operation(arg, state) {\n const clonedEntityState = {\n ids: [...state.ids],\n entities: {\n ...state.entities\n }\n };\n const didMutate = mutator(arg, clonedEntityState);\n if (didMutate === DidMutate.Both) {\n return Object.assign({}, state, clonedEntityState);\n }\n if (didMutate === DidMutate.EntitiesOnly) {\n return {\n ...state,\n entities: clonedEntityState.entities\n };\n }\n return state;\n };\n}\nfunction selectIdValue(entity, selectId) {\n const key = selectId(entity);\n if (isDevMode() && key === undefined) {\n console.warn('@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.', 'You should probably provide your own `selectId` implementation.', 'The entity that was passed:', entity, 'The `selectId` implementation:', selectId.toString());\n }\n return key;\n}\nfunction createUnsortedStateAdapter(selectId) {\n function addOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (key in state.entities) {\n return DidMutate.None;\n }\n state.ids.push(key);\n state.entities[key] = entity;\n return DidMutate.Both;\n }\n function addManyMutably(entities, state) {\n let didMutate = false;\n for (const entity of entities) {\n didMutate = addOneMutably(entity, state) !== DidMutate.None || didMutate;\n }\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n function setAllMutably(entities, state) {\n state.ids = [];\n state.entities = {};\n addManyMutably(entities, state);\n return DidMutate.Both;\n }\n function setOneMutably(entity, state) {\n const key = selectIdValue(entity, selectId);\n if (key in state.entities) {\n state.entities[key] = entity;\n return DidMutate.EntitiesOnly;\n }\n state.ids.push(key);\n state.entities[key] = entity;\n return DidMutate.Both;\n }\n function setManyMutably(entities, state) {\n const didMutateSetOne = entities.map(entity => setOneMutably(entity, state));\n switch (true) {\n case didMutateSetOne.some(didMutate => didMutate === DidMutate.Both):\n return DidMutate.Both;\n case didMutateSetOne.some(didMutate => didMutate === DidMutate.EntitiesOnly):\n return DidMutate.EntitiesOnly;\n default:\n return DidMutate.None;\n }\n }\n function removeOneMutably(key, state) {\n return removeManyMutably([key], state);\n }\n function removeManyMutably(keysOrPredicate, state) {\n const keys = keysOrPredicate instanceof Array ? keysOrPredicate : state.ids.filter(key => keysOrPredicate(state.entities[key]));\n const didMutate = keys.filter(key => key in state.entities).map(key => delete state.entities[key]).length > 0;\n if (didMutate) {\n state.ids = state.ids.filter(id => id in state.entities);\n }\n return didMutate ? DidMutate.Both : DidMutate.None;\n }\n function removeAll(state) {\n return Object.assign({}, state, {\n ids: [],\n entities: {}\n });\n }\n function takeNewKey(keys, update, state) {\n const original = state.entities[update.id];\n const updated = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n const hasNewKey = newKey !== update.id;\n if (hasNewKey) {\n keys[update.id] = newKey;\n delete state.entities[update.id];\n }\n state.entities[newKey] = updated;\n return hasNewKey;\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function updateManyMutably(updates, state) {\n const newKeys = {};\n updates = updates.filter(update => update.id in state.entities);\n const didMutateEntities = updates.length > 0;\n if (didMutateEntities) {\n const didMutateIds = updates.filter(update => takeNewKey(newKeys, update, state)).length > 0;\n if (didMutateIds) {\n state.ids = state.ids.map(id => newKeys[id] || id);\n return DidMutate.Both;\n } else {\n return DidMutate.EntitiesOnly;\n }\n }\n return DidMutate.None;\n }\n function mapMutably(map, state) {\n const changes = state.ids.reduce((changes, id) => {\n const change = map(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({\n id,\n changes: change\n });\n }\n return changes;\n }, []);\n const updates = changes.filter(({\n id\n }) => id in state.entities);\n return updateManyMutably(updates, state);\n }\n function mapOneMutably({\n map,\n id\n }, state) {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n const updatedEntity = map(entity);\n return updateOneMutably({\n id: id,\n changes: updatedEntity\n }, state);\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(entities, state) {\n const added = [];\n const updated = [];\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({\n id,\n changes: entity\n });\n } else {\n added.push(entity);\n }\n }\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n switch (true) {\n case didMutateByAdded === DidMutate.None && didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both || didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n return {\n removeAll,\n addOne: createStateOperator(addOneMutably),\n addMany: createStateOperator(addManyMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n updateOne: createStateOperator(updateOneMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n removeOne: createStateOperator(removeOneMutably),\n removeMany: createStateOperator(removeManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably)\n };\n}\nfunction createSortedStateAdapter(selectId, sort) {\n const {\n removeOne,\n removeMany,\n removeAll\n } = createUnsortedStateAdapter(selectId);\n function addOneMutably(entity, state) {\n return addManyMutably([entity], state);\n }\n function addManyMutably(newModels, state) {\n const models = newModels.filter(model => !(selectIdValue(model, selectId) in state.entities));\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n merge(models, state);\n return DidMutate.Both;\n }\n }\n function setAllMutably(models, state) {\n state.entities = {};\n state.ids = [];\n addManyMutably(models, state);\n return DidMutate.Both;\n }\n function setOneMutably(entity, state) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n state.ids = state.ids.filter(val => val !== id);\n merge([entity], state);\n return DidMutate.Both;\n } else {\n return addOneMutably(entity, state);\n }\n }\n function setManyMutably(entities, state) {\n const didMutateSetOne = entities.map(entity => setOneMutably(entity, state));\n switch (true) {\n case didMutateSetOne.some(didMutate => didMutate === DidMutate.Both):\n return DidMutate.Both;\n case didMutateSetOne.some(didMutate => didMutate === DidMutate.EntitiesOnly):\n return DidMutate.EntitiesOnly;\n default:\n return DidMutate.None;\n }\n }\n function updateOneMutably(update, state) {\n return updateManyMutably([update], state);\n }\n function takeUpdatedModel(models, update, state) {\n if (!(update.id in state.entities)) {\n return false;\n }\n const original = state.entities[update.id];\n const updated = Object.assign({}, original, update.changes);\n const newKey = selectIdValue(updated, selectId);\n delete state.entities[update.id];\n models.push(updated);\n return newKey !== update.id;\n }\n function updateManyMutably(updates, state) {\n const models = [];\n const didMutateIds = updates.filter(update => takeUpdatedModel(models, update, state)).length > 0;\n if (models.length === 0) {\n return DidMutate.None;\n } else {\n const originalIds = state.ids;\n const updatedIndexes = [];\n state.ids = state.ids.filter((id, index) => {\n if (id in state.entities) {\n return true;\n } else {\n updatedIndexes.push(index);\n return false;\n }\n });\n merge(models, state);\n if (!didMutateIds && updatedIndexes.every(i => state.ids[i] === originalIds[i])) {\n return DidMutate.EntitiesOnly;\n } else {\n return DidMutate.Both;\n }\n }\n }\n function mapMutably(updatesOrMap, state) {\n const updates = state.ids.reduce((changes, id) => {\n const change = updatesOrMap(state.entities[id]);\n if (change !== state.entities[id]) {\n changes.push({\n id,\n changes: change\n });\n }\n return changes;\n }, []);\n return updateManyMutably(updates, state);\n }\n function mapOneMutably({\n map,\n id\n }, state) {\n const entity = state.entities[id];\n if (!entity) {\n return DidMutate.None;\n }\n const updatedEntity = map(entity);\n return updateOneMutably({\n id: id,\n changes: updatedEntity\n }, state);\n }\n function upsertOneMutably(entity, state) {\n return upsertManyMutably([entity], state);\n }\n function upsertManyMutably(entities, state) {\n const added = [];\n const updated = [];\n for (const entity of entities) {\n const id = selectIdValue(entity, selectId);\n if (id in state.entities) {\n updated.push({\n id,\n changes: entity\n });\n } else {\n added.push(entity);\n }\n }\n const didMutateByUpdated = updateManyMutably(updated, state);\n const didMutateByAdded = addManyMutably(added, state);\n switch (true) {\n case didMutateByAdded === DidMutate.None && didMutateByUpdated === DidMutate.None:\n return DidMutate.None;\n case didMutateByAdded === DidMutate.Both || didMutateByUpdated === DidMutate.Both:\n return DidMutate.Both;\n default:\n return DidMutate.EntitiesOnly;\n }\n }\n function merge(models, state) {\n models.sort(sort);\n const ids = [];\n let i = 0;\n let j = 0;\n while (i < models.length && j < state.ids.length) {\n const model = models[i];\n const modelId = selectIdValue(model, selectId);\n const entityId = state.ids[j];\n const entity = state.entities[entityId];\n if (sort(model, entity) <= 0) {\n ids.push(modelId);\n i++;\n } else {\n ids.push(entityId);\n j++;\n }\n }\n if (i < models.length) {\n state.ids = ids.concat(models.slice(i).map(selectId));\n } else {\n state.ids = ids.concat(state.ids.slice(j));\n }\n models.forEach((model, i) => {\n state.entities[selectId(model)] = model;\n });\n }\n return {\n removeOne,\n removeMany,\n removeAll,\n addOne: createStateOperator(addOneMutably),\n updateOne: createStateOperator(updateOneMutably),\n upsertOne: createStateOperator(upsertOneMutably),\n setAll: createStateOperator(setAllMutably),\n setOne: createStateOperator(setOneMutably),\n setMany: createStateOperator(setManyMutably),\n addMany: createStateOperator(addManyMutably),\n updateMany: createStateOperator(updateManyMutably),\n upsertMany: createStateOperator(upsertManyMutably),\n map: createStateOperator(mapMutably),\n mapOne: createStateOperator(mapOneMutably)\n };\n}\nfunction createEntityAdapter(options = {}) {\n const {\n selectId,\n sortComparer\n } = {\n selectId: options.selectId ?? (entity => entity.id),\n sortComparer: options.sortComparer ?? false\n };\n const stateFactory = createInitialStateFactory();\n const selectorsFactory = createSelectorsFactory();\n const stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\n return {\n selectId,\n sortComparer,\n ...stateFactory,\n ...selectorsFactory,\n ...stateAdapter\n };\n}\nclass Dictionary {}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Dictionary, createEntityAdapter };\n","import { on, createReducer, createFeature, createSelector } from '@ngrx/store'\nimport { EntityState, EntityAdapter, createEntityAdapter, Dictionary } from '@ngrx/entity'\nimport { Article } from './article.model'\nimport * as actions from './article.actions'\nimport { NamedSearchParameters } from '../shared/components/filtering-search-component-base/filtering-search-types'\n\nexport interface ListingState {\n window: number\n present: number\n total: number\n}\nexport interface ArticlesState extends EntityState
{\n currentArticle: Article | undefined,\n listing : ListingState,\n search: NamedSearchParameters,\n area: string,\n status: {\n loading: boolean\n loadingAnArticle: boolean\n inflight: number\n error: boolean\n downloadID: string\n page: number\n }\n extraData: Dictionary,\n}\n\nexport const adapter: EntityAdapter
= createEntityAdapter
()\n\nexport const initialState: ArticlesState = {\n ids: [\n ],\n entities: {\n },\n currentArticle: undefined,\n listing: {\n window: 50,\n present: 0,\n total: 0\n },\n area: '',\n search: {\n parameters: {},\n order: {\n column: '',\n direction: ''\n }\n },\n status: {\n loading: false,\n loadingAnArticle: false,\n inflight: 0,\n error: false,\n downloadID: '',\n page: 0\n },\n extraData: {}\n}\nconst {\n selectAll\n} = adapter.getSelectors()\n\nexport const articlesFeature = createFeature({\n name: 'articles',\n reducer: createReducer(\n initialState,\n on(actions.loadArticles, (state, { articles, listing, area, extraData }) => {\n state = adapter.addMany(articles, state)\n\n let currentArticle = undefined\n if (state.currentArticle && state.entities[state.currentArticle.id]) {\n currentArticle = {\n ...state.entities[state.currentArticle.id],\n ...state.currentArticle\n }\n }\n\n let listingToUse = structuredClone(listing ?? state.listing)\n if (listingToUse.total === -1) {\n listingToUse.total = state.listing.total\n }\n return {\n ...state,\n area: area ?? state.area,\n listing: listingToUse,\n extraData: extraData ?? state.extraData,\n currentArticle\n }\n }),\n on(actions.loadAnArticle, (state, { article, listing, area, extraData }) => {\n const finalArticle = {\n ...state.entities[article.id],\n ...article\n }\n state = adapter.upsertOne(finalArticle, state)\n return {\n ...state,\n area: area ?? state.area,\n listing: listing ?? state.listing,\n extraData: extraData ?? state.extraData,\n currentArticle: finalArticle\n }\n }),\n on(actions.setCurrentArticle, (state, {id}) => {\n return {\n ...state,\n currentArticle: state.entities[id] ,\n }\n }),\n on(actions.loadArticlesRemote, (state) => {\n return {\n ...state,\n status: {\n ...state.status,\n loading: true,\n inflight: state.status.inflight + 1,\n error: false,\n downloadID: '',\n page: state.status.page + 1\n }\n }\n }),\n on(actions.loadAnArticleRemote, (state) => {\n return {\n ...state,\n status: {\n ...state.status,\n loadingAnArticle: true,\n error: false,\n downloadID: '',\n }\n }\n }),\n on(actions.removeAllArticles, (state) => {\n return {\n ...state,\n ids: [],\n entities: {},\n listing: {\n window: 50,\n present: 0,\n total: 0,\n page: 0\n },\n }\n }),\n on(actions.resetArticleState, (state) => {\n return initialState\n }),\n on(actions.updateSearchParameters, (state, {parameters, area, order})=>{\n return {\n ...state,\n area,\n status: {\n ...state.status,\n loading: true,\n inflight: state.status.inflight + 1,\n error: false,\n downloadID: '',\n page: 0\n },\n search: {\n parameters,\n order\n }\n }\n }),\n on(actions.articlesLoaded, (state) => {\n return {\n ...state,\n status: {\n ...state.status,\n inflight: state.status.inflight - 1,\n // loading: state.status.inflight > 1 -- we need to detect cancelled connections or this does not go to zero\n loading: false,\n },\n }\n }),\n on(actions.articleLoaded, (state) => {\n return {\n ...state,\n status: {\n ...state.status,\n loadingAnArticle: false,\n }\n }\n }),\n on(actions.articlesLoadedError, (state) => {\n return {\n ...state,\n status: {\n loading: false,\n loadingAnArticle: false,\n inflight: 0,\n error: true,\n downloadID: '',\n page: 0,\n }\n }\n }),\n on(actions.downloadInProgress, (state, {downloadID}) => {\n return {\n ...state,\n status: {\n downloadID,\n loading: true,\n loadingAnArticle: false,\n inflight: 1,\n error: false,\n page: 0\n }\n }\n }),\n on(actions.downloadFinished, (state => {\n return {\n ...state,\n status: {\n downloadID: '',\n loading: false,\n loadingAnArticle: false,\n inflight: 0,\n error: false,\n page: 0\n }\n }\n }))\n ),\n extraSelectors: ({ selectArticlesState, selectEntities }) => ({\n selectListingState: createSelector(\n selectArticlesState,\n (state: ArticlesState) => state.listing\n ),\n selectStatusState: createSelector(\n selectArticlesState,\n (state: ArticlesState) => state.status\n ),\n selectSearchState: createSelector(\n selectArticlesState,\n (state: ArticlesState) => state.search\n ),\n selectAllArticles: createSelector(\n selectArticlesState,\n (state: ArticlesState) => selectAll(state).sort( (a, b) => a.runningOrder - b.runningOrder)\n ),\n selectAnArticleById:
(id: number) => createSelector(selectEntities, entities => entities[id] as Article),\n selectCurrentArticle:
() => createSelector(selectArticlesState, state => state.currentArticle) as Article,\n selectAnArticleByRunningOrder:
(runningOrder: number) => createSelector(selectEntities, entities => Object.values(entities).find( e => e!.runningOrder == runningOrder) as Article),\n selectPreviousAndNextByRunningOrder: (runningOrder: number) => createSelector(selectEntities, entities => {\n let previousID = '', nextID = ''\n if (runningOrder !== undefined) {\n const entitiesIds = Object.values(entities).sort((a, b) => a!.runningOrder - b!.runningOrder).map( (a) => a!.id)\n if (runningOrder > 0) {\n previousID = entitiesIds[runningOrder - 1]?.toString()\n }\n if (runningOrder < entitiesIds.length - 2) {\n nextID = entitiesIds[runningOrder + 1]?.toString()\n }\n }\n return [previousID, nextID]\n }),\n selectExtraData: createSelector(\n selectArticlesState,\n (state: ArticlesState) => state.extraData\n ),\n })\n})\n\nexport const {\n name, // feature name\n reducer, // feature reducer\n selectArticlesState,\n selectListingState,\n selectStatusState,\n selectSearchState,\n selectAllArticles,\n selectCurrentArticle,\n selectAnArticleById,\n selectAnArticleByRunningOrder,\n selectPreviousAndNextByRunningOrder,\n selectIds,\n selectListing,\n selectExtraData,\n} = articlesFeature","import { createAction, props } from '@ngrx/store'\nimport { Update } from '@ngrx/entity'\nimport { MenuDefinition } from './menus.model'\n\nexport const loadMenus = createAction(\n '[Menus] Load MegaMenu Updates',\n props<{ menus: MenuDefinition[] }>()\n)\n\nexport const updateMenuExpansion = createAction(\n '[Menus] Update Menu',\n props>()\n)\nexport const closeMegaMenus = createAction(\n '[Menus] Close Megamenus',\n)\n\nexport const resetMegaMenus = createAction(\n '[Menus] Reset Megamenus',\n)\n","import { on, createReducer, createFeature, createSelector } from '@ngrx/store'\nimport { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity'\nimport { MenuDefinition } from './menus.model'\nimport * as actions from './menus.actions'\n\nexport interface MenuState extends EntityState {}\n\nexport const menuAdapter: EntityAdapter = createEntityAdapter()\n\nexport const menusInitialState: MenuState = menuAdapter.getInitialState({\n ids: [\n 0, 1, 2, 4, 5, 6, 7\n ],\n entities: [\n {\n id: 0,\n title: \"News & Reports\",\n area: \"news\",\n expanded: false,\n columns: {\n aShortCuts: {\n title: 'Quick Links',\n template: 'prominent',\n children: [\n {\n id: -3,\n icon: \"box-arrow-up-right\",\n link: \"/news/\",\n title: \"Bankruptcy Case News\",\n params: {\n title: \"Bankruptcy Case News\",\n 'Situations':\"1\",\n },\n },\n {\n id: -2,\n icon: \"box-arrow-up-right\",\n link: \"/news/\",\n title: \"Distressed Company News\",\n params: {\n title: \"Distressed Company News\",\n 'Situations':\"2,4\",\n },\n },\n {\n id: -1,\n icon: \"box-arrow-up-right\",\n link: \"/news/\",\n title: \"All News\",\n params: {\n x: 1,\n },\n },\n ],\n },\n reports: {\n title: 'Reports',\n template: 'prominent',\n children: [\n {\n id: -2,\n icon: \"box-arrow-up-right\",\n link: \"/reports/\",\n title: \"Distress Tear Sheets\",\n params: {\n title: \"Distress Tear Sheets\",\n 'reportType':\"6\",\n },\n },\n {\n id: -1,\n icon: \"box-arrow-up-right\",\n link: \"/reports/\",\n title: \"All Reports\",\n params: {\n x: 1,\n },\n }\n ],\n },\n recentNews: {\n title: 'Recent News',\n children: [],\n template: 'featured'\n },\n searches: {\n title: 'Searches',\n children: [],\n template: 'search'\n },\n },\n version: 0\n },\n {\n id: 1,\n title: \"Situations\",\n area: \"situations\",\n expanded: false,\n columns: {\n aShortCuts: {\n title: 'Quick Links',\n template: 'prominent',\n children: [\n {\n id: -2,\n icon: \"box-arrow-up-right\",\n link: \"/situations/\",\n title: \"Priority Bankruptcy Cases\",\n params: {\n title: \"Priority Cases\",\n situation_type:\"bankruptcy\",\n }\n },\n {\n id: -3,\n icon: \"box-arrow-up-right\",\n link: \"/situations/\",\n title: \"All Bankruptcy Cases\",\n params: {\n title: \"Bankruptcy Cases\",\n situation_type:\"bankruptcy\",\n case_include_type:\"non-priority\",\n }\n },\n {\n id: -4,\n icon: \"box-arrow-up-right\",\n link: \"/situations/\",\n title: \"All Distress\",\n params: {\n title: \"All Distress\",\n situation_type:\"distressed,out_of_court_restructuring\"\n }\n },\n {\n id: -5,\n icon: \"box-arrow-up-right\",\n link: \"/situations/\",\n title: \"Midmarket Companies\",\n params: {\n title: \"Midmarket Companies\",\n situation_type:\"bankruptcy,distressed,out_of_court_restructuring\",\n liabilities_range:\"10000001-50000000,50000001-100000000,100000001-500000000\",\n case_include_type:\"non-priority\",\n\n }\n },\n {\n id: -1,\n link: \"/situations/\",\n title: \"All Situations\",\n params: {\n }\n },\n ]\n },\n recentBankruptcies: {\n title: 'Recent Bankruptcies',\n children: [],\n template: 'featured'\n },\n recentDistressed: {\n title: 'Recent Distressed',\n children: [],\n template: 'featured'\n },\n searches: {\n title: 'Searches',\n children: [],\n template: 'search'\n },\n },\n version: 0\n },\n {\n id: 2,\n title: 'Data Sets',\n link: '/data',\n area: \"data\",\n expanded: false,\n columns: {\n dataSets: {\n title: 'Data Sets',\n template: 'prominent',\n children: [\n {\n link: '/situations',\n title: 'Bankruptcy Cases',\n params: {\n title: \"Bankruptcy Cases\",\n situation_type: \"bankruptcy\"\n }\n },\n {\n link: '/data/archive',\n title: 'Archive',\n },\n {\n link: '/data/asset-sales',\n title: 'Asset Sales',\n },\n {\n link: '/data/calendar',\n title: 'Calendar',\n },\n {\n link: '/data/creditors',\n title: 'Creditors',\n },\n {\n link: '/data/groups',\n title: 'Groups',\n },\n {\n link: '/data/instruments',\n title: 'Instruments',\n },\n {\n link: '/data/keip-kerp',\n title: 'KEIP/KERPs',\n },\n {\n link: '/data/plans',\n title: 'Plans',\n },\n {\n link: '/data/retentions',\n title: 'Retentions/Fees',\n },\n ]\n },\n searches: {\n title: 'Searches',\n children: [],\n template: 'search'\n },\n },\n version: 0\n },\n {\n id: 3,\n title: 'Analytics',\n link: '/analytics',\n area: \"anayltics\",\n expanded: false,\n columns: [],\n version: 0\n },\n {\n id: 4,\n title: 'Organizations',\n link: '/organizations',\n area: \"organizations\",\n expanded: false,\n columns: {\n organizations: {\n title: 'Organizations',\n template: 'prominent',\n children: [\n {\n link: '/organizations',\n title: 'Distressed Corporates',\n params: {\n title: 'Distressed Corporates',\n involvementgraphs: \"1\",\n },\n },\n {\n link: '/organizations',\n title: 'Legal Advisors',\n params: {\n title: \"Legal Advisors\",\n involvementgraphs:\"6\",\n involvement_subtype_lookupID_advisor: \"16\",\n },\n },\n {\n link: '/organizations',\n title: 'Financial Advisors',\n params: {\n title: \"All Advisors\",\n involvementgraphs:\"6\",\n involvement_subtype_lookupID_advisor: \"21\",\n },\n },\n {\n link: '/organizations',\n title: 'All Advisors',\n params: {\n title: \"All Advisors\",\n 'involvementgraphs':\"6\",\n },\n },\n {\n link: '/organizations',\n title: 'All Creditors',\n params: {\n title: \"All Creditors\",\n 'involvementgraphs':\"11_21_26_56\",\n },\n },\n {\n link: '/organizations',\n title: 'All Organizations',\n params: {}\n },\n ]\n },\n searches: {\n title: 'Searches',\n children: [],\n template: 'search'\n },\n },\n version: 0\n },\n {\n id: 5,\n title: 'People',\n link: '/people',\n area: \"people\",\n expanded: false,\n columns: {\n dataSets: {\n title: 'People',\n template: 'prominent',\n children: [\n {\n link: '/people',\n title: 'Officers',\n params: {\n title: 'Officers',\n involvementgraphs: \"16\",\n 'involvement_subtype_lookupID_staff': \"1\",\n },\n },\n {\n link: '/people',\n title: 'Advisors',\n params: {\n title: \"Advisors\",\n involvementgraphs:\"6\",\n },\n },\n {\n link: '/people',\n title: 'Creditors',\n params: {\n title: \"Creditors\",\n involvementgraphs:\"11_21_26_56\",\n },\n },\n {\n link: '/people',\n title: 'Judges',\n params: {\n title: \"Judges\",\n 'involvementgraphs':\"71\",\n },\n },\n {\n link: '/people',\n title: 'Court Appointees',\n params: {\n title: \"Court Appointees\",\n 'involvementgraphs':\"31\",\n },\n },\n {\n link: '/people',\n title: 'All People',\n params: {},\n },\n ]\n },\n searches: {\n title: 'Searches',\n children: [],\n template: 'search'\n },\n },\n version: 0\n },\n {\n id: 6,\n title: 'League Tables',\n //badge: 'New',\n link: '/league-tables',\n area: \"league-tables\",\n expanded: false,\n columns: {\n advisorLeagueTables: {\n title: 'Advisor League Tables',\n template: 'prominent',\n children: [\n {\n id: -6,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Legal Advisors\",\n params: {\n tab: 1,\n },\n },\n {\n id: -5,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Financial Advisors\",\n params: {\n tab: 2,\n },\n },\n {\n id: -4,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Restructuring/Turnaround Advisors\",\n params: {\n tab: 3,\n },\n },\n {\n id: -3,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Claims/Notice Agents\",\n params: {\n tab: 4,\n },\n },\n {\n id: -2,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Other Advisors\",\n params: {\n tab: 5,\n },\n },\n ],\n },\n otherLeagueTables: {\n title: 'Other League Tables',\n template: 'prominent',\n children: [\n {\n id: -6,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Group Members\",\n params: {\n tab: 6,\n },\n },\n {\n id: -5,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Funded Debtholders\",\n params: {\n tab: 7,\n },\n },\n {\n id: -4,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Trade Exposure\",\n params: {\n tab: 8,\n },\n },\n ],\n },\n popularLeagueTables: {\n title: 'Popular League Tables',\n template: 'prominent',\n children: [\n {\n id: -16,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Debtor Bankruptcy Counsel\",\n params: {\n tab: 1,\n \"involvement_role_lookupID\": \"156\",\n \"advisee_group_participation\": \"individuals\",\n \"involvement_type_lookupID_situationadvisee\": \"1\",\n \"situation_type\": \"bankruptcy\",\n },\n },\n {\n id: -15,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"UCC Bankruptcy Counsel\",\n params: {\n tab: 1,\n \"involvement_role_lookupID\": \"156\",\n \"advisee_group_participation\": \"groups\" ,\n \"advisee_group_type\": \"group-official\",\n \"advisee_group_debt_type\": \"group-unsecured\",\n \"situation_type\": \"bankruptcy\" ,\n },\n },\n {\n id: -14,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"Debtor Financial Advisors\",\n params: {\n tab: 2,\n \"involvement_role_lookupID\": \"201\",\n \"advisee_group_participation\": \"individuals\",\n \"involvement_type_lookupID_situationadvisee\": \"1\",\n \"situation_type\": \"bankruptcy\" ,\n },\n },\n {\n id: -13,\n icon: \"box-arrow-up-right\",\n link: \"/league-tables/\",\n title: \"UCC Financial Advisors\",\n params: {\n tab: 2,\n \"involvement_role_lookupID\": \"201\",\n \"advisee_group_participation\": \"groups\",\n \"advisee_group_type\": \"group-official\",\n \"advisee_group_debt_type\": \"group-unsecured\",\n \"situation_type\": \"bankruptcy\",\n },\n },\n ]\n },\n },\n version: 0\n },\n {\n id: 7,\n title: 'Documents',\n area: \"documents\",\n link: '/documents',\n columns: {\n documentsCourt: {\n title: 'Court Documents',\n template: 'prominent',\n children: [\n {\n link: '/documents',\n title: 'Petition',\n params: {\n title: 'Petition',\n documenttypes: 4\n },\n },\n {\n link: '/documents',\n title: '363 Sales',\n params: {\n title: '363 Sale/Asset Purchase Agreement',\n documenttypes: 3\n },\n },\n {\n link: '/documents',\n title: 'KEIP/KERP',\n params: {\n title: 'KEIP/KERP',\n documenttypes: 10\n },\n },\n {\n link: '/documents',\n title: 'Plans and Disclosure Statements',\n params: {\n title: 'Plans and Disclosure Statements',\n documenttypes: '6,14'\n },\n },\n {\n link: '/documents',\n title: 'All Documents',\n params: {}\n },\n ]\n },\n documentssec: {\n title: 'SEC Documents',\n template: 'prominent',\n children: [\n {\n link: '/secdocuments',\n title: '10K Annual Reports',\n params: {\n title: '10-K Annual Reports',\n formname: \"10-K:10-K Annual Reports\"\n },\n },\n {\n link: '/secdocuments',\n title: '10Q Quarterly Reports',\n params: {\n title: '10-Q Quarterly Reports',\n formname: \"10-Q:10-Q Quarterly Reports\"\n },\n },\n {\n link: '/secdocuments',\n title: '8-K Current Reports',\n params: {\n title: '8-K Current Reports',\n formname: \"8-K:8-K Current Reports\"\n },\n },\n {\n link: '/secdocuments',\n title: 'All Documents',\n params: {}\n },\n ]\n },\n searches: {\n title: 'Searches',\n children: [],\n template: 'search'\n },\n },\n version: 0\n },\n {\n id: 8,\n title: 'Archive',\n link: '/archive',\n expanded: false,\n columns: {},\n version: 0\n },\n ]\n})\n\nconst {\n selectAll\n} = menuAdapter.getSelectors()\n\nexport const selectAllMenusAdapter = selectAll\n\nexport const menusFeature = createFeature({\n name: 'menus',\n reducer: createReducer(\n menusInitialState,\n\n on(actions.loadMenus, (state, { menus }) => {\n for (const menuUpdate of menus) {\n state = menuAdapter.mapOne({\n id: menuUpdate.id,\n map: (menu : MenuDefinition) => {\n let newMenu = structuredClone(menu)\n newMenu.version = menuUpdate.version\n\n for ( const [ menuKey, menuColumn] of Object.entries(menuUpdate.columns!)) {\n newMenu.columns![menuKey].children = menuColumn.children\n }\n return newMenu\n }\n }, state)\n }\n return state\n }),\n on(actions.updateMenuExpansion, (state, menu) => {\n return menuAdapter.updateOne(menu, state)\n }),\n on(actions.closeMegaMenus, (state) => {\n return menuAdapter.map( menu => {\n return {\n ...menu,\n expanded: false\n }\n }, state)\n }),\n on(actions.resetMegaMenus, (state) => {\n return menusInitialState\n })\n ),\n extraSelectors: ({ selectMenusState }) => ({\n selectAllMenus: createSelector(\n selectMenusState,\n selectAllMenusAdapter\n )\n })\n})\n\nexport const {\n selectAllMenus\n} = menusFeature\n","import * as i1 from '@ngrx/store';\nimport { createAction, props, isNgrxMockEnvironment, select, ACTIVE_RUNTIME_CHECKS, createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, isDevMode, Injectable, Inject, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, inject, NgModule } from '@angular/core';\nimport * as i2 from '@angular/router';\nimport { NavigationStart, RoutesRecognized, NavigationCancel, NavigationError, NavigationEnd } from '@angular/router';\nimport { withLatestFrom } from 'rxjs/operators';\n\n/**\n * An action dispatched when a router navigation request is fired.\n */\nconst ROUTER_REQUEST = '@ngrx/router-store/request';\nconst routerRequestAction = createAction(ROUTER_REQUEST, props());\n/**\n * An action dispatched when the router navigates.\n */\nconst ROUTER_NAVIGATION = '@ngrx/router-store/navigation';\nconst routerNavigationAction = createAction(ROUTER_NAVIGATION, props());\n/**\n * An action dispatched when the router cancels navigation.\n */\nconst ROUTER_CANCEL = '@ngrx/router-store/cancel';\nconst routerCancelAction = createAction(ROUTER_CANCEL, props());\n/**\n * An action dispatched when the router errors.\n */\nconst ROUTER_ERROR = '@ngrx/router-store/error';\nconst routerErrorAction = createAction(ROUTER_ERROR, props());\n/**\n * An action dispatched after navigation has ended and new route is active.\n */\nconst ROUTER_NAVIGATED = '@ngrx/router-store/navigated';\nconst routerNavigatedAction = createAction(ROUTER_NAVIGATED, props());\nfunction routerReducer(state, action) {\n // Allow compilation with strictFunctionTypes - ref: #1344\n const routerAction = action;\n switch (routerAction.type) {\n case ROUTER_NAVIGATION:\n case ROUTER_ERROR:\n case ROUTER_CANCEL:\n return {\n state: routerAction.payload.routerState,\n navigationId: routerAction.payload.event.id\n };\n default:\n return state;\n }\n}\nclass MinimalRouterStateSerializer {\n serialize(routerState) {\n return {\n root: this.serializeRoute(routerState.root),\n url: routerState.url\n };\n }\n serializeRoute(route) {\n const children = route.children.map(c => this.serializeRoute(c));\n return {\n params: route.params,\n data: route.data,\n url: route.url,\n outlet: route.outlet,\n title: route.title,\n routeConfig: route.routeConfig ? {\n path: route.routeConfig.path,\n pathMatch: route.routeConfig.pathMatch,\n redirectTo: route.routeConfig.redirectTo,\n outlet: route.routeConfig.outlet,\n title: typeof route.routeConfig.title === 'string' ? route.routeConfig.title : undefined\n } : null,\n queryParams: route.queryParams,\n fragment: route.fragment,\n firstChild: children[0],\n children\n };\n }\n}\nvar NavigationActionTiming = /*#__PURE__*/function (NavigationActionTiming) {\n NavigationActionTiming[NavigationActionTiming[\"PreActivation\"] = 1] = \"PreActivation\";\n NavigationActionTiming[NavigationActionTiming[\"PostActivation\"] = 2] = \"PostActivation\";\n return NavigationActionTiming;\n}(NavigationActionTiming || {});\nconst DEFAULT_ROUTER_FEATURENAME = 'router';\nconst _ROUTER_CONFIG = new InjectionToken('@ngrx/router-store Internal Configuration');\nconst ROUTER_CONFIG = new InjectionToken('@ngrx/router-store Configuration');\n/**\n * Minimal = Serializes the router event with MinimalRouterStateSerializer\n * Full = Serializes the router event with FullRouterStateSerializer\n */\nvar RouterState = /*#__PURE__*/function (RouterState) {\n RouterState[RouterState[\"Full\"] = 0] = \"Full\";\n RouterState[RouterState[\"Minimal\"] = 1] = \"Minimal\";\n return RouterState;\n}(RouterState || {});\nfunction _createRouterConfig(config) {\n return {\n stateKey: DEFAULT_ROUTER_FEATURENAME,\n serializer: MinimalRouterStateSerializer,\n navigationActionTiming: NavigationActionTiming.PreActivation,\n ...config\n };\n}\nclass FullRouterStateSerializer {\n serialize(routerState) {\n return {\n root: this.serializeRoute(routerState.root),\n url: routerState.url\n };\n }\n serializeRoute(route) {\n const children = route.children.map(c => this.serializeRoute(c));\n return {\n params: route.params,\n paramMap: route.paramMap,\n data: route.data,\n url: route.url,\n outlet: route.outlet,\n title: route.title,\n routeConfig: route.routeConfig ? {\n component: route.routeConfig.component,\n path: route.routeConfig.path,\n pathMatch: route.routeConfig.pathMatch,\n redirectTo: route.routeConfig.redirectTo,\n outlet: route.routeConfig.outlet,\n title: route.routeConfig.title\n } : null,\n queryParams: route.queryParams,\n queryParamMap: route.queryParamMap,\n fragment: route.fragment,\n component: route.routeConfig ? route.routeConfig.component : undefined,\n root: undefined,\n parent: undefined,\n firstChild: children[0],\n pathFromRoot: undefined,\n children\n };\n }\n}\nclass RouterStateSerializer {}\nvar RouterTrigger = /*#__PURE__*/function (RouterTrigger) {\n RouterTrigger[RouterTrigger[\"NONE\"] = 1] = \"NONE\";\n RouterTrigger[RouterTrigger[\"ROUTER\"] = 2] = \"ROUTER\";\n RouterTrigger[RouterTrigger[\"STORE\"] = 3] = \"STORE\";\n return RouterTrigger;\n}(RouterTrigger || {});\n/**\n * Shared router initialization logic used alongside both the StoreRouterConnectingModule and the provideRouterStore\n * function\n */\nlet StoreRouterConnectingService = /*#__PURE__*/(() => {\n class StoreRouterConnectingService {\n constructor(store, router, serializer, errorHandler, config, activeRuntimeChecks) {\n this.store = store;\n this.router = router;\n this.serializer = serializer;\n this.errorHandler = errorHandler;\n this.config = config;\n this.activeRuntimeChecks = activeRuntimeChecks;\n this.lastEvent = null;\n this.routerState = null;\n this.trigger = RouterTrigger.NONE;\n this.stateKey = this.config.stateKey;\n if (!isNgrxMockEnvironment() && isDevMode() && (activeRuntimeChecks?.strictActionSerializability || activeRuntimeChecks?.strictStateSerializability) && this.serializer instanceof FullRouterStateSerializer) {\n console.warn('@ngrx/router-store: The serializability runtime checks cannot be enabled ' + 'with the FullRouterStateSerializer. The FullRouterStateSerializer ' + 'has an unserializable router state and actions that are not serializable. ' + 'To use the serializability runtime checks either use ' + 'the MinimalRouterStateSerializer or implement a custom router state serializer.');\n }\n this.setUpStoreStateListener();\n this.setUpRouterEventsListener();\n }\n setUpStoreStateListener() {\n this.store.pipe(select(this.stateKey), withLatestFrom(this.store)).subscribe(([routerStoreState, storeState]) => {\n this.navigateIfNeeded(routerStoreState, storeState);\n });\n }\n navigateIfNeeded(routerStoreState, storeState) {\n if (!routerStoreState || !routerStoreState.state) {\n return;\n }\n if (this.trigger === RouterTrigger.ROUTER) {\n return;\n }\n if (this.lastEvent instanceof NavigationStart) {\n return;\n }\n const url = routerStoreState.state.url;\n if (!isSameUrl(this.router.url, url)) {\n this.storeState = storeState;\n this.trigger = RouterTrigger.STORE;\n this.router.navigateByUrl(url).catch(error => {\n this.errorHandler.handleError(error);\n });\n }\n }\n setUpRouterEventsListener() {\n const dispatchNavLate = this.config.navigationActionTiming === NavigationActionTiming.PostActivation;\n let routesRecognized;\n this.router.events.pipe(withLatestFrom(this.store)).subscribe(([event, storeState]) => {\n this.lastEvent = event;\n if (event instanceof NavigationStart) {\n this.routerState = this.serializer.serialize(this.router.routerState.snapshot);\n if (this.trigger !== RouterTrigger.STORE) {\n this.storeState = storeState;\n this.dispatchRouterRequest(event);\n }\n } else if (event instanceof RoutesRecognized) {\n routesRecognized = event;\n if (!dispatchNavLate && this.trigger !== RouterTrigger.STORE) {\n this.dispatchRouterNavigation(event);\n }\n } else if (event instanceof NavigationCancel) {\n this.dispatchRouterCancel(event);\n this.reset();\n } else if (event instanceof NavigationError) {\n this.dispatchRouterError(event);\n this.reset();\n } else if (event instanceof NavigationEnd) {\n if (this.trigger !== RouterTrigger.STORE) {\n if (dispatchNavLate) {\n this.dispatchRouterNavigation(routesRecognized);\n }\n this.dispatchRouterNavigated(event);\n }\n this.reset();\n }\n });\n }\n dispatchRouterRequest(event) {\n this.dispatchRouterAction(ROUTER_REQUEST, {\n event\n });\n }\n dispatchRouterNavigation(lastRoutesRecognized) {\n const nextRouterState = this.serializer.serialize(lastRoutesRecognized.state);\n this.dispatchRouterAction(ROUTER_NAVIGATION, {\n routerState: nextRouterState,\n event: new RoutesRecognized(lastRoutesRecognized.id, lastRoutesRecognized.url, lastRoutesRecognized.urlAfterRedirects, nextRouterState)\n });\n }\n dispatchRouterCancel(event) {\n this.dispatchRouterAction(ROUTER_CANCEL, {\n storeState: this.storeState,\n event\n });\n }\n dispatchRouterError(event) {\n this.dispatchRouterAction(ROUTER_ERROR, {\n storeState: this.storeState,\n event: new NavigationError(event.id, event.url, `${event}`)\n });\n }\n dispatchRouterNavigated(event) {\n const routerState = this.serializer.serialize(this.router.routerState.snapshot);\n this.dispatchRouterAction(ROUTER_NAVIGATED, {\n event,\n routerState\n });\n }\n dispatchRouterAction(type, payload) {\n this.trigger = RouterTrigger.ROUTER;\n try {\n this.store.dispatch({\n type,\n payload: {\n routerState: this.routerState,\n ...payload,\n event: this.config.routerState === RouterState.Full ? payload.event : {\n id: payload.event.id,\n url: payload.event.url,\n // safe, as it will just be `undefined` for non-NavigationEnd router events\n urlAfterRedirects: payload.event.urlAfterRedirects\n }\n }\n });\n } finally {\n this.trigger = RouterTrigger.NONE;\n }\n }\n reset() {\n this.trigger = RouterTrigger.NONE;\n this.storeState = null;\n this.routerState = null;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreRouterConnectingService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StoreRouterConnectingService)(i0.ɵɵinject(i1.Store), i0.ɵɵinject(i2.Router), i0.ɵɵinject(RouterStateSerializer), i0.ɵɵinject(i0.ErrorHandler), i0.ɵɵinject(ROUTER_CONFIG), i0.ɵɵinject(ACTIVE_RUNTIME_CHECKS));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StoreRouterConnectingService,\n factory: StoreRouterConnectingService.ɵfac\n });\n }\n }\n return StoreRouterConnectingService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Check if the URLs are matching. Accounts for the possibility of trailing \"/\" in url.\n */\nfunction isSameUrl(first, second) {\n return stripTrailingSlash(first) === stripTrailingSlash(second);\n}\nfunction stripTrailingSlash(text) {\n if (text?.length > 0 && text[text.length - 1] === '/') {\n return text.substring(0, text.length - 1);\n }\n return text;\n}\n\n/**\n * Connects the Angular Router to the Store.\n *\n * @usageNotes\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideStore({ router: routerReducer }),\n * provideRouterStore(),\n * ],\n * });\n * ```\n */\nfunction provideRouterStore(config = {}) {\n return makeEnvironmentProviders([{\n provide: _ROUTER_CONFIG,\n useValue: config\n }, {\n provide: ROUTER_CONFIG,\n useFactory: _createRouterConfig,\n deps: [_ROUTER_CONFIG]\n }, {\n provide: RouterStateSerializer,\n useClass: config.serializer ? config.serializer : config.routerState === RouterState.Full ? FullRouterStateSerializer : MinimalRouterStateSerializer\n }, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => inject(StoreRouterConnectingService);\n }\n }, StoreRouterConnectingService]);\n}\n\n/**\n * Connects RouterModule with StoreModule.\n *\n * During the navigation, before any guards or resolvers run, the router will dispatch\n * a ROUTER_NAVIGATION action, which has the following signature:\n *\n * ```\n * export type RouterNavigationPayload = {\n * routerState: SerializedRouterStateSnapshot,\n * event: RoutesRecognized\n * }\n * ```\n *\n * Either a reducer or an effect can be invoked in response to this action.\n * If the invoked reducer throws, the navigation will be canceled.\n *\n * If navigation gets canceled because of a guard, a ROUTER_CANCEL action will be\n * dispatched. If navigation results in an error, a ROUTER_ERROR action will be dispatched.\n *\n * Both ROUTER_CANCEL and ROUTER_ERROR contain the store state before the navigation\n * which can be used to restore the consistency of the store.\n *\n * Usage:\n *\n * ```typescript\n * @NgModule({\n * declarations: [AppCmp, SimpleCmp],\n * imports: [\n * BrowserModule,\n * StoreModule.forRoot(mapOfReducers),\n * RouterModule.forRoot([\n * { path: '', component: SimpleCmp },\n * { path: 'next', component: SimpleCmp }\n * ]),\n * StoreRouterConnectingModule.forRoot()\n * ],\n * bootstrap: [AppCmp]\n * })\n * export class AppModule {\n * }\n * ```\n */\nlet StoreRouterConnectingModule = /*#__PURE__*/(() => {\n class StoreRouterConnectingModule {\n static forRoot(config = {}) {\n return {\n ngModule: StoreRouterConnectingModule,\n providers: [provideRouterStore(config)]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreRouterConnectingModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StoreRouterConnectingModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreRouterConnectingModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return StoreRouterConnectingModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction createRouterSelector() {\n return createFeatureSelector(DEFAULT_ROUTER_FEATURENAME);\n}\nfunction getRouterSelectors(selectState = createRouterSelector()) {\n const selectRouterState = createSelector(selectState, router => router && router.state);\n const selectRootRoute = createSelector(selectRouterState, routerState => routerState && routerState.root);\n const selectCurrentRoute = createSelector(selectRootRoute, rootRoute => {\n if (!rootRoute) {\n return undefined;\n }\n let route = rootRoute;\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n });\n const selectFragment = createSelector(selectRootRoute, route => route && route.fragment);\n const selectQueryParams = createSelector(selectRootRoute, route => route && route.queryParams);\n const selectQueryParam = param => createSelector(selectQueryParams, params => params && params[param]);\n const selectRouteParams = createSelector(selectCurrentRoute, route => route && route.params);\n const selectRouteParam = param => createSelector(selectRouteParams, params => params && params[param]);\n const selectRouteData = createSelector(selectCurrentRoute, route => route && route.data);\n const selectRouteDataParam = param => createSelector(selectRouteData, data => data && data[param]);\n const selectUrl = createSelector(selectRouterState, routerState => routerState && routerState.url);\n const selectTitle = createSelector(selectCurrentRoute, route => {\n if (!route?.routeConfig) {\n return undefined;\n }\n return typeof route.routeConfig.title === 'string' ? route.routeConfig.title // static title\n : route.title; // resolved title\n });\n return {\n selectCurrentRoute,\n selectFragment,\n selectQueryParams,\n selectQueryParam,\n selectRouteParams,\n selectRouteParam,\n selectRouteData,\n selectRouteDataParam,\n selectUrl,\n selectTitle\n };\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DEFAULT_ROUTER_FEATURENAME, FullRouterStateSerializer, MinimalRouterStateSerializer, NavigationActionTiming, ROUTER_CANCEL, ROUTER_CONFIG, ROUTER_ERROR, ROUTER_NAVIGATED, ROUTER_NAVIGATION, ROUTER_REQUEST, RouterState, RouterStateSerializer, StoreRouterConnectingModule, createRouterSelector, getRouterSelectors, provideRouterStore, routerCancelAction, routerErrorAction, routerNavigatedAction, routerNavigationAction, routerReducer, routerRequestAction };\n","import * as i1 from 'rxjs';\nimport { merge, Observable, Subject, defer } from 'rxjs';\nimport { ignoreElements, materialize, map, catchError, filter, groupBy, mergeMap, exhaustMap, dematerialize, take, concatMap, finalize } from 'rxjs/operators';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, NgModule, Optional, inject, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER } from '@angular/core';\nimport * as i3 from '@ngrx/store';\nimport { ScannedActionsSubject, createAction, ROOT_STORE_PROVIDER, FEATURE_STATE_PROVIDER, Store } from '@ngrx/store';\nconst DEFAULT_EFFECT_CONFIG = {\n dispatch: true,\n functional: false,\n useEffectsErrorHandler: true\n};\nconst CREATE_EFFECT_METADATA_KEY = '__@ngrx/effects_create__';\n\n/**\n * @description\n *\n * Creates an effect from a source and an `EffectConfig`.\n *\n * @param source A function which returns an observable or observable factory.\n * @param config A `EffectConfig` to configure the effect. By default,\n * `dispatch` is true, `functional` is false, and `useEffectsErrorHandler` is\n * true.\n * @returns If `EffectConfig`#`functional` is true, returns the source function.\n * Else, returns the source function result. When `EffectConfig`#`dispatch` is\n * true, the source function result needs to be `Observable`.\n *\n * @usageNotes\n *\n * ### Class Effects\n *\n * ```ts\n * @Injectable()\n * export class FeatureEffects {\n * // mapping to a different action\n * readonly effect1$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(FeatureActions.actionOne),\n * map(() => FeatureActions.actionTwo())\n * )\n * );\n *\n * // non-dispatching effect\n * readonly effect2$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(FeatureActions.actionTwo),\n * tap(() => console.log('Action Two Dispatched'))\n * ),\n * { dispatch: false } // FeatureActions.actionTwo is not dispatched\n * );\n *\n * constructor(private readonly actions$: Actions) {}\n * }\n * ```\n *\n * ### Functional Effects\n *\n * ```ts\n * // mapping to a different action\n * export const loadUsers = createEffect(\n * (actions$ = inject(Actions), usersService = inject(UsersService)) => {\n * return actions$.pipe(\n * ofType(UsersPageActions.opened),\n * exhaustMap(() => {\n * return usersService.getAll().pipe(\n * map((users) => UsersApiActions.usersLoadedSuccess({ users })),\n * catchError((error) =>\n * of(UsersApiActions.usersLoadedFailure({ error }))\n * )\n * );\n * })\n * );\n * },\n * { functional: true }\n * );\n *\n * // non-dispatching functional effect\n * export const logDispatchedActions = createEffect(\n * () => inject(Actions).pipe(tap(console.log)),\n * { functional: true, dispatch: false }\n * );\n * ```\n */\nfunction createEffect(source, config = {}) {\n const effect = config.functional ? source : source();\n const value = {\n ...DEFAULT_EFFECT_CONFIG,\n ...config // Overrides any defaults if values are provided\n };\n Object.defineProperty(effect, CREATE_EFFECT_METADATA_KEY, {\n value\n });\n return effect;\n}\nfunction getCreateEffectMetadata(instance) {\n const propertyNames = Object.getOwnPropertyNames(instance);\n const metadata = propertyNames.filter(propertyName => {\n if (instance[propertyName] && instance[propertyName].hasOwnProperty(CREATE_EFFECT_METADATA_KEY)) {\n // If the property type has overridden `hasOwnProperty` we need to ensure\n // that the metadata is valid (containing a `dispatch` property)\n // https://github.com/ngrx/platform/issues/2975\n const property = instance[propertyName];\n return property[CREATE_EFFECT_METADATA_KEY].hasOwnProperty('dispatch');\n }\n return false;\n }).map(propertyName => {\n const metaData = instance[propertyName][CREATE_EFFECT_METADATA_KEY];\n return {\n propertyName,\n ...metaData\n };\n });\n return metadata;\n}\nfunction getEffectsMetadata(instance) {\n return getSourceMetadata(instance).reduce((acc, {\n propertyName,\n dispatch,\n useEffectsErrorHandler\n }) => {\n acc[propertyName] = {\n dispatch,\n useEffectsErrorHandler\n };\n return acc;\n }, {});\n}\nfunction getSourceMetadata(instance) {\n return getCreateEffectMetadata(instance);\n}\nfunction getSourceForInstance(instance) {\n return Object.getPrototypeOf(instance);\n}\nfunction isClassInstance(obj) {\n return !!obj.constructor && obj.constructor.name !== 'Object' && obj.constructor.name !== 'Function';\n}\nfunction isClass(classOrRecord) {\n return typeof classOrRecord === 'function';\n}\nfunction getClasses(classesAndRecords) {\n return classesAndRecords.filter(isClass);\n}\nfunction isToken(tokenOrRecord) {\n return tokenOrRecord instanceof InjectionToken || isClass(tokenOrRecord);\n}\nfunction mergeEffects(sourceInstance, globalErrorHandler, effectsErrorHandler) {\n const source = getSourceForInstance(sourceInstance);\n const isClassBasedEffect = !!source && source.constructor.name !== 'Object';\n const sourceName = isClassBasedEffect ? source.constructor.name : null;\n const observables$ = getSourceMetadata(sourceInstance).map(({\n propertyName,\n dispatch,\n useEffectsErrorHandler\n }) => {\n const observable$ = typeof sourceInstance[propertyName] === 'function' ? sourceInstance[propertyName]() : sourceInstance[propertyName];\n const effectAction$ = useEffectsErrorHandler ? effectsErrorHandler(observable$, globalErrorHandler) : observable$;\n if (dispatch === false) {\n return effectAction$.pipe(ignoreElements());\n }\n const materialized$ = effectAction$.pipe(materialize());\n return materialized$.pipe(map(notification => ({\n effect: sourceInstance[propertyName],\n notification,\n propertyName,\n sourceName,\n sourceInstance\n })));\n });\n return merge(...observables$);\n}\nconst MAX_NUMBER_OF_RETRY_ATTEMPTS = 10;\nfunction defaultEffectsErrorHandler(observable$, errorHandler, retryAttemptLeft = MAX_NUMBER_OF_RETRY_ATTEMPTS) {\n return observable$.pipe(catchError(error => {\n if (errorHandler) errorHandler.handleError(error);\n if (retryAttemptLeft <= 1) {\n return observable$; // last attempt\n }\n // Return observable that produces this particular effect\n return defaultEffectsErrorHandler(observable$, errorHandler, retryAttemptLeft - 1);\n }));\n}\nlet Actions = /*#__PURE__*/(() => {\n class Actions extends Observable {\n constructor(source) {\n super();\n if (source) {\n this.source = source;\n }\n }\n lift(operator) {\n const observable = new Actions();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function Actions_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Actions)(i0.ɵɵinject(ScannedActionsSubject));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Actions,\n factory: Actions.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return Actions;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * `ofType` filters an Observable of `Actions` into an Observable of the actions\n * whose type strings are passed to it.\n *\n * For example, if `actions` has type `Actions`, and\n * the type of the `Addition` action is `add`, then\n * `actions.pipe(ofType('add'))` returns an `Observable`.\n *\n * Properly typing this function is hard and requires some advanced TS tricks\n * below.\n *\n * Type narrowing automatically works, as long as your `actions` object\n * starts with a `Actions` instead of generic `Actions`.\n *\n * For backwards compatibility, when one passes a single type argument\n * `ofType('something')` the result is an `Observable`. Note, that `T`\n * completely overrides any possible inference from 'something'.\n *\n * Unfortunately, for unknown 'actions: Actions' these types will produce\n * 'Observable'. In such cases one has to manually set the generic type\n * like `actions.ofType('add')`.\n *\n * @usageNotes\n *\n * Filter the Actions stream on the \"customers page loaded\" action\n *\n * ```ts\n * import { ofType } from '@ngrx/effects';\n * import * fromCustomers from '../customers';\n *\n * this.actions$.pipe(\n * ofType(fromCustomers.pageLoaded)\n * )\n * ```\n */\nfunction ofType(...allowedTypes) {\n return filter(action => allowedTypes.some(typeOrActionCreator => {\n if (typeof typeOrActionCreator === 'string') {\n // Comparing the string to type\n return typeOrActionCreator === action.type;\n }\n // We are filtering by ActionCreator\n return typeOrActionCreator.type === action.type;\n }));\n}\nconst _ROOT_EFFECTS_GUARD = new InjectionToken('@ngrx/effects Internal Root Guard');\nconst USER_PROVIDED_EFFECTS = new InjectionToken('@ngrx/effects User Provided Effects');\nconst _ROOT_EFFECTS = new InjectionToken('@ngrx/effects Internal Root Effects');\nconst _ROOT_EFFECTS_INSTANCES = new InjectionToken('@ngrx/effects Internal Root Effects Instances');\nconst _FEATURE_EFFECTS = new InjectionToken('@ngrx/effects Internal Feature Effects');\nconst _FEATURE_EFFECTS_INSTANCE_GROUPS = new InjectionToken('@ngrx/effects Internal Feature Effects Instance Groups');\nconst EFFECTS_ERROR_HANDLER = new InjectionToken('@ngrx/effects Effects Error Handler', {\n providedIn: 'root',\n factory: () => defaultEffectsErrorHandler\n});\nconst ROOT_EFFECTS_INIT = '@ngrx/effects/init';\nconst rootEffectsInit = createAction(ROOT_EFFECTS_INIT);\nfunction reportInvalidActions(output, reporter) {\n if (output.notification.kind === 'N') {\n const action = output.notification.value;\n const isInvalidAction = !isAction(action);\n if (isInvalidAction) {\n reporter.handleError(new Error(`Effect ${getEffectName(output)} dispatched an invalid action: ${stringify(action)}`));\n }\n }\n}\nfunction isAction(action) {\n return typeof action !== 'function' && action && action.type && typeof action.type === 'string';\n}\nfunction getEffectName({\n propertyName,\n sourceInstance,\n sourceName\n}) {\n const isMethod = typeof sourceInstance[propertyName] === 'function';\n const isClassBasedEffect = !!sourceName;\n return isClassBasedEffect ? `\"${sourceName}.${String(propertyName)}${isMethod ? '()' : ''}\"` : `\"${String(propertyName)}()\"`;\n}\nfunction stringify(action) {\n try {\n return JSON.stringify(action);\n } catch {\n return action;\n }\n}\nconst onIdentifyEffectsKey = 'ngrxOnIdentifyEffects';\nfunction isOnIdentifyEffects(instance) {\n return isFunction(instance, onIdentifyEffectsKey);\n}\nconst onRunEffectsKey = 'ngrxOnRunEffects';\nfunction isOnRunEffects(instance) {\n return isFunction(instance, onRunEffectsKey);\n}\nconst onInitEffects = 'ngrxOnInitEffects';\nfunction isOnInitEffects(instance) {\n return isFunction(instance, onInitEffects);\n}\nfunction isFunction(instance, functionName) {\n return instance && functionName in instance && typeof instance[functionName] === 'function';\n}\nlet EffectSources = /*#__PURE__*/(() => {\n class EffectSources extends Subject {\n constructor(errorHandler, effectsErrorHandler) {\n super();\n this.errorHandler = errorHandler;\n this.effectsErrorHandler = effectsErrorHandler;\n }\n addEffects(effectSourceInstance) {\n this.next(effectSourceInstance);\n }\n /**\n * @internal\n */\n toActions() {\n return this.pipe(groupBy(effectsInstance => isClassInstance(effectsInstance) ? getSourceForInstance(effectsInstance) : effectsInstance), mergeMap(source$ => {\n return source$.pipe(groupBy(effectsInstance));\n }), mergeMap(source$ => {\n const effect$ = source$.pipe(exhaustMap(sourceInstance => {\n return resolveEffectSource(this.errorHandler, this.effectsErrorHandler)(sourceInstance);\n }), map(output => {\n reportInvalidActions(output, this.errorHandler);\n return output.notification;\n }), filter(notification => notification.kind === 'N' && notification.value != null), dematerialize());\n // start the stream with an INIT action\n // do this only for the first Effect instance\n const init$ = source$.pipe(take(1), filter(isOnInitEffects), map(instance => instance.ngrxOnInitEffects()));\n return merge(effect$, init$);\n }));\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectSources_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectSources)(i0.ɵɵinject(i0.ErrorHandler), i0.ɵɵinject(EFFECTS_ERROR_HANDLER));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EffectSources,\n factory: EffectSources.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return EffectSources;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction effectsInstance(sourceInstance) {\n if (isOnIdentifyEffects(sourceInstance)) {\n return sourceInstance.ngrxOnIdentifyEffects();\n }\n return '';\n}\nfunction resolveEffectSource(errorHandler, effectsErrorHandler) {\n return sourceInstance => {\n const mergedEffects$ = mergeEffects(sourceInstance, errorHandler, effectsErrorHandler);\n if (isOnRunEffects(sourceInstance)) {\n return sourceInstance.ngrxOnRunEffects(mergedEffects$);\n }\n return mergedEffects$;\n };\n}\nlet EffectsRunner = /*#__PURE__*/(() => {\n class EffectsRunner {\n get isStarted() {\n return !!this.effectsSubscription;\n }\n constructor(effectSources, store) {\n this.effectSources = effectSources;\n this.store = store;\n this.effectsSubscription = null;\n }\n start() {\n if (!this.effectsSubscription) {\n this.effectsSubscription = this.effectSources.toActions().subscribe(this.store);\n }\n }\n ngOnDestroy() {\n if (this.effectsSubscription) {\n this.effectsSubscription.unsubscribe();\n this.effectsSubscription = null;\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsRunner_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsRunner)(i0.ɵɵinject(EffectSources), i0.ɵɵinject(i3.Store));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EffectsRunner,\n factory: EffectsRunner.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return EffectsRunner;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EffectsRootModule = /*#__PURE__*/(() => {\n class EffectsRootModule {\n constructor(sources, runner, store, rootEffectsInstances, storeRootModule, storeFeatureModule, guard) {\n this.sources = sources;\n runner.start();\n for (const effectsInstance of rootEffectsInstances) {\n sources.addEffects(effectsInstance);\n }\n store.dispatch({\n type: ROOT_EFFECTS_INIT\n });\n }\n addEffects(effectsInstance) {\n this.sources.addEffects(effectsInstance);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsRootModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsRootModule)(i0.ɵɵinject(EffectSources), i0.ɵɵinject(EffectsRunner), i0.ɵɵinject(i3.Store), i0.ɵɵinject(_ROOT_EFFECTS_INSTANCES), i0.ɵɵinject(i3.StoreRootModule, 8), i0.ɵɵinject(i3.StoreFeatureModule, 8), i0.ɵɵinject(_ROOT_EFFECTS_GUARD, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsRootModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return EffectsRootModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EffectsFeatureModule = /*#__PURE__*/(() => {\n class EffectsFeatureModule {\n constructor(effectsRootModule, effectsInstanceGroups, storeRootModule, storeFeatureModule) {\n const effectsInstances = effectsInstanceGroups.flat();\n for (const effectsInstance of effectsInstances) {\n effectsRootModule.addEffects(effectsInstance);\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsFeatureModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsFeatureModule)(i0.ɵɵinject(EffectsRootModule), i0.ɵɵinject(_FEATURE_EFFECTS_INSTANCE_GROUPS), i0.ɵɵinject(i3.StoreRootModule, 8), i0.ɵɵinject(i3.StoreFeatureModule, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsFeatureModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return EffectsFeatureModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EffectsModule = /*#__PURE__*/(() => {\n class EffectsModule {\n static forFeature(...featureEffects) {\n const effects = featureEffects.flat();\n const effectsClasses = getClasses(effects);\n return {\n ngModule: EffectsFeatureModule,\n providers: [effectsClasses, {\n provide: _FEATURE_EFFECTS,\n multi: true,\n useValue: effects\n }, {\n provide: USER_PROVIDED_EFFECTS,\n multi: true,\n useValue: []\n }, {\n provide: _FEATURE_EFFECTS_INSTANCE_GROUPS,\n multi: true,\n useFactory: createEffectsInstances,\n deps: [_FEATURE_EFFECTS, USER_PROVIDED_EFFECTS]\n }]\n };\n }\n static forRoot(...rootEffects) {\n const effects = rootEffects.flat();\n const effectsClasses = getClasses(effects);\n return {\n ngModule: EffectsRootModule,\n providers: [effectsClasses, {\n provide: _ROOT_EFFECTS,\n useValue: [effects]\n }, {\n provide: _ROOT_EFFECTS_GUARD,\n useFactory: _provideForRootGuard\n }, {\n provide: USER_PROVIDED_EFFECTS,\n multi: true,\n useValue: []\n }, {\n provide: _ROOT_EFFECTS_INSTANCES,\n useFactory: createEffectsInstances,\n deps: [_ROOT_EFFECTS, USER_PROVIDED_EFFECTS]\n }]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return EffectsModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction createEffectsInstances(effectsGroups, userProvidedEffectsGroups) {\n const effects = [];\n for (const effectsGroup of effectsGroups) {\n effects.push(...effectsGroup);\n }\n for (const userProvidedEffectsGroup of userProvidedEffectsGroups) {\n effects.push(...userProvidedEffectsGroup);\n }\n return effects.map(effectsTokenOrRecord => isToken(effectsTokenOrRecord) ? inject(effectsTokenOrRecord) : effectsTokenOrRecord);\n}\nfunction _provideForRootGuard() {\n const runner = inject(EffectsRunner, {\n optional: true,\n skipSelf: true\n });\n const rootEffects = inject(_ROOT_EFFECTS, {\n self: true\n });\n // check whether any effects are actually passed\n const hasEffects = !(rootEffects.length === 1 && rootEffects[0].length === 0);\n if (hasEffects && runner) {\n throw new TypeError(`EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.`);\n }\n return 'guarded';\n}\n\n/**\n * Wraps project fn with error handling making it safe to use in Effects.\n * Takes either a config with named properties that represent different possible\n * callbacks or project/error callbacks that are required.\n */\nfunction act(/** Allow to take either config object or project/error functions */\nconfigOrProject, errorFn) {\n const {\n project,\n error,\n complete,\n operator,\n unsubscribe\n } = typeof configOrProject === 'function' ? {\n project: configOrProject,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n error: errorFn,\n operator: concatMap,\n complete: undefined,\n unsubscribe: undefined\n } : {\n ...configOrProject,\n operator: configOrProject.operator || concatMap\n };\n return source => defer(() => {\n const subject = new Subject();\n return merge(source.pipe(operator((input, index) => defer(() => {\n let completed = false;\n let errored = false;\n let projectedCount = 0;\n return project(input, index).pipe(materialize(), map(notification => {\n switch (notification.kind) {\n case 'E':\n errored = true;\n return {\n kind: 'N',\n value: error(notification.error, input)\n };\n case 'C':\n completed = true;\n return complete ? {\n kind: 'N',\n value: complete(projectedCount, input)\n } : undefined;\n default:\n ++projectedCount;\n return notification;\n }\n }), filter(n => n != null), dematerialize(), finalize(() => {\n if (!completed && !errored && unsubscribe) {\n subject.next(unsubscribe(projectedCount, input));\n }\n }));\n }))), subject);\n });\n}\n\n/**\n * @usageNotes\n *\n * ### Providing effects at the root level\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideEffects(RouterEffects)],\n * });\n * ```\n *\n * ### Providing effects at the feature level\n *\n * ```ts\n * const booksRoutes: Route[] = [\n * {\n * path: '',\n * providers: [provideEffects(BooksApiEffects)],\n * children: [\n * { path: '', component: BookListComponent },\n * { path: ':id', component: BookDetailsComponent },\n * ],\n * },\n * ];\n * ```\n */\nfunction provideEffects(...effects) {\n const effectsClassesAndRecords = effects.flat();\n const effectsClasses = getClasses(effectsClassesAndRecords);\n return makeEnvironmentProviders([effectsClasses, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => {\n inject(ROOT_STORE_PROVIDER);\n inject(FEATURE_STATE_PROVIDER, {\n optional: true\n });\n const effectsRunner = inject(EffectsRunner);\n const effectSources = inject(EffectSources);\n const shouldInitEffects = !effectsRunner.isStarted;\n if (shouldInitEffects) {\n effectsRunner.start();\n }\n for (const effectsClassOrRecord of effectsClassesAndRecords) {\n const effectsInstance = isClass(effectsClassOrRecord) ? inject(effectsClassOrRecord) : effectsClassOrRecord;\n effectSources.addEffects(effectsInstance);\n }\n if (shouldInitEffects) {\n const store = inject(Store);\n store.dispatch(rootEffectsInit());\n }\n }\n }]);\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Actions, EFFECTS_ERROR_HANDLER, EffectSources, EffectsFeatureModule, EffectsModule, EffectsRootModule, EffectsRunner, ROOT_EFFECTS_INIT, USER_PROVIDED_EFFECTS, act, createEffect, defaultEffectsErrorHandler, getEffectsMetadata, mergeEffects, ofType, provideEffects, rootEffectsInit };\n","import { ROUTER_NAVIGATED, RouterRequestAction } from '@ngrx/router-store'\nimport { map } from 'rxjs/operators'\nimport { Injectable, inject } from '@angular/core'\nimport { Actions, createEffect, ofType } from '@ngrx/effects'\nimport { Router } from '@angular/router'\nimport { closeMegaMenus } from './menus.actions'\n\n@Injectable()\nexport class RouterEffects {\n private actions$ = inject(Actions)\n private router = inject(Router)\n\n\n updateStoreOnRouteChange$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATED),\n map((payload : RouterRequestAction) => {\n return closeMegaMenus()\n }),\n )\n )\n}"],"names":["REGISTERED_ACTION_TYPES","createAction","type","config","REGISTERED_ACTION_TYPES","defineType","args","__spreadProps","__spreadValues","props","defineType","type","creator","capitalize","text","assertDefined","value","name","INIT","ActionsSubject","BehaviorSubject","action","__ngFactoryType__","ɵɵdefineInjectable","ACTIONS_SUBJECT_PROVIDERS","_ROOT_STORE_GUARD","InjectionToken","_INITIAL_STATE","INITIAL_STATE","REDUCER_FACTORY","_REDUCER_FACTORY","INITIAL_REDUCERS","_INITIAL_REDUCERS","STORE_FEATURES","_STORE_REDUCERS","_FEATURE_REDUCERS","_FEATURE_CONFIGS","_STORE_FEATURES","_FEATURE_REDUCERS_TOKEN","FEATURE_REDUCERS","USER_PROVIDED_META_REDUCERS","META_REDUCERS","_RESOLVED_META_REDUCERS","USER_RUNTIME_CHECKS","_USER_RUNTIME_CHECKS","ACTIVE_RUNTIME_CHECKS","_ACTION_TYPE_UNIQUENESS_CHECK","ROOT_STORE_PROVIDER","FEATURE_STATE_PROVIDER","combineReducers","reducers","initialState","reducerKeys","finalReducers","i","key","finalReducerKeys","state","hasChanged","nextState","reducer","previousStateForKey","nextStateForKey","omit","object","keyToRemove","result","compose","functions","arg","last","composed","fn","createReducerFactory","reducerFactory","metaReducers","createFeatureReducerFactory","r","ReducerObservable","Observable","ReducerManagerDispatcher","UPDATE","ReducerManager","dispatcher","feature","features","reducerDict","p","__spreadValues","featureKey","featureKeys","ɵɵinject","REDUCER_MANAGER_PROVIDERS","ScannedActionsSubject","Subject","ɵScannedActionsSubject_BaseFactory","ɵɵgetInheritedFactory","SCANNED_ACTIONS_SUBJECT_PROVIDERS","StateObservable","State","actions$","reducer$","scannedActions","withLatestReducer$","observeOn","queueScheduler","withLatestFrom","seed","stateAndAction$","scan","reduceState","toSignal","stateActionPair","STATE_PROVIDERS","Store","state$","actionsObserver","reducerManager","injector","pathOrMapFn","paths","select","selector","options","computed","operator","store","actionOrDispatchFn","config","err","dispatchFn","assertDefined","effectInjector","getCallerInjector","effect","untracked","Injector","STORE_PROVIDERS","propsOrPath","source$","mapped$","pathSlices","pluck","map","source","distinctUntilChanged","inject","RUNTIME_CHECK_URL","isUndefined","target","isNull","isArray","isString","isBoolean","isNumber","isObjectLike","isObject","isPlainObject","targetPrototype","isFunction","isComponent","hasOwnProperty","propertyName","_ngrxMockEnvironment","isNgrxMockEnvironment","_ngrxMockEnvironment","isEqualCheck","a","b","isArgumentsChanged","args","lastArguments","comparator","i","defaultMemoize","projectionFn","isArgumentsEqual","isEqualCheck","isResultEqual","lastArguments","lastResult","overrideResult","reset","setResult","result","clearResult","memoized","isArgumentsChanged","newResult","createSelector","input","createSelectorFactory","defaultStateFn","state","selectors","props","memoizedProjector","args","fn","memoize","options","head","tail","isSelectorsDictionary","extractArgsFromSelectorsDictionary","projector","memoizedSelectors","selector","memoizedState","release","createFeatureSelector","featureName","featureState","isNgrxMockEnvironment","isDevMode","selectorsDictionary","resultKeys","selectorResults","key","index","__spreadProps","__spreadValues","createFeature","featureConfig","name","reducer","extraSelectorsFactory","featureSelector","nestedSelectors","createNestedSelectors","baseSelectors","capitalize","extraSelectors","initialState","getInitialState","isPlainObject","nestedKey","parentState","_createStoreReducers","reducers","InjectionToken","inject","_createFeatureStore","configs","featureStores","feat","conf","combineReducers","_createFeatureReducers","reducerCollection","_initialStateFactory","_concatMetaReducers","metaReducers","userProvidedMetaReducers","_provideForRootGuard","Store","immutabilityCheckMetaReducer","checks","action","act","freeze","nextState","target","targetIsFunction","isFunction","prop","hasOwnProperty","propValue","isObjectLike","serializationCheckMetaReducer","unserializableAction","getUnserializable","throwIfUnserializable","unserializableState","path","isUndefined","isNull","value","isComponent","isNumber","isBoolean","isString","isArray","unserializable","context","unserializablePath","error","RUNTIME_CHECK_URL","inNgZoneAssertMetaReducer","NgZone","createActiveRuntimeChecks","runtimeChecks","createSerializationCheckMetaReducer","strictActionSerializability","strictStateSerializability","ignoreNgrxAction","createImmutabilityCheckMetaReducer","strictActionImmutability","strictStateImmutability","createInNgZoneCheckMetaReducer","strictActionWithinNgZone","provideRuntimeChecks","_USER_RUNTIME_CHECKS","USER_RUNTIME_CHECKS","_runtimeChecksFactory","ACTIVE_RUNTIME_CHECKS","META_REDUCERS","checkForActionTypeUniqueness","_ACTION_TYPE_UNIQUENESS_CHECK","_actionTypeUniquenessCheck","config","duplicates","REGISTERED_ACTION_TYPES","registrations","type","_provideStore","reducers","config","_ROOT_STORE_GUARD","_provideForRootGuard","_INITIAL_STATE","INITIAL_STATE","_initialStateFactory","_INITIAL_REDUCERS","_STORE_REDUCERS","InjectionToken","INITIAL_REDUCERS","Inject","_createStoreReducers","USER_PROVIDED_META_REDUCERS","_RESOLVED_META_REDUCERS","META_REDUCERS","_concatMetaReducers","_REDUCER_FACTORY","combineReducers","REDUCER_FACTORY","createReducerFactory","ACTIONS_SUBJECT_PROVIDERS","REDUCER_MANAGER_PROVIDERS","SCANNED_ACTIONS_SUBJECT_PROVIDERS","STATE_PROVIDERS","STORE_PROVIDERS","provideRuntimeChecks","checkForActionTypeUniqueness","_provideState","featureNameOrSlice","reducers","config","_FEATURE_CONFIGS","STORE_FEATURES","InjectionToken","combineReducers","_STORE_FEATURES","_createFeatureStore","_FEATURE_REDUCERS","_FEATURE_REDUCERS_TOKEN","FEATURE_REDUCERS","Inject","_createFeatureReducers","checkForActionTypeUniqueness","StoreRootModule","actions$","reducer$","scannedActions$","store","guard","actionCheck","__ngFactoryType__","ɵɵinject","ActionsSubject","ReducerObservable","ScannedActionsSubject","Store","_ROOT_STORE_GUARD","_ACTION_TYPE_UNIQUENESS_CHECK","ɵɵdefineNgModule","ɵɵdefineInjector","StoreFeatureModule","features","featureReducers","reducerManager","root","feats","feature","index","__spreadProps","__spreadValues","_initialStateFactory","ReducerManager","StoreModule","_provideStore","on","args","reducer","types","creator","createReducer","initialState","ons","map","type","existingReducer","newReducer","state","action","loadArticles","createAction","props","loadAnArticle","loadArticlesRemote","loadArticlesFromNewsletterRemote","loadAnArticleRemote","articlesLoaded","articleLoaded","setCurrentArticle","removeAllArticles","resetArticleState","updateSearchParameters","downloadArticlesRemote","downloadInProgress","downloadFinished","articlesLoadedError","getInitialEntityState","createInitialStateFactory","getInitialState","additionalState","createSelectorsFactory","getSelectors","selectState","selectIds","state","selectEntities","selectAll","createSelector","ids","entities","id","selectTotal","DidMutate","createStateOperator","mutator","arg","clonedEntityState","__spreadValues","didMutate","__spreadProps","selectIdValue","entity","selectId","key","isDevMode","createUnsortedStateAdapter","addOneMutably","addManyMutably","setAllMutably","setOneMutably","setManyMutably","didMutateSetOne","removeOneMutably","removeManyMutably","keysOrPredicate","removeAll","takeNewKey","keys","update","original","updated","newKey","hasNewKey","updateOneMutably","updateManyMutably","updates","newKeys","mapMutably","map","changes","change","mapOneMutably","updatedEntity","upsertOneMutably","upsertManyMutably","added","didMutateByUpdated","didMutateByAdded","createSortedStateAdapter","sort","removeOne","removeMany","newModels","models","model","merge","val","takeUpdatedModel","didMutateIds","originalIds","updatedIndexes","index","i","updatesOrMap","j","modelId","entityId","createEntityAdapter","options","sortComparer","stateFactory","selectorsFactory","stateAdapter","adapter","createEntityAdapter","initialState","ids","entities","currentArticle","undefined","listing","window","present","total","area","search","parameters","order","column","direction","status","loading","loadingAnArticle","inflight","error","downloadID","page","extraData","selectAll","getSelectors","articlesFeature","createFeature","name","reducer","createReducer","on","loadArticles","state","articles","addMany","id","__spreadValues","listingToUse","structuredClone","__spreadProps","loadAnArticle","article","finalArticle","upsertOne","setCurrentArticle","loadArticlesRemote","loadAnArticleRemote","removeAllArticles","resetArticleState","updateSearchParameters","articlesLoaded","articleLoaded","articlesLoadedError","downloadInProgress","downloadFinished","extraSelectors","selectArticlesState","selectEntities","selectListingState","createSelector","selectStatusState","selectSearchState","selectAllArticles","sort","a","b","runningOrder","selectAnArticleById","selectCurrentArticle","selectAnArticleByRunningOrder","Object","values","find","e","selectPreviousAndNextByRunningOrder","previousID","nextID","entitiesIds","map","toString","length","selectExtraData","selectIds","selectListing","loadMenus","createAction","props","updateMenuExpansion","closeMegaMenus","resetMegaMenus","menuAdapter","createEntityAdapter","menusInitialState","getInitialState","ids","entities","id","title","area","expanded","columns","aShortCuts","template","children","icon","link","params","x","reports","recentNews","searches","version","situation_type","case_include_type","liabilities_range","recentBankruptcies","recentDistressed","dataSets","organizations","involvementgraphs","involvement_subtype_lookupID_advisor","advisorLeagueTables","tab","otherLeagueTables","popularLeagueTables","documentsCourt","documenttypes","documentssec","formname","selectAll","getSelectors","selectAllMenusAdapter","menusFeature","createFeature","name","reducer","createReducer","on","loadMenus","state","menus","menuUpdate","mapOne","map","menu","newMenu","structuredClone","menuKey","menuColumn","Object","entries","updateMenuExpansion","updateOne","closeMegaMenus","__spreadProps","__spreadValues","resetMegaMenus","extraSelectors","selectMenusState","selectAllMenus","createSelector","ROUTER_REQUEST","routerRequestAction","createAction","props","ROUTER_NAVIGATION","routerNavigationAction","ROUTER_CANCEL","routerCancelAction","ROUTER_ERROR","routerErrorAction","ROUTER_NAVIGATED","routerNavigatedAction","MinimalRouterStateSerializer","routerState","route","children","c","NavigationActionTiming","DEFAULT_ROUTER_FEATURENAME","_ROUTER_CONFIG","InjectionToken","ROUTER_CONFIG","RouterState","_createRouterConfig","config","__spreadValues","FullRouterStateSerializer","RouterStateSerializer","RouterTrigger","StoreRouterConnectingService","store","router","serializer","errorHandler","activeRuntimeChecks","isNgrxMockEnvironment","isDevMode","select","withLatestFrom","routerStoreState","storeState","NavigationStart","url","isSameUrl","error","dispatchNavLate","routesRecognized","event","RoutesRecognized","NavigationCancel","NavigationError","NavigationEnd","ROUTER_REQUEST","lastRoutesRecognized","nextRouterState","ROUTER_NAVIGATION","ROUTER_CANCEL","ROUTER_ERROR","ROUTER_NAVIGATED","type","payload","__spreadProps","__ngFactoryType__","ɵɵinject","Store","Router","ErrorHandler","ACTIVE_RUNTIME_CHECKS","ɵɵdefineInjectable","first","second","stripTrailingSlash","text","provideRouterStore","makeEnvironmentProviders","ENVIRONMENT_INITIALIZER","inject","StoreRouterConnectingModule","ɵɵdefineNgModule","ɵɵdefineInjector","DEFAULT_EFFECT_CONFIG","CREATE_EFFECT_METADATA_KEY","createEffect","source","config","effect","value","__spreadValues","getCreateEffectMetadata","instance","propertyName","metaData","getSourceMetadata","instance","getCreateEffectMetadata","getSourceForInstance","isClassInstance","obj","isClass","classOrRecord","getClasses","classesAndRecords","isToken","tokenOrRecord","InjectionToken","mergeEffects","sourceInstance","globalErrorHandler","effectsErrorHandler","source","sourceName","observables$","propertyName","dispatch","useEffectsErrorHandler","observable$","effectAction$","ignoreElements","materialize","map","notification","merge","MAX_NUMBER_OF_RETRY_ATTEMPTS","defaultEffectsErrorHandler","errorHandler","retryAttemptLeft","catchError","error","Actions","Observable","operator","observable","__ngFactoryType__","ɵɵinject","ScannedActionsSubject","ɵɵdefineInjectable","ofType","allowedTypes","filter","action","typeOrActionCreator","_ROOT_EFFECTS_GUARD","USER_PROVIDED_EFFECTS","_ROOT_EFFECTS","_ROOT_EFFECTS_INSTANCES","_FEATURE_EFFECTS","_FEATURE_EFFECTS_INSTANCE_GROUPS","EFFECTS_ERROR_HANDLER","ROOT_EFFECTS_INIT","rootEffectsInit","createAction","reportInvalidActions","output","reporter","isAction","getEffectName","stringify","isMethod","onIdentifyEffectsKey","isOnIdentifyEffects","isFunction","onRunEffectsKey","isOnRunEffects","onInitEffects","isOnInitEffects","functionName","EffectSources","Subject","effectSourceInstance","groupBy","effectsInstance","mergeMap","source$","effect$","exhaustMap","resolveEffectSource","dematerialize","init$","take","ErrorHandler","mergedEffects$","EffectsRunner","effectSources","store","Store","EffectsRootModule","sources","runner","rootEffectsInstances","storeRootModule","storeFeatureModule","guard","StoreRootModule","StoreFeatureModule","ɵɵdefineNgModule","ɵɵdefineInjector","EffectsFeatureModule","effectsRootModule","effectsInstanceGroups","effectsInstances","EffectsModule","featureEffects","effects","effectsClasses","createEffectsInstances","rootEffects","_provideForRootGuard","effectsGroups","userProvidedEffectsGroups","effectsGroup","userProvidedEffectsGroup","effectsTokenOrRecord","inject","RouterEffects","actions$","inject","Actions","router","Router","updateStoreOnRouteChange$","createEffect","pipe","ofType","ROUTER_NAVIGATED","map","payload","closeMegaMenus","factory","ɵfac"],"mappings":"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","debug_id":"fba168fc-7a66-563a-ba9a-373e6e1e3232"}