UNPKG

139 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngrx-store.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../modules/store/src/globals.ts","../../../../modules/store/src/action_creator.ts","../../../../modules/store/src/actions_subject.ts","../../../../modules/store/src/tokens.ts","../../../../modules/store/src/utils.ts","../../../../modules/store/src/reducer_manager.ts","../../../../modules/store/src/scanned_actions_subject.ts","../../../../modules/store/src/state.ts","../../../../modules/store/src/store.ts","../../../../modules/store/src/helpers.ts","../../../../modules/store/src/meta-reducers/utils.ts","../../../../modules/store/src/flags.ts","../../../../modules/store/src/selector.ts","../../../../modules/store/src/feature_creator.ts","../../../../modules/store/src/meta-reducers/immutability_reducer.ts","../../../../modules/store/src/meta-reducers/serialization_reducer.ts","../../../../modules/store/src/meta-reducers/inNgZoneAssert_reducer.ts","../../../../modules/store/src/runtime_checks.ts","../../../../modules/store/src/store_module.ts","../../../../modules/store/src/reducer_creator.ts","../../../../modules/store/index.ts","../../../../modules/store/ngrx-store.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const REGISTERED_ACTION_TYPES: { [actionType: string]: number } = {};\n\nexport function resetRegisteredActionTypes() {\n for (const key of Object.keys(REGISTERED_ACTION_TYPES)) {\n delete REGISTERED_ACTION_TYPES[key];\n }\n}\n","import {\n Creator,\n ActionCreator,\n TypedAction,\n FunctionWithParametersType,\n NotAllowedCheck,\n ActionCreatorProps,\n} from './models';\nimport { REGISTERED_ACTION_TYPES } from './globals';\n\n// Action creators taken from ts-action library and modified a bit to better\n// fit current NgRx usage. Thank you Nicholas Jamieson (@cartant).\n\nexport function createAction<T extends string>(\n type: T\n): ActionCreator<T, () => TypedAction<T>>;\nexport function createAction<T extends string, P extends object>(\n type: T,\n config: ActionCreatorProps<P> & NotAllowedCheck<P>\n): ActionCreator<T, (props: P & NotAllowedCheck<P>) => P & TypedAction<T>>;\nexport function createAction<\n T extends string,\n P extends any[],\n R extends object\n>(\n type: T,\n creator: Creator<P, R & NotAllowedCheck<R>>\n): FunctionWithParametersType<P, R & TypedAction<T>> & TypedAction<T>;\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 */\nexport function createAction<T extends string, C extends Creator>(\n type: T,\n config?: { _as: 'props' } | C\n): ActionCreator<T> {\n REGISTERED_ACTION_TYPES[type] = (REGISTERED_ACTION_TYPES[type] || 0) + 1;\n\n if (typeof config === 'function') {\n return defineType(type, (...args: any[]) => ({\n ...config(...args),\n type,\n }));\n }\n const as = config ? config._as : 'empty';\n switch (as) {\n case 'empty':\n return defineType(type, () => ({ type }));\n case 'props':\n return defineType(type, (props: object) => ({\n ...props,\n type,\n }));\n default:\n throw new Error('Unexpected config.');\n }\n}\n\nexport function props<P extends object>(): ActionCreatorProps<P> {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/naming-convention\n return { _as: 'props', _p: undefined! };\n}\n\nexport function union<\n C extends { [key: string]: ActionCreator<string, Creator> }\n>(creators: C): ReturnType<C[keyof C]> {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return undefined!;\n}\n\nfunction defineType<T extends string>(\n type: T,\n creator: Creator\n): ActionCreator<T> {\n return Object.defineProperty(creator, 'type', {\n value: type,\n writable: false,\n });\n}\n","import { Injectable, OnDestroy, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Action } from './models';\n\nexport const INIT = '@ngrx/store/init' as const;\n\n@Injectable()\nexport class ActionsSubject\n extends BehaviorSubject<Action>\n implements OnDestroy {\n constructor() {\n super({ type: INIT });\n }\n\n next(action: Action): void {\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\n complete() {\n /* noop */\n }\n\n ngOnDestroy() {\n super.complete();\n }\n}\n\nexport const ACTIONS_SUBJECT_PROVIDERS: Provider[] = [ActionsSubject];\n","import { InjectionToken } from '@angular/core';\nimport { RuntimeChecks, MetaReducer } from './models';\n\nexport const _ROOT_STORE_GUARD = new InjectionToken<void>(\n '@ngrx/store Internal Root Guard'\n);\nexport const _INITIAL_STATE = new InjectionToken(\n '@ngrx/store Internal Initial State'\n);\nexport const INITIAL_STATE = new InjectionToken('@ngrx/store Initial State');\nexport const REDUCER_FACTORY = new InjectionToken(\n '@ngrx/store Reducer Factory'\n);\nexport const _REDUCER_FACTORY = new InjectionToken(\n '@ngrx/store Internal Reducer Factory Provider'\n);\nexport const INITIAL_REDUCERS = new InjectionToken(\n '@ngrx/store Initial Reducers'\n);\nexport const _INITIAL_REDUCERS = new InjectionToken(\n '@ngrx/store Internal Initial Reducers'\n);\nexport const STORE_FEATURES = new InjectionToken('@ngrx/store Store Features');\nexport const _STORE_REDUCERS = new InjectionToken(\n '@ngrx/store Internal Store Reducers'\n);\nexport const _FEATURE_REDUCERS = new InjectionToken(\n '@ngrx/store Internal Feature Reducers'\n);\n\nexport const _FEATURE_CONFIGS = new InjectionToken(\n '@ngrx/store Internal Feature Configs'\n);\n\nexport const _STORE_FEATURES = new InjectionToken(\n '@ngrx/store Internal Store Features'\n);\n\nexport const _FEATURE_REDUCERS_TOKEN = new InjectionToken(\n '@ngrx/store Internal Feature Reducers Token'\n);\nexport const FEATURE_REDUCERS = new InjectionToken(\n '@ngrx/store Feature Reducers'\n);\n\n/**\n * User-defined meta reducers from StoreModule.forRoot()\n */\nexport const USER_PROVIDED_META_REDUCERS = new InjectionToken<MetaReducer[]>(\n '@ngrx/store User Provided Meta Reducers'\n);\n\n/**\n * Meta reducers defined either internally by @ngrx/store or by library authors\n */\nexport const META_REDUCERS = new InjectionToken<MetaReducer[]>(\n '@ngrx/store Meta Reducers'\n);\n\n/**\n * Concats the user provided meta reducers and the meta reducers provided on the multi\n * injection token\n */\nexport const _RESOLVED_META_REDUCERS = new InjectionToken<MetaReducer>(\n '@ngrx/store Internal Resolved Meta Reducers'\n);\n\n/**\n * Runtime checks defined by the user via an InjectionToken\n * Defaults to `_USER_RUNTIME_CHECKS`\n */\nexport const USER_RUNTIME_CHECKS = new InjectionToken<RuntimeChecks>(\n '@ngrx/store User Runtime Checks Config'\n);\n\n/**\n * Runtime checks defined by the user via forRoot()\n */\nexport const _USER_RUNTIME_CHECKS = new InjectionToken<RuntimeChecks>(\n '@ngrx/store Internal User Runtime Checks Config'\n);\n\n/**\n * Runtime checks currently in use\n */\nexport const ACTIVE_RUNTIME_CHECKS = new InjectionToken<RuntimeChecks>(\n '@ngrx/store Internal Runtime Checks'\n);\n\nexport const _ACTION_TYPE_UNIQUENESS_CHECK = new InjectionToken<void>(\n '@ngrx/store Check if Action types are unique'\n);\n","import {\n Action,\n ActionReducer,\n ActionReducerFactory,\n ActionReducerMap,\n MetaReducer,\n InitialState,\n} from './models';\n\nexport function combineReducers<T, V extends Action = Action>(\n reducers: ActionReducerMap<T, V>,\n initialState?: Partial<T>\n): ActionReducer<T, V>;\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 */\nexport function combineReducers(\n reducers: any,\n initialState: any = {}\n): ActionReducer<any, Action> {\n const reducerKeys = Object.keys(reducers);\n const finalReducers: any = {};\n\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\n const finalReducerKeys = Object.keys(finalReducers);\n\n return function combination(state, action) {\n state = state === undefined ? initialState : state;\n let hasChanged = false;\n const nextState: any = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer: any = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\nexport function omit<T extends { [key: string]: any }>(\n object: T,\n keyToRemove: keyof T\n): Partial<T> {\n return Object.keys(object)\n .filter((key) => key !== keyToRemove)\n .reduce((result, key) => Object.assign(result, { [key]: object[key] }), {});\n}\n\nexport function compose<A>(): (i: A) => A;\nexport function compose<A, B>(b: (i: A) => B): (i: A) => B;\nexport function compose<A, B, C>(c: (i: B) => C, b: (i: A) => B): (i: A) => C;\nexport function compose<A, B, C, D>(\n d: (i: C) => D,\n c: (i: B) => C,\n b: (i: A) => B\n): (i: A) => D;\nexport function compose<A, B, C, D, E>(\n e: (i: D) => E,\n d: (i: C) => D,\n c: (i: B) => C,\n b: (i: A) => B\n): (i: A) => E;\nexport function compose<A, B, C, D, E, F>(\n f: (i: E) => F,\n e: (i: D) => E,\n d: (i: C) => D,\n c: (i: B) => C,\n b: (i: A) => B\n): (i: A) => F;\nexport function compose<A = any, F = any>(...functions: any[]): (i: A) => F;\nexport function compose(...functions: any[]) {\n return function (arg: any) {\n if (functions.length === 0) {\n return arg;\n }\n\n const last = functions[functions.length - 1];\n const rest = functions.slice(0, -1);\n\n return rest.reduceRight((composed, fn) => fn(composed), last(arg));\n };\n}\n\nexport function createReducerFactory<T, V extends Action = Action>(\n reducerFactory: ActionReducerFactory<T, V>,\n metaReducers?: MetaReducer<T, V>[]\n): ActionReducerFactory<T, V> {\n if (Array.isArray(metaReducers) && metaReducers.length > 0) {\n (reducerFactory as any) = compose.apply(null, [\n ...metaReducers,\n reducerFactory,\n ]);\n }\n\n return (reducers: ActionReducerMap<T, V>, initialState?: InitialState<T>) => {\n const reducer = reducerFactory(reducers);\n return (state: T | undefined, action: V) => {\n state = state === undefined ? (initialState as T) : state;\n return reducer(state, action);\n };\n };\n}\n\nexport function createFeatureReducerFactory<T, V extends Action = Action>(\n metaReducers?: MetaReducer<T, V>[]\n): (reducer: ActionReducer<T, V>, initialState?: T) => ActionReducer<T, V> {\n const reducerFactory =\n Array.isArray(metaReducers) && metaReducers.length > 0\n ? compose<ActionReducer<T, V>>(...metaReducers)\n : (r: ActionReducer<T, V>) => r;\n\n return (reducer: ActionReducer<T, V>, initialState?: T) => {\n reducer = reducerFactory(reducer);\n\n return (state: T | undefined, action: V) => {\n state = state === undefined ? initialState : state;\n return reducer(state, action);\n };\n };\n}\n","import { Inject, Injectable, OnDestroy, Provider } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ActionsSubject } from './actions_subject';\nimport {\n Action,\n ActionReducer,\n ActionReducerFactory,\n ActionReducerMap,\n StoreFeature,\n} from './models';\nimport { INITIAL_REDUCERS, INITIAL_STATE, REDUCER_FACTORY } from './tokens';\nimport {\n createFeatureReducerFactory,\n createReducerFactory,\n omit,\n} from './utils';\n\nexport abstract class ReducerObservable extends Observable<\n ActionReducer<any, any>\n> {}\nexport abstract class ReducerManagerDispatcher extends ActionsSubject {}\nexport const UPDATE = '@ngrx/store/update-reducers' as const;\n\n@Injectable()\nexport class ReducerManager\n extends BehaviorSubject<ActionReducer<any, any>>\n implements OnDestroy {\n get currentReducers(): ActionReducerMap<any, any> {\n return this.reducers;\n }\n\n constructor(\n private dispatcher: ReducerManagerDispatcher,\n @Inject(INITIAL_STATE) private initialState: any,\n @Inject(INITIAL_REDUCERS) private reducers: ActionReducerMap<any, any>,\n @Inject(REDUCER_FACTORY)\n private reducerFactory: ActionReducerFactory<any, any>\n ) {\n super(reducerFactory(reducers, initialState));\n }\n\n addFeature(feature: StoreFeature<any, any>) {\n this.addFeatures([feature]);\n }\n\n addFeatures(features: StoreFeature<any, any>[]) {\n const reducers = features.reduce(\n (\n reducerDict,\n { reducers, reducerFactory, metaReducers, initialState, key }\n ) => {\n const reducer =\n typeof reducers === 'function'\n ? createFeatureReducerFactory(metaReducers)(reducers, initialState)\n : createReducerFactory(reducerFactory, metaReducers)(\n reducers,\n initialState\n );\n\n reducerDict[key] = reducer;\n return reducerDict;\n },\n {} as { [key: string]: ActionReducer<any, any> }\n );\n\n this.addReducers(reducers);\n }\n\n removeFeature(feature: StoreFeature<any, any>) {\n this.removeFeatures([feature]);\n }\n\n removeFeatures(features: StoreFeature<any, any>[]) {\n this.removeReducers(features.map((p) => p.key));\n }\n\n addReducer(key: string, reducer: ActionReducer<any, any>) {\n this.addReducers({ [key]: reducer });\n }\n\n addReducers(reducers: { [key: string]: ActionReducer<any, any> }) {\n this.reducers = { ...this.reducers, ...reducers };\n this.updateReducers(Object.keys(reducers));\n }\n\n removeReducer(featureKey: string) {\n this.removeReducers([featureKey]);\n }\n\n removeReducers(featureKeys: string[]) {\n featureKeys.forEach((key) => {\n this.reducers = omit(this.reducers, key) /*TODO(#823)*/ as any;\n });\n this.updateReducers(featureKeys);\n }\n\n private updateReducers(featureKeys: string[]) {\n this.next(this.reducerFactory(this.reducers, this.initialState));\n this.dispatcher.next(<Action>{\n type: UPDATE,\n features: featureKeys,\n });\n }\n\n ngOnDestroy() {\n this.complete();\n }\n}\n\nexport const REDUCER_MANAGER_PROVIDERS: Provider[] = [\n ReducerManager,\n { provide: ReducerObservable, useExisting: ReducerManager },\n { provide: ReducerManagerDispatcher, useExisting: ActionsSubject },\n];\n","import { Injectable, OnDestroy, Provider } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { Action } from './models';\n\n@Injectable()\nexport class ScannedActionsSubject extends Subject<Action>\n implements OnDestroy {\n ngOnDestroy() {\n this.complete();\n }\n}\n\nexport const SCANNED_ACTIONS_SUBJECT_PROVIDERS: Provider[] = [\n ScannedActionsSubject,\n];\n","import { Inject, Injectable, OnDestroy, Provider } from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n queueScheduler,\n Subscription,\n} from 'rxjs';\nimport { observeOn, scan, withLatestFrom } from 'rxjs/operators';\n\nimport { ActionsSubject, INIT } from './actions_subject';\nimport { Action, ActionReducer } from './models';\nimport { ReducerObservable } from './reducer_manager';\nimport { ScannedActionsSubject } from './scanned_actions_subject';\nimport { INITIAL_STATE } from './tokens';\n\nexport abstract class StateObservable extends Observable<any> {}\n\n@Injectable()\nexport class State<T> extends BehaviorSubject<any> implements OnDestroy {\n static readonly INIT = INIT;\n\n private stateSubscription: Subscription;\n\n constructor(\n actions$: ActionsSubject,\n reducer$: ReducerObservable,\n scannedActions: ScannedActionsSubject,\n @Inject(INITIAL_STATE) initialState: any\n ) {\n super(initialState);\n\n const actionsOnQueue$: Observable<Action> = actions$.pipe(\n observeOn(queueScheduler)\n );\n const withLatestReducer$: Observable<\n [Action, ActionReducer<any, Action>]\n > = actionsOnQueue$.pipe(withLatestFrom(reducer$));\n\n const seed: StateActionPair<T> = { state: initialState };\n const stateAndAction$: Observable<{\n state: any;\n action?: Action;\n }> = withLatestReducer$.pipe(\n scan<[Action, ActionReducer<T, Action>], StateActionPair<T>>(\n reduceState,\n seed\n )\n );\n\n this.stateSubscription = stateAndAction$.subscribe(({ state, action }) => {\n this.next(state);\n scannedActions.next(action);\n });\n }\n\n ngOnDestroy() {\n this.stateSubscription.unsubscribe();\n this.complete();\n }\n}\n\nexport type StateActionPair<T, V extends Action = Action> = {\n state: T | undefined;\n action?: V;\n};\nexport function reduceState<T, V extends Action = Action>(\n stateActionPair: StateActionPair<T, V> = { state: undefined },\n [action, reducer]: [V, ActionReducer<T, V>]\n): StateActionPair<T, V> {\n const { state } = stateActionPair;\n return { state: reducer(state, action), action };\n}\n\nexport const STATE_PROVIDERS: Provider[] = [\n State,\n { provide: StateObservable, useExisting: State },\n];\n","/* eslint-disable @typescript-eslint/naming-convention */\n// disabled because we have lowercase generics for `select`\nimport { Injectable, Provider } from '@angular/core';\nimport { Observable, Observer, Operator } from 'rxjs';\nimport { distinctUntilChanged, map, pluck } from 'rxjs/operators';\n\nimport { ActionsSubject } from './actions_subject';\nimport { Action, ActionReducer, FunctionIsNotAllowed } from './models';\nimport { ReducerManager } from './reducer_manager';\nimport { StateObservable } from './state';\n\n@Injectable()\nexport class Store<T = object>\n extends Observable<T>\n implements Observer<Action> {\n constructor(\n state$: StateObservable,\n private actionsObserver: ActionsSubject,\n private reducerManager: ReducerManager\n ) {\n super();\n\n this.source = state$;\n }\n\n select<K>(mapFn: (state: T) => K): Observable<K>;\n /**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\n select<K, Props = any>(\n mapFn: (state: T, props: Props) => K,\n props: Props\n ): Observable<K>;\n select<a extends keyof T>(key: a): Observable<T[a]>;\n select<a extends keyof T, b extends keyof T[a]>(\n key1: a,\n key2: b\n ): Observable<T[a][b]>;\n select<a extends keyof T, b extends keyof T[a], c extends keyof T[a][b]>(\n key1: a,\n key2: b,\n key3: c\n ): Observable<T[a][b][c]>;\n select<\n a extends keyof T,\n b extends keyof T[a],\n c extends keyof T[a][b],\n d extends keyof T[a][b][c]\n >(key1: a, key2: b, key3: c, key4: d): Observable<T[a][b][c][d]>;\n select<\n a extends keyof T,\n b extends keyof T[a],\n c extends keyof T[a][b],\n d extends keyof T[a][b][c],\n e extends keyof T[a][b][c][d]\n >(key1: a, key2: b, key3: c, key4: d, key5: e): Observable<T[a][b][c][d][e]>;\n select<\n a extends keyof T,\n b extends keyof T[a],\n c extends keyof T[a][b],\n d extends keyof T[a][b][c],\n e extends keyof T[a][b][c][d],\n f extends keyof T[a][b][c][d][e]\n >(\n key1: a,\n key2: b,\n key3: c,\n key4: d,\n key5: e,\n key6: f\n ): Observable<T[a][b][c][d][e][f]>;\n select<\n a extends keyof T,\n b extends keyof T[a],\n c extends keyof T[a][b],\n d extends keyof T[a][b][c],\n e extends keyof T[a][b][c][d],\n f extends keyof T[a][b][c][d][e],\n K = any\n >(\n key1: a,\n key2: b,\n key3: c,\n key4: d,\n key5: e,\n key6: f,\n ...paths: string[]\n ): Observable<K>;\n select<Props = any, K = any>(\n pathOrMapFn: ((state: T, props?: Props) => K) | string,\n ...paths: string[]\n ): Observable<any> {\n return (select as any).call(null, pathOrMapFn, ...paths)(this);\n }\n\n lift<R>(operator: Operator<T, R>): Store<R> {\n const store = new Store<R>(this, this.actionsObserver, this.reducerManager);\n store.operator = operator;\n\n return store;\n }\n\n dispatch<V extends Action = Action>(\n action: V &\n FunctionIsNotAllowed<\n V,\n 'Functions are not allowed to be dispatched. Did you forget to call the action creator function?'\n >\n ) {\n this.actionsObserver.next(action);\n }\n\n next(action: Action) {\n this.actionsObserver.next(action);\n }\n\n error(err: any) {\n this.actionsObserver.error(err);\n }\n\n complete() {\n this.actionsObserver.complete();\n }\n\n addReducer<State, Actions extends Action = Action>(\n key: string,\n reducer: ActionReducer<State, Actions>\n ) {\n this.reducerManager.addReducer(key, reducer);\n }\n\n removeReducer<Key extends Extract<keyof T, string>>(key: Key) {\n this.reducerManager.removeReducer(key);\n }\n}\n\nexport const STORE_PROVIDERS: Provider[] = [Store];\n\nexport function select<T, K>(\n mapFn: (state: T) => K\n): (source$: Observable<T>) => Observable<K>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function select<T, Props, K>(\n mapFn: (state: T, props: Props) => K,\n props: Props\n): (source$: Observable<T>) => Observable<K>;\nexport function select<T, a extends keyof T>(\n key: a\n): (source$: Observable<T>) => Observable<T[a]>;\nexport function select<T, a extends keyof T, b extends keyof T[a]>(\n key1: a,\n key2: b\n): (source$: Observable<T>) => Observable<T[a][b]>;\nexport function select<\n T,\n a extends keyof T,\n b extends keyof T[a],\n c extends keyof T[a][b]\n>(\n key1: a,\n key2: b,\n key3: c\n): (source$: Observable<T>) => Observable<T[a][b][c]>;\nexport function select<\n T,\n a extends keyof T,\n b extends keyof T[a],\n c extends keyof T[a][b],\n d extends keyof T[a][b][c]\n>(\n key1: a,\n key2: b,\n key3: c,\n key4: d\n): (source$: Observable<T>) => Observable<T[a][b][c][d]>;\nexport function select<\n T,\n a extends keyof T,\n b extends keyof T[a],\n c extends keyof T[a][b],\n d extends keyof T[a][b][c],\n e extends keyof T[a][b][c][d]\n>(\n key1: a,\n key2: b,\n key3: c,\n key4: d,\n key5: e\n): (source$: Observable<T>) => Observable<T[a][b][c][d][e]>;\nexport function select<\n T,\n a extends keyof T,\n b extends keyof T[a],\n c extends keyof T[a][b],\n d extends keyof T[a][b][c],\n e extends keyof T[a][b][c][d],\n f extends keyof T[a][b][c][d][e]\n>(\n key1: a,\n key2: b,\n key3: c,\n key4: d,\n key5: e,\n key6: f\n): (source$: Observable<T>) => Observable<T[a][b][c][d][e][f]>;\nexport function select<\n T,\n a extends keyof T,\n b extends keyof T[a],\n c extends keyof T[a][b],\n d extends keyof T[a][b][c],\n e extends keyof T[a][b][c][d],\n f extends keyof T[a][b][c][d][e],\n K = any\n>(\n key1: a,\n key2: b,\n key3: c,\n key4: d,\n key5: e,\n key6: f,\n ...paths: string[]\n): (source$: Observable<T>) => Observable<K>;\nexport function select<T, Props, K>(\n pathOrMapFn: ((state: T, props?: Props) => any) | string,\n propsOrPath?: Props | string,\n ...paths: string[]\n) {\n return function selectOperator(source$: Observable<T>): Observable<K> {\n let mapped$: Observable<any>;\n\n if (typeof pathOrMapFn === 'string') {\n const pathSlices = [<string>propsOrPath, ...paths].filter(Boolean);\n mapped$ = source$.pipe(pluck(pathOrMapFn, ...pathSlices));\n } else if (typeof pathOrMapFn === 'function') {\n mapped$ = source$.pipe(\n map((source) => pathOrMapFn(source, <Props>propsOrPath))\n );\n } else {\n throw new TypeError(\n `Unexpected type '${typeof pathOrMapFn}' in select operator,` +\n ` expected 'string' or 'function'`\n );\n }\n\n return mapped$.pipe(distinctUntilChanged());\n };\n}\n","export function capitalize<T extends string>(text: T): Capitalize<T> {\n return (text.charAt(0).toUpperCase() + text.substr(1)) as Capitalize<T>;\n}\n","export const RUNTIME_CHECK_URL =\n 'https://ngrx.io/guide/store/configuration/runtime-checks';\n\nexport function isUndefined(target: any): target is undefined {\n return target === undefined;\n}\n\nexport function isNull(target: any): target is null {\n return target === null;\n}\n\nexport function isArray(target: any): target is Array<any> {\n return Array.isArray(target);\n}\n\nexport function isString(target: any): target is string {\n return typeof target === 'string';\n}\n\nexport function isBoolean(target: any): target is boolean {\n return typeof target === 'boolean';\n}\n\nexport function isNumber(target: any): target is number {\n return typeof target === 'number';\n}\n\nexport function isObjectLike(target: any): target is object {\n return typeof target === 'object' && target !== null;\n}\n\nexport function isObject(target: any): target is object {\n return isObjectLike(target) && !isArray(target);\n}\n\nexport function isPlainObject(target: any): target is object {\n if (!isObject(target)) {\n return false;\n }\n\n const targetPrototype = Object.getPrototypeOf(target);\n return targetPrototype === Object.prototype || targetPrototype === null;\n}\n\nexport function isFunction(target: any): target is () => void {\n return typeof target === 'function';\n}\n\nexport function isComponent(target: any) {\n return isFunction(target) && target.hasOwnProperty('ɵcmp');\n}\n\nexport function hasOwnProperty(target: object, propertyName: string): boolean {\n return Object.prototype.hasOwnProperty.call(target, propertyName);\n}\n","let _ngrxMockEnvironment = false;\nexport function setNgrxMockEnvironment(value: boolean): void {\n _ngrxMockEnvironment = value;\n}\nexport function isNgrxMockEnvironment(): boolean {\n return _ngrxMockEnvironment;\n}\n","import { Selector, SelectorWithProps } from './models';\nimport { isDevMode } from '@angular/core';\nimport { isNgrxMockEnvironment } from './flags';\n\nexport type AnyFn = (...args: any[]) => any;\n\nexport type MemoizedProjection = {\n memoized: AnyFn;\n reset: () => void;\n setResult: (result?: any) => void;\n clearResult: () => void;\n};\n\nexport type MemoizeFn = (t: AnyFn) => MemoizedProjection;\n\nexport type ComparatorFn = (a: any, b: any) => boolean;\n\nexport type DefaultProjectorFn<T> = (...args: any[]) => T;\n\nexport interface MemoizedSelector<\n State,\n Result,\n ProjectorFn = DefaultProjectorFn<Result>\n> extends Selector<State, Result> {\n release(): void;\n projector: ProjectorFn;\n setResult: (result?: Result) => void;\n clearResult: () => void;\n}\n\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport interface MemoizedSelectorWithProps<\n State,\n Props,\n Result,\n ProjectorFn = DefaultProjectorFn<Result>\n> extends SelectorWithProps<State, Props, Result> {\n release(): void;\n projector: ProjectorFn;\n setResult: (result?: Result) => void;\n clearResult: () => void;\n}\n\nexport function isEqualCheck(a: any, b: any): boolean {\n return a === b;\n}\n\nfunction isArgumentsChanged(\n args: IArguments,\n lastArguments: IArguments,\n comparator: ComparatorFn\n) {\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}\n\nexport function resultMemoize(\n projectionFn: AnyFn,\n isResultEqual: ComparatorFn\n) {\n return defaultMemoize(projectionFn, isEqualCheck, isResultEqual);\n}\n\nexport function defaultMemoize(\n projectionFn: AnyFn,\n isArgumentsEqual = isEqualCheck,\n isResultEqual = isEqualCheck\n): MemoizedProjection {\n let lastArguments: null | IArguments = null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, , , , ,\n let lastResult: any = null;\n let overrideResult: any;\n\n function reset() {\n lastArguments = null;\n lastResult = null;\n }\n\n function setResult(result: any = undefined) {\n overrideResult = { result };\n }\n\n function clearResult() {\n overrideResult = undefined;\n }\n\n /* eslint-disable prefer-rest-params, prefer-spread */\n // disabled because of the use of `arguments`\n function memoized(): any {\n if (overrideResult !== undefined) {\n return overrideResult.result;\n }\n\n if (!lastArguments) {\n lastResult = projectionFn.apply(null, arguments as any);\n lastArguments = arguments;\n return lastResult;\n }\n\n if (!isArgumentsChanged(arguments, lastArguments, isArgumentsEqual)) {\n return lastResult;\n }\n\n const newResult = projectionFn.apply(null, arguments as any);\n lastArguments = arguments;\n\n if (isResultEqual(lastResult, newResult)) {\n return lastResult;\n }\n\n lastResult = newResult;\n\n return newResult;\n }\n\n return { memoized, reset, setResult, clearResult };\n}\n\nexport function createSelector<State, S1, Result>(\n s1: Selector<State, S1>,\n projector: (s1: S1) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, Result>(\n s1: SelectorWithProps<State, Props, S1>,\n projector: (s1: S1, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\nexport function createSelector<State, S1, Result>(\n selectors: [Selector<State, S1>],\n projector: (s1: S1) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, Result>(\n selectors: [SelectorWithProps<State, Props, S1>],\n projector: (s1: S1, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\n\nexport function createSelector<State, S1, S2, Result>(\n s1: Selector<State, S1>,\n s2: Selector<State, S2>,\n projector: (s1: S1, s2: S2) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, Result>(\n s1: SelectorWithProps<State, Props, S1>,\n s2: SelectorWithProps<State, Props, S2>,\n projector: (s1: S1, s2: S2, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\n\nexport function createSelector<State, S1, S2, Result>(\n selectors: [Selector<State, S1>, Selector<State, S2>],\n projector: (s1: S1, s2: S2) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, Result>(\n selectors: [\n SelectorWithProps<State, Props, S1>,\n SelectorWithProps<State, Props, S2>\n ],\n projector: (s1: S1, s2: S2, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\n\nexport function createSelector<State, S1, S2, S3, Result>(\n s1: Selector<State, S1>,\n s2: Selector<State, S2>,\n s3: Selector<State, S3>,\n projector: (s1: S1, s2: S2, s3: S3) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, S3, Result>(\n s1: SelectorWithProps<State, Props, S1>,\n s2: SelectorWithProps<State, Props, S2>,\n s3: SelectorWithProps<State, Props, S3>,\n projector: (s1: S1, s2: S2, s3: S3, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\nexport function createSelector<State, S1, S2, S3, Result>(\n selectors: [Selector<State, S1>, Selector<State, S2>, Selector<State, S3>],\n projector: (s1: S1, s2: S2, s3: S3) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, S3, Result>(\n selectors: [\n SelectorWithProps<State, Props, S1>,\n SelectorWithProps<State, Props, S2>,\n SelectorWithProps<State, Props, S3>\n ],\n projector: (s1: S1, s2: S2, s3: S3, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\n\nexport function createSelector<State, S1, S2, S3, S4, Result>(\n s1: Selector<State, S1>,\n s2: Selector<State, S2>,\n s3: Selector<State, S3>,\n s4: Selector<State, S4>,\n projector: (s1: S1, s2: S2, s3: S3, s4: S4) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, S3, S4, Result>(\n s1: SelectorWithProps<State, Props, S1>,\n s2: SelectorWithProps<State, Props, S2>,\n s3: SelectorWithProps<State, Props, S3>,\n s4: SelectorWithProps<State, Props, S4>,\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\nexport function createSelector<State, S1, S2, S3, S4, Result>(\n selectors: [\n Selector<State, S1>,\n Selector<State, S2>,\n Selector<State, S3>,\n Selector<State, S4>\n ],\n projector: (s1: S1, s2: S2, s3: S3, s4: S4) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, S3, S4, Result>(\n selectors: [\n SelectorWithProps<State, Props, S1>,\n SelectorWithProps<State, Props, S2>,\n SelectorWithProps<State, Props, S3>,\n SelectorWithProps<State, Props, S4>\n ],\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\n\nexport function createSelector<State, S1, S2, S3, S4, S5, Result>(\n s1: Selector<State, S1>,\n s2: Selector<State, S2>,\n s3: Selector<State, S3>,\n s4: Selector<State, S4>,\n s5: Selector<State, S5>,\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, S3, S4, S5, Result>(\n s1: SelectorWithProps<State, Props, S1>,\n s2: SelectorWithProps<State, Props, S2>,\n s3: SelectorWithProps<State, Props, S3>,\n s4: SelectorWithProps<State, Props, S4>,\n s5: SelectorWithProps<State, Props, S5>,\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\nexport function createSelector<State, S1, S2, S3, S4, S5, Result>(\n selectors: [\n Selector<State, S1>,\n Selector<State, S2>,\n Selector<State, S3>,\n Selector<State, S4>,\n Selector<State, S5>\n ],\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, S3, S4, S5, Result>(\n selectors: [\n SelectorWithProps<State, Props, S1>,\n SelectorWithProps<State, Props, S2>,\n SelectorWithProps<State, Props, S3>,\n SelectorWithProps<State, Props, S4>,\n SelectorWithProps<State, Props, S5>\n ],\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, props: Props) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\n\nexport function createSelector<State, S1, S2, S3, S4, S5, S6, Result>(\n s1: Selector<State, S1>,\n s2: Selector<State, S2>,\n s3: Selector<State, S3>,\n s4: Selector<State, S4>,\n s5: Selector<State, S5>,\n s6: Selector<State, S6>,\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, S3, S4, S5, S6, Result>(\n s1: SelectorWithProps<State, Props, S1>,\n s2: SelectorWithProps<State, Props, S2>,\n s3: SelectorWithProps<State, Props, S3>,\n s4: SelectorWithProps<State, Props, S4>,\n s5: SelectorWithProps<State, Props, S5>,\n s6: SelectorWithProps<State, Props, S6>,\n projector: (\n s1: S1,\n s2: S2,\n s3: S3,\n s4: S4,\n s5: S5,\n s6: S6,\n props: Props\n ) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\nexport function createSelector<State, S1, S2, S3, S4, S5, S6, Result>(\n selectors: [\n Selector<State, S1>,\n Selector<State, S2>,\n Selector<State, S3>,\n Selector<State, S4>,\n Selector<State, S5>,\n Selector<State, S6>\n ],\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<State, Props, S1, S2, S3, S4, S5, S6, Result>(\n selectors: [\n SelectorWithProps<State, Props, S1>,\n SelectorWithProps<State, Props, S2>,\n SelectorWithProps<State, Props, S3>,\n SelectorWithProps<State, Props, S4>,\n SelectorWithProps<State, Props, S5>,\n SelectorWithProps<State, Props, S6>\n ],\n projector: (\n s1: S1,\n s2: S2,\n s3: S3,\n s4: S4,\n s5: S5,\n s6: S6,\n props: Props\n ) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\n\nexport function createSelector<State, S1, S2, S3, S4, S5, S6, S7, Result>(\n s1: Selector<State, S1>,\n s2: Selector<State, S2>,\n s3: Selector<State, S3>,\n s4: Selector<State, S4>,\n s5: Selector<State, S5>,\n s6: Selector<State, S6>,\n s7: Selector<State, S7>,\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<\n State,\n Props,\n S1,\n S2,\n S3,\n S4,\n S5,\n S6,\n S7,\n Result\n>(\n s1: SelectorWithProps<State, Props, S1>,\n s2: SelectorWithProps<State, Props, S2>,\n s3: SelectorWithProps<State, Props, S3>,\n s4: SelectorWithProps<State, Props, S4>,\n s5: SelectorWithProps<State, Props, S5>,\n s6: SelectorWithProps<State, Props, S6>,\n s7: SelectorWithProps<State, Props, S7>,\n projector: (\n s1: S1,\n s2: S2,\n s3: S3,\n s4: S4,\n s5: S5,\n s6: S6,\n s7: S7,\n props: Props\n ) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\nexport function createSelector<State, S1, S2, S3, S4, S5, S6, S7, Result>(\n selectors: [\n Selector<State, S1>,\n Selector<State, S2>,\n Selector<State, S3>,\n Selector<State, S4>,\n Selector<State, S5>,\n Selector<State, S6>,\n Selector<State, S7>\n ],\n projector: (s1: S1, s2: S2, s3: S3, s4: S4, s5: S5, s6: S6, s7: S7) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<\n State,\n Props,\n S1,\n S2,\n S3,\n S4,\n S5,\n S6,\n S7,\n Result\n>(\n selectors: [\n SelectorWithProps<State, Props, S1>,\n SelectorWithProps<State, Props, S2>,\n SelectorWithProps<State, Props, S3>,\n SelectorWithProps<State, Props, S4>,\n SelectorWithProps<State, Props, S5>,\n SelectorWithProps<State, Props, S6>,\n SelectorWithProps<State, Props, S7>\n ],\n projector: (\n s1: S1,\n s2: S2,\n s3: S3,\n s4: S4,\n s5: S5,\n s6: S6,\n s7: S7,\n props: Props\n ) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\n\nexport function createSelector<State, S1, S2, S3, S4, S5, S6, S7, S8, Result>(\n s1: Selector<State, S1>,\n s2: Selector<State, S2>,\n s3: Selector<State, S3>,\n s4: Selector<State, S4>,\n s5: Selector<State, S5>,\n s6: Selector<State, S6>,\n s7: Selector<State, S7>,\n s8: Selector<State, S8>,\n projector: (\n s1: S1,\n s2: S2,\n s3: S3,\n s4: S4,\n s5: S5,\n s6: S6,\n s7: S7,\n s8: S8\n ) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<\n State,\n Props,\n S1,\n S2,\n S3,\n S4,\n S5,\n S6,\n S7,\n S8,\n Result\n>(\n s1: SelectorWithProps<State, Props, S1>,\n s2: SelectorWithProps<State, Props, S2>,\n s3: SelectorWithProps<State, Props, S3>,\n s4: SelectorWithProps<State, Props, S4>,\n s5: SelectorWithProps<State, Props, S5>,\n s6: SelectorWithProps<State, Props, S6>,\n s7: SelectorWithProps<State, Props, S7>,\n s8: SelectorWithProps<State, Props, S8>,\n projector: (\n s1: S1,\n s2: S2,\n s3: S3,\n s4: S4,\n s5: S5,\n s6: S6,\n s7: S7,\n s8: S8,\n props: Props\n ) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\nexport function createSelector<State, S1, S2, S3, S4, S5, S6, S7, S8, Result>(\n selectors: [\n Selector<State, S1>,\n Selector<State, S2>,\n Selector<State, S3>,\n Selector<State, S4>,\n Selector<State, S5>,\n Selector<State, S6>,\n Selector<State, S7>,\n Selector<State, S8>\n ],\n projector: (\n s1: S1,\n s2: S2,\n s3: S3,\n s4: S4,\n s5: S5,\n s6: S6,\n s7: S7,\n s8: S8\n ) => Result\n): MemoizedSelector<State, Result>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelector<\n State,\n Props,\n S1,\n S2,\n S3,\n S4,\n S5,\n S6,\n S7,\n S8,\n Result\n>(\n selectors: [\n SelectorWithProps<State, Props, S1>,\n SelectorWithProps<State, Props, S2>,\n SelectorWithProps<State, Props, S3>,\n SelectorWithProps<State, Props, S4>,\n SelectorWithProps<State, Props, S5>,\n SelectorWithProps<State, Props, S6>,\n SelectorWithProps<State, Props, S7>,\n SelectorWithProps<State, Props, S8>\n ],\n projector: (\n s1: S1,\n s2: S2,\n s3: S3,\n s4: S4,\n s5: S5,\n s6: S6,\n s7: S7,\n s8: S8,\n props: Props\n ) => Result\n): MemoizedSelectorWithProps<State, Props, Result>;\n\nexport function createSelector(\n ...input: any[]\n): MemoizedSelector<any, any> | MemoizedSelectorWithProps<any, any, any> {\n return createSelectorFactory(defaultMemoize)(...input);\n}\n\nexport function defaultStateFn(\n state: any,\n selectors: Selector<any, any>[] | SelectorWithProps<any, any, any>[],\n props: any,\n memoizedProjector: MemoizedProjection\n): any {\n if (props === undefined) {\n const args = (<Selector<any, any>[]>selectors).map((fn) => fn(state));\n return memoizedProjector.memoized.apply(null, args);\n }\n\n const args = (<SelectorWithProps<any, any, any>[]>selectors).map((fn) =>\n fn(state, props)\n );\n return memoizedProjector.memoized.apply(null, [...args, props]);\n}\n\nexport type SelectorFactoryConfig<T = any, V = any> = {\n stateFn: (\n state: T,\n selectors: Selector<any, any>[],\n props: any,\n memoizedProjector: MemoizedProjection\n ) => V;\n};\n\nexport function createSelectorFactory<T = any, V = any>(\n memoize: MemoizeFn\n): (...input: any[]) => MemoizedSelector<T, V>;\nexport function createSelectorFactory<T = any, V = any>(\n memoize: MemoizeFn,\n options: SelectorFactoryConfig<T, V>\n): (...input: any[]) => MemoizedSelector<T, V>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelectorFactory<T = any, Props = any, V = any>(\n memoize: MemoizeFn\n): (...input: any[]) => MemoizedSelectorWithProps<T, Props, V>;\n/**\n * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue}\n */\nexport function createSelectorFactory<T = any, Props = any, V = any>(\n memoize: MemoizeFn,\n options: SelectorFactoryConfig<T, V>\n): (...input: any[]) => MemoizedSelectorWithProps<T, Props, V>;\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 creactOrderDoesNotMatterSelector = 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 *\n *\n */\nexport function createSelectorFactory(\n memoize: MemoizeFn,\n options: SelectorFactoryConfig<any, any> = {\n stateFn: defaultStateFn,\n }\n) {\n return function (\n ...input: any[]\n ): MemoizedSelector<any, any> | MemoizedSelectorWithProps<any, any, any> {\n let args = input;\n if (Array.isArray(args[0])) {\n const [head, ...tail] = args;\n args = [...head, ...tail];\n }\n\n const selectors = args.slice(0, args.length - 1);\n const projector = args[args.length - 1];\n const memoizedSelectors = selectors.filter(\n (selector: any) =>\n selector.release && typeof selector.release === 'function'\n );\n\n const memoizedProjector = memoize(function (...selectors: any[]) {\n return projector.apply(null, selectors);\n });\n\n const memoizedState = defaultMemoize(function (state: any, props: any) {\n return options.stateFn.apply(null, [\n state,\n selectors,\n props,\n memoizedProjector,\n ]);\n });\n\n function release() {\n memoizedState.reset();\n memoizedProjector.reset();\n\n memoizedSelectors.forEach((selector) => selector.release());\n }\n\n return Object.assign(memoizedState.memoized, {\n release,\n projector: memoizedProjector.memoized,\n setResult: memoizedState.setResult,\n clearResult: memoizedState.clearResult,\n });\n };\n}\n\nexport function createFeatureSelector<T>(\n featureName: string\n): MemoizedSelector<object, T>;\nexport function createFeatureSelector<T, V>(\n featureName: keyof T\n): MemoizedSelector<T, V>;\nexport function createFeatureSelector(\n featureName: any\n): MemoizedSelector<any, any> {\n return createSelector(\n (state: any) => {\n const featureState = state[featureName];\n if (!isNgrxMockEnvironment() && isDevMode() && !(featureName in state)) {\n console.warn(\n `@ngrx/store: The feature name \"${featureName}\" does ` +\n 'not exist in the state, therefore createFeatureSelector ' +\n 'cannot access it. Be sure it is imported in a loaded module ' +\n `using StoreModule.forRoot('${featureName}', ...) or ` +\n `StoreModule.forFeature('${featureName}', ...). If the default ` +\n 'state is intended to be undefined, as is the case with router ' +\n 'state, this development-only warning message can be ignored.'\n );\n }\n return featureState;\n },\n (featureState: any) => featureState\n );\n}\n","import { capitalize } from './helpers';\nimport { ActionReducer } from './models';\nimport { isPlainObject } from './meta-reducers/utils';\nimport {\n createFeatureSelector,\n createSelector,\n MemoizedSelector,\n} from './selector';\nimport { FeatureSelector, NestedSelectors } from './feature_creator_models';\n\nexport type Feature<\n AppState extends Record<string, any>,\n FeatureName extends keyof AppState & string,\n FeatureState extends AppState[FeatureName]\n> = FeatureConfig<FeatureName, FeatureState> &\n FeatureSelector<AppState, FeatureName, FeatureState> &\n NestedSelectors<AppState, FeatureState>;\n\nexport interface FeatureConfig<FeatureName extends string, FeatureState> {\n name: FeatureName;\n reducer: ActionReducer<FeatureState>;\n}\n\ntype NotAllowedFeatureStateCheck<\n FeatureState\n> = FeatureState extends Required<FeatureState>\n ? unknown\n : 'optional properties are not allowed in the feature state';\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 *\n * @param featureConfig An object that contains a feature name and a feature reducer.\n * @returns An object that contains a feature name, a feature reducer,\n * a feature selector, a the selector for each feature state property.\n *\n * @usageNotes\n *\n * **With Application State**\n *\n * ```ts\n * interface AppState {\n * products: ProductsState;\n * }\n *\n * interface ProductsState {\n * products: Product[];\n * selectedId: string | null;\n * }\n *\n * const initialState: ProductsState = {\n * products: [],\n * selectedId: null,\n * };\n *\n * // AppState is passed as a generic argument\n * const productsFeature = createFeature<AppState>({\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 * selectProductsState, // type: MemoizedSelector<AppState, ProductsState>\n * selectProducts, // type: MemoizedSelector<AppState, Product[]>\n * selectSelectedId, // type: MemoizedSelector<AppState, string | null>\n * } = productsFeature;\n * ```\n *\n * **Without Application State**\n *\n * ```ts\n * const productsFeature = createFeature({\n * name: 'products',\n * reducer: createReducer(initialState),\n * });\n *\n * const {\n * selectProductsState, // type: MemoizedSelector<Record<string, any>, ProductsState>\n * selectProducts, // type: MemoizedSelector<Record<string, any>, Product[]>\n * selectSelectedId, // type: MemoizedSelector<Record<string, any, string | null>\n * } = productsFeature;\n * ```\n */\nexport function createFeature<\n AppState extends Record<string, any>,\n FeatureName extends keyof AppState & string = keyof AppState & string,\n FeatureState extends AppState[FeatureName] = AppState[FeatureName]\n>(\n featureConfig: FeatureConfig<FeatureName, FeatureState> &\n NotAllowedFeatureStateCheck<FeatureState>\n): Feature<AppState, FeatureName, FeatureState> {\n const { name, reducer } = featureConfig;\n const featureSelector = createFeatureSelector<AppState, FeatureState>(name);\n const nestedSelectors = createNestedSelectors(featureSelector, reducer);\n\n return ({\n name,\n reducer,\n [`select${capitalize(name)}State`]: featureSelector,\n ...nestedSelectors,\n } as unknown) as Feature<AppState, FeatureName, FeatureState>;\n}\n\nfunction createNestedSelectors<\n AppState extends Record<string, any>,\n FeatureState\n>(\n featureSelector: MemoizedSelector<AppState, FeatureState>,\n reducer: ActionReducer<FeatureState>\n): NestedSelectors<AppState, FeatureState> {\n const initialState = getInitialState(reducer);\n const nestedKeys = (isPlainObject(initialState)\n ? Object.keys(initialState)\n : []) as Array<keyof FeatureState & string>;\n\n return nestedKeys.reduce(\n (nestedSelectors, nestedKey) => ({\n ...nestedSelectors,\n [`select${capitalize(nestedKey)}`]: createSelector(\n featureSelector,\n (parentState) => parentState?.[nestedKey]\n ),\n }),\n {} as NestedSelectors<AppState, FeatureState>\n );\n}\n\nfunction getInitialState<FeatureState>(\n reducer: ActionReducer<FeatureState>\n): FeatureState {\n return reducer(undefined, { type: '@ngrx/feature/init' });\n}\n","import { ActionReducer, Action } from '../models';\nimport { isFunction, hasOwnProperty, isObjectLike } from './utils';\n\nexport function immutabilityCheckMetaReducer(\n reducer: ActionReducer<any, any>,\n checks: { action: (action: Action) => boolean; state: () => boolean }\n): ActionReducer<any, any> {\n return function (state, action) {\n const act = checks.action(action) ? freeze(action) : action;\n\n const nextState = reducer(state, act);\n\n return checks.state() ? freeze(nextState) : nextState;\n };\n}\n\nfunction freeze(target: any) {\n Object.freeze(target);\n\n const targetIsFunction = isFunction(target);\n\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\n if (\n hasOwnProperty(target, prop) &&\n (targetIsFunction\n ? prop !== 'caller' && prop !== 'callee' && prop !== 'arguments'\n : true)\n ) {\n const propValue = target[prop];\n\n if (\n (isObjectLike(propValue) || isFunction(propValue)) &&\n !Object.isFrozen(propValue)\n ) {\n freeze(propValue);\n }\n }\n });\n\n return target;\n}\n","import { ActionReducer, Action } from '../models';\nimport {\n isPlainObject,\n isUndefined,\n isNull,\n isNumber,\n isBoolean,\n isString,\n isArray,\n RUNTIME_CHECK_URL,\n isComponent,\n} from './utils';\n\nexport function serializationCheckMetaReducer(\n reducer: ActionReducer<any, any>,\n checks: { action: (action: Action) => boolean; state: () => boolean }\n): ActionReducer<any, any> {\n return function (state, action) {\n if (checks.action(action)) {\n const unserializableAction = getUnserializable(action);\n throwIfUnserializable(unserializableAction, 'action');\n }\n\n const nextState = reducer(state, action);\n\n if (checks.state()) {\n const unserializableState = getUnserializable(nextState);\n throwIfUnserializable(unserializableState, 'state');\n }\n\n return nextState;\n };\n}\n\nfunction getUnserializable(\n target?: any,\n path: string[] = []\n): false | { path: string[]; value: any } {\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\n const keys = Object.keys(target);\n return keys.reduce<false | { path: string[]; value: any }>((result, key) => {\n if (result) {\n return result;\n }\n\n const value = (target as any)[key];\n\n // Ignore Ivy components\n if (isComponent(value)) {\n return result;\n }\n\n if (\n isUndefined(value) ||\n isNull(value) ||\n isNumber(value) ||\n isBoolean(value) ||\n isString(value) ||\n isArray(value)\n ) {\n return false;\n }\n\n if (isPlainObject(value)) {\n return getUnserializable(value, [...path, key]);\n }\n\n return {\n path: [...path, key],\n value,\n };\n }, false);\n}\n\nfunction throwIfUnserializable(\n unserializable: false | { path: string[]; value: any },\n context: 'state' | 'action'\n) {\n if (unserializable === false) {\n return;\n }\n\n const unserializablePath = unserializable.path.join('.');\n const error: any = new Error(\n `Detected unserializable ${context} at \"${unserializablePath}\". ${RUNTIME_CHECK_URL}#strict${context}serializability`\n );\n error.value = unserializable.value;\n error.unserializablePath = unserializablePath;\n throw error;\n}\n","import * as ngCore from '@angular/core';\nimport { Action, ActionReducer } from '../models';\nimport { RUNTIME_CHECK_URL } from './utils';\n\nexport function inNgZoneAssertMetaReducer(\n reducer: ActionReducer<any, Action>,\n checks: { action: (action: Action) => boolean }\n) {\n return function (state: any, action: Action) {\n if (checks.action(action) && !ngCore.NgZone.isInAngularZone()) {\n throw new Error(\n `Action '${action.type}' running outside NgZone. ${RUNTIME_CHECK_URL}#strictactionwithinngzone`\n );\n }\n return reducer(state, action);\n };\n}\n","import { isDevMode, Provider } from '@angular/core';\nimport {\n serializationCheckMetaReducer,\n immutabilityCheckMetaReducer,\n inNgZoneAssertMetaReducer,\n} from './meta-reducers';\nimport { RuntimeChecks, MetaReducer, Action } from './models';\nimport {\n _USER_RUNTIME_CHECKS,\n ACTIVE_RUNTIME_CHECKS,\n META_REDUCERS,\n USER_RUNTIME_CHECKS,\n _ACTION_TYPE_UNIQUENESS_CHECK,\n} from './tokens';\nimport { REGISTERED_ACTION_TYPES } from './globals';\nimport { RUNTIME_CHECK_URL } from './meta-reducers/utils';\n\nexport function createActiveRuntimeChecks(\n runtimeChecks?: Partial<RuntimeChecks>\n): 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\n return {\n strictStateSerializability: false,\n strictActionSerializability: false,\n strictStateImmutability: false,\n strictActionImmutability: false,\n strictActionWithinNgZone: false,\n strictActionTypeUniqueness: false,\n };\n}\n\nexport function createSerializationCheckMetaReducer({\n strictActionSerializability,\n strictStateSerializability,\n}: RuntimeChecks): MetaReducer {\n return (reducer) =>\n strictActionSerializability || strictStateSerializability\n ? serializationCheckMetaReducer(reducer, {\n action: (action) =>\n strictActionSerializability && !ignoreNgrxAction(action),\n state: () => strictStateSerializability,\n })\n : reducer;\n}\n\nexport function createImmutabilityCheckMetaReducer({\n strictActionImmutability,\n strictStateImmutability,\n}: RuntimeChecks): MetaReducer {\n return (reducer) =>\n strictActionImmutability || strictStateImmutability\n ? immutabilityCheckMetaReducer(reducer, {\n action: (action) =>\n strictActionImmutability && !ignoreNgrxAction(action),\n state: () => strictStateImmutability,\n })\n : reducer;\n}\n\nfunction ignoreNgrxAction(action: Action) {\n return action.type.startsWith('@ngrx');\n}\n\nexport function createInNgZoneCheckMetaReducer({\n strictActionWithinNgZone,\n}: RuntimeChecks): MetaReducer {\n return (reducer) =>\n strictActionWithinNgZone\n ? inNgZoneAssertMetaReducer(reducer, {\n action: (action) =>\n strictActionWithinNgZone && !ignoreNgrxAction(action),\n })\n : reducer;\n}\n\nexport function provideRuntimeChecks(\n runtimeChecks?: Partial<RuntimeChecks>\n): Provider[] {\n return [\n {\n provide: _USER_RUNTIME_CHECKS,\n useValue: runtimeChecks,\n },\n {\n provide: USER_RUNTIME_CHECKS,\n useFactory: _runtimeChecksFactory,\n deps: [_USER_RUNTIME_CHECKS],\n },\n {\n provide: ACTIVE_RUNTIME_CHECKS,\n deps: [USER_RUNTIME_CHECKS],\n useFactory: createActiveRuntimeChecks,\n },\n {\n provide: META_REDUCERS,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: createImmutabilityCheckMetaReducer,\n },\n {\n provide: META_REDUCERS,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: createSerializationCheckMetaReducer,\n },\n {\n provide: META_REDUCERS,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: createInNgZoneCheckMetaReducer,\n },\n ];\n}\n\nexport function checkForActionTypeUniqueness(): Provider[] {\n return [\n {\n provide: _ACTION_TYPE_UNIQUENESS_CHECK,\n multi: true,\n deps: [ACTIVE_RUNTIME_CHECKS],\n useFactory: _actionTypeUniquenessCheck,\n },\n ];\n}\n\nexport function _runtimeChecksFactory(\n runtimeChecks: RuntimeChecks\n): RuntimeChecks {\n return runtimeChecks;\n}\n\nexport function _actionTypeUniquenessCheck(config: RuntimeChecks): void {\n if (!config.strictActionTypeUniqueness) {\n return;\n }\n\n const duplicates = Object.entries(REGISTERED_ACTION_TYPES)\n .filter(([, registrations]) => registrations > 1)\n .map(([type]) => type);\n\n if (duplicates.length) {\n throw new Error(\n `Action types are registered more than once, ${duplicates\n .map((type) => `\"${type}\"`)\n .join(', ')}. ${RUNTIME_CHECK_URL}#strictactiontypeuniqueness`\n );\n }\n}\n","import {\n NgModule,\n Inject,\n ModuleWithProviders,\n OnDestroy,\n InjectionToken,\n Injector,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n ActionReducerMap,\n ActionReducerFactory,\n StoreFeature,\n InitialState,\n MetaReducer,\n RuntimeChecks,\n} from './models';\nimport { combineReducers, createReducerFactory } from './utils';\nimport {\n INITIAL_STATE,\n INITIAL_REDUCERS,\n _INITIAL_REDUCERS,\n REDUCER_FACTORY,\n _REDUCER_FACTORY,\n STORE_FEATURES,\n _INITIAL_STATE,\n META_REDUCERS,\n _STORE_REDUCERS,\n FEATURE_REDUCERS,\n _FEATURE_REDUCERS,\n _FEATURE_REDUCERS_TOKEN,\n _STORE_FEATURES,\n _FEATURE_CONFIGS,\n USER_PROVIDED_META_REDUCERS,\n _RESOLVED_META_REDUCERS,\n _ROOT_STORE_GUARD,\n ACTIVE_RUNTIME_CHECKS,\n _ACTION_TYPE_UNIQUENESS_CHECK,\n} from './tokens';\nimport { ACTIONS_SUBJECT_PROVIDERS, ActionsSubject } from './actions_subject';\nimport {\n REDUCER_MANAGER_PROVIDERS,\n ReducerManager,\n ReducerObservable,\n} from './reducer_manager';\nimport {\n SCANNED_ACTIONS_SUBJECT_PROVIDERS,\n ScannedActionsSubject,\n} from './scanned_actions_subject';\nimport { STATE_PROVIDERS } from './state';\nimport { STORE_PROVIDERS, Store } from './store';\nimport {\n provideRuntimeChecks,\n checkForActionTypeUniqueness,\n} from './runtime_checks';\n\n@NgModule({})\nexport class StoreRootModule {\n constructor(\n actions$: ActionsSubject,\n reducer$: ReducerObservable,\n scannedActions$: ScannedActionsSubject,\n store: Store<any>,\n @Optional()\n @Inject(_ROOT_STORE_GUARD)\n guard: any,\n @Optional()\n @Inject(_ACTION_TYPE_UNIQUENESS_CHECK)\n actionCheck: any\n ) {}\n}\n\n@NgModule({})\nexport class StoreFeatureModule implements OnDestroy {\n constructor(\n @Inject(_STORE_FEATURES) private features: StoreFeature<any, any>[],\n @Inject(FEATURE_REDUCERS) private featureReducers: ActionReducerMap<any>[],\n private reducerManager: ReducerManager,\n root: StoreRootModule,\n @Optional()\n @Inject(_ACTION_TYPE_UNIQUENESS_CHECK)\n actionCheck: any\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\n return {\n ...feature,\n reducers,\n initialState: _initialStateFactory(feature.initialState),\n };\n });\n\n reducerManager.addFeatures(feats);\n }\n\n // eslint-disable-next-line @angular-eslint/contextual-lifecycle\n ngOnDestroy() {\n this.reducerManager.removeFeatures(this.features);\n }\n}\n\nexport interface StoreConfig<T, V extends Action = Action> {\n initialState?: InitialState<T>;\n reducerFactory?: ActionReducerFactory<T, V>;\n metaReducers?: MetaReducer<T, V>[];\n}\n\nexport interface RootStoreConfig<T, V extends Action = Action>\n extends StoreConfig<T, V> {\n runtimeChecks?: Partial<RuntimeChecks>;\n}\n\n/**\n * An object with the name and the reducer for the feature.\n */\nexport interface FeatureSlice<T, V extends Action = Action> {\n name: string;\n reducer: ActionReducer<T, V>;\n}\n\n@NgModule({})\nexport class StoreModule {\n static forRoot<T, V extends Action = Action>(\n reducers: ActionReducerMap<T, V> | InjectionToken<ActionReducerMap<T, V>>,\n config?: RootStoreConfig<T, V>\n ): ModuleWithProviders<StoreRootModule>;\n static forRoot(\n reducers:\n | ActionReducerMap<any, any>\n | InjectionToken<ActionReducerMap<any, any>>,\n config: RootStoreConfig<any, any> = {}\n ): ModuleWithProviders<StoreRootModule> {\n return {\n ngModule: StoreRootModule,\n providers: [\n {\n provide: _ROOT_STORE_GUARD,\n useFactory: _provideForRootGuard,\n deps: [[Store, new Optional(), new SkipSelf()]],\n },\n { provide: _INITIAL_STATE, useValue: config.initialState },\n {\n provide: INITIAL_STATE,\n useFactory: _initialStateFactory,\n deps: [_INITIAL_STATE],\n },\n { provide: _INITIAL_REDUCERS, useValue: reducers },\n {\n provide: _STORE_REDUCERS,\n useExisting:\n reducers instanceof InjectionToken ? reducers : _INITIAL_REDUCERS,\n },\n {\n provide: INITIAL_REDUCERS,\n deps: [Injector, _INITIAL_REDUCERS, [new Inject(_STORE_REDUCERS)]],\n useFactory: _createStoreReducers,\n },\n {\n provide: USER_PROVIDED_META_REDUCERS,\n useValue: config.metaReducers ? config.metaReducers : [],\n },\n {\n provide: _RESOLVED_META_REDUCERS,\n deps: [META_REDUCERS, USER_PROVIDED_META_REDUCERS],\n useFactory: _concatMetaReducers,\n },\n {\n provide: _REDUCER_FACTORY,\n useValue: config.reducerFactory\n ? config.reducerFactory\n : combineReducers,\n },\n {\n provide: REDUCER_FACTORY,\n deps: [_REDUCER_FACTORY, _RESOLVED_META_REDUCERS],\n useFactory: createReducerFactory,\n },\n ACTIONS_SUBJECT_PROVIDERS,\n REDUCER_MANAGER_PROVIDERS,\n SCANNED_ACTIONS_SUBJECT_PROVIDERS,\n STATE_PROVIDERS,\n STORE_PROVIDERS,\n provideRuntimeChecks(config.runtimeChecks),\n checkForActionTypeUniqueness(),\n ],\n };\n }\n\n static forFeature<T, V extends Action = Action>(\n featureName: string,\n reducers: ActionReducerMap<T, V> | InjectionToken<ActionReducerMap<T, V>>,\n config?: StoreConfig<T, V> | InjectionToken<StoreConfig<T, V>>\n ): ModuleWithProviders<StoreFeatureModule>;\n static forFeature<T, V extends Action = Action>(\n featureName: string,\n reducer: ActionReducer<T, V> | InjectionToken<ActionReducer<T, V>>,\n config?: StoreConfig<T, V> | InjectionToken<StoreConfig<T, V>>\n ): ModuleWithProviders<StoreFeatureModule>;\n static forFeature<T, V extends Action = Action>(\n slice: FeatureSlice<T, V>,\n config?: StoreConfig<T, V> | InjectionToken<StoreConfig<T, V>>\n ): ModuleWithProviders<StoreFeatureModule>;\n static forFeature(\n featureNameOrSlice: string | FeatureSlice<any, any>,\n reducersOrConfig?:\n | ActionReducerMap<any, any>\n | InjectionToken<ActionReducerMap<any, any>>\n | ActionReducer<any, any>\n | InjectionToken<ActionReducer<any, any>>\n | StoreConfig<any, any>\n | InjectionToken<StoreConfig<any, any>>,\n config: StoreConfig<any, any> | InjectionToken<StoreConfig<any, any>> = {}\n ): ModuleWithProviders<StoreFeatureModule> {\n return {\n ngModule: StoreFeatureModule,\n providers: [\n {\n provide: _FEATURE_CONFIGS,\n multi: true,\n useValue: featureNameOrSlice instanceof Object ? {} : config,\n },\n {\n provide: STORE_FEATURES,\n multi: true,\n useValue: {\n key:\n featureNameOrSlice instanceof Object\n ? featureNameOrSlice.name\n : featureNameOrSlice,\n reducerFactory:\n !(config instanceof InjectionToken) && config.reducerFactory\n ? config.reducerFactory\n : combineReducers,\n metaReducers:\n !(config instanceof InjectionToken) && config.metaReducers\n ? config.metaReducers\n : [],\n initialState:\n !(config instanceof InjectionToken) && config.initialState\n ? config.initialState\n : undefined,\n },\n },\n {\n provide: _STORE_FEATURES,\n deps: [Injector, _FEATURE_CONFIGS, STORE_FEATURES],\n useFactory: _createFeatureStore,\n },\n {\n provide: _FEATURE_REDUCERS,\n multi: true,\n useValue:\n featureNameOrSlice instanceof Object\n ? featureNameOrSlice.reducer\n : reducersOrConfig,\n },\n {\n provide: _FEATURE_REDUCERS_TOKEN,\n multi: true,\n useExisting:\n reducersOrConfig instanceof InjectionToken\n ? reducersOrConfig\n : _FEATURE_REDUCERS,\n },\n {\n provide: FEATURE_REDUCERS,\n multi: true,\n deps: [\n Injector,\n _FEATURE_REDUCERS,\n [new Inject(_FEATURE_REDUCERS_TOKEN)],\n ],\n useFactory: _createFeatureReducers,\n },\n checkForActionTypeUniqueness(),\n ],\n };\n }\n}\n\nexport function _createStoreReducers(\n injector: Injector,\n reducers: ActionReducerMap<any, any>\n) {\n return reducers instanceof InjectionToken ? injector.get(reducers) : reducers;\n}\n\nexport function _createFeatureStore(\n injector: Injector,\n configs: StoreConfig<any, any>[] | InjectionToken<StoreConfig<any, any>>[],\n featureStores: StoreFeature<any, any>[]\n) {\n return featureStores.map((feat, index) => {\n if (configs[index] instanceof InjectionToken) {\n const conf = injector.get(configs[index]);\n return {\n key: feat.key,\n reducerFactory: conf.reducerFactory\n ? conf.reducerFactory\n : combineReducers,\n metaReducers: conf.metaReducers ? conf.metaReducers : [],\n initialState: conf.initialState,\n };\n }\n return feat;\n });\n}\n\nexport function _createFeatureReducers(\n injector: Injector,\n reducerCollection: ActionReducerMap<any, any>[]\n) {\n const reducers = reducerCollection.map((reducer) => {\n return reducer instanceof InjectionToken ? injector.get(reducer) : reducer;\n });\n\n return reducers;\n}\n\nexport function _initialStateFactory(initialState: any): any {\n if (typeof initialState === 'function') {\n return initialState();\n }\n\n return initialState;\n}\n\nexport function _concatMetaReducers(\n metaReducers: MetaReducer[],\n userProvidedMetaReducers: MetaReducer[]\n): MetaReducer[] {\n return metaReducers.concat(userProvidedMetaReducers);\n}\n\nexport function _provideForRootGuard(store: Store<any>): any {\n if (store) {\n throw new TypeError(\n `StoreModule.forRoot() called twice. Feature modules should use StoreModule.forFeature() instead.`\n );\n }\n return 'guarded';\n}\n","import { ActionCreator, ActionReducer, ActionType, Action } from './models';\n\n// Goes over the array of ActionCreators, pulls the action type out of each one\n// and returns the array of these action types.\ntype ExtractActionTypes<Creators extends readonly ActionCreator[]> = {\n [Key in keyof Creators]: Creators[Key] extends ActionCreator<infer T>\n ? T\n : never;\n};\n\n/**\n * Return type of the `on` fn.\n * Contains the action reducer coupled to one or more action types.\n */\nexport interface ReducerTypes<\n State,\n Creators extends readonly ActionCreator[]\n> {\n reducer: OnReducer<State, Creators>;\n types: ExtractActionTypes<Creators>;\n}\n\n// Specialized Reducer that is aware of the Action type it needs to handle\nexport interface OnReducer<State, Creators extends readonly ActionCreator[]> {\n (state: State, action: ActionType<Creators[number]>): State;\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 */\nexport function on<State, Creators extends readonly ActionCreator[]>(\n ...args: [\n ...creators: Creators,\n reducer: OnReducer<State extends infer S ? S : never, Creators>\n ]\n): ReducerTypes<State, Creators> {\n // This could be refactored when TS releases the version with this fix:\n // https://github.com/microsoft/TypeScript/pull/41544\n const reducer = args.pop() as OnReducer<any, Creators>;\n const types = (((args as unknown) as Creators).map(\n (creator) => creator.type\n ) as unknown) as ExtractActionTypes<Creators>;\n return { reducer, 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` should additionally be wrapped with another function, if you are using View Engine AOT.\n * In case you are using Ivy (or only JIT View Engine) the extra wrapper function is not required.\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 *\n * **Declaring a reducer creator using a wrapper function (Only needed if using View Engine AOT)**\n *\n * ```ts\n * const featureReducer = 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 * export function reducer(state: State | undefined, action: Action) {\n * return featureReducer(state, action);\n * }\n * ```\n */\nexport function createReducer<S, A extends Action = Action>(\n initialState: S,\n ...ons: ReducerTypes<S, readonly ActionCreator[]>[]\n): ActionReducer<S, A> {\n const map = new Map<string, OnReducer<S, ActionCreator[]>>();\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: typeof existingReducer = (state, action) =>\n on.reducer(existingReducer(state, action), action);\n map.set(type, newReducer);\n } else {\n map.set(type, on.reducer);\n }\n }\n }\n\n return function (state: S = initialState, action: A): S {\n const reducer = map.get(action.type);\n return reducer ? reducer(state, action) : state;\n };\n}\n","/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {ACTIONS_SUBJECT_PROVIDERS as ɵc} from './src/actions_subject';\nexport {StoreFeature as ɵa} from './src/models';\nexport {REDUCER_MANAGER_PROVIDERS as ɵd} from './src/reducer_manager';\nexport {_actionTypeUniquenessCheck as ɵbg,_runtimeChecksFactory as ɵbf,checkForActionTypeUniqueness as ɵbe,createActiveRuntimeChecks as ɵz,createImmutabilityCheckMetaReducer as ɵbb,createInNgZoneCheckMetaReducer as ɵbc,createSerializationCheckMetaReducer as ɵba,provideRuntimeChecks as ɵbd} from './src/runtime_checks';\nexport {SCANNED_ACTIONS_SUBJECT_PROVIDERS as ɵe} from './src/scanned_actions_subject';\nexport {isEqualCheck as ɵf} from './src/selector';\nexport {STATE_PROVIDERS as ɵg} from './src/state';\nexport {STORE_PROVIDERS as ɵb} from './src/store';\nexport {_concatMetaReducers as ɵx,_createFeatureReducers as ɵv,_createFeatureStore as ɵu,_createStoreReducers as ɵt,_initialStateFactory as ɵw,_provideForRootGuard as ɵy} from './src/store_module';\nexport {_ACTION_TYPE_UNIQUENESS_CHECK as ɵs,_FEATURE_CONFIGS as ɵn,_FEATURE_REDUCERS as ɵm,_FEATURE_REDUCERS_TOKEN as ɵp,_INITIAL_REDUCERS as ɵk,_INITIAL_STATE as ɵi,_REDUCER_FACTORY as ɵj,_RESOLVED_META_REDUCERS as ɵq,_ROOT_STORE_GUARD as ɵh,_STORE_FEATURES as ɵo,_STORE_REDUCERS as ɵl,_USER_RUNTIME_CHECKS as ɵr} from './src/tokens';"],"names":["BehaviorSubject","Injectable","InjectionToken","Observable","Inject","Subject","observeOn","queueScheduler","withLatestFrom","scan","pluck","map","distinctUntilChanged","isDevMode","ngCore","NgModule","Optional","SkipSelf","Injector"],"mappings":"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"}
\No newline at end of file