{"version":3,"file":"briebug-ngrx-auto-entity.mjs","sources":["../../../../projects/ngrx-auto-entity/src/lib/actions/action-types.ts","../../../../projects/ngrx-auto-entity/src/util/uuid.ts","../../../../projects/ngrx-auto-entity/src/util/func.ts","../../../../projects/ngrx-auto-entity/src/util/case.ts","../../../../projects/ngrx-auto-entity/src/lib/decorators/entity-tokens.ts","../../../../projects/ngrx-auto-entity/src/lib/decorators/key-util.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/util.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/entity-action.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/create-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/delete-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/delete-by-key-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/deselection-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/edit-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/load-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/load-all-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/load-many-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/load-page-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/load-range-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/replace-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/selection-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/update-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/upsert-actions.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/entity-actions-union.ts","../../../../projects/ngrx-auto-entity/src/lib/actions/action-operators.ts","../../../../projects/ngrx-auto-entity/src/lib/decorators/entity-util.ts","../../../../projects/ngrx-auto-entity/src/lib/util/util-tokens.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/if-necessary-operator-utils.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/if-necessary-operators.ts","../../../../projects/ngrx-auto-entity/src/lib/decorators/entity-operators.ts","../../../../projects/ngrx-auto-entity/src/lib/service/error-handling.ts","../../../../projects/ngrx-auto-entity/src/lib/service/service-resolution.ts","../../../../projects/ngrx-auto-entity/src/lib/service/service-injection.ts","../../../../projects/ngrx-auto-entity/src/lib/service/service-invocation.ts","../../../../projects/ngrx-auto-entity/src/lib/service/transformation.ts","../../../../projects/ngrx-auto-entity/src/lib/service/service.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/operators.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/effects-all.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/effects-extra.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/reduction.utils.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/clear.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/create-many.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/create.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/delete-by-key.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/delete-many-by-keys.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/delete-many.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/delete.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/deselect-many.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/deselect.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/edits.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/load-all.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/load-many.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/load-page.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/load-range.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/load.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/replace-many.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/replace.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/select-many.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/select.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/update-many.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/update.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/upsert-many.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/upsert.reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/entity-action-reducer.map.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/reducer/meta-reducer.ts","../../../../projects/ngrx-auto-entity/src/lib/provider.ts","../../../../projects/ngrx-auto-entity/src/lib/module.ts","../../../../projects/ngrx-auto-entity/src/lib/util/util-di.ts","../../../../projects/ngrx-auto-entity/src/lib/util/facade-builder.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/util.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/create-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/delete-by-key-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/delete-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/deselection-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/edit-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/load-all-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/load-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/load-many-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/load-page-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/load-range-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/replace-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/selection-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/update-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/factories/upsert-factories.ts","../../../../projects/ngrx-auto-entity/src/lib/util/action-map-builder.ts","../../../../projects/ngrx-auto-entity/src/lib/selectors/edits.selectors.ts","../../../../projects/ngrx-auto-entity/src/lib/selectors/entity.selectors.ts","../../../../projects/ngrx-auto-entity/src/lib/selectors/paging.selectors.ts","../../../../projects/ngrx-auto-entity/src/lib/selectors/root.selectors.ts","../../../../projects/ngrx-auto-entity/src/lib/selectors/selections.selectors.ts","../../../../projects/ngrx-auto-entity/src/lib/selectors/tracking.selectors.ts","../../../../projects/ngrx-auto-entity/src/lib/util/selector-map-builder.ts","../../../../projects/ngrx-auto-entity/src/lib/util/make-entity.ts","../../../../projects/ngrx-auto-entity/src/lib/util/state-builder.ts","../../../../projects/ngrx-auto-entity/src/lib/decorators/entity-decorator.ts","../../../../projects/ngrx-auto-entity/src/lib/decorators/key-decorator.ts","../../../../projects/ngrx-auto-entity/src/lib/decorators/effect-exclusions.ts","../../../../projects/ngrx-auto-entity/src/lib/decorators/effect-exclusion-utils.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/effects-loads.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/if-necessary-loads.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/effects-cud.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/effects-loads-discrete.ts","../../../../projects/ngrx-auto-entity/src/lib/effects/effects-cud-discrete.ts","../../../../projects/ngrx-auto-entity/src/public_api.ts","../../../../projects/ngrx-auto-entity/src/briebug-ngrx-auto-entity.ts"],"sourcesContent":["export enum EntityActionTypes {\n  Load = '[Entity] (Generic) Load',\n  LoadIfNecessary = '[Entity] (Generic) Load (If Necessary)',\n  LoadSuccess = '[Entity] (Generic) Load: Success',\n  LoadFailure = '[Entity] (Generic) Load: Failure',\n\n  LoadMany = '[Entity] (Generic) Load Many',\n  LoadManyIfNecessary = '[Entity] (Generic) Load Many (If Necessary)',\n  LoadManySuccess = '[Entity] (Generic) Load Many: Success',\n  LoadManyFailure = '[Entity] (Generic) Load Many: Failure',\n\n  LoadAll = '[Entity] (Generic) Load All',\n  LoadAllIfNecessary = '[Entity] (Generic) Load All (If Necessary)',\n  LoadAllSuccess = '[Entity] (Generic) Load All: Success',\n  LoadAllFailure = '[Entity] (Generic) Load All: Failure',\n\n  LoadPage = '[Entity] (Generic) Load Page',\n  LoadPageIfNecessary = '[Entity] (Generic) Load Page (If Necessary)',\n  LoadPageSuccess = '[Entity] (Generic) Load Page: Success',\n  LoadPageFailure = '[Entity] (Generic) Load Page: Failure',\n\n  LoadRange = '[Entity] (Generic) Load Range',\n  LoadRangeIfNecessary = '[Entity] (Generic) Load Range (If Necessary)',\n  LoadRangeSuccess = '[Entity] (Generic) Load Range: Success',\n  LoadRangeFailure = '[Entity] (Generic) Load Range: Failure',\n\n  Create = '[Entity] (Generic) Create',\n  CreateSuccess = '[Entity] (Generic) Create: Success',\n  CreateFailure = '[Entity] (Generic) Create: Failure',\n\n  CreateMany = '[Entity] (Generic) Create Many',\n  CreateManySuccess = '[Entity] (Generic) Create Many: Success',\n  CreateManyFailure = '[Entity] (Generic) Create Many: Failure',\n\n  Update = '[Entity] (Generic) Update',\n  UpdateSuccess = '[Entity] (Generic) Update: Success',\n  UpdateFailure = '[Entity] (Generic) Update: Failure',\n\n  UpdateMany = '[Entity] (Generic) Update Many',\n  UpdateManySuccess = '[Entity] (Generic) Update Many: Success',\n  UpdateManyFailure = '[Entity] (Generic) Update Many: Failure',\n\n  Upsert = '[Entity] (Generic) Upsert',\n  UpsertSuccess = '[Entity] (Generic) Upsert: Success',\n  UpsertFailure = '[Entity] (Generic) Upsert: Failure',\n\n  UpsertMany = '[Entity] (Generic) Upsert Many',\n  UpsertManySuccess = '[Entity] (Generic) Upsert Many: Success',\n  UpsertManyFailure = '[Entity] (Generic) Upsert Many: Failure',\n\n  Replace = '[Entity] (Generic) Replace',\n  ReplaceSuccess = '[Entity] (Generic) Replace: Success',\n  ReplaceFailure = '[Entity] (Generic) Replace: Failure',\n\n  ReplaceMany = '[Entity] (Generic) Replace Many',\n  ReplaceManySuccess = '[Entity] (Generic) Replace Many: Success',\n  ReplaceManyFailure = '[Entity] (Generic) Replace Many: Failure',\n\n  Delete = '[Entity] (Generic) Delete',\n  DeleteSuccess = '[Entity] (Generic) Delete: Success',\n  DeleteFailure = '[Entity] (Generic) Delete: Failure',\n\n  DeleteMany = '[Entity] (Generic) Delete Many',\n  DeleteManySuccess = '[Entity] (Generic) Delete Many: Success',\n  DeleteManyFailure = '[Entity] (Generic) Delete Many: Failure',\n\n  DeleteByKey = '[Entity] (Generic) Delete by key',\n  DeleteByKeySuccess = '[Entity] (Generic) Delete by key: Success',\n  DeleteByKeyFailure = '[Entity] (Generic) Delete by key: Failure',\n\n  DeleteManyByKeys = '[Entity] (Generic) Delete many by keys',\n  DeleteManyByKeysSuccess = '[Entity] (Generic) Delete many by keys: Success',\n  DeleteManyByKeysFailure = '[Entity] (Generic) Delete many by keys: Failure',\n\n  Clear = '[Entity] (Generic) Clear',\n\n  Select = '[Entity] (Generic) Select',\n  SelectByKey = '[Entity] (Generic) Select by Key',\n  Selected = '[Entity] (Generic) Selection',\n\n  SelectMany = '[Entity] (Generic) Select Many',\n  SelectMore = '[Entity] (Generic) Select More',\n  SelectManyByKeys = '[Entity] (Generic) Select Many by Keys',\n  SelectMoreByKeys = '[Entity] (Generic) Select More by Keys',\n  SelectedMany = '[Entity] (Generic) Selection of Many',\n  SelectedMore = '[Entity] (Generic) Selection of More',\n\n  Deselect = '[Entity] (Generic) Deselect',\n  Deselected = '[Entity] (Generic) Deselection',\n\n  DeselectMany = '[Entity] (Generic) Deselect of Many',\n  DeselectManyByKeys = '[Entity] (Generic) Deselect of Many by Keys',\n  DeselectAll = '[Entity] (Generic) Deselect of All',\n  DeselectedMany = '[Entity] (Generic) Deselection of Many',\n\n  EditNew = '[Entity] (Generic) Edit New',\n  Edit = '[Entity] (Generic) Edit',\n  EditByKey = '[Entity] (Generic) Edit by Key',\n  Edited = '[Entity] (Generic) Edited',\n  EditedByKey = '[Entity] (Generic) Edited by Key',\n  Change = '[Entity] (Generic) Change',\n  Changed = '[Entity] (Generic) Changed',\n  EndEdit = '[Entity] (Generic) Edit: End',\n  EditEnded = '[Entity] (Generic) Edit: Ended'\n}\n","/* eslint-disable */\nexport const uuid = (a?, b?) => {\n  for (b = a = ''; a++ < 36; b += (a * 51) & 52 ? (a ^ 15 ? 8 ^ (Math.random() * (a ^ 20 ? 16 : 4)) : 4).toString(16) : '-');\n  return b;\n};\n/* eslint-enable */\n","export const compose =\n  (...fns) =>\n  data =>\n    fns.reduce((value, fn) => fn(value), data);\nexport const tpipe =\n  <TInput>(fn1: (value: TInput) => any, ...fns: Array<(value: any) => any>) =>\n  data =>\n    [fn1, ...fns].reduce((value, fn) => fn(value), data);\n\nexport const map = (fn: (x) => any) => data => fn(data);\nexport const tap = (fn: (x) => void) => data => {\n  fn(data);\n  return data;\n};\n\nexport const noop = () => void 0;\n\nexport const not = (fn: (...args: any[]) => any) => value => fn(!value);\n\nexport const isUndefined = value => value === undefined;\n\nexport const throwError = (message: string) => () => {\n  throw new Error(message);\n};\n\nexport const iif = (predicate: (value: any) => boolean, whenTrue: (value: any) => any, whenFalse: (value: any) => any) => value =>\n  predicate(value) ? whenTrue(value) : whenFalse(value);\n\nexport const asString = (value: any): string => (value == null ? '' : String(value));\n\nexport const replace = (exp: string | RegExp, repl) => tpipe(asString, (str: string) => str.replace(exp, repl));\n","import { asString, compose, replace } from './func';\n\n/* eslint-disable max-len */\nconst CAMEL_CASE_REGEXP =\n  /([a-z\\xB5\\xDF-\\xF6\\xF8-\\xFF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E-\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199-\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD-\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233-\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F-\\u0293\\u0295-\\u02AF\\u0371\\u0373\\u0377\\u037B-\\u037D\\u0390\\u03AC-\\u03CE\\u03D0\\u03D1\\u03D5-\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF-\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430-\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0525\\u0527\\u0529\\u052B\\u052D\\u052F\\u0561-\\u0587\\u13F8-\\u13FD\\u1D00-\\u1D2B\\u1D6B-\\u1D77\\u1D79-\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95-\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF-\\u1F07\\u1F10-\\u1F15\\u1F20-\\u1F27\\u1F30-\\u1F37\\u1F40-\\u1F45\\u1F50-\\u1F57\\u1F60-\\u1F67\\u1F70-\\u1F7D\\u1F80-\\u1F87\\u1F90-\\u1F97\\u1FA0-\\u1FA7\\u1FB0-\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2-\\u1FC4\\u1FC6\\u1FC7\\u1FD0-\\u1FD3\\u1FD6\\u1FD7\\u1FE0-\\u1FE7\\u1FF2-\\u1FF4\\u1FF6\\u1FF7\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146-\\u2149\\u214E\\u2184\\u2C30-\\u2C5E\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76-\\u2C7B\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2CEC\\u2CEE\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA661\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA699\\uA69B\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F-\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771-\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uA78E\\uA791\\uA793-\\uA795\\uA797\\uA799\\uA79B\\uA79D\\uA79F\\uA7A1\\uA7A3\\uA7A5\\uA7A7\\uA7A9\\uA7B5\\uA7B7\\uA7FA\\uAB30-\\uAB5A\\uAB60-\\uAB65\\uAB70-\\uABBF\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF41-\\uFF5A0-9\\xB2\\xB3\\xB9\\xBC-\\xBE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D66-\\u0D75\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19])([A-Z\\xC0-\\xD6\\xD8-\\xDE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189-\\u018B\\u018E-\\u0191\\u0193\\u0194\\u0196-\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1-\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6-\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243-\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E\\u038F\\u0391-\\u03A1\\u03A3-\\u03AB\\u03CF\\u03D2-\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD-\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0524\\u0526\\u0528\\u052A\\u052C\\u052E\\u0531-\\u0556\\u10A0-\\u10C5\\u10C7\\u10CD\\u13A0-\\u13F5\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08-\\u1F0F\\u1F18-\\u1F1D\\u1F28-\\u1F2F\\u1F38-\\u1F3F\\u1F48-\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68-\\u1F6F\\u1FB8-\\u1FBB\\u1FC8-\\u1FCB\\u1FD8-\\u1FDB\\u1FE8-\\u1FEC\\u1FF8-\\u1FFB\\u2102\\u2107\\u210B-\\u210D\\u2110-\\u2112\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u2130-\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00-\\u2C2E\\u2C60\\u2C62-\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D-\\u2C70\\u2C72\\u2C75\\u2C7E-\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\u2CEB\\u2CED\\u2CF2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA660\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA698\\uA69A\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uA78D\\uA790\\uA792\\uA796\\uA798\\uA79A\\uA79C\\uA79E\\uA7A0\\uA7A2\\uA7A4\\uA7A6\\uA7A8\\uA7AA-\\uA7AD\\uA7B0-\\uA7B4\\uA7B6\\uFF21-\\uFF3A])/g;\nconst CAMEL_CASE_UPPER_REGEXP =\n  /([A-Z\\xC0-\\xD6\\xD8-\\xDE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189-\\u018B\\u018E-\\u0191\\u0193\\u0194\\u0196-\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1-\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6-\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243-\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E\\u038F\\u0391-\\u03A1\\u03A3-\\u03AB\\u03CF\\u03D2-\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD-\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0524\\u0526\\u0528\\u052A\\u052C\\u052E\\u0531-\\u0556\\u10A0-\\u10C5\\u10C7\\u10CD\\u13A0-\\u13F5\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08-\\u1F0F\\u1F18-\\u1F1D\\u1F28-\\u1F2F\\u1F38-\\u1F3F\\u1F48-\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68-\\u1F6F\\u1FB8-\\u1FBB\\u1FC8-\\u1FCB\\u1FD8-\\u1FDB\\u1FE8-\\u1FEC\\u1FF8-\\u1FFB\\u2102\\u2107\\u210B-\\u210D\\u2110-\\u2112\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u2130-\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00-\\u2C2E\\u2C60\\u2C62-\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D-\\u2C70\\u2C72\\u2C75\\u2C7E-\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\u2CEB\\u2CED\\u2CF2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA660\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA698\\uA69A\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uA78D\\uA790\\uA792\\uA796\\uA798\\uA79A\\uA79C\\uA79E\\uA7A0\\uA7A2\\uA7A4\\uA7A6\\uA7A8\\uA7AA-\\uA7AD\\uA7B0-\\uA7B4\\uA7B6\\uFF21-\\uFF3A])([A-Z\\xC0-\\xD6\\xD8-\\xDE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189-\\u018B\\u018E-\\u0191\\u0193\\u0194\\u0196-\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1-\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6-\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243-\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E\\u038F\\u0391-\\u03A1\\u03A3-\\u03AB\\u03CF\\u03D2-\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD-\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0524\\u0526\\u0528\\u052A\\u052C\\u052E\\u0531-\\u0556\\u10A0-\\u10C5\\u10C7\\u10CD\\u13A0-\\u13F5\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08-\\u1F0F\\u1F18-\\u1F1D\\u1F28-\\u1F2F\\u1F38-\\u1F3F\\u1F48-\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68-\\u1F6F\\u1FB8-\\u1FBB\\u1FC8-\\u1FCB\\u1FD8-\\u1FDB\\u1FE8-\\u1FEC\\u1FF8-\\u1FFB\\u2102\\u2107\\u210B-\\u210D\\u2110-\\u2112\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u2130-\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00-\\u2C2E\\u2C60\\u2C62-\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D-\\u2C70\\u2C72\\u2C75\\u2C7E-\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\u2CEB\\u2CED\\u2CF2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA660\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA698\\uA69A\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uA78D\\uA790\\uA792\\uA796\\uA798\\uA79A\\uA79C\\uA79E\\uA7A0\\uA7A2\\uA7A4\\uA7A6\\uA7A8\\uA7AA-\\uA7AD\\uA7B0-\\uA7B4\\uA7B6\\uFF21-\\uFF3A][a-z\\xB5\\xDF-\\xF6\\xF8-\\xFF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E-\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199-\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD-\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233-\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F-\\u0293\\u0295-\\u02AF\\u0371\\u0373\\u0377\\u037B-\\u037D\\u0390\\u03AC-\\u03CE\\u03D0\\u03D1\\u03D5-\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF-\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430-\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0525\\u0527\\u0529\\u052B\\u052D\\u052F\\u0561-\\u0587\\u13F8-\\u13FD\\u1D00-\\u1D2B\\u1D6B-\\u1D77\\u1D79-\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95-\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF-\\u1F07\\u1F10-\\u1F15\\u1F20-\\u1F27\\u1F30-\\u1F37\\u1F40-\\u1F45\\u1F50-\\u1F57\\u1F60-\\u1F67\\u1F70-\\u1F7D\\u1F80-\\u1F87\\u1F90-\\u1F97\\u1FA0-\\u1FA7\\u1FB0-\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2-\\u1FC4\\u1FC6\\u1FC7\\u1FD0-\\u1FD3\\u1FD6\\u1FD7\\u1FE0-\\u1FE7\\u1FF2-\\u1FF4\\u1FF6\\u1FF7\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146-\\u2149\\u214E\\u2184\\u2C30-\\u2C5E\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76-\\u2C7B\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2CEC\\u2CEE\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA661\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA699\\uA69B\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F-\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771-\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uA78E\\uA791\\uA793-\\uA795\\uA797\\uA799\\uA79B\\uA79D\\uA79F\\uA7A1\\uA7A3\\uA7A5\\uA7A7\\uA7A9\\uA7B5\\uA7B7\\uA7FA\\uAB30-\\uAB5A\\uAB60-\\uAB65\\uAB70-\\uABBF\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF41-\\uFF5A])/g;\nconst NON_WORD_REGEXP =\n  /[^A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC0-9\\xB2\\xB3\\xB9\\xBC-\\xBE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D66-\\u0D75\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]+/g;\n/* eslint-enable max-len */\n\nconst stripMatch =\n  (replacement: string = ' ') =>\n  (match: string, index: number, value: string): string =>\n    index === 0 || index === value.length - match.length ? '' : replacement;\n\nconst preserveNumbers =\n  (preserve: boolean) =>\n  (str: string): string =>\n    preserve ? str.replace(/ (?=\\d)/g, '_') : str;\n\nexport const lowerCase = (value: any): string => compose(asString, (str: string) => str.toLowerCase())(value);\n\nexport const upperCase = (value: any): string => compose(asString, (str: string) => str.toUpperCase())(value);\n\nexport const lowerCaseFirst = (value: any): string =>\n  compose(asString, (str: string) => (str ? str[0].toLowerCase() + str.substring(1) : str))(value);\n\nexport const upperCaseFirst = (value: any): string =>\n  compose(asString, (str: string) => (str ? str[0].toUpperCase() + str.substring(1) : str))(value);\n\nexport const noCase = (str: string): string =>\n  compose(\n    asString,\n    // Support camel case (\"camelCase\" -> \"camel Case\").\n    replace(CAMEL_CASE_REGEXP, '$1 $2'),\n    // Support odd camel case (\"CAMELCase\" -> \"CAMEL Case\").\n    replace(CAMEL_CASE_UPPER_REGEXP, '$1 $2'),\n    // Remove all non-word characters and replace with a single space.\n    replace(NON_WORD_REGEXP, stripMatch()),\n    // Convert to all lower case\n    lowerCase\n  )(str);\n\n/**\n * Camel case a string.\n *\n * @param  str: string to convert\n * @param  mergeNumbers: flag indicating whether to merge numbers\n * @return camel cased string\n */\nexport const camelCase = (str: string, mergeNumbers = false): string => {\n  return compose(\n    // Convert to lower case string of words\n    noCase,\n    // Replace periods between numeric entities with an underscore.\n    preserveNumbers(!mergeNumbers),\n    // Replace spaces between words with an upper cased character.\n    replace(/ (.)/g, (m, $1) => $1.toUpperCase())\n  )(str);\n};\n\n/**\n * Pascal case a string.\n *\n * @param  str: string to convert\n * @param  mergeNumbers: flag indicating whether to merge numbers\n * @return pascal cased string\n */\nexport const pascalCase = (str: string, mergeNumbers = false): string => upperCaseFirst(camelCase(str, mergeNumbers));\n","// NOTE: The following constants should be Symbol() to avoid any potential conflict with\n// any user-defined properties on the entity models. However, use of Symbol() here causes\n// problems with the Jest test runner at the current time\n\nexport const ENTITY_OPTS_PROP = '__nae_entity_opts';\nexport const NAE_KEYS = '__nae_keys';\nexport const NAE_KEY_NAMES = '__nae_key_names';\n","import { IEntityAction } from '../actions/entity-action';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { NAE_KEYS } from './entity-tokens';\n\nexport function checkKeyName(type: any, modelName: string): boolean {\n  const keys = type.prototype[NAE_KEYS];\n  if (keys === undefined) {\n    console.error(`[NGRX-AE] Entity model '${modelName}' does not have a key specified!`);\n    return false;\n  }\n  return true;\n}\n\nexport function getKeyNames(action: IEntityAction): string[] {\n  const keys = action && action.info && action.info.modelType.prototype[NAE_KEYS];\n  if (keys === undefined) {\n    console.error(\n      `[NGRX-AE] [getKeyNames()] Entity model '${action && action.info && action.info.modelName}' does not have a key specified!`\n    );\n  }\n  return keys || [];\n}\n\nexport function getKeyNamesFromModel<TModel>(type: new () => TModel): string[] {\n  if (type === undefined) {\n    console.error('[NGRX-AE] [getKeyNamesFromModel()] Specified type does not exist! Please provide a valid auto-entity model type.');\n    return [];\n  }\n\n  const keys = type.prototype[NAE_KEYS];\n  return keys || [];\n}\n\nexport function getKeyNamesFromEntity<TModel>(entity: TModel): string[] {\n  if (!entity) {\n    console.error('[NGRX-AE] [getKeyNamesFromEntity()] Specified entity does not exist! Please provide a valid auto-entity entity object.');\n    return [];\n  }\n\n  const keys = entity[NAE_KEYS] || Object.getPrototypeOf(entity)[NAE_KEYS];\n  return keys || [];\n}\n\nfunction _getKey(entity: any, keyNames: string[]): EntityIdentity {\n  if (!entity) {\n    console.error(`[NGRX-AE] Specified entity does not exist! Please provide a valid auto-entity entity object.`);\n    return undefined;\n  }\n\n  if (!keyNames || !keyNames.length) {\n    console.error(`[NGRX-AE] Specified entity does not have any properties decorated as keys.`);\n    return undefined;\n  }\n\n  if (keyNames.length === 1) {\n    return entity[keyNames[0]];\n  }\n\n  // Combine composite key values into underscore-separated string\n  const compositeKey = keyNames.map(key => entity[key]).reduce((ck, key) => ck + '_' + key.toString(), '');\n  return compositeKey.substr(1);\n}\n\nexport function getKey(action: IEntityAction, entity: any): EntityIdentity {\n  const keyNames = getKeyNames(action);\n  return _getKey(entity, keyNames);\n}\n\nexport function getKeyFromModel<TModel>(type: new () => TModel, entity: TModel): EntityIdentity {\n  const keyNames = getKeyNamesFromModel(type);\n  return _getKey(entity, keyNames);\n}\n\nexport function getKeyFromEntity<TModel>(entity: TModel): EntityIdentity {\n  const keyNames = getKeyNamesFromEntity(entity);\n  return _getKey(entity, keyNames);\n}\n","import { pascalCase } from '../../util/case';\nimport { IEntityOptions } from '../decorators/entity-options';\nimport { ENTITY_OPTS_PROP } from '../decorators/entity-tokens';\nimport { checkKeyName } from '../decorators/key-util';\nimport { IEntityInfo } from './entity-info';\nimport { TNew } from './model-constructor';\n\n/**\n * Sets the entity info for a given model.\n *\n * @param type The entity model type\n */\nexport const setInfo = (type: any): IEntityInfo => {\n  const instance = new type();\n  const opts = (type[ENTITY_OPTS_PROP] || { modelName: instance.constructor.name }) as IEntityOptions;\n  const modelName = opts.modelName;\n  checkKeyName(type, modelName);\n  return {\n    modelType: type,\n    ...opts\n  };\n};\n\n/**\n * Sets the action type info for a given model.\n *\n * @param actionType The type of entity action\n * @param info The entity info\n */\nexport const setType = (actionType: string, info: IEntityInfo): string => {\n  const name = info.modelName;\n  const entity = pascalCase(name);\n\n  return actionType.replace('Entity', entity);\n};\n\nexport const setActionType = <TModel, T extends string>(actionType: string, type: TNew<TModel>): T => {\n  const info = setInfo(type);\n  const typedType = setType(actionType, info) as T;\n  return typedType;\n};\n","import { Action } from '@ngrx/store';\n\nimport { uuid } from '../../util/uuid';\nimport { EntityActionTypes } from './action-types';\nimport { IEntityInfo } from './entity-info';\nimport { TNew } from './model-constructor';\nimport { setInfo, setType } from './util';\n\nexport interface ICorrelatedAction {\n  correlationId: string;\n}\n\nexport interface IEntityAction extends Action, ICorrelatedAction {\n  actionType: EntityActionTypes;\n  info: IEntityInfo;\n}\n\n/**\n * Structure for all of this library's actions\n */\nexport abstract class EntityAction<TModel> implements IEntityAction {\n  type: string;\n  info: IEntityInfo;\n\n  protected constructor(type: TNew<TModel>, public actionType: EntityActionTypes, public correlationId: string = uuid()) {\n    this.info = setInfo(type);\n    this.type = setType(this.actionType, this.info);\n  }\n}\n","import { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Clears all entities for this model from state\n */\nexport class Clear<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, correlationId?: string) {\n    super(type, EntityActionTypes.Clear, correlationId);\n  }\n}\n","import { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Creates a single entity, corresponding to HTTP POST operation\n */\nexport class Create<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.Create, correlationId);\n  }\n}\n\nexport class CreateSuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.CreateSuccess, correlationId);\n  }\n}\n\nexport class CreateFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.CreateFailure, correlationId);\n  }\n}\n\n/**\n * Creates many entities, corresponding to HTTP POST operation\n */\nexport class CreateMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.CreateMany, correlationId);\n  }\n}\n\nexport class CreateManySuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.CreateManySuccess, correlationId);\n  }\n}\n\nexport class CreateManyFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.CreateManyFailure, correlationId);\n  }\n}\n","import { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Deletes a single entity, corresponding to HTTP DELETE operation\n */\nexport class Delete<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.Delete, correlationId);\n  }\n}\n\nexport class DeleteSuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteSuccess, correlationId);\n  }\n}\n\nexport class DeleteFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteFailure, correlationId);\n  }\n}\n\n/**\n * Deletes many entities, corresponding to HTTP DELETE operation\n */\nexport class DeleteMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteMany, correlationId);\n  }\n}\n\nexport class DeleteManySuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteManySuccess, correlationId);\n  }\n}\n\nexport class DeleteManyFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteManyFailure, correlationId);\n  }\n}\n","import { EntityIdentity } from '../types/entity-identity';\nimport { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Deletes a single entity by key, corresponding to HTTP DELETE operation\n */\nexport class DeleteByKey<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public key: EntityIdentity, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteByKey, correlationId);\n  }\n}\n\nexport class DeleteByKeySuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public key: EntityIdentity, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteByKeySuccess, correlationId);\n  }\n}\n\nexport class DeleteByKeyFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public key: EntityIdentity, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteByKeyFailure, correlationId);\n  }\n}\n\n/**\n * Deletes many entities, corresponding to HTTP DELETE operation\n */\nexport class DeleteManyByKeys<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public keys: EntityIdentity[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteManyByKeys, correlationId);\n  }\n}\n\nexport class DeleteManyByKeysSuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public keys: EntityIdentity[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteManyByKeysSuccess, correlationId);\n  }\n}\n\nexport class DeleteManyByKeysFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public keys: EntityIdentity[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.DeleteManyByKeysFailure, correlationId);\n  }\n}\n","import { EntityIdentity } from '../types/entity-identity';\nimport { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * De-selects a single entity in the store\n */\nexport class Deselect<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, correlationId?: string) {\n    super(type, EntityActionTypes.Deselect, correlationId);\n  }\n}\n\n/**\n * De-selects many entities in the store\n */\nexport class DeselectMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], correlationId?: string) {\n    super(type, EntityActionTypes.DeselectMany, correlationId);\n\n    if (!Array.isArray(entities)) {\n      throw new Error('[NGRX-AE] ! DeselectMany action requires an array of entities.');\n    }\n  }\n}\n\n/**\n * De-selects many entities in the store by entity keys\n */\nexport class DeselectManyByKeys<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entitiesKeys: EntityIdentity[], correlationId?: string) {\n    super(type, EntityActionTypes.DeselectManyByKeys, correlationId);\n\n    if (!Array.isArray(entitiesKeys)) {\n      throw new Error('[NGRX-AE] ! DeselectManyByKeys action requires an array of entity keys.');\n    }\n  }\n}\n\n/**\n * De-selects all entities in the store\n */\nexport class DeselectAll<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, correlationId?: string) {\n    super(type, EntityActionTypes.DeselectAll, correlationId);\n  }\n}\n\n/**\n * Indicates the de-selection of a single entity in the store\n */\nexport class Deselected<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, correlationId?: string) {\n    super(type, EntityActionTypes.Deselected, correlationId);\n  }\n}\n\n/**\n * Indicates the de-selection of many entities in the store\n */\nexport class DeselectedMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: Array<TModel | EntityIdentity> | null, correlationId?: string) {\n    super(type, EntityActionTypes.DeselectedMany, correlationId);\n\n    if (!Array.isArray(entities) && entities !== null) {\n      throw new Error('[NGRX-AE] ! DeselectedMany action requires an array of entities or keys.');\n    }\n  }\n}\n","import { EntityIdentity } from '../types/entity-identity';\nimport { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Tracks a new entity as being edited in the store\n */\nexport class EditNew<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity?: Partial<TModel>, correlationId?: string) {\n    super(type, EntityActionTypes.EditNew, correlationId);\n  }\n}\n\n/**\n * Tracks an entity as being edited in the store\n */\nexport class Edit<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: Partial<TModel>, correlationId?: string) {\n    super(type, EntityActionTypes.Edit, correlationId);\n  }\n}\n\n/**\n * Tracks an entity (by its key) as being edited in the store\n */\nexport class EditByKey<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public key: EntityIdentity, correlationId?: string) {\n    super(type, EntityActionTypes.EditByKey, correlationId);\n  }\n}\n\n/**\n * Indicates an entity is being tracked as edited in the store\n */\nexport class Edited<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: Partial<TModel>, correlationId?: string) {\n    super(type, EntityActionTypes.Edited, correlationId);\n  }\n}\n\n/**\n * Indicates an entity (by its key) is being tracked as edited in the store\n */\nexport class EditedByKey<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public key: EntityIdentity, correlationId?: string) {\n    super(type, EntityActionTypes.EditedByKey, correlationId);\n  }\n}\n\n/**\n * Indicates a change is occurring to the edited entity in the store\n */\nexport class Change<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: Partial<TModel>, correlationId?: string) {\n    super(type, EntityActionTypes.Change, correlationId);\n  }\n}\n\n/**\n * Indicates a change has occurred to the edited entity in the store\n */\nexport class Changed<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: Partial<TModel>, correlationId?: string) {\n    super(type, EntityActionTypes.Changed, correlationId);\n  }\n}\n\n/**\n * Ends editing of currently edited entity and clears it from state\n */\nexport class EndEdit<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, correlationId?: string) {\n    super(type, EntityActionTypes.EndEdit, correlationId);\n  }\n}\n\n/**\n * Indicates editing of currently edited entity has ended\n */\nexport class EditEnded<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, correlationId?: string) {\n    super(type, EntityActionTypes.EditEnded, correlationId);\n  }\n}\n","import { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Loads a single instance of an entity if necessary\n * HTTP GET /entity/:id operation\n *\n * @remarks:\n * This action will only load the entity if it does not exist in state, referenced by key\n * This is an alternative initiation action that will ultimately result in Load being dispatched\n *\n * @param type - The entity model decorated with @Entity\n * @param keys - (optional) The keys of the entity you wish to load\n * @param maxAge - (optional) The max age of the entity, after which load will be performed regardless\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class LoadIfNecessary<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public keys?: any, public maxAge?: number, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadIfNecessary, correlationId);\n  }\n}\n\n/**\n * Loads a single instance of an entity\n * HTTP GET /entity/:id\n *\n * @remarks\n * The loaded entity will replace any existing entity in state\n *\n * @param type - The entity model decorated with @Entity\n * @param keys - (optional) The keys of the entity you wish to load\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class Load<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public keys?: any, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.Load, correlationId);\n  }\n}\n\n/**\n * Handles a successful response for loading an entity\n * HTTP GET /entity/:id\n *\n * @param type - The entity model decorated with @Entity\n * @param entity - The entity that was loaded\n * @param keys - (optional) The keys of the entity you loaded\n * @param criteria - (optional) The custom criteria from the initial load action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load action\n */\nexport class LoadSuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public keys?: any, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadSuccess, correlationId);\n  }\n}\n\n/**\n * Handles an error response when loading an entity\n * HTTP GET /entity/:id\n *\n * @param type - The entity model decorated with @Entity\n * @param error - The error object that was thrown\n * @param keys - The keys of the entity you loaded\n * @param criteria - (optional) The custom criteria from the initial load action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load action\n */\nexport class LoadFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public keys?: any, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadFailure, correlationId);\n  }\n}\n","import { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Loads all instances of an entity if necessary\n * HTTP GET /entity\n *\n * @remarks:\n * This action will only load the entity if there is no previous loadedAt date or any entities in state\n * This is an alternative initiation action that will ultimately result in Load being dispatched\n *\n * @param type - The entity model decorated with @Entity\n * @param maxAge - (optional) The max age of the entity, after which load will be performed regardless\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class LoadAllIfNecessary<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public maxAge?: number, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadAllIfNecessary, correlationId);\n  }\n}\n\n/**\n * Loads all instances of an entity\n * HTTP GET /entity\n *\n * @remarks:\n * Replaces all entities for this model in state.\n *\n * @param type - The entity model decorated with @Entity\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class LoadAll<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadAll, correlationId);\n  }\n}\n\n/**\n * Handles a successful response for loading all entities\n * HTTP GET /entity\n *\n * @param type - The entity model decorated with @Entity\n * @param entities - The entities that were loaded\n * @param criteria - (optional) The custom criteria from the initial load all action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load all action\n */\nexport class LoadAllSuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadAllSuccess, correlationId);\n  }\n}\n\n/**\n * Handles an error response when loading all entities\n * HTTP GET /entity\n *\n * @param type - The entity model decorated with @Entity\n * @param error - (optional) The error object that was thrown\n * @param criteria - (optional) The custom criteria from the initial load all action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load all action\n */\nexport class LoadAllFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadAllFailure, correlationId);\n  }\n}\n","import { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Loads all instances of an entity if necessary\n * HTTP GET /entity\n *\n * @remarks:\n * This action will only load the entity if there is no previous loadedAt date or any entities in state\n * This is an alternative initiation action that will ultimately result in Load being dispatched\n *\n * @param type - The entity model decorated with @Entity\n * @param maxAge - (optional) The max age of the entity, after which load will be performed regardless\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class LoadManyIfNecessary<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public maxAge?: number, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadManyIfNecessary, correlationId);\n  }\n}\n\n/**\n * Loads many instances of an entity\n * HTTP GET /entity\n *\n * @remarks:\n * Replaces many entities for this model in state. Loaded entities will be merged into state, updating\n * existing entities (by key) or adding new entities (key not found in state).\n *\n * @param type - The entity model decorated with @Entity\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class LoadMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadMany, correlationId);\n  }\n}\n\n/**\n * Handles a successful response for loading many entities\n * HTTP GET /entity\n *\n * @param type - The entity model decorated with @Entity\n * @param entities - The entities that were loaded\n * @param criteria - (optional) The custom criteria from the initial load many action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load many action\n */\nexport class LoadManySuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadManySuccess, correlationId);\n  }\n}\n\n/**\n * Handles an error response when loading many entities\n * HTTP GET /entity\n *\n * @param type - The entity model decorated with @Entity\n * @param error - (optional) The error object that was thrown\n * @param criteria - (optional) The custom criteria from the initial load many action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load many action\n */\nexport class LoadManyFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadManyFailure, correlationId);\n  }\n}\n","import { IPageInfo, Page } from '../models';\nimport { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Loads instances of a page of entities if necessary\n * HTTP GET /entity?page&size (etc.)\n *\n * @remarks:\n * This action will only load the entity if there is no previous loadedAt date or entities in state,\n * or if the current page information for entities in state does not match the page being loaded\n * This is an alternative initiation action that will ultimately result in Load being dispatched\n *\n * @param type - The entity model decorated with @Entity\n * @param page - The information about the page to load\n * @param maxAge - (optional) The max age of the entity, after which load will be performed regardless\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class LoadPageIfNecessary<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public page: Page, public maxAge?: number, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadPageIfNecessary, correlationId);\n  }\n}\n\n/**\n * Loads a single page of an entity\n * HTTP GET /entity?page&size (etc.)\n *\n * @remarks\n * The loaded page of entities will replace all entities for this model in state\n * Will update the current page info in state\n *\n * @param type - The entity model decorated with @Entity\n * @param page - The information about the page to load\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class LoadPage<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public page: Page, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadPage, correlationId);\n  }\n}\n\n/**\n * Handles a successful response for loading a page of entities\n * HTTP GET /entity?page&size (etc.)\n *\n * @param type - The entity model decorated with @Entity\n * @param entities - The entities that were loaded\n * @param pageInfo - The information about the page loaded\n * @param criteria - (optional) The custom criteria from the initial load page action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load page action\n */\nexport class LoadPageSuccess<TModel> extends EntityAction<TModel> {\n  constructor(\n    type: new () => TModel,\n    public entities: TModel[],\n    public pageInfo: IPageInfo,\n    public criteria?: any,\n    correlationId?: string\n  ) {\n    super(type, EntityActionTypes.LoadPageSuccess, correlationId);\n  }\n}\n\n/**\n * Handles an error response when loading a page of entities\n * HTTP GET /entity?page&size (etc.)\n *\n * @param type - The entity model decorated with @Entity\n * @param error - The error object that was thrown\n * @param page - The page you tried to load\n * @param criteria - (optional) The custom criteria from the initial load page action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load page action\n */\nexport class LoadPageFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public page: Page, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadPageFailure, correlationId);\n  }\n}\n","import { IRangeInfo, Page, Range } from '../models';\nimport { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Loads instances of a range of entities if necessary\n * HTTP GET /entity?start&end|first&last|skip&take (etc.)\n *\n * @remarks:\n * This action will only load the entity if there is no previous loadedAt date or entities in state,\n * or if the current range information for entities in state does not intersect the range being loaded\n * This is an alternative initiation action that will ultimately result in Load being dispatched\n *\n * @param type - The entity model decorated with @Entity\n * @param range - The information about the range to load\n * @param maxAge - (optional) The max age of the entity, after which load will be performed regardless\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class LoadRangeIfNecessary<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public range: Range, public maxAge?: number, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadRangeIfNecessary, correlationId);\n  }\n}\n\n/**\n * Loads instances of a range of entities\n * HTTP GET /entity?start&end|first&last|skip&take (etc.)\n *\n * @remarks:\n * The loaded entities will be added to any range of entities already in state\n * Will update the current range info in state\n *\n * @param type - The entity model decorated with @Entity\n * @param range - The information about the range to load\n * @param maxAge - (optional) The max age of the entity, after which load will be performed regardless\n * @param criteria - (optional) The custom criteria for this action\n * @param correlationId - (optional) A custom correlation id for this action; Use to correlate subsequent result actions\n */\nexport class LoadRange<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public range: Range, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadRange, correlationId);\n  }\n}\n\n/**\n * Handles a successful response for loading a range of entities\n * HTTP GET /entity?start&end|first&last|skip&take (etc.)\n *\n * @param type - The entity model decorated with @Entity\n * @param entities - The entities that were loaded\n * @param rangeInfo - The information about the range loaded\n * @param criteria - (optional) The custom criteria from the initial load range action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load range action\n */\nexport class LoadRangeSuccess<TModel> extends EntityAction<TModel> {\n  constructor(\n    type: new () => TModel,\n    public entities: TModel[],\n    public rangeInfo: IRangeInfo,\n    public criteria?: any,\n    correlationId?: string\n  ) {\n    super(type, EntityActionTypes.LoadRangeSuccess, correlationId);\n  }\n}\n\n/**\n * Handles an error response when loading a page of entities\n * HTTP GET /entity?start&end|first&last|skip&take (etc.)\n *\n * @param type - The entity model decorated with @Entity\n * @param error - The error object that was thrown\n * @param range - The range you tried to load\n * @param criteria - (optional) The custom criteria from the initial load range action\n * @param correlationId - (optional) The correlationId for this action; correlates to initial load range action\n */\nexport class LoadRangeFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public range: Range, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.LoadRangeFailure, correlationId);\n  }\n}\n","import { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Replaces a single entity, corresponding to HTTP PUT operation.\n *\n * PUT: Replace the entity with the one supplied in the request\n */\nexport class Replace<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.Replace, correlationId);\n  }\n}\n\nexport class ReplaceSuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.ReplaceSuccess, correlationId);\n  }\n}\n\nexport class ReplaceFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.ReplaceFailure, correlationId);\n  }\n}\n\n/**\n * Replaces many entities, corresponding to HTTP PUT operation.\n *\n * PUT: Replace the entities with the ones supplied in the request\n */\nexport class ReplaceMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.ReplaceMany, correlationId);\n  }\n}\n\nexport class ReplaceManySuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.ReplaceManySuccess, correlationId);\n  }\n}\n\nexport class ReplaceManyFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.ReplaceManyFailure, correlationId);\n  }\n}\n","import { EntityIdentity } from '../types/entity-identity';\nimport { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Selects a single entity in the store by the entity model\n */\nexport class Select<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, correlationId?: string) {\n    super(type, EntityActionTypes.Select, correlationId);\n\n    if (entity == null) {\n      throw new Error('[NGRX-AE] ! SelectByKey requires an entity.');\n    }\n  }\n}\n\n/**\n * Selects a single entity in the store by the entity key\n */\nexport class SelectByKey<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entityKey: EntityIdentity, correlationId?: string) {\n    super(type, EntityActionTypes.SelectByKey, correlationId);\n\n    if (entityKey == null) {\n      throw new Error('[NGRX-AE] ! SelectByKey requires an entity key.');\n    }\n  }\n}\n\n/**\n * Selects many entities in the store by the entity models\n */\nexport class SelectMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], correlationId?: string) {\n    super(type, EntityActionTypes.SelectMany, correlationId);\n\n    if (!Array.isArray(entities)) {\n      throw new Error('[NGRX-AE] ! SelectMany action requires an array of entities.');\n    }\n  }\n}\n\n/**\n * Selects more entities in the store by the entity models\n */\nexport class SelectMore<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], correlationId?: string) {\n    super(type, EntityActionTypes.SelectMore, correlationId);\n\n    if (!Array.isArray(entities)) {\n      throw new Error('[NGRX-AE] ! SelectMore action requires an array of entities.');\n    }\n  }\n}\n\n/**\n * Selects many entities in the store by the entity keys\n */\nexport class SelectManyByKeys<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entitiesKeys: EntityIdentity[], correlationId?: string) {\n    super(type, EntityActionTypes.SelectManyByKeys, correlationId);\n\n    if (!Array.isArray(entitiesKeys)) {\n      throw new Error('[NGRX-AE] ! SelectManyByKeys action requires an array of entity keys.');\n    }\n  }\n}\n\n/**\n * Selects more entities in the store by the entity keys\n */\nexport class SelectMoreByKeys<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entitiesKeys: EntityIdentity[], correlationId?: string) {\n    super(type, EntityActionTypes.SelectMoreByKeys, correlationId);\n\n    if (!Array.isArray(entitiesKeys)) {\n      throw new Error('[NGRX-AE] ! SelectMoreByKeys action requires an array of entity keys.');\n    }\n  }\n}\n\n/**\n * Indicates the selection of a single entity in the store\n */\nexport class Selected<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel | EntityIdentity, correlationId?: string) {\n    super(type, EntityActionTypes.Selected, correlationId);\n  }\n}\n\n/**\n * Indicates the selection of many entities in the store\n */\nexport class SelectedMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: Array<TModel | EntityIdentity>, correlationId?: string) {\n    super(type, EntityActionTypes.SelectedMany, correlationId);\n\n    if (!Array.isArray(entities)) {\n      throw new Error('[NGRX-AE] ! SelectedMany action requires an array of entities or keys.');\n    }\n  }\n}\n\n/**\n * Indicates the selection of more entities in the store\n */\nexport class SelectedMore<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: Array<TModel | EntityIdentity>, correlationId?: string) {\n    super(type, EntityActionTypes.SelectedMore, correlationId);\n\n    if (!Array.isArray(entities)) {\n      throw new Error('[NGRX-AE] ! SelectedMore action requires an array of entities or keys.');\n    }\n  }\n}\n","import { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Updates a single entity, corresponding to HTTP PATCH operation.\n *\n * PATCH: Update just the supplied attributes of the entity\n */\nexport class Update<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.Update, correlationId);\n  }\n}\n\nexport class UpdateSuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpdateSuccess, correlationId);\n  }\n}\n\nexport class UpdateFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpdateFailure, correlationId);\n  }\n}\n\n/**\n * Updates many entities, corresponding to HTTP PATCH operation.\n *\n * PATCH: Update just the supplied attributes of the entities\n */\nexport class UpdateMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpdateMany, correlationId);\n  }\n}\n\nexport class UpdateManySuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpdateManySuccess, correlationId);\n  }\n}\n\nexport class UpdateManyFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpdateManyFailure, correlationId);\n  }\n}\n","import { EntityActionTypes } from './action-types';\nimport { EntityAction } from './entity-action';\n\n/**\n * Updates or inserts a single entity, corresponding to HTTP PUT or POST operation.\n *\n */\nexport class Upsert<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.Upsert, correlationId);\n  }\n}\n\nexport class UpsertSuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpsertSuccess, correlationId);\n  }\n}\n\nexport class UpsertFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entity: TModel, public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpsertFailure, correlationId);\n  }\n}\n\n/**\n * Updates or inserts many entities, corresponding to HTTP PUT or POST operation.\n *\n */\nexport class UpsertMany<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpsertMany, correlationId);\n  }\n}\n\nexport class UpsertManySuccess<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpsertManySuccess, correlationId);\n  }\n}\n\nexport class UpsertManyFailure<TModel> extends EntityAction<TModel> {\n  constructor(type: new () => TModel, public error: any, public entities: TModel[], public criteria?: any, correlationId?: string) {\n    super(type, EntityActionTypes.UpsertManyFailure, correlationId);\n  }\n}\n","import { Clear } from './actions';\nimport { Create, CreateFailure, CreateMany, CreateManyFailure, CreateManySuccess, CreateSuccess } from './create-actions';\nimport { Delete, DeleteFailure, DeleteMany, DeleteManyFailure, DeleteManySuccess, DeleteSuccess } from './delete-actions';\nimport {\n  DeleteByKey,\n  DeleteByKeyFailure,\n  DeleteByKeySuccess,\n  DeleteManyByKeys,\n  DeleteManyByKeysFailure,\n  DeleteManyByKeysSuccess\n} from './delete-by-key-actions';\nimport { Deselect, DeselectAll, Deselected, DeselectedMany, DeselectMany, DeselectManyByKeys } from './deselection-actions';\nimport { Change, Changed, Edit, EditByKey, Edited, EditedByKey, EditEnded, EditNew, EndEdit } from './edit-actions';\nimport { IEntityAction } from './entity-action';\nimport { Load, LoadFailure, LoadIfNecessary, LoadSuccess } from './load-actions';\nimport { LoadAll, LoadAllFailure, LoadAllIfNecessary, LoadAllSuccess } from './load-all-actions';\nimport { LoadMany, LoadManyFailure, LoadManyIfNecessary, LoadManySuccess } from './load-many-actions';\nimport { LoadPage, LoadPageFailure, LoadPageIfNecessary, LoadPageSuccess } from './load-page-actions';\nimport { LoadRange, LoadRangeFailure, LoadRangeIfNecessary, LoadRangeSuccess } from './load-range-actions';\nimport { Replace, ReplaceFailure, ReplaceMany, ReplaceManyFailure, ReplaceManySuccess, ReplaceSuccess } from './replace-actions';\nimport { Select, SelectByKey, Selected, SelectedMany, SelectMany, SelectManyByKeys } from './selection-actions';\nimport { Update, UpdateFailure, UpdateMany, UpdateManyFailure, UpdateManySuccess, UpdateSuccess } from './update-actions';\nimport { Upsert, UpsertFailure, UpsertMany, UpsertManyFailure, UpsertManySuccess, UpsertSuccess } from './upsert-actions';\n\n/**\n * Union of all known entity action types\n */\nexport type EntityActions<TModel> =\n  | Load<TModel>\n  | LoadIfNecessary<TModel>\n  | LoadFailure<TModel>\n  | LoadSuccess<TModel>\n  | LoadMany<TModel>\n  | LoadManyIfNecessary<TModel>\n  | LoadManyFailure<TModel>\n  | LoadManySuccess<TModel>\n  | LoadAll<TModel>\n  | LoadAllIfNecessary<TModel>\n  | LoadAllFailure<TModel>\n  | LoadAllSuccess<TModel>\n  | LoadPage<TModel>\n  | LoadPageIfNecessary<TModel>\n  | LoadPageFailure<TModel>\n  | LoadPageSuccess<TModel>\n  | LoadRange<TModel>\n  | LoadRangeIfNecessary<TModel>\n  | LoadRangeFailure<TModel>\n  | LoadRangeSuccess<TModel>\n  | Create<TModel>\n  | CreateFailure<TModel>\n  | CreateSuccess<TModel>\n  | CreateMany<TModel>\n  | CreateManyFailure<TModel>\n  | CreateManySuccess<TModel>\n  | Update<TModel>\n  | UpdateFailure<TModel>\n  | UpdateSuccess<TModel>\n  | UpdateMany<TModel>\n  | UpdateManyFailure<TModel>\n  | UpdateManySuccess<TModel>\n  | Upsert<TModel>\n  | UpsertFailure<TModel>\n  | UpsertSuccess<TModel>\n  | UpsertMany<TModel>\n  | UpsertManyFailure<TModel>\n  | UpsertManySuccess<TModel>\n  | Replace<TModel>\n  | ReplaceFailure<TModel>\n  | ReplaceSuccess<TModel>\n  | ReplaceMany<TModel>\n  | ReplaceManyFailure<TModel>\n  | ReplaceManySuccess<TModel>\n  | Delete<TModel>\n  | DeleteFailure<TModel>\n  | DeleteSuccess<TModel>\n  | DeleteMany<TModel>\n  | DeleteManyFailure<TModel>\n  | DeleteManySuccess<TModel>\n  | DeleteByKey<TModel>\n  | DeleteByKeyFailure<TModel>\n  | DeleteByKeySuccess<TModel>\n  | DeleteManyByKeys<TModel>\n  | DeleteManyByKeysFailure<TModel>\n  | DeleteManyByKeysSuccess<TModel>\n  | Clear<TModel>\n  | Select<TModel>\n  | SelectByKey<TModel>\n  | SelectMany<TModel>\n  | SelectManyByKeys<TModel>\n  | Selected<TModel>\n  | SelectedMany<TModel>\n  | Deselect<TModel>\n  | DeselectAll<TModel>\n  | DeselectMany<TModel>\n  | DeselectManyByKeys<TModel>\n  | Deselected<TModel>\n  | DeselectedMany<TModel>\n  | EditNew<TModel>\n  | Edit<TModel>\n  | EditByKey<TModel>\n  | Edited<TModel>\n  | EditedByKey<TModel>\n  | Change<TModel>\n  | Changed<TModel>\n  | EndEdit<TModel>\n  | EditEnded<TModel>;\n\nexport const isEntityActionInstance = (action: IEntityAction): boolean =>\n  action instanceof Load ||\n  action instanceof LoadIfNecessary ||\n  action instanceof LoadSuccess ||\n  action instanceof LoadFailure ||\n  action instanceof LoadMany ||\n  action instanceof LoadManyIfNecessary ||\n  action instanceof LoadManySuccess ||\n  action instanceof LoadManyFailure ||\n  action instanceof LoadAll ||\n  action instanceof LoadAllIfNecessary ||\n  action instanceof LoadAllSuccess ||\n  action instanceof LoadAllFailure ||\n  action instanceof LoadPage ||\n  action instanceof LoadPageIfNecessary ||\n  action instanceof LoadPageSuccess ||\n  action instanceof LoadPageFailure ||\n  action instanceof LoadRange ||\n  action instanceof LoadRangeIfNecessary ||\n  action instanceof LoadRangeSuccess ||\n  action instanceof LoadRangeFailure ||\n  action instanceof Create ||\n  action instanceof CreateSuccess ||\n  action instanceof CreateFailure ||\n  action instanceof CreateMany ||\n  action instanceof CreateManySuccess ||\n  action instanceof CreateManyFailure ||\n  action instanceof Update ||\n  action instanceof UpdateSuccess ||\n  action instanceof UpdateFailure ||\n  action instanceof UpdateMany ||\n  action instanceof UpdateManySuccess ||\n  action instanceof UpdateManyFailure ||\n  action instanceof Upsert ||\n  action instanceof UpsertSuccess ||\n  action instanceof UpsertFailure ||\n  action instanceof UpsertMany ||\n  action instanceof UpsertManySuccess ||\n  action instanceof UpsertManyFailure ||\n  action instanceof Replace ||\n  action instanceof ReplaceSuccess ||\n  action instanceof ReplaceFailure ||\n  action instanceof ReplaceMany ||\n  action instanceof ReplaceManySuccess ||\n  action instanceof ReplaceManyFailure ||\n  action instanceof Delete ||\n  action instanceof DeleteSuccess ||\n  action instanceof DeleteFailure ||\n  action instanceof DeleteMany ||\n  action instanceof DeleteManySuccess ||\n  action instanceof DeleteManyFailure ||\n  action instanceof DeleteByKey ||\n  action instanceof DeleteByKeySuccess ||\n  action instanceof DeleteByKeyFailure ||\n  action instanceof DeleteManyByKeys ||\n  action instanceof DeleteManyByKeysSuccess ||\n  action instanceof DeleteManyByKeysFailure ||\n  action instanceof Clear ||\n  action instanceof Select ||\n  action instanceof SelectByKey ||\n  action instanceof SelectMany ||\n  action instanceof SelectManyByKeys ||\n  action instanceof Selected ||\n  action instanceof SelectedMany ||\n  action instanceof Deselect ||\n  action instanceof DeselectMany ||\n  action instanceof DeselectManyByKeys ||\n  action instanceof DeselectAll ||\n  action instanceof Deselected ||\n  action instanceof DeselectedMany ||\n  action instanceof EditNew ||\n  action instanceof Edit ||\n  action instanceof EditByKey ||\n  action instanceof Edited ||\n  action instanceof EditedByKey ||\n  action instanceof Change ||\n  action instanceof Changed ||\n  action instanceof EndEdit ||\n  action instanceof EditEnded;\n","import { Actions } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { merge, Observable, OperatorFunction } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { EntityActionTypes } from './action-types';\nimport { EntityAction, IEntityAction } from './entity-action';\nimport { isEntityActionInstance } from './entity-actions-union';\nimport { setType } from './util';\n\n/**\n * Operator to filter actions by an entity action type or multiple action types.\n *\n * @param allowedActionTypes One or more action type string constants\n */\nexport function ofEntityAction<T extends IEntityAction>(...allowedActionTypes: EntityActionTypes[]): OperatorFunction<Action, T> {\n  return filter((action: IEntityAction): action is T => {\n    return isEntityActionInstance(action) ? allowedActionTypes.some(type => setType(type, action.info) === action.type) : false;\n  });\n}\n\n/**\n * Operator to filter actions by an entity and action type or multiple action types.\n *\n * @param entity The entity class\n * @param allowedActionTypes One or more action type string constants\n */\nexport function ofEntityType<TModel, T extends EntityAction<TModel>>(\n  entity: new () => TModel,\n  ...allowedActionTypes: EntityActionTypes[]\n): OperatorFunction<Action, T> {\n  return filter((action: EntityAction<TModel>): action is T => {\n    return isEntityActionInstance(action)\n      ? action.info.modelType === entity && allowedActionTypes.some(type => setType(type, action.info) === action.type)\n      : false;\n  });\n}\n\n/**\n * Operator to filter many actions by entity type and entity action types.\n *\n * @param actions$ The NgRx effects Actions stream\n * @param entity The entity types to filter for\n * @param allowedActionTypes The entity actions to filter for\n */\nexport function fromEntityActions<T extends EntityAction<any>>(\n  actions$: Actions,\n  entity: Array<new () => any>,\n  ...allowedActionTypes: EntityActionTypes[]\n): Observable<Action> {\n  const entityActions = entity.map(e => actions$.pipe(ofEntityType(e, ...allowedActionTypes)));\n  return merge(...entityActions);\n}\n","import { camelCase } from '../../util/case';\nimport { compose } from '../../util/func';\nimport { TNew } from '../actions/model-constructor';\nimport { EntityComparer, IEntityOptions, IEntityTransformer } from './entity-options';\nimport { ENTITY_OPTS_PROP } from './entity-tokens';\n\nexport const EMPTY_OBJECT = {};\n\nexport const getEntity = <TModel>(entityOrType: TNew<TModel> | TModel | TModel[]): TNew<TModel> | TModel =>\n  Array.isArray(entityOrType) ? entityOrType[0] : entityOrType;\n\nexport const ensureObject = value => value || EMPTY_OBJECT;\n\nexport const getEntityOptions = <TModel>(entityOrType: TNew<TModel> | TModel | TModel[]): IEntityOptions =>\n  (entityOrType[ENTITY_OPTS_PROP] ||\n    (entityOrType.constructor ? entityOrType.constructor[ENTITY_OPTS_PROP] : EMPTY_OBJECT) ||\n    EMPTY_OBJECT) as IEntityOptions;\n\nexport const entityOptions = <TModel>(entityOrType: TNew<TModel> | TModel | TModel[]): IEntityOptions =>\n  compose(getEntity, ensureObject, getEntityOptions)(entityOrType);\n\nexport const entityStateName = (modelName: string): string => camelCase(modelName);\n\nexport const nameOfEntity = <TModel>(entityOrType: TNew<TModel> | TModel): string | undefined => entityOptions(entityOrType).modelName;\n\nexport const uriNameOfEntity = <TModel>(entityOrType: TNew<TModel> | TModel): string | null | undefined =>\n  entityOptions(entityOrType).uriName;\n\nexport const pluralNameOfEntity = <TModel>(entityOrType: TNew<TModel> | TModel): string | null | undefined =>\n  entityOptions(entityOrType).pluralName;\n\nexport const stateNameOfEntity = <TModel>(entityOrType: TNew<TModel> | TModel): string | null | undefined =>\n  entityStateName(entityOptions(entityOrType).modelName);\n\nexport const mapComparer = (options: IEntityOptions, name: string): EntityComparer =>\n  options.comparers != null\n    ? typeof options.comparers[name] === 'string'\n      ? (options.comparers[options.comparers[name] as string] as EntityComparer)\n      : (options.comparers[name] as EntityComparer)\n    : undefined;\n\nexport const defaultComparer = (options: IEntityOptions): EntityComparer => options.comparer || mapComparer(options, 'default');\n\nexport const namedComparer = (options: IEntityOptions, name: string): EntityComparer =>\n  options.comparers != null\n    ? (options.comparers[name] as EntityComparer) || mapComparer(options, name)\n    : name === 'default'\n    ? defaultComparer(options)\n    : undefined;\n\nexport const getComparer = (options: IEntityOptions, name?: string): EntityComparer =>\n  options != null ? (name != null ? namedComparer(options, name) : defaultComparer(options)) : undefined;\n\nexport const entityComparer = <TModel>(entityOrType: TNew<TModel> | TModel | TModel[], name?: string): EntityComparer | null | undefined =>\n  getComparer(entityOptions(entityOrType), name);\n\nexport const entityTransforms = <TModel>(entityOrType: TNew<TModel> | TModel): IEntityTransformer[] | null | undefined =>\n  entityOptions(entityOrType).transform;\n\nexport const entityMaxAge = <TModel>(entityOrType: TNew<TModel> | TModel | TModel[]): number => entityOptions(entityOrType).defaultMaxAge;\n","export const FEATURE_AFFINITY = '__ngrxae_feature_affinity';\n","import { InjectionToken, Injector } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { of, pipe } from 'rxjs';\nimport { filter, mergeMap, tap } from 'rxjs/operators';\nimport { compose as fpipe } from '../../util/func';\nimport { IEntityInfo } from '../actions/entity-info';\nimport { entityStateName } from '../decorators/entity-util';\nimport { Page, Range } from '../models';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { IEntityState } from '../util/entity-state';\nimport { FEATURE_AFFINITY } from '../util/util-tokens';\n\nexport const NGRX_AUTO_ENTITY_APP_STORE = new InjectionToken<Store>('@briebug/ngrx-auto-entity App Store');\n\nexport const getEntityState =\n  (info: IEntityInfo) =>\n  (state: any): IEntityState<any> =>\n    (info.modelType[FEATURE_AFFINITY]\n      ? state[info.modelType[FEATURE_AFFINITY]][entityStateName(info.modelName)]\n      : state[entityStateName(info.modelName)]) as IEntityState<any>;\nexport const getLoadedAt = (state: IEntityState<any>): number | undefined => state?.tracking?.loadedAt ?? undefined;\nexport const getIsLoading = (state: IEntityState<any>): boolean => !!state.tracking?.isLoading;\nexport const getCurrentPage = (state: IEntityState<any>): Page | undefined => state.paging?.currentPage ?? undefined;\nexport const getCurrentRange = (state: IEntityState<any>): Range | undefined => state.paging?.currentRange ?? undefined;\nexport const getEntityIds = (state: IEntityState<any>): EntityIdentity[] => state?.ids ?? [];\nexport const mapToHasEntities = (ids?: EntityIdentity[]): boolean => !!ids && !!ids.length;\n\nexport const entityLoadedAt = (info: IEntityInfo) => fpipe(getEntityState(info), getLoadedAt);\nexport const entityIsLoading = (info: IEntityInfo) => fpipe(getEntityState(info), getIsLoading);\nexport const entityCurrentPage = (info: IEntityInfo) => fpipe(getEntityState(info), getCurrentPage);\nexport const entityCurrentRange = (info: IEntityInfo) => fpipe(getEntityState(info), getCurrentRange);\nexport const entityIds = (info: IEntityInfo) => fpipe(getEntityState(info), getEntityIds);\nexport const hasEntitiesLoaded = (info: IEntityInfo) => fpipe(getEntityState(info), getEntityIds, mapToHasEntities);\nexport const addSeconds = (date: Date, seconds: number): Date =>\n  new Date(\n    date.getFullYear(),\n    date.getMonth(),\n    date.getDate(),\n    date.getHours(),\n    date.getMinutes(),\n    date.getSeconds() + seconds,\n    date.getMilliseconds()\n  );\nexport const nowAfterExpiry = (expiry: Date): boolean => expiry < new Date();\nexport const isSubsequentRange = (a: any, b: any) => (a.start || a.first || a.skip + a.take) > (b.end || b.last || b.skip + b.take);\n\nexport const warnIfMissingStore: (() => void) & { lastWarnTime?: number } = () =>\n  !warnIfMissingStore.lastWarnTime || Math.abs(new Date(warnIfMissingStore.lastWarnTime).valueOf() - new Date(Date.now()).valueOf()) > 15000\n    ? (console.warn(\n         \n        '[NGRX-AE] Warning! The NGRX_AUTO_ENTITY_APP_STORE provider has not been configured! *IfNecessary actions require accessing your store in order to function properly!'\n      ),\n      (warnIfMissingStore.lastWarnTime = Date.now()),\n      void 0)\n    : void 0;\n\nconst warnMissingStore = () => pipe(tap(([, store]) => (!store ? warnIfMissingStore() : null)));\n\nexport const getAppStore = <TAction>(injector: Injector) =>\n  pipe(\n    mergeMap((action: TAction) => {\n      try {\n        const store = injector.get(NGRX_AUTO_ENTITY_APP_STORE);\n        return of({ action, store } as { action: TAction; store: Store<any> });\n      } catch {\n        warnIfMissingStore();\n        return of({ action, store: undefined } as { action: TAction; store: Store<any> });\n      }\n    }),\n    filter(({ store }) => !!store)\n  );\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { select } from '@ngrx/store';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { filter, map, mergeMap, take } from 'rxjs/operators';\nimport { Load, LoadIfNecessary } from '../actions/load-actions';\nimport { LoadAll, LoadAllIfNecessary } from '../actions/load-all-actions';\nimport { LoadMany, LoadManyIfNecessary } from '../actions/load-many-actions';\nimport { LoadPage, LoadPageIfNecessary } from '../actions/load-page-actions';\nimport { LoadRange, LoadRangeIfNecessary } from '../actions/load-range-actions';\nimport {\n  addSeconds,\n  entityCurrentPage,\n  entityCurrentRange,\n  entityIds,\n  entityIsLoading,\n  entityLoadedAt,\n  getAppStore,\n  hasEntitiesLoaded,\n  isSubsequentRange,\n  nowAfterExpiry\n} from './if-necessary-operator-utils';\n\n@Injectable()\nexport class EntityIfNecessaryOperators {\n  private readonly injector = inject(Injector);\n\n  loadIfNecessary<TModel>() {\n    return (source: Observable<LoadIfNecessary<TModel>>) =>\n      source.pipe(\n        getAppStore<LoadIfNecessary<TModel>>(this.injector),\n        mergeMap(({ action: { info, keys, maxAge, criteria, correlationId }, store }) =>\n          combineLatest([\n            store.pipe(select(entityLoadedAt(info)), take(1)),\n            store.pipe(select(entityIsLoading(info)), take(1)),\n            store.pipe(select(hasEntitiesLoaded(info)), take(1)),\n            of(info.defaultMaxAge),\n            store.pipe(select(entityIds(info)), take(1))\n          ]).pipe(\n            map(([loadedAt, isLoading, hasEntities, defaultMaxAge, ids]) => ({\n              loadedAt,\n              isLoading,\n              hasEntities,\n              defaultMaxAge,\n              missing: !loadedAt || !hasEntities || (!!ids && ids.indexOf(keys) === -1),\n              checkAge: !!defaultMaxAge || !!maxAge\n            })),\n            filter(\n              ({ isLoading, missing, checkAge, loadedAt, defaultMaxAge }) =>\n                !isLoading && (missing || (checkAge ? nowAfterExpiry(addSeconds(new Date(loadedAt), maxAge || defaultMaxAge)) : missing))\n            ),\n            map(() => new Load(info.modelType, keys, criteria, correlationId))\n          )\n        )\n      );\n  }\n\n  loadAllIfNecessary<TModel>() {\n    return (source: Observable<LoadAllIfNecessary<TModel>>) =>\n      source.pipe(\n        getAppStore<LoadAllIfNecessary<TModel>>(this.injector),\n        mergeMap(({ action: { info, maxAge, criteria, correlationId }, store }) =>\n          combineLatest([\n            store.pipe(select(entityLoadedAt(info)), take(1)),\n            store.pipe(select(entityIsLoading(info)), take(1)),\n            store.pipe(select(hasEntitiesLoaded(info)), take(1)),\n            of(info.defaultMaxAge)\n          ]).pipe(\n            map(([loadedAt, isLoading, hasEntities, defaultMaxAge]) => ({\n              loadedAt,\n              isLoading,\n              hasEntities,\n              defaultMaxAge,\n              missing: !loadedAt || !hasEntities,\n              checkAge: !!defaultMaxAge || !!maxAge\n            })),\n            filter(\n              ({ isLoading, missing, checkAge, loadedAt, defaultMaxAge }) =>\n                !isLoading &&\n                (missing || (checkAge ? nowAfterExpiry(addSeconds(new Date(loadedAt as number), maxAge || defaultMaxAge)) : missing))\n            ),\n            map(() => new LoadAll(info.modelType, criteria, correlationId))\n          )\n        )\n      );\n  }\n\n  loadManyIfNecessary<TModel>() {\n    return (source: Observable<LoadManyIfNecessary<TModel>>) =>\n      source.pipe(\n        getAppStore<LoadManyIfNecessary<TModel>>(this.injector),\n        mergeMap(({ action: { info, maxAge, criteria, correlationId }, store }) =>\n          combineLatest([\n            store.pipe(select(entityLoadedAt(info)), take(1)),\n            store.pipe(select(entityIsLoading(info)), take(1)),\n            store.pipe(select(hasEntitiesLoaded(info)), take(1)),\n            of(info.defaultMaxAge)\n          ]).pipe(\n            map(([loadedAt, isLoading, hasEntities, defaultMaxAge]) => ({\n              loadedAt,\n              isLoading,\n              hasEntities,\n              defaultMaxAge,\n              missing: !loadedAt || !hasEntities,\n              checkAge: !!defaultMaxAge || !!maxAge\n            })),\n            filter(\n              ({ isLoading, missing, checkAge, loadedAt, defaultMaxAge }) =>\n                !isLoading && (missing || (checkAge ? nowAfterExpiry(addSeconds(new Date(loadedAt), maxAge || defaultMaxAge)) : missing))\n            ),\n            map(() => new LoadMany(info.modelType, criteria, correlationId))\n          )\n        )\n      );\n  }\n\n  loadPageIfNecessary<TModel>() {\n    return (source: Observable<LoadPageIfNecessary<TModel>>) =>\n      source.pipe(\n        getAppStore<LoadPageIfNecessary<TModel>>(this.injector),\n        mergeMap(({ action: { info, page, maxAge, criteria, correlationId }, store }) =>\n          combineLatest([\n            store.pipe(select(entityLoadedAt(info)), take(1)),\n            store.pipe(select(entityIsLoading(info)), take(1)),\n            store.pipe(select(hasEntitiesLoaded(info)), take(1)),\n            of(info.defaultMaxAge),\n            store.pipe(select(entityCurrentPage(info)), take(1))\n          ]).pipe(\n            map(([loadedAt, isLoading, hasEntities, defaultMaxAge, currentPage]) => ({\n              loadedAt,\n              isLoading,\n              hasEntities,\n              defaultMaxAge,\n              missing: !loadedAt || !hasEntities,\n              samePage: page.page === currentPage.page,\n              checkAge: !!defaultMaxAge || !!maxAge\n            })),\n            filter(\n              ({ isLoading, missing, samePage, checkAge, loadedAt, defaultMaxAge }) =>\n                !isLoading &&\n                (missing || !samePage || (checkAge ? nowAfterExpiry(addSeconds(new Date(loadedAt), maxAge || defaultMaxAge)) : missing))\n            ),\n            map(() => new LoadPage(info.modelType, page, criteria, correlationId))\n          )\n        )\n      );\n  }\n\n  loadRangeIfNecessary<TModel>() {\n    return (source: Observable<LoadRangeIfNecessary<TModel>>) =>\n      source.pipe(\n        getAppStore<LoadRangeIfNecessary<TModel>>(this.injector),\n        mergeMap(({ action: { info, range, maxAge, criteria, correlationId }, store }) =>\n          combineLatest([\n            store.pipe(select(entityLoadedAt(info)), take(1)),\n            store.pipe(select(entityIsLoading(info)), take(1)),\n            store.pipe(select(hasEntitiesLoaded(info)), take(1)),\n            of(info.defaultMaxAge),\n            store.pipe(select(entityCurrentRange(info)), take(1))\n          ]).pipe(\n            map(([loadedAt, isLoading, hasEntities, defaultMaxAge, currentRange]) => ({\n              loadedAt,\n              isLoading,\n              hasEntities,\n              defaultMaxAge,\n              missing: !loadedAt || !hasEntities,\n              nonFollowingRange: !isSubsequentRange(range, currentRange),\n              checkAge: !!defaultMaxAge || !!maxAge\n            })),\n            filter(\n              ({ isLoading, missing, nonFollowingRange, checkAge, loadedAt, defaultMaxAge }) =>\n                !isLoading &&\n                (missing ||\n                  !nonFollowingRange ||\n                  (checkAge ? nowAfterExpiry(addSeconds(new Date(loadedAt), maxAge || defaultMaxAge)) : missing))\n            ),\n            map(() => new LoadRange(info.modelType, range, criteria, correlationId))\n          )\n        )\n      );\n  }\n}\n","import { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { EntityAction } from '../actions/entity-action';\nimport { ENTITY_OPTS_PROP } from './entity-tokens';\n\n/**\n * Operator that determines if an effect should run for the given model type and action.\n */\nexport const shouldApplyEffect =\n  <TModel, TAction extends EntityAction<TModel>>() =>\n  (source: Observable<TAction>) =>\n    source.pipe(filter(({ actionType, info }) => !((info.modelType[ENTITY_OPTS_PROP] || {}).excludeEffects || {})[actionType]));\n","import { throwError } from 'rxjs';\nimport { IEntityInfo } from '../actions/entity-info';\n\nexport const notImplemented = (method: string, entityInfo: IEntityInfo): string =>\n  `Entity service method \"${method}\" has not been implemented. (Entity: ${entityInfo.modelName})`;\nexport const notAFunction = (method: string, entityInfo: IEntityInfo): string =>\n  `Entity service method \"${method}\" is not a function. (Entity: ${entityInfo.modelName})`;\n\nexport const logAndThrow = (method: string, err: any, entityInfo: IEntityInfo) => {\n  console.error(`[NGRX-AE] ! Service error: ${method}(). (Entity: ${entityInfo.modelName})`);\n  console.error(err);\n  return throwError({ info: entityInfo, err });\n};\n\nexport const logServiceLocateFailure = (entityInfo: IEntityInfo, serviceName?: string): void =>\n  console.error(`[NGRX-AE] ! Error: Unable to locate entity service for model \"${entityInfo.modelName}\"`);\n\nexport const logErrorDetails = (error: any): void => console.error(`[NGRX-AE] ! Error Details:`, error);\n","import { Injector } from '@angular/core';\nimport { IEntityInfo } from '../actions/entity-info';\nimport { logErrorDetails, logServiceLocateFailure } from './error-handling';\nimport { IAutoEntityService } from './interface';\n\nexport const failResolution = (error: any, entityInfo: IEntityInfo): never => {\n  logServiceLocateFailure(entityInfo);\n  logErrorDetails(error);\n  throw error;\n};\n\nexport const resolveService = <TModel>(entityInfo: Readonly<IEntityInfo>, injector: Injector): IAutoEntityService<TModel> => {\n  return injector.get(entityInfo.modelType);\n};\n\nexport const resolveServiceDeep = <TModel>(\n  entityInfo: Readonly<IEntityInfo>,\n  injector: Injector,\n  remaining: Injector[]\n): IAutoEntityService<TModel> | never => {\n  try {\n    return resolveService(entityInfo, injector);\n  } catch (err) {\n    if (remaining.length) {\n      const [first, ...rest] = remaining;\n      return resolveServiceDeep(entityInfo, first, rest);\n    } else {\n      throw failResolution(err, entityInfo);\n    }\n  }\n};\n","import { Injector } from '@angular/core';\nimport { IEntityInfo } from '../actions/entity-info';\nimport { IAutoEntityService } from './interface';\nimport { resolveServiceDeep } from './service-resolution';\n\nlet INJECTORS: NonNullable<ReadonlyArray<Injector>> = Object.freeze([]);\n\nexport const getInjectors = () => INJECTORS;\n\nexport const resetInjectors = () => (INJECTORS = Object.freeze([]));\n\nexport const getService = <TModel>(entityInfo: IEntityInfo, injector: Injector): IAutoEntityService<TModel> =>\n  resolveServiceDeep(entityInfo, injector, [...INJECTORS]);\n\nexport const prepend = <T>(first: T, rest: ReadonlyArray<T>): ReadonlyArray<T> => Object.freeze([first, ...rest]);\n\nexport const addInjector = (injector: Injector): void => {\n  INJECTORS = prepend(injector, INJECTORS);\n};\n","import { Injector } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { IEntityInfo } from '../actions/entity-info';\nimport { logAndThrow, notAFunction, notImplemented } from './error-handling';\nimport { IAutoEntityService } from './interface';\nimport { getService } from './service-injection';\n\nexport const invokeService = <TModel, TModelObs, TResult>(\n  method: string,\n  entityInfo: IEntityInfo,\n  invoke: (service: IAutoEntityService<TModel>) => Observable<TModelObs>,\n  toResult: (entity: TModelObs) => TResult,\n  service: IAutoEntityService<TModel>\n) =>\n  !service[method]\n    ? throwError({ info: entityInfo, message: notImplemented(method, entityInfo) })\n    : typeof service[method] !== 'function'\n    ? throwError({ info: entityInfo, message: notAFunction(method, entityInfo) })\n    : invoke(service).pipe(\n        map(toResult),\n        catchError(err => throwError({ info: entityInfo, err }))\n      );\n\nexport const callService = <TModel, TModelObs, TResult>(\n  method: keyof IAutoEntityService<TModel>,\n  entityInfo: IEntityInfo,\n  injector: Injector,\n  invoke: (service: IAutoEntityService<TModel>) => Observable<TModelObs>,\n  toResult: (entity: TModelObs) => TResult\n): Observable<TResult> => {\n  try {\n    const service = getService(entityInfo, injector);\n    return invokeService(method, entityInfo, invoke, toResult, service);\n  } catch (err) {\n    return logAndThrow(method, err, entityInfo);\n  }\n};\n","import { IEntityInfo } from '../actions/entity-info';\nimport { IEntityTransformer } from '../decorators/entity-options';\n\nconst FROM = 'fromServer';\nconst TO = 'toServer';\n\ntype TransformFn = (value: any, criteria?: any) => any;\nconst identity = value => value;\n\nexport const getTransforms = (transform: IEntityTransformer[], prop: string): TransformFn[] =>\n  !!transform && !!transform.length\n    ? transform.filter(tx => !!tx[prop]).map(tx => tx[prop]) // select custom transformations\n    : [identity]; // provide identity transformation as default\n\nexport const applyTransforms =\n  (transforms: TransformFn[], criteria?: any) =>\n  (originalEntity: any): any =>\n    transforms.reduce((entity, transform) => transform(entity, criteria), { ...originalEntity });\n\nexport const transformSingleFromServer =\n  <TModel>(entityInfo: IEntityInfo, criteria?: any) =>\n  (entity: any): TModel => {\n    const transforms = getTransforms(entityInfo.transform, FROM);\n    return applyTransforms(transforms, criteria)(entity);\n  };\n\nexport const transformArrayFromServer =\n  <TModel>(entityInfo: IEntityInfo, criteria?: any) =>\n  (entities: TModel[]): TModel[] => {\n    const transforms = getTransforms(entityInfo.transform, FROM);\n    return entities.map(applyTransforms(transforms, criteria));\n  };\n\nexport const transformSingleToServer =\n  <TModel>(entityInfo: IEntityInfo, criteria?: any) =>\n  (originalEntity: TModel): any => {\n    const transforms = getTransforms(entityInfo.transform, TO).reverse();\n    return applyTransforms(transforms, criteria)(originalEntity);\n  };\n\nexport const transformArrayToServer =\n  <TModel>(entityInfo: IEntityInfo, criteria?: any) =>\n  (entities: TModel[]): any[] => {\n    const transforms = getTransforms(entityInfo.transform, TO).reverse();\n    return entities.map(applyTransforms(transforms, criteria));\n  };\n\n// User utilities\n\nexport const transformEntityFromServer = <TModel>(entityInfo: IEntityInfo, entity: any, criteria?: any): TModel =>\n  transformSingleFromServer<TModel>(entityInfo, criteria)(entity);\n\nexport const transformEntitiesFromServer = <TModel>(entityInfo: IEntityInfo, entities: any[], criteria?: any): TModel[] =>\n  transformArrayFromServer<TModel>(entityInfo, criteria)(entities);\n\nexport const transformEntityToServer = <TModel>(entityInfo: IEntityInfo, entity: TModel, criteria?: any): any =>\n  transformSingleToServer<TModel>(entityInfo, criteria)(entity);\n\nexport const transformEntitiesToServer = <TModel>(entityInfo: IEntityInfo, entities: any[], criteria?: any): TModel[] =>\n  transformArrayToServer<TModel>(entityInfo, criteria)(entities);\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { IEntityInfo } from '../actions/entity-info';\nimport { Page, Range } from '../models';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { IEntityIdentitiesRef, IEntityIdentityRef, IEntityPageRef, IEntityRangeRef, IEntityRef } from './refs';\nimport { callService } from './service-invocation';\nimport { transformArrayFromServer, transformArrayToServer, transformSingleFromServer, transformSingleToServer } from './transformation';\nimport { IEntityWithPageInfo, IEntityWithRangeInfo } from './wrapper-models';\n\n/**\n * Looks up client-provided entity service class using Angular's injector and this package's naming\n * conventions.  Then calls client's service and provides success/failure handling.\n */\n@Injectable()\nexport class NgrxAutoEntityService {\n  private readonly injector = inject(Injector);\n\n  load<TModel>(entityInfo: IEntityInfo, keys: any, criteria?: any): Observable<IEntityRef<TModel>> {\n    return callService<TModel, TModel, IEntityRef<TModel>>(\n      'load',\n      entityInfo,\n      this.injector,\n      service => service.load(entityInfo, keys, criteria),\n      entity => ({ info: entityInfo, entity: transformSingleFromServer(entityInfo, criteria)(entity) as TModel })\n    );\n  }\n\n  loadAll<TModel>(entityInfo: IEntityInfo, criteria?: any): Observable<IEntityRef<TModel[]>> {\n    return callService<TModel, TModel[], IEntityRef<TModel[]>>(\n      'loadAll',\n      entityInfo,\n      this.injector,\n      service => service.loadAll(entityInfo, criteria),\n      entities => ({ info: entityInfo, entity: transformArrayFromServer(entityInfo, criteria)(entities) as TModel[] })\n    );\n  }\n\n  loadMany<TModel>(entityInfo: IEntityInfo, criteria?: any): Observable<IEntityRef<TModel[]>> {\n    return callService<TModel, TModel[], IEntityRef<TModel[]>>(\n      'loadMany',\n      entityInfo,\n      this.injector,\n      service => service.loadMany(entityInfo, criteria),\n      entities => ({ info: entityInfo, entity: transformArrayFromServer(entityInfo, criteria)(entities) as TModel[] })\n    );\n  }\n\n  loadPage<TModel>(entityInfo: IEntityInfo, page: Page, criteria?: any): Observable<IEntityPageRef<TModel>> {\n    return callService<TModel, IEntityWithPageInfo<TModel>, IEntityPageRef<TModel>>(\n      'loadPage',\n      entityInfo,\n      this.injector,\n      service => service.loadPage(entityInfo, page, criteria),\n      result => ({\n        info: entityInfo,\n        pageInfo: result.pageInfo,\n        entity: transformArrayFromServer(entityInfo, criteria)(result.entities) as TModel[]\n      })\n    );\n  }\n\n  loadRange<TModel>(entityInfo: IEntityInfo, range: Range, criteria?: any): Observable<IEntityRangeRef<TModel>> {\n    return callService<TModel, IEntityWithRangeInfo<TModel>, IEntityRangeRef<TModel>>(\n      'loadRange',\n      entityInfo,\n      this.injector,\n      service => service.loadRange(entityInfo, range, criteria),\n      result => ({\n        info: entityInfo,\n        rangeInfo: result.rangeInfo,\n        entity: transformArrayFromServer(entityInfo, criteria)(result.entities) as TModel[]\n      })\n    );\n  }\n\n  create<TModel>(entityInfo: IEntityInfo, entity: TModel, criteria?: any): Observable<IEntityRef<TModel>> {\n    const transformed = transformSingleToServer(entityInfo, criteria)(entity);\n    return callService<TModel, TModel, IEntityRef<TModel>>(\n      'create',\n      entityInfo,\n      this.injector,\n      service => service.create(entityInfo, transformed, criteria, entity),\n      created => ({ info: entityInfo, entity: transformSingleFromServer(entityInfo, criteria)(created) as TModel })\n    );\n  }\n\n  createMany<TModel>(entityInfo: IEntityInfo, entities: TModel[], criteria?: any): Observable<IEntityRef<TModel[]>> {\n    const transformed = transformArrayToServer(entityInfo, criteria)(entities);\n    return callService<TModel, TModel[], IEntityRef<TModel[]>>(\n      'createMany',\n      entityInfo,\n      this.injector,\n      service => service.createMany(entityInfo, transformed, criteria, entities),\n      created => ({ info: entityInfo, entity: transformArrayFromServer(entityInfo, criteria)(created) as TModel[] })\n    );\n  }\n\n  update<TModel>(entityInfo: IEntityInfo, entity: TModel, criteria?: any): Observable<IEntityRef<TModel>> {\n    const transformed = transformSingleToServer(entityInfo, criteria)(entity);\n    return callService<TModel, TModel, IEntityRef<TModel>>(\n      'update',\n      entityInfo,\n      this.injector,\n      service => service.update(entityInfo, transformed, criteria, entity),\n      updated => ({ info: entityInfo, entity: transformSingleFromServer(entityInfo, criteria)(updated) as TModel })\n    );\n  }\n\n  updateMany<TModel>(entityInfo: IEntityInfo, entities: TModel[], criteria?: any): Observable<IEntityRef<TModel[]>> {\n    const transformed = transformArrayToServer(entityInfo, criteria)(entities);\n    return callService<TModel, TModel[], IEntityRef<TModel[]>>(\n      'updateMany',\n      entityInfo,\n      this.injector,\n      service => service.updateMany(entityInfo, transformed, criteria, entities),\n      updatedEntities => ({\n        info: entityInfo,\n        entity: transformArrayFromServer(entityInfo, criteria)(updatedEntities) as TModel[]\n      })\n    );\n  }\n\n  upsert<TModel>(entityInfo: IEntityInfo, entity: TModel, criteria?: any): Observable<IEntityRef<TModel>> {\n    const transformed = transformSingleToServer(entityInfo, criteria)(entity);\n    return callService<TModel, TModel, IEntityRef<TModel>>(\n      'upsert',\n      entityInfo,\n      this.injector,\n      service => service.upsert(entityInfo, transformed, criteria, entity),\n      upserted => ({ info: entityInfo, entity: transformSingleFromServer(entityInfo, criteria)(upserted) as TModel })\n    );\n  }\n\n  upsertMany<TModel>(entityInfo: IEntityInfo, entities: TModel[], criteria?: any): Observable<IEntityRef<TModel[]>> {\n    const transformed = transformArrayToServer(entityInfo, criteria)(entities);\n    return callService<TModel, TModel[], IEntityRef<TModel[]>>(\n      'upsertMany',\n      entityInfo,\n      this.injector,\n      service => service.upsertMany(entityInfo, transformed, criteria, entities),\n      upsertedEntities => ({\n        info: entityInfo,\n        entity: transformArrayFromServer(entityInfo, criteria)(upsertedEntities) as TModel[]\n      })\n    );\n  }\n\n  replace<TModel>(entityInfo: IEntityInfo, entity: TModel, criteria?: any): Observable<IEntityRef<TModel>> {\n    const transformed = transformSingleToServer(entityInfo, criteria)(entity);\n    return callService<TModel, TModel, IEntityRef<TModel>>(\n      'replace',\n      entityInfo,\n      this.injector,\n      service => service.replace(entityInfo, transformed, criteria, entity),\n      replaced => ({ info: entityInfo, entity: transformSingleFromServer(entityInfo, criteria)(replaced) as TModel })\n    );\n  }\n\n  replaceMany<TModel>(entityInfo: IEntityInfo, entities: TModel[], criteria?: any): Observable<IEntityRef<TModel[]>> {\n    const transformed = transformArrayToServer(entityInfo, criteria)(entities);\n    return callService<TModel, TModel[], IEntityRef<TModel[]>>(\n      'replaceMany',\n      entityInfo,\n      this.injector,\n      service => service.replaceMany(entityInfo, transformed, criteria, entities),\n      replaced => ({ info: entityInfo, entity: transformArrayFromServer(entityInfo, criteria)(replaced) as TModel[] })\n    );\n  }\n\n  delete<TModel>(entityInfo: IEntityInfo, entity: TModel, criteria?: any): Observable<IEntityRef<TModel>> {\n    const transformed = transformSingleToServer(entityInfo, criteria)(entity);\n    return callService<TModel, TModel, IEntityRef<TModel>>(\n      'delete',\n      entityInfo,\n      this.injector,\n      service => service.delete(entityInfo, transformed, criteria, entity),\n      deleted => ({ info: entityInfo, entity: transformSingleFromServer(entityInfo, criteria)(deleted) as TModel })\n    );\n  }\n\n  deleteMany<TModel>(entityInfo: IEntityInfo, entities: TModel[], criteria?: any): Observable<IEntityRef<TModel[]>> {\n    const transformed = transformArrayToServer(entityInfo, criteria)(entities);\n    return callService<TModel, TModel[], IEntityRef<TModel[]>>(\n      'deleteMany',\n      entityInfo,\n      this.injector,\n      service => service.deleteMany(entityInfo, transformed, criteria, entities),\n      deleted => ({ info: entityInfo, entity: transformArrayFromServer(entityInfo, criteria)(deleted) as TModel[] })\n    );\n  }\n\n  deleteByKey<TModel>(entityInfo: IEntityInfo, key: EntityIdentity, criteria?: any): Observable<IEntityIdentityRef> {\n    return callService<TModel, EntityIdentity, IEntityIdentityRef>(\n      'deleteByKey',\n      entityInfo,\n      this.injector,\n      service => service.deleteByKey(entityInfo, key, criteria),\n      deletedKey => ({ info: entityInfo, entityIdentity: deletedKey })\n    );\n  }\n\n  deleteManyByKey<TModel>(entityInfo: IEntityInfo, keys: EntityIdentity[], criteria?: any): Observable<IEntityIdentitiesRef> {\n    return callService<TModel, EntityIdentity[], IEntityIdentitiesRef>(\n      'deleteManyByKeys',\n      entityInfo,\n      this.injector,\n      service => service.deleteManyByKeys(entityInfo, keys, criteria),\n      deletedKeys => ({ info: entityInfo, entityIdentities: deletedKeys })\n    );\n  }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, mergeMap } from 'rxjs/operators';\nimport { Create, CreateFailure, CreateMany, CreateManyFailure, CreateManySuccess, CreateSuccess } from '../actions/create-actions';\nimport { Delete, DeleteFailure, DeleteMany, DeleteManyFailure, DeleteManySuccess, DeleteSuccess } from '../actions/delete-actions';\nimport {\n  DeleteByKey,\n  DeleteByKeyFailure,\n  DeleteByKeySuccess,\n  DeleteManyByKeys,\n  DeleteManyByKeysFailure,\n  DeleteManyByKeysSuccess\n} from '../actions/delete-by-key-actions';\nimport { Deselect, DeselectAll, Deselected, DeselectedMany, DeselectMany, DeselectManyByKeys } from '../actions/deselection-actions';\nimport { Change, Changed, Edit, EditByKey, Edited, EditedByKey, EditEnded, EditNew, EndEdit } from '../actions/edit-actions';\nimport { Load, LoadFailure, LoadSuccess } from '../actions/load-actions';\nimport { LoadAll, LoadAllFailure, LoadAllSuccess } from '../actions/load-all-actions';\nimport { LoadMany, LoadManyFailure, LoadManySuccess } from '../actions/load-many-actions';\nimport { LoadPage, LoadPageFailure, LoadPageSuccess } from '../actions/load-page-actions';\nimport { LoadRange, LoadRangeFailure, LoadRangeSuccess } from '../actions/load-range-actions';\nimport { Replace, ReplaceFailure, ReplaceMany, ReplaceManyFailure, ReplaceManySuccess, ReplaceSuccess } from '../actions/replace-actions';\nimport {\n  Select,\n  SelectByKey,\n  Selected,\n  SelectedMany,\n  SelectedMore,\n  SelectMany,\n  SelectManyByKeys,\n  SelectMore,\n  SelectMoreByKeys\n} from '../actions/selection-actions';\nimport { Update, UpdateFailure, UpdateMany, UpdateManyFailure, UpdateManySuccess, UpdateSuccess } from '../actions/update-actions';\nimport { Upsert, UpsertFailure, UpsertMany, UpsertManyFailure, UpsertManySuccess, UpsertSuccess } from '../actions/upsert-actions';\nimport { shouldApplyEffect } from '../decorators/entity-operators';\nimport { IEntityIdentitiesRef, IEntityIdentityRef, IEntityPageRef, IEntityRangeRef, IEntityRef } from '../service/refs';\nimport { NgrxAutoEntityService } from '../service/service';\nimport { IEntityError } from '../service/wrapper-models';\n\nexport const handleError = <TModel, TErrorAction>(\n  error: IEntityError,\n  errorAction: TErrorAction,\n  methodName: string\n): Observable<TErrorAction> => {\n  if (error.err instanceof TypeError) {\n    console.error(\n      `[NGRX-AE] ! NgRxAutoEntityService Error: Unable to locate required method (${methodName}) on the entity service configured for the ${error.info.modelName} entity.`,\n      error.err\n    );\n  } else if (error.info && error.message) {\n    console.error(\n      `[NGRX-AE] ! NgRxAutoEntityService Error: Unable to invoke required operations (${methodName}) on the entity service configured for the ${error.info.modelName} entity.`,\n      error.message\n    );\n  } else if (error.message) {\n    console.error(\n      `[NGRX-AE] ! NgRxAutoEntityService Error: Unable to invoke required operations (${methodName}) on the entity service configured for the ${error.info.modelName} entity.`,\n      error.message\n    );\n  } else {\n    console.error(error);\n  }\n  return of(errorAction);\n};\n\n/**\n * Rxjs operators that are intended to be called by client-defined Effects class\n */\n@Injectable()\nexport class EntityOperators {\n  private readonly entityService = inject(NgrxAutoEntityService);\n\n  load<TModel>() {\n    return (source: Observable<Load<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, keys, criteria, correlationId }) => {\n          return this.entityService.load(info, keys, criteria).pipe(\n            map((ref: IEntityRef<TModel>) => new LoadSuccess<TModel>(ref.info.modelType, ref.entity, keys, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(error, new LoadFailure<TModel>(error.info.modelType, error.err, keys, criteria, correlationId), 'load')\n            )\n          );\n        })\n      );\n  }\n\n  loadMany<TModel>() {\n    return (source: Observable<LoadMany<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, criteria, correlationId }) => {\n          return this.entityService.loadMany(info, criteria).pipe(\n            map((ref: IEntityRef<TModel[]>) => new LoadManySuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(error, new LoadManyFailure<TModel>(error.info.modelType, error.err, criteria, correlationId), 'loadMany')\n            )\n          );\n        })\n      );\n  }\n\n  loadAll<TModel>() {\n    return (source: Observable<LoadAll<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, criteria, correlationId }) => {\n          return this.entityService.loadAll(info, criteria).pipe(\n            map((ref: IEntityRef<TModel[]>) => new LoadAllSuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(error, new LoadAllFailure<TModel>(error.info.modelType, error.err, criteria, correlationId), 'loadAll')\n            )\n          );\n        })\n      );\n  }\n\n  loadPage<TModel>() {\n    return (source: Observable<LoadPage<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, page, criteria, correlationId }) => {\n          return this.entityService.loadPage(info, page, criteria).pipe(\n            map(\n              (ref: IEntityPageRef<TModel>) =>\n                new LoadPageSuccess<TModel>(ref.info.modelType, ref.entity, ref.pageInfo, criteria, correlationId)\n            ),\n            catchError((error: IEntityError) =>\n              handleError(error, new LoadPageFailure<TModel>(error.info.modelType, error.err, page, criteria, correlationId), 'loadPage')\n            )\n          );\n        })\n      );\n  }\n\n  loadRange<TModel>() {\n    return (source: Observable<LoadRange<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, range, criteria, correlationId }) => {\n          return this.entityService.loadRange(info, range, criteria).pipe(\n            map(\n              (ref: IEntityRangeRef<TModel>) =>\n                new LoadRangeSuccess<TModel>(ref.info.modelType, ref.entity, ref.rangeInfo, criteria, correlationId)\n            ),\n            catchError((error: IEntityError) =>\n              handleError(error, new LoadRangeFailure<TModel>(error.info.modelType, error.err, range, criteria, correlationId), 'loadRange')\n            )\n          );\n        })\n      );\n  }\n\n  create<TModel>() {\n    return (source: Observable<Create<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entity, criteria, correlationId }) => {\n          return this.entityService.create<TModel>(info, entity, criteria).pipe(\n            map((ref: IEntityRef<TModel>) => new CreateSuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(error, new CreateFailure<TModel>(error.info.modelType, error.err, entity, criteria, correlationId), 'create')\n            )\n          );\n        })\n      );\n  }\n\n  createMany<TModel>() {\n    return (source: Observable<CreateMany<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entities, criteria, correlationId }) => {\n          return this.entityService.createMany<TModel>(info, entities, criteria).pipe(\n            map((ref: IEntityRef<TModel[]>) => new CreateManySuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(\n                error,\n                new CreateManyFailure<TModel>(error.info.modelType, error.err, entities, criteria, correlationId),\n                'createMany'\n              )\n            )\n          );\n        })\n      );\n  }\n\n  update<TModel>() {\n    return (source: Observable<Update<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entity, criteria, correlationId }) => {\n          return this.entityService.update<TModel>(info, entity, criteria).pipe(\n            map((ref: IEntityRef<TModel>) => new UpdateSuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(error, new UpdateFailure<TModel>(error.info.modelType, error.err, entity, criteria, correlationId), 'update')\n            )\n          );\n        })\n      );\n  }\n\n  updateMany<TModel>() {\n    return (source: Observable<UpdateMany<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entities, criteria, correlationId }) => {\n          return this.entityService.updateMany<TModel>(info, entities, criteria).pipe(\n            map((ref: IEntityRef<TModel[]>) => new UpdateManySuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(\n                error,\n                new UpdateManyFailure<TModel>(error.info.modelType, error.err, entities, criteria, correlationId),\n                'updateMany'\n              )\n            )\n          );\n        })\n      );\n  }\n\n  upsert<TModel>() {\n    return (source: Observable<Upsert<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entity, criteria, correlationId }) => {\n          return this.entityService.upsert<TModel>(info, entity, criteria).pipe(\n            map((ref: IEntityRef<TModel>) => new UpsertSuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(error, new UpsertFailure<TModel>(error.info.modelType, error.err, entity, criteria, correlationId), 'upsert')\n            )\n          );\n        })\n      );\n  }\n\n  upsertMany<TModel>() {\n    return (source: Observable<UpsertMany<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entities, criteria, correlationId }) => {\n          return this.entityService.upsertMany<TModel>(info, entities, criteria).pipe(\n            map((ref: IEntityRef<TModel[]>) => new UpsertManySuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(\n                error,\n                new UpsertManyFailure<TModel>(error.info.modelType, error.err, entities, criteria, correlationId),\n                'upsertMany'\n              )\n            )\n          );\n        })\n      );\n  }\n\n  replace<TModel>() {\n    return (source: Observable<Replace<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entity, criteria, correlationId }) => {\n          return this.entityService.replace<TModel>(info, entity, criteria).pipe(\n            map((ref: IEntityRef<TModel>) => new ReplaceSuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(error, new ReplaceFailure<TModel>(error.info.modelType, error.err, entity, criteria, correlationId), 'replace')\n            )\n          );\n        })\n      );\n  }\n\n  replaceMany<TModel>() {\n    return (source: Observable<ReplaceMany<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entities, criteria, correlationId }) => {\n          return this.entityService.replaceMany<TModel>(info, entities, criteria).pipe(\n            map((ref: IEntityRef<TModel[]>) => new ReplaceManySuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(\n                error,\n                new ReplaceManyFailure<TModel>(error.info.modelType, error.err, entities, criteria, correlationId),\n                'replaceMany'\n              )\n            )\n          );\n        })\n      );\n  }\n\n  delete<TModel>() {\n    return (source: Observable<Delete<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entity, criteria, correlationId }) => {\n          return this.entityService.delete(info, entity, criteria).pipe(\n            map((ref: IEntityRef<TModel>) => new DeleteSuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(error, new DeleteFailure<TModel>(error.info.modelType, error.err, entity, criteria, correlationId), 'delete')\n            )\n          );\n        })\n      );\n  }\n\n  deleteMany<TModel>() {\n    return (source: Observable<DeleteMany<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, entities, criteria, correlationId }) => {\n          return this.entityService.deleteMany<TModel>(info, entities, criteria).pipe(\n            map((ref: IEntityRef<TModel[]>) => new DeleteManySuccess<TModel>(ref.info.modelType, ref.entity, criteria, correlationId)),\n            catchError((error: IEntityError) =>\n              handleError(\n                error,\n                new DeleteManyFailure<TModel>(error.info.modelType, error.err, entities, criteria, correlationId),\n                'deleteMany'\n              )\n            )\n          );\n        })\n      );\n  }\n\n  deleteByKey<TModel>() {\n    return (source: Observable<DeleteByKey<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, key, criteria, correlationId }) => {\n          return this.entityService.deleteByKey<TModel>(info, key, criteria).pipe(\n            map(\n              (ref: IEntityIdentityRef) => new DeleteByKeySuccess<TModel>(ref.info.modelType, ref.entityIdentity, criteria, correlationId)\n            ),\n            catchError((error: IEntityError) =>\n              handleError(\n                error,\n                new DeleteByKeyFailure<TModel>(error.info.modelType, error.err, key, criteria, correlationId),\n                'deleteByKey'\n              )\n            )\n          );\n        })\n      );\n  }\n\n  deleteManyByKey<TModel>() {\n    return (source: Observable<DeleteManyByKeys<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        mergeMap(({ info, keys, criteria, correlationId }) => {\n          return this.entityService.deleteManyByKey<TModel>(info, keys, criteria).pipe(\n            map(\n              (ref: IEntityIdentitiesRef) =>\n                new DeleteManyByKeysSuccess<TModel>(ref.info.modelType, ref.entityIdentities, criteria, correlationId)\n            ),\n            catchError((error: IEntityError) =>\n              handleError(\n                error,\n                new DeleteManyByKeysFailure<TModel>(error.info.modelType, error.err, keys, criteria, correlationId),\n                'deleteManyByKey'\n              )\n            )\n          );\n        })\n      );\n  }\n\n  select<TModel>() {\n    return (source: Observable<Select<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entity, correlationId }) => new Selected<TModel>(info.modelType, entity, correlationId))\n      );\n  }\n\n  selectByKey<TModel>() {\n    return (source: Observable<SelectByKey<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entityKey, correlationId }) => new Selected<TModel>(info.modelType, entityKey, correlationId))\n      );\n  }\n\n  selectMany<TModel>() {\n    return (source: Observable<SelectMany<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entities, correlationId }) => new SelectedMany<TModel>(info.modelType, entities, correlationId))\n      );\n  }\n\n  selectMore<TModel>() {\n    return (source: Observable<SelectMore<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entities, correlationId }) => new SelectedMore<TModel>(info.modelType, entities, correlationId))\n      );\n  }\n\n  selectManyByKeys<TModel>() {\n    return (source: Observable<SelectManyByKeys<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entitiesKeys, correlationId }) => new SelectedMany<TModel>(info.modelType, entitiesKeys, correlationId))\n      );\n  }\n\n  selectMoreByKeys<TModel>() {\n    return (source: Observable<SelectMoreByKeys<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entitiesKeys, correlationId }) => new SelectedMore<TModel>(info.modelType, entitiesKeys, correlationId))\n      );\n  }\n\n  deselect<TModel>() {\n    return (source: Observable<Deselect<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, correlationId }) => new Deselected<TModel>(info.modelType, correlationId))\n      );\n  }\n\n  deselectMany<TModel>() {\n    return (source: Observable<DeselectMany<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entities, correlationId }) => new DeselectedMany<TModel>(info.modelType, entities, correlationId))\n      );\n  }\n\n  deselectManyByKeys<TModel>() {\n    return (source: Observable<DeselectManyByKeys<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entitiesKeys, correlationId }) => new DeselectedMany<TModel>(info.modelType, entitiesKeys, correlationId))\n      );\n  }\n\n  deselectAll<TModel>() {\n    return (source: Observable<DeselectAll<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, correlationId }) => new DeselectedMany<TModel>(info.modelType, null, correlationId))\n      );\n  }\n\n  editNew<TModel>() {\n    return (source: Observable<EditNew<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entity, correlationId }) => new Edited<TModel>(info.modelType, entity, correlationId))\n      );\n  }\n\n  edit<TModel>() {\n    return (source: Observable<Edit<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entity, correlationId }) => new Edited<TModel>(info.modelType, entity, correlationId))\n      );\n  }\n\n  editByKey<TModel>() {\n    return (source: Observable<EditByKey<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, key, correlationId }) => new EditedByKey<TModel>(info.modelType, key, correlationId))\n      );\n  }\n\n  change<TModel>() {\n    return (source: Observable<Change<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, entity, correlationId }) => new Changed<TModel>(info.modelType, entity, correlationId))\n      );\n  }\n\n  endEdit<TModel>() {\n    return (source: Observable<EndEdit<TModel>>) =>\n      source.pipe(\n        shouldApplyEffect(),\n        map(({ info, correlationId }) => new EditEnded<TModel>(info.modelType, correlationId))\n      );\n  }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { ofEntityAction } from '../actions/action-operators';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { EntityIfNecessaryOperators } from './if-necessary-operators';\nimport { EntityOperators } from './operators';\n\n/**\n * Fully-featured entity effects class that provides all standard\n * effect handling for all CURDL operations.\n */\n@Injectable()\nexport class EntityEffects {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n  private readonly ifnOps = inject(EntityIfNecessaryOperators);\n\n  load$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Load), this.ops.load()));\n\n  loadIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadIfNecessary), this.ifnOps.loadIfNecessary())\n  );\n\n  loadAll$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadAll), this.ops.loadAll()));\n\n  loadAllIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadAllIfNecessary), this.ifnOps.loadAllIfNecessary())\n  );\n\n  loadMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadMany), this.ops.loadMany()));\n\n  loadManyIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadManyIfNecessary), this.ifnOps.loadManyIfNecessary())\n  );\n\n  loadPage$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadPage), this.ops.loadPage()));\n\n  loadPageIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadPageIfNecessary), this.ifnOps.loadPageIfNecessary())\n  );\n\n  loadRange$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadRange), this.ops.loadRange()));\n\n  loadRangeIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadRangeIfNecessary), this.ifnOps.loadRangeIfNecessary())\n  );\n\n  create$: Observable<Action> = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Create), this.ops.create()));\n\n  createMany$: Observable<Action> = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.CreateMany), this.ops.createMany())\n  );\n\n  update$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Update), this.ops.update()));\n\n  updateMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.UpdateMany), this.ops.updateMany()));\n\n  upsert$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Upsert), this.ops.upsert()));\n\n  upsertMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.UpsertMany), this.ops.upsertMany()));\n\n  replace$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Replace), this.ops.replace()));\n\n  replaceMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.ReplaceMany), this.ops.replaceMany()));\n\n  delete$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Delete), this.ops.delete()));\n\n  deleteMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.DeleteMany), this.ops.deleteMany()));\n\n  deleteByKey$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.DeleteByKey), this.ops.deleteByKey()));\n\n  deleteManyByKeys$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.DeleteManyByKeys), this.ops.deleteManyByKey())\n  );\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, createEffect } from '@ngrx/effects';\n\nimport { ofEntityAction } from '../actions/action-operators';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { EntityOperators } from './operators';\n\n@Injectable()\nexport class ExtraEffects {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  select$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Select), this.ops.select()));\n\n  selectByKey$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.SelectByKey), this.ops.selectByKey()));\n\n  selectMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.SelectMany), this.ops.selectMany()));\n\n  selectMore$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.SelectMore), this.ops.selectMore()));\n\n  selectManyByKeys$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.SelectManyByKeys), this.ops.selectManyByKeys())\n  );\n\n  selectMoreByKeys$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.SelectMoreByKeys), this.ops.selectMoreByKeys())\n  );\n\n  deselect$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Deselect), this.ops.deselect()));\n\n  deselectMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.DeselectMany), this.ops.deselectMany()));\n\n  deselectManyByKeys$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.DeselectManyByKeys), this.ops.deselectManyByKeys())\n  );\n\n  deselectAll$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.DeselectAll), this.ops.deselectAll()));\n\n  editNew$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.EditNew), this.ops.editNew()));\n\n  edit$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Edit), this.ops.edit()));\n\n  editByKey$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.EditByKey), this.ops.editByKey()));\n\n  change$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Change), this.ops.change()));\n\n  endEdit$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.EndEdit), this.ops.endEdit()));\n}\n","import { camelCase } from '../../util/case';\nimport { iif, isUndefined, map, noop, compose, throwError } from '../../util/func';\nimport { IEntityAction } from '../actions/entity-action';\nimport { getKey } from '../decorators/key-util';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { IEntityState } from '../util/entity-state';\nimport { FEATURE_AFFINITY } from '../util/util-tokens';\n\nexport function stateNameFromAction(action: IEntityAction): string {\n  return camelCase(action.info.modelName);\n}\n\nexport function featureNameFromAction(action: IEntityAction): string {\n  return (action.info.modelType as any)[FEATURE_AFFINITY];\n}\n\nexport function setNewState(featureName: string, stateName: string, state, newState: IEntityState<any>) {\n  const nextState = featureName\n    ? { ...state, [featureName]: { ...state[featureName], [stateName]: newState } }\n    : { ...state, [stateName]: newState };\n  return nextState;\n}\n\nexport const safeGetKey = <TModel>(action: IEntityAction, entity: TModel): EntityIdentity =>\n  compose(\n    map(() => getKey(action, entity)),\n    iif(\n      isUndefined,\n      throwError(\n         \n        `[NGRX-AE] ! Entity key for '${action.info.modelName}' could not be found on this entity instance! Make sure your entity is properly decorated with the necessary key metadata. State will NOT be updated due to misconfiguration of your entity.`\n      ),\n      key => key\n    )\n  )(null);\n\nexport const cloneEntities = (original: any | null) => (original != null ? { ...original } : {});\n\nexport const cloneIds = (ids: EntityIdentity[] | null) => (ids != null ? [...ids] : []);\n\nexport const mergeSingle = (currentEntities, entityKey, newEntity) => ((currentEntities[entityKey] = newEntity), currentEntities);\n\nexport const mergeMany = (currentEntities, newEntities, action) =>\n  newEntities.reduce((entities, entity) => ((entities[safeGetKey(action, entity)] = entity), entities), currentEntities);\n\nexport const deleteSingle = (currentEntities, entityKey) => (delete currentEntities[entityKey], currentEntities);\n\nexport const deleteMany = (currentEntities, entityKeys) => (\n  entityKeys.forEach(entityKey => delete currentEntities[entityKey]), currentEntities\n);\n\nexport const pushSingle = (currentIds, entityKey) => (currentIds.push(entityKey), currentIds);\n\nexport const pushMany = (currentIds, newEntities, action) => (\n  currentIds.push(...newEntities.map(entity => safeGetKey(action, entity))), currentIds\n);\n\nexport const combineUnique = (currentIds, currentEntities, modifiedEntities, action) => {\n  const newIds = modifiedEntities.map(entity => safeGetKey(action, entity)).filter(key => !(key in currentEntities));\n  currentIds.push(...newIds);\n  return currentIds;\n};\n\nexport const has = (array, value) => array.indexOf(value) > -1;\n\nexport const pushIfMissing = (currentEntities, currentIds, entityKey) =>\n  entityKey in currentEntities ? noop() : currentIds.push(entityKey);\n\nexport const pushUnique = (currentEntities, currentIds, entityKey) => (pushIfMissing(currentEntities, currentIds, entityKey), currentIds);\n\nexport const pushManyUnique = (currentEntities, currentIds, entityKeys) => (\n  entityKeys.forEach(entityKey => pushIfMissing(currentEntities, currentIds, entityKey)), currentIds\n);\n\nexport const warnMissingPageInfo = (action: IEntityAction) =>\n  console.log(\n     \n    `[NGRX-AE] Page information for '${action.info.modelName}' was not provided! Page info should be returned from your entity service's loadPage() method. State WILL be updated, however the current page and total entity count information will be incorrect.`\n  );\n\nexport const warnMissingRangeInfo = (action: IEntityAction) =>\n  console.log(\n     \n    `[NGRX-AE] Range information for '${action.info.modelName}' was not provided! Range info should be returned from your entity service's loadPage() method. State WILL be updated, however the current page and total entity count information will be incorrect.`\n  );\n","import { EntityActionTypes } from '../actions/action-types';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { setNewState } from './reduction.utils';\n\nexport const clearReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.Clear: {\n      const newState: IEntityState<any> = {\n        // If the developer has included their own extra state properties with buildState(Entity, { /* custom */ })\n        // then we don't want to mess with it. We want to leave any custom developer state as-is!\n        // Spread in the current state to ensure we KEEP custom developer-defined extra state properties:\n        ...entityState,\n        // Now reset the auto-entity managed properties to their default states:\n        entities: {},\n        ids: [],\n        selections: undefined,\n        edits: undefined,\n        paging: undefined,\n        tracking: undefined\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { CreateManySuccess } from '../actions/create-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, cloneIds, mergeMany, pushMany, setNewState } from './reduction.utils';\n\nexport const createManyReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.CreateMany: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.CreateManyFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.CreateManySuccess: {\n      const createdEntities = (action as CreateManySuccess<any>).entities;\n      const entities = cloneEntities(entityState.entities);\n      const ids = cloneIds(entityState.ids);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: mergeMany(entities, createdEntities, action),\n        ids: pushMany(ids, createdEntities, action),\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false,\n          createdAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { CreateSuccess } from '../actions/create-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, cloneIds, mergeSingle, pushSingle, safeGetKey, setNewState } from './reduction.utils';\n\nexport const createReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.Create: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.CreateFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.CreateSuccess: {\n      const createEntity = (action as CreateSuccess<any>).entity;\n      const createKey = safeGetKey(action, createEntity);\n      const entities = cloneEntities(entityState.entities);\n      const ids = cloneIds(entityState.ids);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: mergeSingle(entities, createKey, createEntity),\n        ids: pushSingle(ids, createKey),\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false,\n          createdAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { DeleteByKeySuccess } from '../actions/delete-by-key-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, deleteSingle, setNewState } from './reduction.utils';\n\nexport const deleteByKeyReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.DeleteByKey: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeleteByKeyFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeleteByKeySuccess: {\n      const deleteKey = (action as DeleteByKeySuccess<any>).key;\n      const clonedEntities = cloneEntities(entityState.entities);\n      const entities = deleteSingle(clonedEntities || {}, deleteKey);\n      const ids = entityState.ids.filter(eid => eid in entities);\n\n      // Better to NOT delete the entity key, but set it to undefined,\n      // to avoid re-generating the underlying runtime class (TODO: find and add link to V8 jit and runtime)\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities,\n        ids,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: false,\n          deletedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { DeleteManyByKeysSuccess } from '../actions/delete-by-key-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, deleteMany, setNewState } from './reduction.utils';\n\nexport const deleteManyByKeysReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.DeleteManyByKeys: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeleteManyByKeysFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeleteManyByKeysSuccess: {\n      const deleteKeys = (action as DeleteManyByKeysSuccess<any>).keys;\n      const clonedEntities = cloneEntities(entityState.entities);\n      const entities = deleteMany(clonedEntities, deleteKeys);\n      const ids = entityState.ids.filter(eid => eid in entities);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities,\n        ids,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: false,\n          deletedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { DeleteManySuccess } from '../actions/delete-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, deleteMany, safeGetKey, setNewState } from './reduction.utils';\n\nexport const deleteManyReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.DeleteMany: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeleteManyFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeleteManySuccess: {\n      const deleteManyEntities = (action as DeleteManySuccess<any>).entities;\n      const deletedIds = deleteManyEntities.map(entity => safeGetKey(action, entity));\n      const clonedEntities = cloneEntities(entityState.entities);\n      const entities = deleteMany(clonedEntities, deletedIds);\n      const ids = entityState.ids.filter(eid => eid in entities);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities,\n        ids,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: false,\n          deletedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { DeleteSuccess } from '../actions/delete-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, deleteSingle, safeGetKey, setNewState } from './reduction.utils';\n\nexport const deleteReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.Delete: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeleteFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeleteSuccess: {\n      const deleteEntity = (action as DeleteSuccess<any>).entity;\n      const deleteKey = safeGetKey(action, deleteEntity);\n      const entities = cloneEntities(entityState.entities);\n      const ids = entityState.ids.filter(eid => eid !== deleteKey);\n\n      // Better to NOT delete the entity key, but set it to undefined,\n      // to avoid re-generating the underlying runtime class (TODO: find and add link to V8 jit and runtime)\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: deleteSingle(entities || {}, deleteKey),\n        ids,\n        tracking: {\n          ...entityState.tracking,\n          isDeleting: false,\n          deletedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { DeselectMany, DeselectManyByKeys } from '../actions/deselection-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { safeGetKey, setNewState } from './reduction.utils';\n\nexport const deselectManyReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.DeselectMany: {\n      const deselectManyEntities = (action as DeselectMany<any>).entities || [];\n      const deselectingEntities = Array.isArray(deselectManyEntities) ? deselectManyEntities : [];\n      const deselectManyEntityKeys = deselectingEntities.map(entity => safeGetKey(action, entity));\n      const deselectManyCurrentKeys = entityState.selections.currentEntitiesKeys || [];\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...entityState.selections,\n          currentEntitiesKeys: deselectManyCurrentKeys.filter(key => !deselectManyEntityKeys.some(k => k === key))\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeselectManyByKeys: {\n      const deselectManyByKeysKeys = (action as DeselectManyByKeys<any>).entitiesKeys || [];\n      const deselectManyByKeysGuaranteedKeys = Array.isArray(deselectManyByKeysKeys) ? deselectManyByKeysKeys : [];\n      const deselectManyByKeysCurrentKeys = entityState.selections.currentEntitiesKeys || [];\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...entityState.selections,\n          currentEntitiesKeys: deselectManyByKeysCurrentKeys.filter(key => !deselectManyByKeysGuaranteedKeys.some(k => k === key))\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.DeselectAll: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...entityState.selections,\n          currentEntitiesKeys: undefined\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { setNewState } from './reduction.utils';\n\nexport const deselectReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.Deselect: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...entityState.selections,\n          currentEntityKey: undefined\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { Change, Edit, EditByKey, EditNew } from '../actions/edit-actions';\nimport { getKey } from '../decorators/key-util';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { safeGetKey, setNewState } from './reduction.utils';\n\nexport const editsReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.EditNew: {\n      const editEntity = (action as EditNew<any>).entity || {};\n      if (!editEntity) {\n        return state;\n      }\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        edits: {\n          editedEntity: { ...editEntity }, // TODO: Figure out a deep clone option here!!\n          isDirty: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.Edit: {\n      const editEntity = (action as Edit<any>).entity;\n      if (!editEntity) {\n        return state;\n      }\n\n      const editedKey = safeGetKey(action, editEntity);\n      const prevEditedKey = entityState.edits?.editedEntity && getKey(action, entityState.edits.editedEntity);\n      if (editedKey === prevEditedKey) {\n        return state;\n      }\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        edits: {\n          editedEntity: { ...editEntity }, // TODO: Figure out a deep clone option here!!\n          isDirty: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.EditByKey: {\n      const editedKey = (action as EditByKey<any>).key;\n      const prevEditedKey = entityState.edits?.editedEntity && getKey(action, entityState.edits.editedEntity);\n      if (!editedKey || editedKey === prevEditedKey) {\n        return state;\n      }\n\n      const editEntity = entityState.entities[editedKey];\n      if (!editEntity) {\n        return state;\n      }\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        edits: {\n          editedEntity: { ...editEntity }, // TODO: Figure out a deep clone option here!!\n          isDirty: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.Change: {\n      const changeEntity = (action as Change<any>).entity;\n      if (!changeEntity || !entityState.edits?.editedEntity) {\n        return state;\n      }\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        edits: {\n          editedEntity: { ...changeEntity }, // TODO: Figure out a deep clone option here!!\n          isDirty: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.EndEdit: {\n      if (entityState.edits?.editedEntity === undefined) {\n        return state;\n      }\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        edits: {\n          editedEntity: undefined,\n          isDirty: undefined\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { LoadAllSuccess } from '../actions/load-all-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { mergeMany, safeGetKey, setNewState } from './reduction.utils';\n\nexport const loadAllReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.LoadAll: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadAllFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadAllSuccess: {\n      const loadAllEntities = (action as LoadAllSuccess<any>).entities;\n      const loadedIds = loadAllEntities.map(entity => safeGetKey(action, entity));\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: mergeMany({}, loadAllEntities, action),\n        ids: loadedIds,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false,\n          loadedAt: Date.now()\n        },\n        paging: undefined\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { LoadManySuccess } from '../actions/load-many-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, cloneIds, mergeMany, pushManyUnique, safeGetKey, setNewState } from './reduction.utils';\n\nexport const loadManyReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.LoadMany: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadManyFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadManySuccess: {\n      const loadManyEntities = (action as LoadManySuccess<any>).entities;\n      const loadedIds = loadManyEntities.map(entity => safeGetKey(action, entity));\n      const entities = cloneEntities(entityState.entities);\n      const ids = cloneIds(entityState.ids);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        ids: pushManyUnique(entities, ids, loadedIds), // ALERT: IDS FIRST!!\n        entities: mergeMany(entities, loadManyEntities, action), // ALERT: Then entities!\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false,\n          loadedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { LoadPageSuccess } from '../actions/load-page-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { mergeMany, safeGetKey, setNewState, warnMissingPageInfo } from './reduction.utils';\n\nexport const loadPageReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.LoadPage: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadPageFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadPageSuccess: {\n      const loadPageEntities = (action as LoadPageSuccess<any>).entities;\n      const loadedIds = loadPageEntities.map(entity => safeGetKey(action, entity));\n      const pageInfo = (action as LoadPageSuccess<any>).pageInfo;\n      if (!pageInfo) {\n        warnMissingPageInfo(action);\n      }\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: mergeMany({}, loadPageEntities, action),\n        ids: loadedIds,\n        paging: {\n          ...entityState.tracking,\n          currentPage: pageInfo.page,\n          totalPageableCount: pageInfo.totalCount\n        },\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false,\n          loadedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { LoadRangeSuccess } from '../actions/load-range-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, cloneIds, mergeMany, pushMany, setNewState, warnMissingRangeInfo } from './reduction.utils';\n\nexport const loadRangeReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.LoadRange: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadRangeFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadRangeSuccess: {\n      const loadRangeEntities = (action as LoadRangeSuccess<any>).entities;\n      const entities = cloneEntities(entityState.entities);\n      const ids = cloneIds(entityState.ids);\n      const rangeInfo = (action as LoadRangeSuccess<any>).rangeInfo;\n      if (!rangeInfo) {\n        warnMissingRangeInfo(action);\n      }\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: mergeMany(entities, loadRangeEntities, action),\n        ids: pushMany(ids, loadRangeEntities, action),\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false,\n          loadedAt: Date.now()\n        },\n        paging: {\n          ...entityState.paging,\n          currentRange: rangeInfo.range,\n          totalPageableCount: rangeInfo.totalCount\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { LoadSuccess } from '../actions/load-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, cloneIds, mergeSingle, pushUnique, safeGetKey, setNewState } from './reduction.utils';\n\nexport const loadReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.Load: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.LoadSuccess: {\n      const loadEntity = (action as LoadSuccess<any>).entity;\n      const loadKey = safeGetKey(action, loadEntity);\n      const entities = cloneEntities(entityState.entities);\n      const ids = cloneIds(entityState.ids);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        ids: pushUnique(entities, ids, loadKey), // ALERT: IDS FIRST!!!\n        entities: mergeSingle(entities, loadKey, loadEntity), // ALERT: Then entities!\n        tracking: {\n          ...entityState.tracking,\n          isLoading: false,\n          loadedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { ReplaceManySuccess } from '../actions/replace-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, mergeMany, setNewState } from './reduction.utils';\n\nexport const replaceManyReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.ReplaceMany: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.ReplaceManyFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.ReplaceManySuccess: {\n      const replaceManyEntities = (action as ReplaceManySuccess<any>).entities;\n      const entities = cloneEntities(entityState.entities);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: mergeMany(entities, replaceManyEntities, action),\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false,\n          savedAt: Date.now(),\n          replacedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { ReplaceSuccess } from '../actions/replace-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, mergeSingle, safeGetKey, setNewState } from './reduction.utils';\n\nexport const replaceReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.Replace: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.ReplaceFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.ReplaceSuccess: {\n      const replaceEntity = (action as ReplaceSuccess<any>).entity;\n      const replaceKey = safeGetKey(action, replaceEntity);\n      const entities = cloneEntities(entityState.entities);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: mergeSingle(entities, replaceKey, replaceEntity),\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false,\n          savedAt: Date.now(),\n          replacedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { SelectMany, SelectManyByKeys, SelectMore, SelectMoreByKeys } from '../actions/selection-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { safeGetKey, setNewState } from './reduction.utils';\n\nexport const selectManyReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.SelectMany: {\n      const selectManyEntities = (action as SelectMany<any>).entities || [];\n      const selectingEntities = Array.isArray(selectManyEntities) ? selectManyEntities : [];\n      const selectManyKeys = selectingEntities.map(entity => safeGetKey(action, entity));\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...(entityState.selections ?? {}),\n          currentEntitiesKeys: selectManyKeys\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.SelectMore: {\n      const selectMoreEntities = (action as SelectMore<any>).entities || [];\n      const selectingEntities = Array.isArray(selectMoreEntities) ? selectMoreEntities : [];\n      const selectMoreKeys = selectingEntities.map(entity => safeGetKey(action, entity));\n      const selectMoreCurrentKeys = entityState.selections?.currentEntitiesKeys || [];\n      const selectMoreCombinedKeys = new Set([...selectMoreCurrentKeys, ...selectMoreKeys]);\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...(entityState.selections ?? {}),\n          currentEntitiesKeys: [...selectMoreCombinedKeys]\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.SelectManyByKeys: {\n      const selectManyByKeysKeys = (action as SelectManyByKeys<any>).entitiesKeys || [];\n      const selectManyByKeysGuaranteedKeys = Array.isArray(selectManyByKeysKeys) ? selectManyByKeysKeys : [];\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...(entityState.selections ?? {}),\n          currentEntitiesKeys: selectManyByKeysGuaranteedKeys\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.SelectMoreByKeys: {\n      const selectMoreByKeysKeys = (action as SelectMoreByKeys<any>).entitiesKeys || [];\n      const selectMoreByKeysGuaranteedKeys = Array.isArray(selectMoreByKeysKeys) ? selectMoreByKeysKeys : [];\n      const selectMoreByKeysCurrentKeys = entityState.selections?.currentEntitiesKeys || [];\n      const selectMoreByKeysCombinedKeys = new Set([...selectMoreByKeysCurrentKeys, ...selectMoreByKeysGuaranteedKeys]);\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...(entityState.selections ?? {}),\n          currentEntitiesKeys: [...selectMoreByKeysCombinedKeys]\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { Select, SelectByKey } from '../actions/selection-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { safeGetKey, setNewState } from './reduction.utils';\n\nexport const selectReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.Select: {\n      const selectEntity = (action as Select<any>).entity;\n      if (!selectEntity) {\n        return state;\n      }\n\n      const selectKey = safeGetKey(action, selectEntity);\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...entityState.selections,\n          currentEntityKey: selectKey\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.SelectByKey: {\n      const selectByKeyKey = (action as SelectByKey<any>).entityKey;\n      if (!selectByKeyKey) {\n        return state;\n      }\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        selections: {\n          ...entityState.selections,\n          currentEntityKey: selectByKeyKey\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { UpdateManySuccess } from '../actions/update-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, mergeMany, setNewState } from './reduction.utils';\n\nexport const updateManyReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.UpdateMany: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.UpdateManyFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.UpdateManySuccess: {\n      const updateManyEntities = (action as UpdateManySuccess<any>).entities;\n      const entities = cloneEntities(entityState.entities);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: mergeMany(entities, updateManyEntities, action),\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false,\n          savedAt: Date.now(),\n          updatedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { UpdateSuccess } from '../actions/update-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, mergeSingle, safeGetKey, setNewState } from './reduction.utils';\n\nexport const updateReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.Update: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.UpdateFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.UpdateSuccess: {\n      const updateEntity = (action as UpdateSuccess<any>).entity;\n      const updateKey = safeGetKey(action, updateEntity);\n      const entities = cloneEntities(entityState.entities);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        entities: mergeSingle(entities, updateKey, updateEntity),\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false,\n          savedAt: Date.now(),\n          updatedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { UpsertManySuccess } from '../actions/upsert-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, cloneIds, combineUnique, mergeMany, setNewState } from './reduction.utils';\n\nexport const upsertManyReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.UpsertMany: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.UpsertManyFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.UpsertManySuccess: {\n      const upsertManyEntities = (action as UpsertManySuccess<any>).entities;\n      const entities = cloneEntities(entityState.entities);\n      const ids = cloneIds(entityState.ids);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        ids: combineUnique(ids, entities, upsertManyEntities, action),\n        entities: mergeMany(entities, upsertManyEntities, action),\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false,\n          savedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { UpsertSuccess } from '../actions/upsert-actions';\nimport { IEntityState } from '../util/entity-state';\nimport { ReductionBasis } from './reducer';\nimport { cloneEntities, cloneIds, combineUnique, mergeSingle, safeGetKey, setNewState } from './reduction.utils';\n\nexport const upsertReducer = ({ state, action, stateName, featureName, entityState }: ReductionBasis) => {\n  switch (action.actionType) {\n    case EntityActionTypes.Upsert: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: true\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.UpsertFailure: {\n      const newState: IEntityState<any> = {\n        ...entityState,\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n    case EntityActionTypes.UpsertSuccess: {\n      const upsertEntity = (action as UpsertSuccess<any>).entity;\n      const upsertKey = safeGetKey(action, upsertEntity);\n      const entities = cloneEntities(entityState.entities);\n      const ids = cloneIds(entityState.ids);\n\n      const newState: IEntityState<any> = {\n        ...entityState,\n        ids: combineUnique(ids, entities, [upsertEntity], action),\n        entities: mergeSingle(entities, upsertKey, upsertEntity),\n        tracking: {\n          ...entityState.tracking,\n          isSaving: false,\n          savedAt: Date.now()\n        }\n      };\n\n      const next = setNewState(featureName, stateName, state, newState);\n      return next;\n    }\n  }\n};\n","import { EntityActionTypes } from '../actions/action-types';\nimport { clearReducer } from './clear.reducer';\nimport { createManyReducer } from './create-many.reducer';\nimport { createReducer } from './create.reducer';\nimport { deleteByKeyReducer } from './delete-by-key.reducer';\nimport { deleteManyByKeysReducer } from './delete-many-by-keys.reducer';\nimport { deleteManyReducer } from './delete-many.reducer';\nimport { deleteReducer } from './delete.reducer';\nimport { deselectManyReducer } from './deselect-many.reducer';\nimport { deselectReducer } from './deselect.reducer';\nimport { editsReducer } from './edits.reducer';\nimport { loadAllReducer } from './load-all.reducer';\nimport { loadManyReducer } from './load-many.reducer';\nimport { loadPageReducer } from './load-page.reducer';\nimport { loadRangeReducer } from './load-range.reducer';\nimport { loadReducer } from './load.reducer';\nimport { entityReducer } from './reducer';\nimport { replaceManyReducer } from './replace-many.reducer';\nimport { replaceReducer } from './replace.reducer';\nimport { selectManyReducer } from './select-many.reducer';\nimport { selectReducer } from './select.reducer';\nimport { updateManyReducer } from './update-many.reducer';\nimport { updateReducer } from './update.reducer';\nimport { upsertManyReducer } from './upsert-many.reducer';\nimport { upsertReducer } from './upsert.reducer';\n\nexport const ENTITY_ACTION_REDUCER_MAP: { [key in EntityActionTypes]: entityReducer | undefined } = {\n  [EntityActionTypes.Create]: createReducer,\n  [EntityActionTypes.CreateSuccess]: createReducer,\n  [EntityActionTypes.CreateFailure]: createReducer,\n\n  [EntityActionTypes.CreateMany]: createManyReducer,\n  [EntityActionTypes.CreateManySuccess]: createManyReducer,\n  [EntityActionTypes.CreateManyFailure]: createManyReducer,\n\n  [EntityActionTypes.Update]: updateReducer,\n  [EntityActionTypes.UpdateSuccess]: updateReducer,\n  [EntityActionTypes.UpdateFailure]: updateReducer,\n\n  [EntityActionTypes.UpdateMany]: updateManyReducer,\n  [EntityActionTypes.UpdateManySuccess]: updateManyReducer,\n  [EntityActionTypes.UpdateManyFailure]: updateManyReducer,\n\n  [EntityActionTypes.Upsert]: upsertReducer,\n  [EntityActionTypes.UpsertSuccess]: upsertReducer,\n  [EntityActionTypes.UpsertFailure]: upsertReducer,\n\n  [EntityActionTypes.UpsertMany]: upsertManyReducer,\n  [EntityActionTypes.UpsertManySuccess]: upsertManyReducer,\n  [EntityActionTypes.UpsertManyFailure]: upsertManyReducer,\n\n  [EntityActionTypes.Replace]: replaceReducer,\n  [EntityActionTypes.ReplaceSuccess]: replaceReducer,\n  [EntityActionTypes.ReplaceFailure]: replaceReducer,\n\n  [EntityActionTypes.ReplaceMany]: replaceManyReducer,\n  [EntityActionTypes.ReplaceManySuccess]: replaceManyReducer,\n  [EntityActionTypes.ReplaceManyFailure]: replaceManyReducer,\n\n  [EntityActionTypes.Delete]: deleteReducer,\n  [EntityActionTypes.DeleteSuccess]: deleteReducer,\n  [EntityActionTypes.DeleteFailure]: deleteReducer,\n\n  [EntityActionTypes.DeleteMany]: deleteManyReducer,\n  [EntityActionTypes.DeleteManySuccess]: deleteManyReducer,\n  [EntityActionTypes.DeleteManyFailure]: deleteManyReducer,\n\n  [EntityActionTypes.DeleteByKey]: deleteByKeyReducer,\n  [EntityActionTypes.DeleteByKeySuccess]: deleteByKeyReducer,\n  [EntityActionTypes.DeleteByKeyFailure]: deleteByKeyReducer,\n\n  [EntityActionTypes.DeleteManyByKeys]: deleteManyByKeysReducer,\n  [EntityActionTypes.DeleteManyByKeysSuccess]: deleteManyByKeysReducer,\n  [EntityActionTypes.DeleteManyByKeysFailure]: deleteManyByKeysReducer,\n\n  [EntityActionTypes.Load]: loadReducer,\n  [EntityActionTypes.LoadSuccess]: loadReducer,\n  [EntityActionTypes.LoadFailure]: loadReducer,\n\n  [EntityActionTypes.LoadAll]: loadAllReducer,\n  [EntityActionTypes.LoadAllSuccess]: loadAllReducer,\n  [EntityActionTypes.LoadAllFailure]: loadAllReducer,\n\n  [EntityActionTypes.LoadMany]: loadManyReducer,\n  [EntityActionTypes.LoadManySuccess]: loadManyReducer,\n  [EntityActionTypes.LoadManyFailure]: loadManyReducer,\n\n  [EntityActionTypes.LoadPage]: loadPageReducer,\n  [EntityActionTypes.LoadPageSuccess]: loadPageReducer,\n  [EntityActionTypes.LoadPageFailure]: loadPageReducer,\n\n  [EntityActionTypes.LoadRange]: loadRangeReducer,\n  [EntityActionTypes.LoadRangeSuccess]: loadRangeReducer,\n  [EntityActionTypes.LoadRangeFailure]: loadRangeReducer,\n\n  [EntityActionTypes.Clear]: clearReducer,\n\n  [EntityActionTypes.Select]: selectReducer,\n  [EntityActionTypes.SelectByKey]: selectReducer,\n\n  [EntityActionTypes.SelectMany]: selectManyReducer,\n  [EntityActionTypes.SelectManyByKeys]: selectManyReducer,\n  [EntityActionTypes.SelectMore]: selectManyReducer,\n  [EntityActionTypes.SelectMoreByKeys]: selectManyReducer,\n\n  [EntityActionTypes.Deselect]: deselectReducer,\n\n  [EntityActionTypes.DeselectAll]: deselectManyReducer,\n  [EntityActionTypes.DeselectMany]: deselectManyReducer,\n  [EntityActionTypes.DeselectManyByKeys]: deselectManyReducer,\n\n  [EntityActionTypes.Edit]: editsReducer,\n  [EntityActionTypes.EditNew]: editsReducer,\n  [EntityActionTypes.EditByKey]: editsReducer,\n  [EntityActionTypes.Change]: editsReducer,\n  [EntityActionTypes.EndEdit]: editsReducer,\n\n  // Result actions not currently handled by a reducer:\n  [EntityActionTypes.LoadIfNecessary]: undefined,\n  [EntityActionTypes.LoadAllIfNecessary]: undefined,\n  [EntityActionTypes.LoadManyIfNecessary]: undefined,\n  [EntityActionTypes.LoadPageIfNecessary]: undefined,\n  [EntityActionTypes.LoadRangeIfNecessary]: undefined,\n  [EntityActionTypes.Selected]: undefined,\n  [EntityActionTypes.SelectedMany]: undefined,\n  [EntityActionTypes.SelectedMore]: undefined,\n  [EntityActionTypes.Deselected]: undefined,\n  [EntityActionTypes.DeselectedMany]: undefined,\n  [EntityActionTypes.Edited]: undefined,\n  [EntityActionTypes.EditedByKey]: undefined,\n  [EntityActionTypes.Changed]: undefined,\n  [EntityActionTypes.EditEnded]: undefined\n};\n","import { ActionReducer } from '@ngrx/store';\nimport { compose } from '../../util/func';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { EntityActions } from '../actions/entity-actions-union';\nimport { IEntityState } from '../util/entity-state';\nimport { ENTITY_ACTION_REDUCER_MAP } from './entity-action-reducer.map';\nimport { featureNameFromAction, stateNameFromAction } from './reduction.utils';\n\nexport interface ReductionBasis {\n  state: any;\n  action: EntityActions<any>;\n  stateName?: string;\n  featureName?: string;\n  entityState?: IEntityState<any>;\n}\n\nexport type entityReducer = (basis: ReductionBasis) => any;\n\nexport const runReducer = (reducer: entityReducer) => (basis: ReductionBasis) => {\n  try {\n    return reducer(basis);\n  } catch (err) {\n    if (err.message && err.message.startsWith('[NGRX-AE]')) {\n      console.error(err.message);\n      return basis.state;\n    }\n    throw err;\n  }\n};\n\nexport const buildReducerParams = () => (params: ReductionBasis) => ({\n  ...params,\n  stateName: stateNameFromAction(params.action),\n  featureName: featureNameFromAction(params.action)\n});\n\nexport const findEntityState =\n  () =>\n  ({ state, action, stateName, featureName }: ReductionBasis) => ({\n    state,\n    action,\n    stateName,\n    featureName,\n    entityState: featureName ? state[featureName][stateName] : state[stateName]\n  });\n\nexport const defaultReducer = ({ state }) => state;\n\nexport const findEntityReducer = (action: EntityActions<any>) => ENTITY_ACTION_REDUCER_MAP[action.actionType] ?? defaultReducer;\n\nexport const applyEntityReducer = () => (params: ReductionBasis) => runReducer(findEntityReducer(params.action))(params);\n\nexport const autoEntityReducer = (reducer: ActionReducer<any>, state: any, action: EntityActions<any>) => {\n  const nextState = Object.values(EntityActionTypes).includes(action.actionType)\n    ? compose(buildReducerParams(), findEntityState(), applyEntityReducer())({ state, action })\n    : state;\n\n  return reducer(nextState, action);\n};\n","import { ActionReducer } from '@ngrx/store';\nimport { EntityActions } from '../actions/entity-actions-union';\nimport { autoEntityReducer } from './reducer';\n\n/**\n * Provides standard reducer functions to support entity store structure\n *\n * @param reducer - The next reducer to be applied\n */\nexport function autoEntityMetaReducer(reducer: ActionReducer<any>): ActionReducer<any> {\n  return (state, action: EntityActions<any>) => {\n    return autoEntityReducer(reducer, state, action);\n  };\n}\n","import {\n  ENVIRONMENT_INITIALIZER,\n  EnvironmentProviders,\n  inject,\n  InjectionToken,\n  Injector,\n  makeEnvironmentProviders,\n  Provider,\n  ProviderToken,\n  Type\n} from '@angular/core';\nimport { META_REDUCERS, Store } from '@ngrx/store';\nimport { EffectSources } from '@ngrx/effects';\n\nimport { EntityEffects } from './effects/effects-all';\nimport { ExtraEffects } from './effects/effects-extra';\nimport { EntityIfNecessaryOperators } from './effects/if-necessary-operators';\nimport { EntityOperators } from './effects/operators';\nimport { autoEntityMetaReducer } from './reducer/meta-reducer';\nimport { NgrxAutoEntityService } from './service/service';\nimport { addInjector } from './service/service-injection';\nimport { NGRX_AUTO_ENTITY_APP_STORE } from './effects/if-necessary-operator-utils';\nimport { noop } from 'rxjs';\n\ndeclare const ngDevMode: unknown;\n\n/** @internal */\nexport function _assertProvider(token: ProviderToken<unknown>, message: string): void {\n  if (inject(token, { optional: true }) == null) {\n    console.error(message);\n  }\n}\n\n/** @internal */\nexport function _assertStoreProvided(): () => void {\n  _assertProvider(Store, \"[NGRX-AE] ! No provider for Store. Make sure `provideStore()` is included in you application's providers.\");\n  return noop;\n}\n\n/** @internal */\nexport function _assertEffectSourcesProvided(): () => void {\n  _assertProvider(\n    EffectSources,\n    \"[NGRX-AE] ! No provider for EffectSources. Make sure `provideEffects()` is included in you application's providers.\"\n  );\n  return noop;\n}\n\nexport interface NgRxAutoEntityFeature<FeatureKind extends NgRxAutoEntityFeatureKind> {\n  ɵkind: FeatureKind;\n  ɵproviders: Provider[];\n}\n\n/** @internal */\nexport function _isAutoEntityFeature<FeatureKind extends NgRxAutoEntityFeatureKind>(\n  value: any\n): value is NgRxAutoEntityFeature<FeatureKind> {\n  return value && value.ɵkind != null && value.ɵproviders != null;\n}\n\n/** @internal */\nexport function _includesFeature<FeatureKind extends NgRxAutoEntityFeatureKind>(\n  features: NgRxAutoEntityFeatures[],\n  featureKind: FeatureKind\n): boolean {\n  return features.some(feature => feature.ɵkind === featureKind);\n}\n\n/** @internal */\nexport function _autoEntityFeature<FeatureKind extends NgRxAutoEntityFeatureKind>(\n  kind: FeatureKind,\n  providers: Provider[]\n): NgRxAutoEntityFeature<FeatureKind> {\n  return { ɵkind: kind, ɵproviders: providers };\n}\n\nexport function getNgRxAutoEntityMetaReducer() {\n  return autoEntityMetaReducer;\n}\n\n/** @internal */\nexport function _provideAutoEntityStore(features: NgRxAutoEntityFeatures[] = []): Provider[] {\n  const providers: Provider[] = [];\n\n  if (!_includesFeature(features, NgRxAutoEntityFeatureKind.EntityEffectsFeature)) {\n    features.push(_withEntityEffects());\n  }\n\n  if (!_includesFeature(features, NgRxAutoEntityFeatureKind.ExtraEffectsFeature)) {\n    features.push(_withExtraEffects());\n  }\n\n  if (!_includesFeature(features, NgRxAutoEntityFeatureKind.CustomStoreFeature)) {\n    providers.push({\n      provide: NGRX_AUTO_ENTITY_APP_STORE,\n      useFactory: () => inject(Store)\n    });\n  }\n\n  if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n    providers.push({\n      provide: ENVIRONMENT_INITIALIZER,\n      useFactory: _assertStoreProvided,\n      multi: true\n    });\n  }\n\n  return [\n    NgrxAutoEntityService,\n    EntityOperators,\n    EntityIfNecessaryOperators,\n    { provide: META_REDUCERS, useFactory: getNgRxAutoEntityMetaReducer, multi: true },\n    ...providers,\n    ...features.map(feature => feature.ɵproviders)\n  ];\n}\n\n/**\n * Provides the global Auto-Entity providers.\n *\n * @usageNotes\n *\n * ### Providing Auto-Entity\n *\n * ```\n * bootstrapApplication(AppComponent, {\n *   providers: [\n *     provideStore(appReducer)\n *     provideAutoEntityStore(),\n *   ]\n * })\n * ```\n *\n * @publicApi\n * @param features A list of Auto-Entity features to include.\n * @returns A set of providers to set up the Auto-Entity global state.\n */\nexport function provideAutoEntityStore(...features: NgRxAutoEntityFeatures[]): EnvironmentProviders {\n  return makeEnvironmentProviders(_provideAutoEntityStore(features));\n}\n\nlet INJECTOR_DEPTH = 0;\n\n/** @internal */\nexport function _resetInjectorDepth() {\n  INJECTOR_DEPTH = 0;\n}\n\nexport function addNgRxAutoEntityInjector() {\n  const injector = inject(Injector);\n\n  // Update the core NgRxAutoEntityService INJECTORS to include the current injector\n  // This creates a list of injectors that should eventually encompass the entire application\n  // as +feature loaded modules are subsequently created, to be evaluated in reverse order\n  INJECTOR_DEPTH = INJECTOR_DEPTH + 1;\n  addInjector(\n    Injector.create({\n      providers: [],\n      parent: injector,\n      name: 'AutoEntityInjector' + INJECTOR_DEPTH\n    })\n  );\n}\n\n/** @internal */\nexport function _provideAutoEntityState(): Provider[] {\n  return [\n    {\n      provide: ENVIRONMENT_INITIALIZER,\n      multi: true,\n      useValue: addNgRxAutoEntityInjector\n    }\n  ];\n}\n\n/**\n * Provides the feature level Auto-Entity providers.\n *\n * @usageNotes\n *\n * ### Providing an Auto-Entity Feature State\n *\n * ```\n * provideState(featureState),\n * provideAutoEntityState()\n * ```\n *\n * @publicApi\n * @returns A set of providers to set up an Auto-Entity feature state.\n */\nexport function provideAutoEntityState(): EnvironmentProviders {\n  return makeEnvironmentProviders(_provideAutoEntityState());\n}\n\nlet PROVIDED_SERVICES: Type<any>[] = [];\n\n/** @internal */\nexport function _resetProvidedServices() {\n  PROVIDED_SERVICES = [];\n}\n\n/**\n * Provides an entity's service.\n *\n * This will reuse existing services when possible.\n *\n * @usageNotes\n *\n * ### Providing an Entity's Service\n *\n * ```\n * provideEntityService(Products, ProductsService)\n * ```\n *\n * @publicApi\n * @param modelType The entity model to provide a service for.\n * @param service The service to provide.\n * @returns A set of providers to set up an entity's service.\n */\nexport function provideEntityService(modelType: Type<any>, service: Type<any>): EnvironmentProviders {\n  const providers: Provider[] = [{ provide: modelType, useExisting: service }];\n\n  if (!PROVIDED_SERVICES.includes(service)) {\n    providers.unshift(service);\n    PROVIDED_SERVICES.push(service);\n  }\n\n  return makeEnvironmentProviders(providers);\n}\n\nexport type CustomStoreFeature = NgRxAutoEntityFeature<NgRxAutoEntityFeatureKind.CustomStoreFeature>;\n\n/**\n * Customize the provided Auto-Entity Store.\n * @param storeProvider\n */\nexport function withCustomStore(storeProvider: Type<Store> | InjectionToken<Store>): CustomStoreFeature {\n  const providers = [{ provide: NGRX_AUTO_ENTITY_APP_STORE, useExisting: storeProvider }];\n  return _autoEntityFeature(NgRxAutoEntityFeatureKind.CustomStoreFeature, providers);\n}\n\n/**\n * Disables automatic providing of the Auto-Entity Store.\n * @internal\n */\nexport function _withoutCustomStore(): CustomStoreFeature {\n  return _autoEntityFeature(NgRxAutoEntityFeatureKind.CustomStoreFeature, []);\n}\n\nexport type EntityEffectsFeature = NgRxAutoEntityFeature<NgRxAutoEntityFeatureKind.EntityEffectsFeature>;\n\nfunction addNgRxAutoEntityEntityEffects(): void {\n  const effectSources = inject(EffectSources);\n  const entityEffects = inject(EntityEffects);\n  // WARNING: `addEffects` is an undocumented API.\n  effectSources.addEffects(entityEffects);\n}\n\n/** @internal */\nexport function _withEntityEffects(): EntityEffectsFeature {\n  const providers: Provider[] = [\n    EntityEffects,\n    {\n      provide: ENVIRONMENT_INITIALIZER,\n      useValue: addNgRxAutoEntityEntityEffects,\n      multi: true\n    }\n  ];\n\n  if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n    providers.push({\n      provide: ENVIRONMENT_INITIALIZER,\n      useFactory: _assertEffectSourcesProvided,\n      multi: true\n    });\n  }\n\n  return _autoEntityFeature(NgRxAutoEntityFeatureKind.EntityEffectsFeature, providers);\n}\n\n/**\n * Prevent Auto-Entity from registering its entity effects.\n */\nexport function withoutEntityEffects(): EntityEffectsFeature {\n  return _autoEntityFeature(NgRxAutoEntityFeatureKind.EntityEffectsFeature, []);\n}\n\nexport type ExtraEffectsFeature = NgRxAutoEntityFeature<NgRxAutoEntityFeatureKind.ExtraEffectsFeature>;\n\nfunction addNgRxAutoEntityExtraEffects(): void {\n  const effectSources = inject(EffectSources);\n  const extraEffects = inject(ExtraEffects);\n  // WARNING: `addEffects` is an undocumented API.\n  effectSources.addEffects(extraEffects);\n}\n\n/** @internal */\nexport function _withExtraEffects(): ExtraEffectsFeature {\n  const providers = [\n    ExtraEffects,\n    {\n      provide: ENVIRONMENT_INITIALIZER,\n      useValue: addNgRxAutoEntityExtraEffects,\n      multi: true\n    }\n  ];\n  return _autoEntityFeature(NgRxAutoEntityFeatureKind.ExtraEffectsFeature, providers);\n}\n\n/**\n * Prevent Auto-Entity from registering its extra effects.\n *\n * This includes all select, deselect, and edit effects.\n */\nexport function withoutExtraEffects(): ExtraEffectsFeature {\n  return _autoEntityFeature(NgRxAutoEntityFeatureKind.ExtraEffectsFeature, []);\n}\n\nexport type NgRxAutoEntityFeatures = CustomStoreFeature | EntityEffectsFeature | ExtraEffectsFeature;\n\nexport const enum NgRxAutoEntityFeatureKind {\n  CustomStoreFeature,\n  EntityEffectsFeature,\n  ExtraEffectsFeature\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport {\n  _provideAutoEntityState,\n  _provideAutoEntityStore,\n  _withoutCustomStore,\n  withoutEntityEffects,\n  withoutExtraEffects\n} from './provider';\n\n \nexport interface NgRxAutoEntityModuleConfig {\n  excludeEffects?: boolean;\n}\n\n@NgModule({})\nexport class NgRxAutoEntityRootModuleWithEffects {}\n\n@NgModule({})\nexport class NgRxAutoEntityRootModuleNoEntityEffects {}\n\n@NgModule({})\nexport class NgRxAutoEntityRootModuleNoEffects {}\n\n@NgModule({})\nexport class NgRxAutoEntityFeatureModule {}\n\n@NgModule({})\nexport class NgrxAutoEntityModule {\n  /** @deprecated use {@link provideAutoEntityStore} */\n  static forRoot(): ModuleWithProviders<NgRxAutoEntityRootModuleWithEffects> {\n    return {\n      ngModule: NgRxAutoEntityRootModuleWithEffects,\n      providers: _provideAutoEntityStore([_withoutCustomStore()])\n    };\n  }\n\n  /** @deprecated use {@link provideAutoEntityStore} passing in {@link withoutEntityEffects} */\n  static forRootNoEntityEffects(): ModuleWithProviders<NgRxAutoEntityRootModuleNoEntityEffects> {\n    return {\n      ngModule: NgRxAutoEntityRootModuleNoEntityEffects,\n      providers: _provideAutoEntityStore([withoutEntityEffects(), _withoutCustomStore()])\n    };\n  }\n\n  /** @deprecated use {@link provideAutoEntityStore} passing in {@link withoutEntityEffects} and {@link withoutExtraEffects} */\n  static forRootNoEffects(): ModuleWithProviders<NgRxAutoEntityRootModuleNoEffects> {\n    return {\n      ngModule: NgRxAutoEntityRootModuleNoEffects,\n      providers: _provideAutoEntityStore([withoutEntityEffects(), withoutExtraEffects(), _withoutCustomStore()])\n    };\n  }\n\n  /** @deprecated use {@link provideAutoEntityState} */\n  static forFeature(): ModuleWithProviders<NgRxAutoEntityFeatureModule> {\n    return {\n      ngModule: NgRxAutoEntityFeatureModule,\n      providers: _provideAutoEntityState()\n    };\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const NAE_UNDEFINED = new InjectionToken<any>('@briebug/ngrx-auto-entity Undefined', {\n  factory: () => undefined\n});\n","import { Inject, inject, InjectionToken, Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Store } from '@ngrx/store';\nimport { Clear } from '../actions/actions';\nimport { Create, CreateMany } from '../actions/create-actions';\nimport { Delete, DeleteMany } from '../actions/delete-actions';\nimport { DeleteByKey, DeleteManyByKeys } from '../actions/delete-by-key-actions';\nimport { Deselect, DeselectAll, DeselectMany, DeselectManyByKeys } from '../actions/deselection-actions';\nimport { Change, Edit, EditByKey, EditNew, EndEdit } from '../actions/edit-actions';\nimport { Load, LoadIfNecessary } from '../actions/load-actions';\nimport { LoadAll, LoadAllIfNecessary } from '../actions/load-all-actions';\nimport { LoadMany, LoadManyIfNecessary } from '../actions/load-many-actions';\nimport { LoadPage, LoadPageIfNecessary } from '../actions/load-page-actions';\nimport { LoadRange, LoadRangeIfNecessary } from '../actions/load-range-actions';\nimport { Replace, ReplaceMany } from '../actions/replace-actions';\nimport { Select, SelectByKey, SelectMany, SelectManyByKeys, SelectMore, SelectMoreByKeys } from '../actions/selection-actions';\nimport { Update, UpdateMany } from '../actions/update-actions';\nimport { Upsert, UpsertMany } from '../actions/upsert-actions';\nimport { Page, Range } from '../models';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { IEntityFacade, IEntityFacadeBase } from './facade';\nimport { ISelectorMap } from './selector-map';\nimport { TNew } from '../actions/model-constructor';\nimport { NGRX_AUTO_ENTITY_APP_STORE } from '../effects/if-necessary-operator-utils';\nimport { Observable } from 'rxjs';\nimport { IEntityDictionary } from './entity-state';\nimport { NAE_UNDEFINED } from './util-di';\n\n/**\n * Builds a new facade class for the specified entity model and parent state.\n * @param selectors - the selector map for the specified entity\n * @param Type - the constructor for the specified entity\n */\nexport const buildFacade = <TModel, TParentState>(\n  selectors: ISelectorMap<TParentState, TModel>,\n  Type: TNew<TModel>\n): IEntityFacadeBase<TModel> => {\n  class EntityFacadeBase implements IEntityFacade<TModel> {\n    modelType: TNew<TModel>;\n    store: Store<any>;\n\n    /** @deprecated Use the empty constructor instead. The model type will be provided by `buildState`, and the store by `provideStore` or `withCustomStore`. */\n    constructor(modelType: TNew<TModel>, store: Store<any>);\n    constructor();\n    constructor(@Inject(NAE_UNDEFINED) modelType?: TNew<TModel>, @Inject(NAE_UNDEFINED) store?: Store<any>) {\n      this.modelType = modelType ?? Type;\n      this.store = store ?? inject(NGRX_AUTO_ENTITY_APP_STORE);\n\n      this.all$ = this.store.select(selectors.selectAll);\n      this.sorted$ = this.store.select(selectors.selectAllSorted);\n      this.entities$ = this.store.select(selectors.selectEntities);\n      this.ids$ = this.store.select(selectors.selectIds);\n      this.total$ = this.store.select(selectors.selectTotal);\n      this.hasEntities$ = this.store.select(selectors.selectHasEntities);\n      this.hasNoEntities$ = this.store.select(selectors.selectHasNoEntities);\n      this.current$ = this.store.select(selectors.selectCurrentEntity);\n      this.currentKey$ = this.store.select(selectors.selectCurrentEntityKey);\n      this.currentSet$ = this.store.select(selectors.selectCurrentEntities);\n      this.currentSetKeys$ = this.store.select(selectors.selectCurrentEntitiesKeys);\n      this.edited$ = this.store.select(selectors.selectEditedEntity);\n      this.isDirty$ = this.store.select(selectors.selectIsDirty);\n      this.currentPage$ = this.store.select(selectors.selectCurrentPage);\n      this.currentRange$ = this.store.select(selectors.selectCurrentRange);\n      this.totalPageable$ = this.store.select(selectors.selectTotalPageable);\n      this.hasBeenLoaded$ = this.store.select(selectors.selectHasBeenLoaded);\n      this.loadWasAttempted$ = this.store.select(selectors.selectLoadWasAttempted);\n      this.isLoading$ = this.store.select(selectors.selectIsLoading);\n      this.isSaving$ = this.store.select(selectors.selectIsSaving);\n      this.isDeleting$ = this.store.select(selectors.selectIsDeleting);\n      this.loadedAt$ = this.store.select(selectors.selectLoadedAt);\n      this.savedAt$ = this.store.select(selectors.selectSavedAt);\n      this.createdAt$ = this.store.select(selectors.selectCreatedAt);\n      this.updatedAt$ = this.store.select(selectors.selectUpdatedAt);\n      this.replacedAt$ = this.store.select(selectors.selectReplacedAt);\n      this.deletedAt$ = this.store.select(selectors.selectDeletedAt);\n\n      this.all = toSignal(this.all$, { requireSync: true });\n      this.sorted = toSignal(this.sorted$, { requireSync: true });\n      this.entities = toSignal(this.entities$, { requireSync: true });\n      this.ids = toSignal(this.ids$, { requireSync: true });\n      this.total = toSignal(this.total$, { requireSync: true });\n      this.hasEntities = toSignal(this.hasEntities$, { requireSync: true });\n      this.hasNoEntities = toSignal(this.hasNoEntities$, { requireSync: true });\n      this.current = toSignal(this.current$, { requireSync: true });\n      this.currentKey = toSignal(this.currentKey$, { requireSync: true });\n      this.currentSet = toSignal(this.currentSet$, { requireSync: true });\n      this.currentSetKeys = toSignal(this.currentSetKeys$, { requireSync: true });\n      this.edited = toSignal(this.edited$, { requireSync: true });\n      this.isDirty = toSignal(this.isDirty$, { requireSync: true });\n      this.currentPage = toSignal(this.currentPage$, { requireSync: true });\n      this.currentRange = toSignal(this.currentRange$, { requireSync: true });\n      this.totalPageable = toSignal(this.totalPageable$, { requireSync: true });\n      this.hasBeenLoaded = toSignal(this.hasBeenLoaded$, { requireSync: true });\n      this.loadWasAttempted = toSignal(this.loadWasAttempted$, { requireSync: true });\n      this.isLoading = toSignal(this.isLoading$, { requireSync: true });\n      this.isSaving = toSignal(this.isSaving$, { requireSync: true });\n      this.isDeleting = toSignal(this.isDeleting$, { requireSync: true });\n      this.loadedAt = toSignal(this.loadedAt$, { requireSync: true });\n      this.savedAt = toSignal(this.savedAt$, { requireSync: true });\n      this.createdAt = toSignal(this.createdAt$, { requireSync: true });\n      this.updatedAt = toSignal(this.updatedAt$, { requireSync: true });\n      this.replacedAt = toSignal(this.replacedAt$, { requireSync: true });\n      this.deletedAt = toSignal(this.deletedAt$, { requireSync: true });\n    }\n\n    // region Selections\n    all$: Observable<TModel[]>;\n    sorted$: Observable<TModel[]>;\n    entities$: Observable<IEntityDictionary<TModel>>;\n    ids$: Observable<EntityIdentity[]>;\n    total$: Observable<number>;\n    hasEntities$: Observable<boolean>;\n    hasNoEntities$: Observable<boolean>;\n    current$: Observable<TModel>;\n    currentKey$: Observable<EntityIdentity>;\n    currentSet$: Observable<TModel[]>;\n    currentSetKeys$: Observable<EntityIdentity[]>;\n    edited$: Observable<Partial<TModel>>;\n    isDirty$: Observable<boolean>;\n    currentPage$: Observable<Page>;\n    currentRange$: Observable<Range>;\n    totalPageable$: Observable<number>;\n    hasBeenLoaded$: Observable<boolean>;\n    loadWasAttempted$: Observable<boolean>;\n    isLoading$: Observable<boolean>;\n    isSaving$: Observable<boolean>;\n    isDeleting$: Observable<boolean>;\n    loadedAt$: Observable<Date>;\n    savedAt$: Observable<Date>;\n    createdAt$: Observable<Date>;\n    updatedAt$: Observable<Date>;\n    replacedAt$: Observable<Date>;\n    deletedAt$: Observable<Date>;\n\n    all: Signal<TModel[]>;\n    sorted: Signal<TModel[]>;\n    entities: Signal<IEntityDictionary<TModel>>;\n    ids: Signal<EntityIdentity[]>;\n    total: Signal<number>;\n    hasEntities: Signal<boolean>;\n    hasNoEntities: Signal<boolean>;\n    current: Signal<TModel>;\n    currentKey: Signal<EntityIdentity>;\n    currentSet: Signal<TModel[]>;\n    currentSetKeys: Signal<EntityIdentity[]>;\n    edited: Signal<Partial<TModel>>;\n    isDirty: Signal<boolean>;\n    currentPage: Signal<Page>;\n    currentRange: Signal<Range>;\n    totalPageable: Signal<number>;\n    hasBeenLoaded: Signal<boolean>;\n    loadWasAttempted: Signal<boolean>;\n    isLoading: Signal<boolean>;\n    isSaving: Signal<boolean>;\n    isDeleting: Signal<boolean>;\n    loadedAt: Signal<Date>;\n    savedAt: Signal<Date>;\n    createdAt: Signal<Date>;\n    updatedAt: Signal<Date>;\n    replacedAt: Signal<Date>;\n    deletedAt: Signal<Date>;\n    // endregion\n\n    // region Activities\n    select(entity: TModel, correlationId?: string): string {\n      const action = new Select(this.modelType, entity, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    selectByKey(key: EntityIdentity, correlationId?: string): string {\n      const action = new SelectByKey(this.modelType, key, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    selectMany(entities: TModel[], correlationId?: string): string {\n      const action = new SelectMany(this.modelType, entities, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    selectMore(entities: TModel[], correlationId?: string): string {\n      const action = new SelectMore(this.modelType, entities, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    selectManyByKeys(keys: EntityIdentity[], correlationId?: string): string {\n      const action = new SelectManyByKeys(this.modelType, keys, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    selectMoreByKeys(keys: EntityIdentity[], correlationId?: string): string {\n      const action = new SelectMoreByKeys(this.modelType, keys, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    deselect(correlationId?: string): string {\n      const action = new Deselect(this.modelType, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    deselectMany(entities: TModel[], correlationId?: string): string {\n      const action = new DeselectMany(this.modelType, entities, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    deselectManyByKeys(keys: EntityIdentity[], correlationId?: string): string {\n      const action = new DeselectManyByKeys(this.modelType, keys, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    deselectAll(correlationId?: string): string {\n      const action = new DeselectAll(this.modelType, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    edit(entity: Partial<TModel>, correlationId?: string): string {\n      const action = new Edit(this.modelType, entity, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    editNew(entity?: Partial<TModel>, correlationId?: string): string {\n      const action = new EditNew(this.modelType, entity, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    editByKey(key: EntityIdentity, correlationId?: string): string {\n      const action = new EditByKey(this.modelType, key, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    change(entity: Partial<TModel>, correlationId?: string): string {\n      const action = new Change(this.modelType, entity, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    endEdit(correlationId?: string): string {\n      const action = new EndEdit(this.modelType, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    load(keys?: any, criteria?: any, correlationId?: string): string {\n      const action = new Load(this.modelType, keys, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    loadIfNecessary(keys?: any, criteria?: any, maxAge?: number, correlationId?: string): string {\n      const action = new LoadIfNecessary(this.modelType, keys, maxAge, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    loadMany(criteria?: any, correlationId?: string): string {\n      const action = new LoadMany(this.modelType, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    loadManyIfNecessary(criteria?: any, maxAge?: number, correlationId?: string): string {\n      const action = new LoadManyIfNecessary(this.modelType, maxAge, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    loadAll(criteria?: any, correlationId?: string): string {\n      const action = new LoadAll(this.modelType, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    loadAllIfNecessary(criteria?: any, maxAge?: number, correlationId?: string): string {\n      const action = new LoadAllIfNecessary(this.modelType, maxAge, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    loadPage(page: Page, criteria?: any, correlationId?: string): string {\n      const action = new LoadPage(this.modelType, page, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    loadPageIfNecessary(page: Page, criteria?: any, maxAge?: number, correlationId?: string): string {\n      const action = new LoadPageIfNecessary(this.modelType, page, maxAge, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    loadRange(range: Range, criteria?: any, correlationId?: string): string {\n      const action = new LoadRange(this.modelType, range, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    loadRangeIfNecessary(range: Range, criteria?: any, maxAge?: number, correlationId?: string): string {\n      const action = new LoadRangeIfNecessary(this.modelType, range, maxAge, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    create(entity: TModel, criteria?: any, correlationId?: string): string {\n      const action = new Create(this.modelType, entity, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    createMany(entities: TModel[], criteria?: any, correlationId?: string): string {\n      const action = new CreateMany(this.modelType, entities, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    update(entity: TModel, criteria?: any, correlationId?: string): string {\n      const action = new Update(this.modelType, entity, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    updateMany(entities: TModel[], criteria?: any, correlationId?: string): string {\n      const action = new UpdateMany(this.modelType, entities, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    upsert(entity: TModel, criteria?: any, correlationId?: string): string {\n      const action = new Upsert(this.modelType, entity, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    upsertMany(entities: TModel[], criteria?: any, correlationId?: string): string {\n      const action = new UpsertMany(this.modelType, entities, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    replace(entity: TModel, criteria?: any, correlationId?: string): string {\n      const action = new Replace(this.modelType, entity, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    replaceMany(entities: TModel[], criteria?: any, correlationId?: string): string {\n      const action = new ReplaceMany(this.modelType, entities, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    delete(entity: TModel, criteria?: any, correlationId?: string): string {\n      const action = new Delete(this.modelType, entity, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    deleteMany(entities: TModel[], criteria?: any, correlationId?: string): string {\n      const action = new DeleteMany(this.modelType, entities, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    deleteByKey(key: string | number, criteria?: any, correlationId?: string): string {\n      const action = new DeleteByKey(this.modelType, key, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    deleteManyByKeys(keys: EntityIdentity[], criteria?: any, correlationId?: string): string {\n      const action = new DeleteManyByKeys(this.modelType, keys, criteria, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n\n    clear(correlationId?: string): string {\n      const action = new Clear(this.modelType, correlationId);\n      this.store.dispatch(action);\n      return action.correlationId;\n    }\n    // endregion\n  }\n\n  return EntityFacadeBase;\n};\n","import { ActionCreator, Creator } from '@ngrx/store';\nimport { EntityAction } from '../actions/entity-action';\nimport { TNew } from '../actions/model-constructor';\n\nexport interface CorrelatedProps {\n  correlationId?: string;\n}\n\nexport interface StandardProps extends CorrelatedProps {\n  criteria?: any;\n}\n\nexport const NAE_TYPE_ACTION_CACHE = '__nae_type_action_cache';\nexport const cacheOnType = <TModel, TAction extends EntityAction<TModel>, T extends string>(\n  Type: TNew<TModel>,\n  actionName: string,\n  creatorCallback: () => ActionCreator<T, (props: object) => TAction>\n) => (\n  (Type[NAE_TYPE_ACTION_CACHE] = Type[NAE_TYPE_ACTION_CACHE] || Object.create(null)),\n  (Type[NAE_TYPE_ACTION_CACHE][actionName] = Type[NAE_TYPE_ACTION_CACHE][actionName] || creatorCallback()),\n  Type[NAE_TYPE_ACTION_CACHE][actionName]\n);\n\nexport function defineTypedFactoryFunction<TModel, TAction extends EntityAction<TModel>, T extends string>(\n  type: T,\n  creator: Creator\n): ActionCreator<T, (props: object) => TAction> {\n  return Object.defineProperty(creator as (props: object) => TAction, 'type', {\n    value: type,\n    writable: false\n  }) as ActionCreator<T, (props: object) => TAction>;\n}\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { Create, CreateFailure, CreateMany, CreateManyFailure, CreateManySuccess, CreateSuccess } from '../actions/create-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\n\nexport interface CreateProps<TModel> extends StandardProps {\n  entity: TModel;\n}\n\nexport const createCreateAction = <TModel, T extends string, P extends CreateProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CreateProps<TModel>) => Create<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Create, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Create, Type),\n      ({ entity, criteria, correlationId }: CreateProps<TModel>) => new Create(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport const createCreateSuccessAction = <TModel, T extends string, P extends CreateProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CreateProps<TModel>) => CreateSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.CreateSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.CreateSuccess, Type),\n      ({ entity, criteria, correlationId }: CreateProps<TModel>) => new CreateSuccess(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport interface CreateFailureProps<TModel> extends StandardProps {\n  error: any;\n  entity: TModel;\n}\n\nexport const createCreateFailureAction = <TModel, T extends string, P extends CreateFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CreateFailureProps<TModel>) => CreateFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.CreateFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.CreateFailure, Type),\n      ({ error, entity, criteria, correlationId }: CreateFailureProps<TModel>) =>\n        new CreateFailure(Type, error, entity, criteria, correlationId)\n    )\n  );\n\nexport interface CreateManyProps<TModel> extends StandardProps {\n  entities: TModel[];\n}\n\nexport const createCreateManyAction = <TModel, T extends string, P extends CreateManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CreateManyProps<TModel>) => CreateMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.CreateMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.CreateMany, Type),\n      ({ entities, criteria, correlationId }: CreateManyProps<TModel>) => new CreateMany(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport const createCreateManySuccessAction = <TModel, T extends string, P extends CreateManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CreateManyProps<TModel>) => CreateManySuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.CreateManySuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.CreateManySuccess, Type),\n      ({ entities, criteria, correlationId }: CreateManyProps<TModel>) => new CreateManySuccess(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport interface CreateManyFailureProps<TModel> extends StandardProps {\n  error: any;\n  entities: TModel[];\n}\n\nexport const createCreateManyFailureAction = <TModel, T extends string, P extends CreateManyFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CreateManyFailureProps<TModel>) => CreateManyFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.CreateManyFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.CreateManyFailure, Type),\n      ({ error, entities, criteria, correlationId }: CreateManyFailureProps<TModel>) =>\n        new CreateManyFailure(Type, error, entities, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { EntityActionTypes } from '../actions/action-types';\nimport {\n  DeleteByKey,\n  DeleteByKeyFailure,\n  DeleteManyByKeys,\n  DeleteManyByKeysFailure,\n  DeleteManyByKeysSuccess,\n  DeleteByKeySuccess\n} from '../actions/delete-by-key-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\n\nexport interface DeleteByKeyProps<TModel> extends StandardProps {\n  key: EntityIdentity;\n}\n\nexport const createDeleteByKeyAction = <TModel, T extends string, P extends DeleteByKeyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteByKeyProps<TModel>) => DeleteByKey<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteByKey, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteByKey, Type),\n      ({ key, criteria, correlationId }: DeleteByKeyProps<TModel>) => new DeleteByKey(Type, key, criteria, correlationId)\n    )\n  );\n\nexport const createDeleteByKeySuccessAction = <TModel, T extends string, P extends DeleteByKeyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteByKeyProps<TModel>) => DeleteByKeySuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteByKeySuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteByKeySuccess, Type),\n      ({ key, criteria, correlationId }: DeleteByKeyProps<TModel>) => new DeleteByKeySuccess(Type, key, criteria, correlationId)\n    )\n  );\n\nexport interface DeleteByKeyFailureProps<TModel> extends StandardProps {\n  error: any;\n  key: EntityIdentity;\n}\n\nexport const createDeleteByKeyFailureAction = <TModel, T extends string, P extends DeleteByKeyFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteByKeyFailureProps<TModel>) => DeleteByKeyFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteByKeyFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteByKeyFailure, Type),\n      ({ error, key, criteria, correlationId }: DeleteByKeyFailureProps<TModel>) =>\n        new DeleteByKeyFailure(Type, error, key, criteria, correlationId)\n    )\n  );\n\nexport interface DeleteManyByKeysProps<TModel> extends StandardProps {\n  keys: EntityIdentity[];\n}\n\nexport const createDeleteManyByKeysAction = <TModel, T extends string, P extends DeleteManyByKeysProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteManyByKeysProps<TModel>) => DeleteManyByKeys<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteManyByKeys, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteManyByKeys, Type),\n      ({ keys, criteria, correlationId }: DeleteManyByKeysProps<TModel>) => new DeleteManyByKeys(Type, keys, criteria, correlationId)\n    )\n  );\n\nexport const createDeleteManyByKeysSuccessAction = <TModel, T extends string, P extends DeleteManyByKeysProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteManyByKeysProps<TModel>) => DeleteManyByKeysSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteManyByKeysSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteManyByKeysSuccess, Type),\n      ({ keys, criteria, correlationId }: DeleteManyByKeysProps<TModel>) => new DeleteManyByKeysSuccess(Type, keys, criteria, correlationId)\n    )\n  );\n\nexport interface DeleteManyByKeysFailureProps<TModel> extends StandardProps {\n  error: any;\n  keys: EntityIdentity[];\n}\n\nexport const createDeleteManyByKeysFailureAction = <TModel, T extends string, P extends DeleteManyByKeysFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteManyByKeysFailureProps<TModel>) => DeleteManyByKeysFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteManyByKeysFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteManyByKeysFailure, Type),\n      ({ error, keys, criteria, correlationId }: DeleteManyByKeysFailureProps<TModel>) =>\n        new DeleteManyByKeysFailure(Type, error, keys, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { Delete, DeleteFailure, DeleteMany, DeleteManyFailure, DeleteManySuccess, DeleteSuccess } from '../actions/delete-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\n\nexport interface DeleteProps<TModel> extends StandardProps {\n  entity: TModel;\n}\n\nexport const createDeleteAction = <TModel, T extends string, P extends DeleteProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteProps<TModel>) => Delete<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Delete, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Delete, Type),\n      ({ entity, criteria, correlationId }: DeleteProps<TModel>) => new Delete(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport const createDeleteSuccessAction = <TModel, T extends string, P extends DeleteProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteProps<TModel>) => DeleteSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteSuccess, Type),\n      ({ entity, criteria, correlationId }: DeleteProps<TModel>) => new DeleteSuccess(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport interface DeleteFailureProps<TModel> extends StandardProps {\n  error: any;\n  entity: TModel;\n}\n\nexport const createDeleteFailureAction = <TModel, T extends string, P extends DeleteFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteFailureProps<TModel>) => DeleteFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteFailure, Type),\n      ({ error, entity, criteria, correlationId }: DeleteFailureProps<TModel>) =>\n        new DeleteFailure(Type, error, entity, criteria, correlationId)\n    )\n  );\n\nexport interface DeleteManyProps<TModel> extends StandardProps {\n  entities: TModel[];\n}\n\nexport const createDeleteManyAction = <TModel, T extends string, P extends DeleteManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteManyProps<TModel>) => DeleteMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteMany, Type),\n      ({ entities, criteria, correlationId }: DeleteManyProps<TModel>) => new DeleteMany(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport const createDeleteManySuccessAction = <TModel, T extends string, P extends DeleteManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteManyProps<TModel>) => DeleteManySuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteManySuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteManySuccess, Type),\n      ({ entities, criteria, correlationId }: DeleteManyProps<TModel>) => new DeleteManySuccess(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport interface DeleteManyFailureProps<TModel> extends StandardProps {\n  error: any;\n  entities: TModel[];\n}\n\nexport const createDeleteManyFailureAction = <TModel, T extends string, P extends DeleteManyFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeleteManyFailureProps<TModel>) => DeleteManyFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeleteManyFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeleteManyFailure, Type),\n      ({ error, entities, criteria, correlationId }: DeleteManyFailureProps<TModel>) =>\n        new DeleteManyFailure(Type, error, entities, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { Deselect, DeselectAll, Deselected, DeselectedMany, DeselectMany, DeselectManyByKeys } from '../actions/deselection-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { cacheOnType, CorrelatedProps, defineTypedFactoryFunction } from './util';\n\nexport const createDeselectAction = <TModel, T extends string, P extends CorrelatedProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CorrelatedProps) => Deselect<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Deselect, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Deselect, Type),\n      ({ correlationId }: CorrelatedProps = {}) => new Deselect(Type, correlationId)\n    )\n  );\n\nexport interface DeselectManyProps<TModel> extends CorrelatedProps {\n  entities: TModel[];\n}\n\nexport const createDeselectManyAction = <TModel, T extends string, P extends DeselectManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeselectManyProps<TModel>) => DeselectMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeselectMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeselectMany, Type),\n      ({ entities, correlationId }: DeselectManyProps<TModel>) => new DeselectMany(Type, entities, correlationId)\n    )\n  );\n\nexport interface DeselectManyByKeysProps extends CorrelatedProps {\n  keys: EntityIdentity[];\n}\n\nexport const createDeselectManyByKeysAction = <TModel, T extends string, P extends DeselectManyByKeysProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeselectManyByKeysProps) => DeselectManyByKeys<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeselectManyByKeys, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeselectManyByKeys, Type),\n      ({ keys, correlationId }: DeselectManyByKeysProps) => new DeselectManyByKeys(Type, keys, correlationId)\n    )\n  );\n\nexport const createDeselectAllAction = <TModel, T extends string, P extends CorrelatedProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CorrelatedProps) => DeselectAll<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeselectAll, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeselectAll, Type),\n      ({ correlationId }: CorrelatedProps = {}) => new DeselectAll(Type, correlationId)\n    )\n  );\n\nexport const createDeselectedAction = <TModel, T extends string, P extends CorrelatedProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CorrelatedProps) => Deselected<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Deselected, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Deselected, Type),\n      ({ correlationId }: CorrelatedProps = {}) => new Deselected(Type, correlationId)\n    )\n  );\n\nexport interface DeselectedManyProps<TModel> extends CorrelatedProps {\n  entities: Array<TModel | EntityIdentity>;\n}\n\nexport const createDeselectedManyAction = <TModel, T extends string, P extends DeselectedManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: DeselectedManyProps<TModel>) => DeselectedMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.DeselectedMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.DeselectedMany, Type),\n      ({ entities, correlationId }: DeselectedManyProps<TModel>) => new DeselectedMany(Type, entities, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { Change, Changed, Edit, EditByKey, Edited, EditedByKey, EditEnded, EditNew, EndEdit } from '../actions/edit-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { cacheOnType, CorrelatedProps, defineTypedFactoryFunction } from './util';\n\nexport interface EditNewProps<TModel> extends CorrelatedProps {\n  entity?: Partial<TModel>;\n}\n\nexport const createEditNewAction = <TModel, T extends string, P extends EditNewProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: EditNewProps<TModel>) => EditNew<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.EditNew, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.EditNew, Type),\n      ({ entity, correlationId }: EditNewProps<TModel>) => new EditNew(Type, entity, correlationId)\n    )\n  );\n\nexport interface EditProps<TModel> extends CorrelatedProps {\n  entity: Partial<TModel>;\n}\n\nexport const createEditAction = <TModel, T extends string, P extends EditProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: EditProps<TModel>) => Edit<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Edit, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Edit, Type),\n      ({ entity, correlationId }: EditProps<TModel>) => new Edit(Type, entity, correlationId)\n    )\n  );\n\nexport interface EditByKeyProps extends CorrelatedProps {\n  key: EntityIdentity;\n}\n\nexport const createEditByKeyAction = <TModel, T extends string, P extends EditByKeyProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: EditByKeyProps) => EditByKey<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.EditByKey, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.EditByKey, Type),\n      ({ key, correlationId }: EditByKeyProps) => new EditByKey(Type, key, correlationId)\n    )\n  );\n\nexport const createEditedAction = <TModel, T extends string, P extends EditProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: EditProps<TModel>) => Edited<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Edited, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Edited, Type),\n      ({ entity, correlationId }: EditProps<TModel>) => new Edited(Type, entity, correlationId)\n    )\n  );\n\nexport const createEditedByKeyAction = <TModel, T extends string, P extends EditByKeyProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: EditByKeyProps) => EditedByKey<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.EditedByKey, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.EditedByKey, Type),\n      ({ key, correlationId }: EditByKeyProps) => new EditedByKey(Type, key, correlationId)\n    )\n  );\n\nexport const createChangeAction = <TModel, T extends string, P extends EditProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: EditProps<TModel>) => Change<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Change, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Change, Type),\n      ({ entity, correlationId }: EditProps<TModel>) => new Change(Type, entity, correlationId)\n    )\n  );\n\nexport const createChangedAction = <TModel, T extends string, P extends EditProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: EditProps<TModel>) => Changed<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Changed, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Changed, Type),\n      ({ entity, correlationId }: EditProps<TModel>) => new Changed(Type, entity, correlationId)\n    )\n  );\n\nexport const createEndEditAction = <TModel, T extends string, P extends CorrelatedProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CorrelatedProps) => EndEdit<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.EndEdit, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.EndEdit, Type),\n      ({ correlationId }: CorrelatedProps = {}) => new EndEdit(Type, correlationId)\n    )\n  );\n\nexport const createEditEndedAction = <TModel, T extends string, P extends CorrelatedProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CorrelatedProps) => EditEnded<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.EditEnded, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.EditEnded, Type),\n      ({ correlationId }: CorrelatedProps = {}) => new EditEnded(Type, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { Clear } from '../actions/actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, CorrelatedProps, defineTypedFactoryFunction } from './util';\n\nexport const createClearAction = <TModel, T extends string, P extends CorrelatedProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CorrelatedProps) => Clear<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Clear, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Clear, Type),\n      ({ correlationId }: CorrelatedProps = {}) => new Clear(Type, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\nimport { LoadAll, LoadAllFailure, LoadAllIfNecessary, LoadAllSuccess } from '../actions/load-all-actions';\n\nexport const createLoadAllAction = <TModel, T extends string, P extends StandardProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: StandardProps) => LoadAll<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadAll, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadAll, Type),\n      ({ criteria, correlationId }: StandardProps = {}) => new LoadAll(Type, criteria, correlationId)\n    )\n  );\n\nexport interface LoadAllIfNecessaryProps extends StandardProps {\n  maxAge?: number;\n}\n\nexport const createLoadAllIfNecessaryAction = <TModel, T extends string, P extends LoadAllIfNecessaryProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadAllIfNecessaryProps) => LoadAllIfNecessary<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadAllIfNecessary, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadAllIfNecessary, Type),\n      ({ maxAge, criteria, correlationId }: LoadAllIfNecessaryProps = {}) => new LoadAllIfNecessary(Type, maxAge, criteria, correlationId)\n    )\n  );\n\nexport interface LoadAllSuccessProps<TModel> extends StandardProps {\n  entities: TModel[];\n}\n\nexport const createLoadAllSuccessAction = <TModel, T extends string, P extends LoadAllSuccessProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadAllSuccessProps<TModel>) => LoadAllSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadAllSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadAllSuccess, Type),\n      ({ entities, criteria, correlationId }: LoadAllSuccessProps<TModel>) => new LoadAllSuccess(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport interface LoadAllFailureProps<TModel> extends StandardProps {\n  error: any;\n}\n\nexport const createLoadAllFailureAction = <TModel, T extends string, P extends LoadAllFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadAllFailureProps<TModel>) => LoadAllFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadAllFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadAllFailure, Type),\n      ({ error, criteria, correlationId }: LoadAllFailureProps<TModel>) => new LoadAllFailure(Type, error, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { Load, LoadFailure, LoadIfNecessary, LoadSuccess } from '../actions/load-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\n\nexport interface LoadProps extends StandardProps {\n  keys?: any;\n}\n\nexport const createLoadAction = <TModel, T extends string, P extends LoadProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadProps) => Load<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Load, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Load, Type),\n      ({ keys, criteria, correlationId }: LoadProps) => new Load(Type, keys, criteria, correlationId)\n    )\n  );\n\nexport interface LoadIfNecessaryProps extends LoadProps {\n  maxAge?: number;\n}\n\nexport const createLoadIfNecessaryAction = <TModel, T extends string, P extends LoadIfNecessaryProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadIfNecessaryProps) => LoadIfNecessary<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadIfNecessary, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadIfNecessary, Type),\n      ({ keys, maxAge, criteria, correlationId }: LoadIfNecessaryProps = {}) =>\n        new LoadIfNecessary(Type, keys, maxAge, criteria, correlationId)\n    )\n  );\n\nexport interface LoadSuccessProps<TModel> extends LoadProps {\n  entity: TModel;\n}\n\nexport const createLoadSuccessAction = <TModel, T extends string, P extends LoadSuccessProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadSuccessProps<TModel>) => LoadSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadSuccess, Type),\n      ({ entity, keys, criteria, correlationId }: LoadSuccessProps<TModel>) => new LoadSuccess(Type, entity, keys, criteria, correlationId)\n    )\n  );\n\nexport interface LoadFailureProps<TModel> extends LoadProps {\n  error: any;\n}\n\nexport const createLoadFailureAction = <TModel, T extends string, P extends LoadFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadFailureProps<TModel>) => LoadFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadFailure, Type),\n      ({ error, keys, criteria, correlationId }: LoadFailureProps<TModel>) => new LoadFailure(Type, error, keys, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\nimport { LoadMany, LoadManyFailure, LoadManyIfNecessary, LoadManySuccess } from '../actions/load-many-actions';\n\nexport const createLoadManyAction = <TModel, T extends string, P extends StandardProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: StandardProps) => LoadMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadMany, Type),\n      ({ criteria, correlationId }: StandardProps = {}) => new LoadMany(Type, criteria, correlationId)\n    )\n  );\n\nexport interface LoadManyIfNecessaryProps extends StandardProps {\n  maxAge?: number;\n}\n\nexport const createLoadManyIfNecessaryAction = <TModel, T extends string, P extends LoadManyIfNecessaryProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadManyIfNecessaryProps) => LoadManyIfNecessary<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadManyIfNecessary, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadManyIfNecessary, Type),\n      ({ maxAge, criteria, correlationId }: LoadManyIfNecessaryProps = {}) => new LoadManyIfNecessary(Type, maxAge, criteria, correlationId)\n    )\n  );\n\nexport interface LoadManySuccessProps<TModel> extends StandardProps {\n  entities: TModel[];\n}\n\nexport const createLoadManySuccessAction = <TModel, T extends string, P extends LoadManySuccessProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadManySuccessProps<TModel>) => LoadManySuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadManySuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadManySuccess, Type),\n      ({ entities, criteria, correlationId }: LoadManySuccessProps<TModel>) => new LoadManySuccess(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport interface LoadManyFailureProps<TModel> extends StandardProps {\n  error: any;\n}\n\nexport const createLoadManyFailureAction = <TModel, T extends string, P extends LoadManyFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadManyFailureProps<TModel>) => LoadManyFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadManyFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadManyFailure, Type),\n      ({ error, criteria, correlationId }: LoadManyFailureProps<TModel>) => new LoadManyFailure(Type, error, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { IPageInfo, Page } from '../models';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\nimport { LoadPage, LoadPageFailure, LoadPageIfNecessary, LoadPageSuccess } from '../actions/load-page-actions';\n\nexport interface LoadPageProps extends StandardProps {\n  page: Page;\n}\n\nexport const createLoadPageAction = <TModel, T extends string, P extends StandardProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadPageProps) => LoadPage<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadPage, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadPage, Type),\n      ({ page, criteria, correlationId }: LoadPageProps) => new LoadPage(Type, page, criteria, correlationId)\n    )\n  );\n\nexport interface LoadPageIfNecessaryProps extends LoadPageProps {\n  maxAge?: number;\n}\n\nexport const createLoadPageIfNecessaryAction = <TModel, T extends string, P extends LoadPageIfNecessaryProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadPageIfNecessaryProps) => LoadPageIfNecessary<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadPageIfNecessary, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadPageIfNecessary, Type),\n      ({ page, maxAge, criteria, correlationId }: LoadPageIfNecessaryProps) =>\n        new LoadPageIfNecessary(Type, page, maxAge, criteria, correlationId)\n    )\n  );\n\nexport interface LoadPageSuccessProps<TModel> extends StandardProps {\n  entities: TModel[];\n  pageInfo: IPageInfo;\n}\n\nexport const createLoadPageSuccessAction = <TModel, T extends string, P extends LoadPageSuccessProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadPageSuccessProps<TModel>) => LoadPageSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadPageSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadPageSuccess, Type),\n      ({ entities, pageInfo, criteria, correlationId }: LoadPageSuccessProps<TModel>) =>\n        new LoadPageSuccess(Type, entities, pageInfo, criteria, correlationId)\n    )\n  );\n\nexport interface LoadPageFailureProps<TModel> extends StandardProps {\n  error: any;\n  page: Page;\n}\n\nexport const createLoadPageFailureAction = <TModel, T extends string, P extends LoadPageFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadPageFailureProps<TModel>) => LoadPageFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadPageFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadPageFailure, Type),\n      ({ error, page, criteria, correlationId }: LoadPageFailureProps<TModel>) => new LoadPageFailure(Type, error, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { IRangeInfo, Range } from '../models';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\nimport { LoadRange, LoadRangeFailure, LoadRangeIfNecessary, LoadRangeSuccess } from '../actions/load-range-actions';\n\nexport interface LoadRangeProps extends StandardProps {\n  range: Range;\n}\n\nexport const createLoadRangeAction = <TModel, T extends string, P extends StandardProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadRangeProps) => LoadRange<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadRange, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadRange, Type),\n      ({ range, criteria, correlationId }: LoadRangeProps) => new LoadRange(Type, range, criteria, correlationId)\n    )\n  );\n\nexport interface LoadRangeIfNecessaryProps extends LoadRangeProps {\n  maxAge?: number;\n}\n\nexport const createLoadRangeIfNecessaryAction = <TModel, T extends string, P extends LoadRangeIfNecessaryProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadRangeIfNecessaryProps) => LoadRangeIfNecessary<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadRangeIfNecessary, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadRangeIfNecessary, Type),\n      ({ range, maxAge, criteria, correlationId }: LoadRangeIfNecessaryProps) =>\n        new LoadRangeIfNecessary(Type, range, maxAge, criteria, correlationId)\n    )\n  );\n\nexport interface LoadRangeSuccessProps<TModel> extends StandardProps {\n  entities: TModel[];\n  rangeInfo: IRangeInfo;\n}\n\nexport const createLoadRangeSuccessAction = <TModel, T extends string, P extends LoadRangeSuccessProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadRangeSuccessProps<TModel>) => LoadRangeSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadRangeSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadRangeSuccess, Type),\n      ({ entities, rangeInfo, criteria, correlationId }: LoadRangeSuccessProps<TModel>) =>\n        new LoadRangeSuccess(Type, entities, rangeInfo, criteria, correlationId)\n    )\n  );\n\nexport interface LoadRangeFailureProps<TModel> extends StandardProps {\n  error: any;\n  range: Range;\n}\n\nexport const createLoadRangeFailureAction = <TModel, T extends string, P extends LoadRangeFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: LoadRangeFailureProps<TModel>) => LoadRangeFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.LoadRangeFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.LoadRangeFailure, Type),\n      ({ error, range, criteria, correlationId }: LoadRangeFailureProps<TModel>) =>\n        new LoadRangeFailure(Type, error, range, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { Replace, ReplaceFailure, ReplaceMany, ReplaceManyFailure, ReplaceManySuccess, ReplaceSuccess } from '../actions/replace-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\n\nexport interface ReplaceProps<TModel> extends StandardProps {\n  entity: TModel;\n}\n\nexport const createReplaceAction = <TModel, T extends string, P extends ReplaceProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: ReplaceProps<TModel>) => Replace<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Replace, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Replace, Type),\n      ({ entity, criteria, correlationId }: ReplaceProps<TModel>) => new Replace(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport const createReplaceSuccessAction = <TModel, T extends string, P extends ReplaceProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: ReplaceProps<TModel>) => ReplaceSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.ReplaceSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.ReplaceSuccess, Type),\n      ({ entity, criteria, correlationId }: ReplaceProps<TModel>) => new ReplaceSuccess(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport interface ReplaceFailureProps<TModel> extends StandardProps {\n  error: any;\n  entity: TModel;\n}\n\nexport const createReplaceFailureAction = <TModel, T extends string, P extends ReplaceFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: ReplaceFailureProps<TModel>) => ReplaceFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.ReplaceFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.ReplaceFailure, Type),\n      ({ error, entity, criteria, correlationId }: ReplaceFailureProps<TModel>) =>\n        new ReplaceFailure(Type, error, entity, criteria, correlationId)\n    )\n  );\n\nexport interface ReplaceManyProps<TModel> extends StandardProps {\n  entities: TModel[];\n}\n\nexport const createReplaceManyAction = <TModel, T extends string, P extends ReplaceManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: ReplaceManyProps<TModel>) => ReplaceMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.ReplaceMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.ReplaceMany, Type),\n      ({ entities, criteria, correlationId }: ReplaceManyProps<TModel>) => new ReplaceMany(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport const createReplaceManySuccessAction = <TModel, T extends string, P extends ReplaceManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: ReplaceManyProps<TModel>) => ReplaceManySuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.ReplaceManySuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.ReplaceManySuccess, Type),\n      ({ entities, criteria, correlationId }: ReplaceManyProps<TModel>) => new ReplaceManySuccess(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport interface ReplaceManyFailureProps<TModel> extends StandardProps {\n  error: any;\n  entities: TModel[];\n}\n\nexport const createReplaceManyFailureAction = <TModel, T extends string, P extends ReplaceManyFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: ReplaceManyFailureProps<TModel>) => ReplaceManyFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.ReplaceManyFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.ReplaceManyFailure, Type),\n      ({ error, entities, criteria, correlationId }: ReplaceManyFailureProps<TModel>) =>\n        new ReplaceManyFailure(Type, error, entities, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport {\n  Select,\n  Selected,\n  SelectedMany,\n  SelectedMore,\n  SelectMany,\n  SelectManyByKeys,\n  SelectMore,\n  SelectMoreByKeys,\n  SelectByKey\n} from '../actions/selection-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { cacheOnType, CorrelatedProps, defineTypedFactoryFunction } from './util';\n\nexport interface SelectProps<TModel> extends CorrelatedProps {\n  entity: TModel;\n}\n\nexport const createSelectAction = <TModel, T extends string, P extends SelectProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: SelectProps<TModel>) => Select<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Select, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Select, Type),\n      ({ entity, correlationId }: SelectProps<TModel>) => new Select(Type, entity, correlationId)\n    )\n  );\n\nexport interface SelectByKeyProps extends CorrelatedProps {\n  key: EntityIdentity;\n}\n\nexport const createSelectByKeyAction = <TModel, T extends string, P extends SelectByKeyProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: SelectByKeyProps) => SelectByKey<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.SelectByKey, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.SelectByKey, Type),\n      ({ key, correlationId }: SelectByKeyProps) => new SelectByKey(Type, key, correlationId)\n    )\n  );\n\nexport interface SelectManyProps<TModel> extends CorrelatedProps {\n  entities: TModel[];\n}\n\nexport const createSelectManyAction = <TModel, T extends string, P extends SelectManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: SelectManyProps<TModel>) => SelectMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.SelectMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.SelectMany, Type),\n      ({ entities, correlationId }: SelectManyProps<TModel>) => new SelectMany(Type, entities, correlationId)\n    )\n  );\n\nexport const createSelectMoreAction = <TModel, T extends string, P extends SelectManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: SelectManyProps<TModel>) => SelectMore<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.SelectMore, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.SelectMore, Type),\n      ({ entities, correlationId }: SelectManyProps<TModel>) => new SelectMore(Type, entities, correlationId)\n    )\n  );\n\nexport interface SelectManyByKeysProps extends CorrelatedProps {\n  keys: EntityIdentity[];\n}\n\nexport const createSelectManyByKeysAction = <TModel, T extends string, P extends SelectManyByKeysProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: SelectManyByKeysProps) => SelectManyByKeys<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.SelectManyByKeys, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.SelectManyByKeys, Type),\n      ({ keys, correlationId }: SelectManyByKeysProps) => new SelectManyByKeys(Type, keys, correlationId)\n    )\n  );\n\nexport const createSelectMoreByKeysAction = <TModel, T extends string, P extends SelectManyByKeysProps>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: SelectManyByKeysProps) => SelectMoreByKeys<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.SelectMoreByKeys, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.SelectMoreByKeys, Type),\n      ({ keys, correlationId }: SelectManyByKeysProps) => new SelectMoreByKeys(Type, keys, correlationId)\n    )\n  );\n\nexport interface SelectedProps<TModel> extends CorrelatedProps {\n  entity: TModel | EntityIdentity;\n}\n\nexport const createSelectedAction = <TModel, T extends string, P extends SelectedProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: CorrelatedProps) => Selected<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Selected, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Selected, Type),\n      ({ entity, correlationId }: SelectedProps<TModel>) => new Selected(Type, entity, correlationId)\n    )\n  );\n\nexport interface SelectedManyProps<TModel> extends CorrelatedProps {\n  entities: Array<TModel | EntityIdentity>;\n}\n\nexport const createSelectedManyAction = <TModel, T extends string, P extends SelectedManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: SelectedManyProps<TModel>) => SelectedMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.SelectedMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.SelectedMany, Type),\n      ({ entities, correlationId }: SelectedManyProps<TModel>) => new SelectedMany(Type, entities, correlationId)\n    )\n  );\n\nexport const createSelectedMoreAction = <TModel, T extends string, P extends SelectedManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: SelectedManyProps<TModel>) => SelectedMore<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.SelectedMore, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.SelectedMore, Type),\n      ({ entities, correlationId }: SelectedManyProps<TModel>) => new SelectedMore(Type, entities, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { Update, UpdateFailure, UpdateMany, UpdateManyFailure, UpdateManySuccess, UpdateSuccess } from '../actions/update-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\n\nexport interface UpdateProps<TModel> extends StandardProps {\n  entity: TModel;\n}\n\nexport const createUpdateAction = <TModel, T extends string, P extends UpdateProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpdateProps<TModel>) => Update<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Update, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Update, Type),\n      ({ entity, criteria, correlationId }: UpdateProps<TModel>) => new Update(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport const createUpdateSuccessAction = <TModel, T extends string, P extends UpdateProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpdateProps<TModel>) => UpdateSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpdateSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpdateSuccess, Type),\n      ({ entity, criteria, correlationId }: UpdateProps<TModel>) => new UpdateSuccess(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport interface UpdateFailureProps<TModel> extends StandardProps {\n  error: any;\n  entity: TModel;\n}\n\nexport const createUpdateFailureAction = <TModel, T extends string, P extends UpdateFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpdateFailureProps<TModel>) => UpdateFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpdateFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpdateFailure, Type),\n      ({ error, entity, criteria, correlationId }: UpdateFailureProps<TModel>) =>\n        new UpdateFailure(Type, error, entity, criteria, correlationId)\n    )\n  );\n\nexport interface UpdateManyProps<TModel> extends StandardProps {\n  entities: TModel[];\n}\n\nexport const createUpdateManyAction = <TModel, T extends string, P extends UpdateManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpdateManyProps<TModel>) => UpdateMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpdateMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpdateMany, Type),\n      ({ entities, criteria, correlationId }: UpdateManyProps<TModel>) => new UpdateMany(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport const createUpdateManySuccessAction = <TModel, T extends string, P extends UpdateManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpdateManyProps<TModel>) => UpdateManySuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpdateManySuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpdateManySuccess, Type),\n      ({ entities, criteria, correlationId }: UpdateManyProps<TModel>) => new UpdateManySuccess(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport interface UpdateManyFailureProps<TModel> extends StandardProps {\n  error: any;\n  entities: TModel[];\n}\n\nexport const createUpdateManyFailureAction = <TModel, T extends string, P extends UpdateManyFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpdateManyFailureProps<TModel>) => UpdateManyFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpdateManyFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpdateManyFailure, Type),\n      ({ error, entities, criteria, correlationId }: UpdateManyFailureProps<TModel>) =>\n        new UpdateManyFailure(Type, error, entities, criteria, correlationId)\n    )\n  );\n","import { ActionCreator } from '@ngrx/store';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { Upsert, UpsertFailure, UpsertMany, UpsertManyFailure, UpsertManySuccess, UpsertSuccess } from '../actions/upsert-actions';\nimport { TNew } from '../actions/model-constructor';\nimport { setActionType } from '../actions/util';\nimport { cacheOnType, defineTypedFactoryFunction, StandardProps } from './util';\n\nexport interface UpsertProps<TModel> extends StandardProps {\n  entity: TModel;\n}\n\nexport const createUpsertAction = <TModel, T extends string, P extends UpsertProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpsertProps<TModel>) => Upsert<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.Upsert, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.Upsert, Type),\n      ({ entity, criteria, correlationId }: UpsertProps<TModel>) => new Upsert(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport const createUpsertSuccessAction = <TModel, T extends string, P extends UpsertProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpsertProps<TModel>) => UpsertSuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpsertSuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpsertSuccess, Type),\n      ({ entity, criteria, correlationId }: UpsertProps<TModel>) => new UpsertSuccess(Type, entity, criteria, correlationId)\n    )\n  );\n\nexport interface UpsertFailureProps<TModel> extends StandardProps {\n  error: any;\n  entity: TModel;\n}\n\nexport const createUpsertFailureAction = <TModel, T extends string, P extends UpsertFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpsertFailureProps<TModel>) => UpsertFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpsertFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpsertFailure, Type),\n      ({ error, entity, criteria, correlationId }: UpsertFailureProps<TModel>) =>\n        new UpsertFailure(Type, error, entity, criteria, correlationId)\n    )\n  );\n\nexport interface UpsertManyProps<TModel> extends StandardProps {\n  entities: TModel[];\n}\n\nexport const createUpsertManyAction = <TModel, T extends string, P extends UpsertManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpsertManyProps<TModel>) => UpsertMany<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpsertMany, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpsertMany, Type),\n      ({ entities, criteria, correlationId }: UpsertManyProps<TModel>) => new UpsertMany(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport const createUpsertManySuccessAction = <TModel, T extends string, P extends UpsertManyProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpsertManyProps<TModel>) => UpsertManySuccess<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpsertManySuccess, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpsertManySuccess, Type),\n      ({ entities, criteria, correlationId }: UpsertManyProps<TModel>) => new UpsertManySuccess(Type, entities, criteria, correlationId)\n    )\n  );\n\nexport interface UpsertManyFailureProps<TModel> extends StandardProps {\n  error: any;\n  entities: TModel[];\n}\n\nexport const createUpsertManyFailureAction = <TModel, T extends string, P extends UpsertManyFailureProps<TModel>>(\n  Type: TNew<TModel>\n): ActionCreator<T, (props: UpsertManyFailureProps<TModel>) => UpsertManyFailure<TModel>> =>\n  cacheOnType(Type, EntityActionTypes.UpsertManyFailure, () =>\n    defineTypedFactoryFunction(\n      setActionType(EntityActionTypes.UpsertManyFailure, Type),\n      ({ error, entities, criteria, correlationId }: UpsertManyFailureProps<TModel>) =>\n        new UpsertManyFailure(Type, error, entities, criteria, correlationId)\n    )\n  );\n","import { TNew } from '../actions/model-constructor';\nimport {\n  createCreateAction,\n  createCreateFailureAction,\n  createCreateManyAction,\n  createCreateManyFailureAction,\n  createCreateManySuccessAction,\n  createCreateSuccessAction\n} from '../factories/create-factories';\nimport {\n  createDeleteByKeyAction,\n  createDeleteByKeyFailureAction,\n  createDeleteByKeySuccessAction,\n  createDeleteManyByKeysAction,\n  createDeleteManyByKeysFailureAction,\n  createDeleteManyByKeysSuccessAction\n} from '../factories/delete-by-key-factories';\nimport {\n  createDeleteAction,\n  createDeleteFailureAction,\n  createDeleteManyAction,\n  createDeleteManyFailureAction,\n  createDeleteManySuccessAction,\n  createDeleteSuccessAction\n} from '../factories/delete-factories';\nimport {\n  createDeselectAction,\n  createDeselectAllAction,\n  createDeselectedAction,\n  createDeselectedManyAction,\n  createDeselectManyAction,\n  createDeselectManyByKeysAction\n} from '../factories/deselection-factories';\nimport {\n  createChangeAction,\n  createChangedAction,\n  createEditAction,\n  createEditByKeyAction,\n  createEditedAction,\n  createEditedByKeyAction,\n  createEditEndedAction,\n  createEditNewAction,\n  createEndEditAction\n} from '../factories/edit-factories';\nimport { createClearAction } from '../factories/factories';\nimport {\n  createLoadAllAction,\n  createLoadAllFailureAction,\n  createLoadAllIfNecessaryAction,\n  createLoadAllSuccessAction\n} from '../factories/load-all-factories';\nimport {\n  createLoadAction,\n  createLoadFailureAction,\n  createLoadIfNecessaryAction,\n  createLoadSuccessAction\n} from '../factories/load-factories';\nimport {\n  createLoadManyAction,\n  createLoadManyFailureAction,\n  createLoadManyIfNecessaryAction,\n  createLoadManySuccessAction\n} from '../factories/load-many-factories';\nimport {\n  createLoadPageAction,\n  createLoadPageFailureAction,\n  createLoadPageIfNecessaryAction,\n  createLoadPageSuccessAction\n} from '../factories/load-page-factories';\nimport {\n  createLoadRangeAction,\n  createLoadRangeFailureAction,\n  createLoadRangeIfNecessaryAction,\n  createLoadRangeSuccessAction\n} from '../factories/load-range-factories';\nimport {\n  createReplaceAction,\n  createReplaceFailureAction,\n  createReplaceManyAction,\n  createReplaceManyFailureAction,\n  createReplaceManySuccessAction,\n  createReplaceSuccessAction\n} from '../factories/replace-factories';\nimport {\n  createSelectAction,\n  createSelectByKeyAction,\n  createSelectedAction,\n  createSelectedManyAction,\n  createSelectedMoreAction,\n  createSelectManyAction,\n  createSelectManyByKeysAction,\n  createSelectMoreAction,\n  createSelectMoreByKeysAction\n} from '../factories/selection-factories';\nimport {\n  createUpdateAction,\n  createUpdateFailureAction,\n  createUpdateManyAction,\n  createUpdateManyFailureAction,\n  createUpdateManySuccessAction,\n  createUpdateSuccessAction\n} from '../factories/update-factories';\nimport {\n  createUpsertAction,\n  createUpsertFailureAction,\n  createUpsertManyAction,\n  createUpsertManyFailureAction,\n  createUpsertManySuccessAction,\n  createUpsertSuccessAction\n} from '../factories/upsert-factories';\nimport { IActionMap } from './action-map';\n\nexport const buildActionMap = <TModel>(Type: TNew<TModel>): IActionMap<TModel> => {\n  class ActionFactoryResolver implements IActionMap<TModel> {\n    get load() {\n      return createLoadAction(Type);\n    }\n\n    get loadIfNecessary() {\n      return createLoadIfNecessaryAction(Type);\n    }\n\n    get loadSuccess() {\n      return createLoadSuccessAction(Type);\n    }\n\n    get loadFailure() {\n      return createLoadFailureAction(Type);\n    }\n\n    get loadAll() {\n      return createLoadAllAction(Type);\n    }\n\n    get loadAllIfNecessary() {\n      return createLoadAllIfNecessaryAction(Type);\n    }\n\n    get loadAllSuccess() {\n      return createLoadAllSuccessAction(Type);\n    }\n\n    get loadAllFailure() {\n      return createLoadAllFailureAction(Type);\n    }\n\n    get loadMany() {\n      return createLoadManyAction(Type);\n    }\n\n    get loadManyIfNecessary() {\n      return createLoadManyIfNecessaryAction(Type);\n    }\n\n    get loadManySuccess() {\n      return createLoadManySuccessAction(Type);\n    }\n\n    get loadManyFailure() {\n      return createLoadManyFailureAction(Type);\n    }\n\n    get loadPage() {\n      return createLoadPageAction(Type);\n    }\n\n    get loadPageIfNecessary() {\n      return createLoadPageIfNecessaryAction(Type);\n    }\n\n    get loadPageSuccess() {\n      return createLoadPageSuccessAction(Type);\n    }\n\n    get loadPageFailure() {\n      return createLoadPageFailureAction(Type);\n    }\n\n    get loadRange() {\n      return createLoadRangeAction(Type);\n    }\n\n    get loadRangeIfNecessary() {\n      return createLoadRangeIfNecessaryAction(Type);\n    }\n\n    get loadRangeSuccess() {\n      return createLoadRangeSuccessAction(Type);\n    }\n\n    get loadRangeFailure() {\n      return createLoadRangeFailureAction(Type);\n    }\n\n    get create() {\n      return createCreateAction(Type);\n    }\n\n    get createSuccess() {\n      return createCreateSuccessAction(Type);\n    }\n\n    get createFailure() {\n      return createCreateFailureAction(Type);\n    }\n\n    get createMany() {\n      return createCreateManyAction(Type);\n    }\n\n    get createManySuccess() {\n      return createCreateManySuccessAction(Type);\n    }\n\n    get createManyFailure() {\n      return createCreateManyFailureAction(Type);\n    }\n\n    get update() {\n      return createUpdateAction(Type);\n    }\n\n    get updateSuccess() {\n      return createUpdateSuccessAction(Type);\n    }\n\n    get updateFailure() {\n      return createUpdateFailureAction(Type);\n    }\n\n    get updateMany() {\n      return createUpdateManyAction(Type);\n    }\n\n    get updateManySuccess() {\n      return createUpdateManySuccessAction(Type);\n    }\n\n    get updateManyFailure() {\n      return createUpdateManyFailureAction(Type);\n    }\n\n    get upsert() {\n      return createUpsertAction(Type);\n    }\n\n    get upsertSuccess() {\n      return createUpsertSuccessAction(Type);\n    }\n\n    get upsertFailure() {\n      return createUpsertFailureAction(Type);\n    }\n\n    get upsertMany() {\n      return createUpsertManyAction(Type);\n    }\n\n    get upsertManySuccess() {\n      return createUpsertManySuccessAction(Type);\n    }\n\n    get upsertManyFailure() {\n      return createUpsertManyFailureAction(Type);\n    }\n\n    get replace() {\n      return createReplaceAction(Type);\n    }\n\n    get replaceSuccess() {\n      return createReplaceSuccessAction(Type);\n    }\n\n    get replaceFailure() {\n      return createReplaceFailureAction(Type);\n    }\n\n    get replaceMany() {\n      return createReplaceManyAction(Type);\n    }\n\n    get replaceManySuccess() {\n      return createReplaceManySuccessAction(Type);\n    }\n\n    get replaceManyFailure() {\n      return createReplaceManyFailureAction(Type);\n    }\n\n    get clear() {\n      return createClearAction(Type);\n    }\n\n    get delete() {\n      return createDeleteAction(Type);\n    }\n\n    get deleteSuccess() {\n      return createDeleteSuccessAction(Type);\n    }\n\n    get deleteFailure() {\n      return createDeleteFailureAction(Type);\n    }\n\n    get deleteMany() {\n      return createDeleteManyAction(Type);\n    }\n\n    get deleteManySuccess() {\n      return createDeleteManySuccessAction(Type);\n    }\n\n    get deleteManyFailure() {\n      return createDeleteManyFailureAction(Type);\n    }\n\n    get deleteByKey() {\n      return createDeleteByKeyAction(Type);\n    }\n\n    get deleteByKeySuccess() {\n      return createDeleteByKeySuccessAction(Type);\n    }\n\n    get deleteByKeyFailure() {\n      return createDeleteByKeyFailureAction(Type);\n    }\n\n    get deleteManyByKeys() {\n      return createDeleteManyByKeysAction(Type);\n    }\n\n    get deleteManyByKeysSuccess() {\n      return createDeleteManyByKeysSuccessAction(Type);\n    }\n\n    get deleteManyByKeysFailure() {\n      return createDeleteManyByKeysFailureAction(Type);\n    }\n\n    get deselect() {\n      return createDeselectAction(Type);\n    }\n\n    get deselectMany() {\n      return createDeselectManyAction(Type);\n    }\n\n    get deselectManyByKeys() {\n      return createDeselectManyByKeysAction(Type);\n    }\n\n    get deselectAll() {\n      return createDeselectAllAction(Type);\n    }\n\n    get deselected() {\n      return createDeselectedAction(Type);\n    }\n\n    get deselectedMany() {\n      return createDeselectedManyAction(Type);\n    }\n\n    get select() {\n      return createSelectAction(Type);\n    }\n\n    get selectByKey() {\n      return createSelectByKeyAction(Type);\n    }\n\n    get selectMany() {\n      return createSelectManyAction(Type);\n    }\n\n    get selectMore() {\n      return createSelectMoreAction(Type);\n    }\n\n    get selectManyByKeys() {\n      return createSelectManyByKeysAction(Type);\n    }\n\n    get selectMoreByKeys() {\n      return createSelectMoreByKeysAction(Type);\n    }\n\n    get selected() {\n      return createSelectedAction(Type);\n    }\n\n    get selectedMany() {\n      return createSelectedManyAction(Type);\n    }\n\n    get selectedMore() {\n      return createSelectedMoreAction(Type);\n    }\n\n    get editNew() {\n      return createEditNewAction(Type);\n    }\n\n    get edit() {\n      return createEditAction(Type);\n    }\n\n    get editByKey() {\n      return createEditByKeyAction(Type);\n    }\n\n    get edited() {\n      return createEditedAction(Type);\n    }\n\n    get editedByKey() {\n      return createEditedByKeyAction(Type);\n    }\n\n    get change() {\n      return createChangeAction(Type);\n    }\n\n    get changed() {\n      return createChangedAction(Type);\n    }\n\n    get endEdit() {\n      return createEndEditAction(Type);\n    }\n\n    get editEnded() {\n      return createEditEndedAction(Type);\n    }\n  }\n\n  const actionMap = new ActionFactoryResolver();\n  return actionMap;\n};\n","import { IEntityEdits } from '../util/entity-state';\n\n// prettier-ignore\nexport const mapToEditedEntity =\n  <TModel>(edits: IEntityEdits<TModel>): Partial<TModel> | undefined =>\n    (!edits ? undefined : edits.editedEntity);\n\n// prettier-ignore\nexport const mapToIsDirty =\n  <TModel>(edits: IEntityEdits<TModel>): boolean =>\n    (!edits ? false : !!edits.isDirty);\n","import { entityComparer } from '../decorators/entity-util';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { IEntityDictionary } from '../util/entity-state';\nimport { IModelClass } from '../util/model-state';\n\n// prettier-ignore\nexport const mapToEntityArray =\n  <TModel>(entities: IEntityDictionary<TModel>, ids: EntityIdentity[]): TModel[] =>\n    !ids || !entities ? [] : ids.map(id => entities[id]);\n\n// prettier-ignore\nexport const mapToSortedEntityArray =\n  <TModel>(type: IModelClass<TModel>) =>\n  (all: TModel[]): TModel[] =>\n    !all ? [] : all.sort(entityComparer(type));\n\n// prettier-ignore\nexport const mapToHasEntities =\n  (ids: EntityIdentity[]): boolean =>\n    !!ids && !!ids.length;\n\n// prettier-ignore\nexport const mapToHasNoEntities =\n (ids: EntityIdentity[]): boolean =>\n    !ids || !ids.length;\n\n// prettier-ignore\nexport const mapToTotal =\n  (ids: EntityIdentity[]): number =>\n    !ids ? 0 : ids.length;\n","import { Page, Range } from '../models';\nimport { IEntityPaging } from '../util/entity-state';\n\n// prettier-ignore\nexport const mapToCurrentPage =\n  (paging: IEntityPaging): Page | undefined =>\n    !paging ? undefined : paging.currentPage;\n\n// prettier-ignore\nexport const mapToCurrentRange =\n  (paging: IEntityPaging): Range | undefined =>\n    !paging ? undefined : paging.currentRange;\n\n// prettier-ignore\nexport const mapToTotalPageable =\n  (paging: IEntityPaging): number =>\n    !paging ? 0 : paging.totalPageableCount || 0;\n","import { EntityIdentity } from '../types/entity-identity';\nimport { IEntityDictionary, IEntityEdits, IEntityPaging, IEntitySelections, IEntityState, IEntityTracking } from '../util/entity-state';\n\n// prettier-ignore\nexport const mapToEntities =\n  <TState extends IEntityState<TModel>, TModel, TExtra>(state: TState & TExtra): IEntityDictionary<TModel> =>\n    (!state || !state.entities ? {} as IEntityDictionary<TModel> : state.entities);\n\n// prettier-ignore\nexport const mapToIds =\n  <TState extends IEntityState<TModel>, TModel, TExtra>(state: TState & TExtra): EntityIdentity[] =>\n    (!state || !state.ids ? [] : state.ids);\n\n// prettier-ignore\nexport const mapToSelections =\n  <TState extends IEntityState<TModel>, TModel, TExtra>(state: TState & TExtra): IEntitySelections =>\n    (!state || !state.selections ? undefined : state.selections);\n\n// prettier-ignore\nexport const mapToEdits =\n  <TState extends IEntityState<TModel>, TModel, TExtra>(state: TState & TExtra): IEntityEdits<TModel> =>\n    (!state || !state.edits ? undefined : state.edits);\n\n// prettier-ignore\nexport const mapToPaging =\n  <TState extends IEntityState<TModel>, TModel, TExtra>(state: TState & TExtra): IEntityPaging =>\n    (!state || !state.paging ? undefined : state.paging);\n\n// prettier-ignore\nexport const mapToTracking =\n  <TState extends IEntityState<TModel>, TModel, TExtra>(state: TState & TExtra): IEntityTracking =>\n    (!state || !state.tracking ? undefined : state.tracking);\n","import { EntityIdentity } from '../types/entity-identity';\nimport { IEntityDictionary, IEntitySelections } from '../util/entity-state';\n\n// prettier-ignore\nexport const mapToCurrentEntity =\n  <TModel>(selections: IEntitySelections, entities: IEntityDictionary<TModel>): TModel | undefined =>\n    !entities || !selections ? undefined : entities[selections.currentEntityKey];\n\n// prettier-ignore\nexport const mapToCurrentEntityKey =\n  (selections: IEntitySelections): EntityIdentity | undefined =>\n    (!selections ? undefined : selections.currentEntityKey);\n\n// prettier-ignore\nexport const mapToCurrentEntities =\n  <TModel>(selections: IEntitySelections, entities: IEntityDictionary<TModel>): TModel[] =>\n    (!selections || !selections.currentEntitiesKeys || !entities)\n      ? []\n      : selections.currentEntitiesKeys.reduce((all, key) => entities[key] ? [...all, entities[key]] : all, []);\n\n// prettier-ignore\nexport const mapToCurrentEntitiesKeys =\n  (selections: IEntitySelections): EntityIdentity[] =>\n    (!selections || !selections.currentEntitiesKeys) ? [] : selections.currentEntitiesKeys;\n","import { IEntityTracking } from '../util/entity-state';\n\n// prettier-ignore\nexport const mapToHasBeenLoaded =\n  (tracking: IEntityTracking): boolean =>\n    tracking?.loadedAt != null;\n\n// prettier-ignore\nexport const mapToLoadWasAttempted =\n  (tracking: IEntityTracking): boolean =>\n    tracking?.isLoading != null;\n\n// prettier-ignore\nexport const mapToIsLoading =\n  (tracking: IEntityTracking): boolean =>\n    !tracking ? false : !!tracking.isLoading;\n\n// prettier-ignore\nexport const mapToIsSaving =\n  (tracking: IEntityTracking): boolean =>\n    !tracking ? false : !!tracking.isSaving;\n\n// prettier-ignore\nexport const mapToIsDeleting =\n  (tracking: IEntityTracking): boolean =>\n    !tracking ? false : !!tracking.isDeleting;\n\n// prettier-ignore\nexport const mapToLoadedAt =\n  (tracking: IEntityTracking): Date | undefined =>\n    (!tracking || !tracking.loadedAt) ? undefined : new Date(tracking.loadedAt);\n\n// prettier-ignore\nexport const mapToSavedAt =\n  (tracking: IEntityTracking): Date | undefined =>\n    (!tracking || !tracking.savedAt) ? undefined : new Date(tracking.savedAt);\n\n// prettier-ignore\nexport const mapToCreatedAt =\n  (tracking: IEntityTracking): Date | undefined =>\n    (!tracking || !tracking.createdAt) ? undefined : new Date(tracking.createdAt);\n\n// prettier-ignore\nexport const mapToUpdatedAt =\n  (tracking: IEntityTracking): Date | undefined =>\n    (!tracking || !tracking.updatedAt) ? undefined : new Date(tracking.updatedAt);\n\n// prettier-ignore\nexport const mapToReplacedAt =\n  (tracking: IEntityTracking): Date | undefined =>\n    (!tracking || !tracking.replacedAt) ? undefined : new Date(tracking.replacedAt);\n\n// prettier-ignore\nexport const mapToDeletedAt =\n  (tracking: IEntityTracking): Date | undefined =>\n    (!tracking || !tracking.deletedAt) ? undefined : new Date(tracking.deletedAt);\n","import { createSelector, MemoizedSelector, Selector } from '@ngrx/store';\nimport { mapToEditedEntity, mapToIsDirty } from '../selectors/edits.selectors';\nimport { mapToEntityArray, mapToHasEntities, mapToHasNoEntities, mapToSortedEntityArray, mapToTotal } from '../selectors/entity.selectors';\nimport { mapToCurrentPage, mapToCurrentRange, mapToTotalPageable } from '../selectors/paging.selectors';\nimport { mapToEdits, mapToEntities, mapToIds, mapToPaging, mapToSelections, mapToTracking } from '../selectors/root.selectors';\nimport {\n  mapToCurrentEntities,\n  mapToCurrentEntitiesKeys,\n  mapToCurrentEntity,\n  mapToCurrentEntityKey\n} from '../selectors/selections.selectors';\nimport {\n  mapToCreatedAt,\n  mapToDeletedAt,\n  mapToHasBeenLoaded,\n  mapToIsDeleting,\n  mapToIsLoading,\n  mapToIsSaving,\n  mapToLoadedAt,\n  mapToLoadWasAttempted,\n  mapToReplacedAt,\n  mapToSavedAt,\n  mapToUpdatedAt\n} from '../selectors/tracking.selectors';\nimport { IEntityDictionary, IEntityEdits, IEntityPaging, IEntitySelections, IEntityState, IEntityTracking } from './entity-state';\nimport { IModelClass } from './model-state';\nimport { ISelectorMap } from './selector-map';\n\n// prettier-ignore\nexport const buildSelectorMap = <TParentState, TState extends IEntityState<TModel>, TModel, TExtra>(\n  getState: Selector<TParentState, TState & TExtra> | MemoizedSelector<object | TParentState, TState & TExtra>,\n  type: IModelClass<TModel>,\n): ISelectorMap<TParentState, TModel> => {\n  class SelectorResolver implements ISelectorMap<TParentState, TModel> {\n    // State Roots:\n    get selectEntities() {\n      return createSelector(getState, mapToEntities) as MemoizedSelector<object | TParentState, IEntityDictionary<TModel>>;\n    }\n\n    get selectIds() {\n      return createSelector(getState, mapToIds);\n    }\n\n    get selectSelections() {\n      return createSelector(getState, mapToSelections) as MemoizedSelector<object | TParentState, IEntitySelections>;\n    }\n\n    get selectEdits() {\n      return createSelector(getState, mapToEdits) as MemoizedSelector<object | TParentState, IEntityEdits<TModel>>;\n    }\n\n    get selectPaging() {\n      return createSelector(getState, mapToPaging) as MemoizedSelector<object | TParentState, IEntityPaging>;\n    }\n\n    get selectTracking() {\n      return createSelector(getState, mapToTracking) as MemoizedSelector<object | TParentState, IEntityTracking>;\n    }\n\n    // Entity:\n    get selectAll() {\n      return createSelector(this.selectEntities, this.selectIds, mapToEntityArray);\n    }\n\n    get selectAllSorted() {\n      return createSelector(this.selectAll, mapToSortedEntityArray(type));\n    }\n\n    get selectTotal() {\n      return createSelector(this.selectIds, mapToTotal);\n    }\n\n    get selectHasEntities() {\n      return createSelector(this.selectIds, mapToHasEntities);\n    }\n\n    get selectHasNoEntities() {\n      return createSelector(this.selectIds, mapToHasNoEntities);\n    }\n\n    // Selections:\n    get selectCurrentEntity() {\n      return createSelector(\n        this.selectSelections,\n        this.selectEntities,\n        mapToCurrentEntity\n      ) as MemoizedSelector<object | TParentState, TModel | null>;\n    }\n\n    get selectCurrentEntityKey() {\n      return createSelector(this.selectSelections, mapToCurrentEntityKey);\n    }\n\n    get selectCurrentEntities() {\n      return createSelector(\n        this.selectSelections,\n        this.selectEntities,\n        mapToCurrentEntities\n      ) as MemoizedSelector<object | TParentState, TModel[]>;\n    }\n\n    get selectCurrentEntitiesKeys() {\n      return createSelector(this.selectSelections, mapToCurrentEntitiesKeys);\n    }\n\n    // Edits:\n    get selectEditedEntity() {\n      return createSelector(this.selectEdits, mapToEditedEntity);\n    }\n\n    get selectIsDirty() {\n      return createSelector(this.selectEdits, mapToIsDirty);\n    }\n\n    // Paging:\n    get selectCurrentPage() {\n      return createSelector(this.selectPaging, mapToCurrentPage);\n    }\n\n    get selectCurrentRange() {\n      return createSelector(this.selectPaging, mapToCurrentRange);\n    }\n\n    get selectTotalPageable() {\n      return createSelector(this.selectPaging, mapToTotalPageable);\n    }\n\n    // Tracking:\n    get selectHasBeenLoaded() {\n      return createSelector(this.selectTracking, mapToHasBeenLoaded);\n    }\n\n    get selectLoadWasAttempted() {\n      return createSelector(this.selectTracking, mapToLoadWasAttempted);\n    }\n\n    get selectIsLoading() {\n      return createSelector(this.selectTracking, mapToIsLoading);\n    }\n\n    get selectIsSaving() {\n      return createSelector(this.selectTracking, mapToIsSaving);\n    }\n\n    get selectIsDeleting() {\n      return createSelector(this.selectTracking, mapToIsDeleting);\n    }\n\n    get selectLoadedAt() {\n      return createSelector(this.selectTracking, mapToLoadedAt);\n    }\n\n    get selectSavedAt() {\n      return createSelector(this.selectTracking, mapToSavedAt);\n    }\n\n    get selectCreatedAt() {\n      return createSelector(this.selectTracking, mapToCreatedAt);\n    }\n\n    get selectUpdatedAt() {\n      return createSelector(this.selectTracking, mapToUpdatedAt);\n    }\n\n    get selectReplacedAt() {\n      return createSelector(this.selectTracking, mapToReplacedAt);\n    }\n\n    get selectDeletedAt() {\n      return createSelector(this.selectTracking, mapToDeletedAt);\n    }\n  }\n\n  const resolver = new SelectorResolver();\n  return resolver;\n};\n","import { TNew } from '../actions/model-constructor';\n\nconst createEntity =\n  <TModel>(Type: TNew<TModel>) =>\n  (obj: any) => ({ entity: Type ? new Type() : undefined, obj });\n\nconst populateEntity = <TModel>({ entity, obj }): TModel =>\n  entity ? Object.keys(obj || {}).reduce((populated, key) => ((populated[key] = obj[key]), populated), entity) : undefined;\n\nexport const makeEntity =\n  <TModel>(Type: TNew<TModel>) =>\n  (obj): TModel =>\n    obj && Type && Object.assign(Object.create(Type.prototype), obj);\n","import { Action, createSelector, MemoizedSelector } from '@ngrx/store';\nimport { IEntityOptions } from '../decorators/entity-options';\nimport { ENTITY_OPTS_PROP, NAE_KEY_NAMES, NAE_KEYS } from '../decorators/entity-tokens';\nimport { entityStateName } from '../decorators/entity-util';\nimport { EntityIdentity } from '../types/entity-identity';\nimport { IActionMap } from './action-map';\nimport { buildActionMap } from './action-map-builder';\nimport { IEntityState } from './entity-state';\nimport { buildFacade } from './facade-builder';\nimport { makeEntity } from './make-entity';\nimport { IModelClass, IModelState } from './model-state';\nimport { ISelectorMap } from './selector-map';\nimport { buildSelectorMap } from './selector-map-builder';\nimport { FEATURE_AFFINITY } from './util-tokens';\nimport { IEntityFacadeBase } from './facade';\n\nconst sortAlpha = (aKey: string, bKey: string): number => aKey.localeCompare(bKey);\n\nconst sortNumeric = (aKey: number, bKey: number): number => aKey - bKey;\n\nconst defaultSort = (aKey: EntityIdentity, bKey: EntityIdentity): number =>\n  typeof aKey === 'string' ? sortAlpha(aKey, bKey as string) : sortNumeric(aKey, bKey as number);\n\nexport const NO_ENTITY_DECORATOR_MSG =\n  'Specified model is not decorated with @Entity. All automatic entities must be decorated with a modelName specified. Building of state aborted!';\nconst ensureEntityDecorator = <TModel>(type: IModelClass<TModel>): void => {\n  if (!type[ENTITY_OPTS_PROP]) {\n    const example = ` Example model with proper decoration:\n\n@Entity({modelName: 'Test'})\nexport class Test {\n  @Key yourKey: number | string;\n  // ... other properties ...\n}`;\n    console.error('[NGRX-AE] ! ' + NO_ENTITY_DECORATOR_MSG + example);\n    throw new Error(NO_ENTITY_DECORATOR_MSG);\n  }\n};\n\nexport const NO_ENTITY_KEY_MSG =\n  'Specified model has no properties decorated with @Key. All automatic entities must have at least one property identified as the entity key. Building of state aborted!';\nconst ensureEntityKey = <TModel>(type: IModelClass<TModel>): void => {\n  if (!type.prototype[NAE_KEY_NAMES] || !type.prototype[NAE_KEYS]) {\n    const example = ` Example model with proper decoration:\n\n@Entity({modelName: '${type[ENTITY_OPTS_PROP].modelName}'})\nexport class ${type[ENTITY_OPTS_PROP].modelName} {\n  @Key yourKey: number | string;\n  // ... other properties ...\n}`;\n    console.error('[NGRX-AE] ! ' + NO_ENTITY_KEY_MSG + example);\n    throw new Error(NO_ENTITY_KEY_MSG);\n  }\n};\n\nexport const NO_MODEL_NAME_MSG =\n  'Specified model is decorated with @Entity but does not specify a modelName, which is required for proper production execution. Building of state aborted!';\nconst ensureModelName = (opts: IEntityOptions) => {\n  if (!opts.modelName) {\n    const example = ` Example model with proper decoration:\n\n@Entity({modelName: 'Test'})\nexport class Test {\n  @Key yourKey: number | string;\n  // ... other properties ...\n}`;\n    console.error('[NGRX-AE] ! ' + NO_MODEL_NAME_MSG + example);\n    throw new Error(NO_MODEL_NAME_MSG);\n  }\n};\n\n/**\n * Builds the initial Ngrx state for an entity\n *\n * @param type - the entity class\n * @param extraInitialState - the (optional) initial state\n */\nexport const buildState = <TState extends IEntityState<TModel>, TParentState, TModel, TExtra>(\n  type: IModelClass<TModel>,\n  extraInitialState?: TExtra\n): IModelState<TParentState, TState, TModel, TExtra> => {\n  ensureEntityDecorator(type);\n  ensureEntityKey(type);\n\n  const opts = type[ENTITY_OPTS_PROP];\n  ensureModelName(opts);\n\n  const stateName = entityStateName(opts.modelName);\n\n  const getState = (state: TParentState): TState & TExtra => {\n    const modelState = state[stateName];\n    if (!modelState) {\n      const message = `State for model ${opts.modelName} could not be found! Make sure you add your entity state to the parent state with a property named exactly '${stateName}'.`;\n      const example = ` Example app state:\n\nexport interface AppState {\n  // ... other states ...\n  ${stateName}: IEntityState<${opts.modelName}>,\n  // ... other states ...\n}`;\n      console.error('[NGRX-AE] ! ' + message + example);\n      throw new Error(message);\n    }\n    return modelState;\n  };\n\n  const initialState = {\n    entities: {},\n    ids: [],\n    ...extraInitialState\n  } as TState & TExtra;\n\n  let _actions: IActionMap<TModel>;\n  let _selectors: ISelectorMap<TParentState, TModel>;\n  let _facade: IEntityFacadeBase<TModel>;\n  let _reducer: (state: IEntityState<TModel> & TExtra) => IEntityState<TModel> & TExtra;\n\n  const entityState = getState as (state: TParentState) => TState & TExtra;\n  let _makeEntity: (obj: any) => TModel;\n\n  class StateBuilder {\n    get entityState() {\n      return entityState;\n    }\n\n    get initialState() {\n      return initialState;\n    }\n\n    get actions() {\n      _actions = _actions || buildActionMap(type);\n      return _actions;\n    }\n\n    get selectors() {\n      _selectors = _selectors || buildSelectorMap<TParentState, TState, TModel, TExtra>(getState, type);\n      return _selectors;\n    }\n\n    get reducer() {\n      _reducer =\n        _reducer ||\n        ((state = initialState): IEntityState<TModel> & TExtra => {\n          return state;\n        });\n      return _reducer;\n    }\n\n    get makeEntity() {\n      _makeEntity = _makeEntity || makeEntity(type);\n      return _makeEntity;\n    }\n\n    get facade() {\n      _facade = _facade || buildFacade<TModel, TParentState>(this.selectors, type);\n      return _facade;\n    }\n  }\n\n  const built = new StateBuilder();\n  return built;\n};\n\n/**\n * Builds the Ngrx state for an entity that is part of a feature module\n *\n * @param type the entity class\n * @param featureStateName the name of the feature state\n * @param selectParentState a selector for the entity's parent state\n * @param extraInitialState the (optional) initial feature state\n */\nexport const buildFeatureState = <TState extends IEntityState<TModel>, TParentState, TModel, TExtra>(\n  type: IModelClass<TModel>,\n  featureStateName: NonNullable<string>,\n  selectParentState: MemoizedSelector<object, TParentState>,\n  extraInitialState?: TExtra\n): IModelState<TParentState, TState, TModel, TExtra> => {\n  ensureEntityDecorator(type);\n  ensureEntityKey(type);\n\n  const opts = type[ENTITY_OPTS_PROP];\n  ensureModelName(opts);\n\n  const stateName = entityStateName(opts.modelName);\n\n  (type as any)[FEATURE_AFFINITY] = featureStateName;\n\n  const selectState = createSelector(selectParentState, (state: TParentState) => {\n    if (!state) {\n      const message = `Could not retrieve feature state ${featureStateName} for model ${opts.modelName}! Make sure you add your entity state to the feature state with a property named exactly '${stateName}'.`;\n      const example = ` Example app state:\n\nexport interface FeatureState {\n  // ... other states ...\n  ${stateName}: IEntityState<${opts.modelName}>,\n  // ... other states ...\n}`;\n      console.error('[NGRX-AE] ! ' + message + example);\n      throw new Error(message);\n    }\n    const modelState = state[stateName];\n    if (!modelState) {\n      const message = `State for model ${opts.modelName} in feature ${featureStateName} could not be found!`;\n      console.error('[NGRX-AE] ! ' + message);\n      throw new Error(message);\n    }\n    return modelState;\n  });\n\n  const initialState = {\n    entities: {},\n    ids: [],\n    ...extraInitialState\n  } as TState & TExtra;\n\n  let _actions: IActionMap<TModel>;\n  let _selectors: ISelectorMap<TParentState, TModel>;\n  let _facade: IEntityFacadeBase<TModel>;\n  let _reducer: (state: IEntityState<TModel> & TExtra) => IEntityState<TModel> & TExtra;\n\n  const entityState = selectState as MemoizedSelector<TParentState, TState & TExtra>;\n  let _makeEntity: (obj: any) => TModel;\n\n  class StateBuilder {\n    get entityState() {\n      return entityState;\n    }\n\n    get initialState() {\n      return initialState;\n    }\n\n    get actions() {\n      _actions = _actions || buildActionMap(type);\n      return _actions;\n    }\n\n    get selectors() {\n      _selectors = _selectors || buildSelectorMap<TParentState, TState, TModel, TExtra>(selectState, type);\n      return _selectors;\n    }\n\n    get reducer() {\n      _reducer =\n        _reducer ||\n        ((state = initialState): IEntityState<TModel> & TExtra => {\n          return state;\n        });\n      return _reducer;\n    }\n\n    get makeEntity() {\n      _makeEntity = _makeEntity || makeEntity(type);\n      return _makeEntity;\n    }\n\n    get facade() {\n      _facade = _facade || buildFacade<TModel, TParentState>(this.selectors, type);\n      return _facade;\n    }\n  }\n\n  const built = new StateBuilder();\n  return built;\n};\n","import { IEntityOptions } from './entity-options';\nimport { ENTITY_OPTS_PROP } from './entity-tokens';\n\n/**\n * Entity decorator for configuring each entity model.\n *\n * @param options - The configuration options to apply\n */\nexport function Entity(options: IEntityOptions);\n\n/**\n * Entity decorator for configuring each entity model.\n *\n * @param modelName - The model name option to apply\n * @param options - Additional configuration options to apply\n */\nexport function Entity(modelName?: string, options?: Partial<IEntityOptions>);\n\n/**\n * Entity decorator for configuring each entity model.\n *\n * @param nameOrOptions - The model name or configuration options to apply\n * @param maybeOptions - Additional options to apply if a model name is passed as the first param\n */\nexport function Entity(nameOrOptions: string | IEntityOptions, maybeOptions?: Partial<IEntityOptions>) {\n  return function entityDecorator(constructor: any) {\n    const initialOptions = typeof nameOrOptions === 'object' ? nameOrOptions : { modelName: nameOrOptions };\n    const options = maybeOptions ? { ...maybeOptions, ...initialOptions } : initialOptions;\n\n    const descriptor = Object.create(null);\n    descriptor.configurable = false;\n    descriptor.enumerable = false;\n    descriptor.writable = false;\n    descriptor.value = options;\n    Object.defineProperty(constructor, ENTITY_OPTS_PROP, descriptor);\n\n    return constructor;\n  };\n}\n","import { NAE_KEY_NAMES, NAE_KEYS } from './entity-tokens';\n\n/**\n * Used to designate the key property for the entity\n *\n * @param target the entity's class\n * @param keyName the key's name\n */\nexport function Key(target, keyName: string | symbol): void {\n  target[NAE_KEY_NAMES] = target[NAE_KEY_NAMES] ? [...target[NAE_KEY_NAMES], keyName] : [keyName];\n  // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n  !target[NAE_KEYS] && Object.defineProperty(target, NAE_KEYS, { get: () => target[NAE_KEY_NAMES] });\n}\n","import { EntityActionTypes } from '../actions/action-types';\n\nexport type IEffectExclusions = {\n  readonly [action in any | EntityActionTypes]: boolean;\n};\n\nexport const EXTRA_EFFECTS_EXCLUSION = Object.freeze({\n  [EntityActionTypes.Select]: true,\n  [EntityActionTypes.SelectMany]: true,\n  [EntityActionTypes.SelectByKey]: true,\n  [EntityActionTypes.SelectManyByKeys]: true,\n  [EntityActionTypes.Deselect]: true,\n  [EntityActionTypes.DeselectMany]: true,\n  [EntityActionTypes.DeselectManyByKeys]: true,\n  [EntityActionTypes.DeselectAll]: true,\n  [EntityActionTypes.Clear]: true\n});\n\nexport const CURD_EFFECTS_EXCLUSION = Object.freeze({\n  [EntityActionTypes.Create]: true,\n  [EntityActionTypes.CreateMany]: true,\n  [EntityActionTypes.Update]: true,\n  [EntityActionTypes.UpdateMany]: true,\n  [EntityActionTypes.Upsert]: true,\n  [EntityActionTypes.UpsertMany]: true,\n  [EntityActionTypes.Replace]: true,\n  [EntityActionTypes.ReplaceMany]: true,\n  [EntityActionTypes.Delete]: true,\n  [EntityActionTypes.DeleteMany]: true,\n  [EntityActionTypes.DeleteByKey]: true,\n  [EntityActionTypes.DeleteManyByKeys]: true\n});\n\nexport const LOAD_EFFECTS_EXCLUSION = Object.freeze({\n  [EntityActionTypes.Load]: true,\n  [EntityActionTypes.LoadAll]: true,\n  [EntityActionTypes.LoadMany]: true,\n  [EntityActionTypes.LoadPage]: true,\n  [EntityActionTypes.LoadRange]: true\n});\n\nexport const ALL_EFFECTS_EXCLUSION = Object.freeze({\n  ...LOAD_EFFECTS_EXCLUSION,\n  ...CURD_EFFECTS_EXCLUSION,\n  ...EXTRA_EFFECTS_EXCLUSION\n});\n","import { EntityActionTypes } from '../actions/action-types';\nimport {\n  ALL_EFFECTS_EXCLUSION,\n  CURD_EFFECTS_EXCLUSION,\n  EXTRA_EFFECTS_EXCLUSION,\n  IEffectExclusions,\n  LOAD_EFFECTS_EXCLUSION\n} from './effect-exclusions';\n\nexport const except =\n  (effects?) =>\n  (...actions: EntityActionTypes[]): IEffectExclusions => ({\n    ...(effects || {}),\n    ...actions.reduce((acc, action) => ({ ...acc, [action]: false }), {})\n  });\n\nexport const matching = (...actions: EntityActionTypes[]): IEffectExclusions => ({\n  ...actions.reduce((acc, action) => ({ ...acc, [action]: true }), {})\n});\n\nexport const all = Object.freeze({\n  ...ALL_EFFECTS_EXCLUSION,\n  except: except(ALL_EFFECTS_EXCLUSION)\n});\n\nexport const extra = Object.freeze({\n  ...EXTRA_EFFECTS_EXCLUSION,\n  except: except(EXTRA_EFFECTS_EXCLUSION)\n});\n\nexport const loads = Object.freeze({\n  ...LOAD_EFFECTS_EXCLUSION,\n  except: except(LOAD_EFFECTS_EXCLUSION)\n});\n\nexport const curd = Object.freeze({\n  ...CURD_EFFECTS_EXCLUSION,\n  except: except(CURD_EFFECTS_EXCLUSION)\n});\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, createEffect } from '@ngrx/effects';\n\nimport { ofEntityAction } from '../actions/action-operators';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { EntityOperators } from './operators';\n\n@Injectable()\nexport class LoadEffects {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  load$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Load), this.ops.load()));\n\n  loadAll$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadAll), this.ops.loadAll()));\n\n  loadMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadMany), this.ops.loadMany()));\n\n  loadPage$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadPage), this.ops.loadPage()));\n\n  loadRange$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadRange), this.ops.loadRange()));\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, createEffect } from '@ngrx/effects';\nimport { ofEntityAction } from '../actions/action-operators';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { EntityIfNecessaryOperators } from './if-necessary-operators';\n\n@Injectable()\nexport class LoadIfNecessaryEffects {\n  private readonly actions$ = inject(Actions);\n  private readonly ifnOps = inject(EntityIfNecessaryOperators);\n\n  loadIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadIfNecessary), this.ifnOps.loadIfNecessary())\n  );\n\n  loadAllIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadAllIfNecessary), this.ifnOps.loadAllIfNecessary())\n  );\n\n  loadManyIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadManyIfNecessary), this.ifnOps.loadManyIfNecessary())\n  );\n\n  loadPageIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadPageIfNecessary), this.ifnOps.loadPageIfNecessary())\n  );\n\n  loadRangeIfNecessary$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadRangeIfNecessary), this.ifnOps.loadRangeIfNecessary())\n  );\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { ofEntityAction } from '../actions/action-operators';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { EntityOperators } from './operators';\n\n@Injectable()\nexport class CUDEffects {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  create$: Observable<Action> = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Create), this.ops.create()));\n\n  createMany$: Observable<Action> = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.CreateMany), this.ops.createMany())\n  );\n\n  update$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Update), this.ops.update()));\n\n  updateMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.UpdateMany), this.ops.updateMany()));\n\n  upsert$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Upsert), this.ops.upsert()));\n\n  upsertMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.UpsertMany), this.ops.upsertMany()));\n\n  replace$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Replace), this.ops.replace()));\n\n  replaceMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.ReplaceMany), this.ops.replaceMany()));\n\n  delete$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Delete), this.ops.delete()));\n\n  deleteMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.DeleteMany), this.ops.deleteMany()));\n\n  deleteByKey$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.DeleteByKey), this.ops.deleteByKey()));\n\n  deleteManyByKeys$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.DeleteManyByKeys), this.ops.deleteManyByKey())\n  );\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { ofEntityAction } from '../actions/action-operators';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { EntityOperators } from './operators';\n\n@Injectable()\nexport class LoadEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  load$: Observable<Action> = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Load), this.ops.load()));\n}\n\n@Injectable()\nexport class LoadAllEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  loadAll$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadAll), this.ops.loadAll()));\n}\n\n@Injectable()\nexport class LoadManyEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  loadMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadMany), this.ops.loadMany()));\n}\n\n@Injectable()\nexport class LoadPageEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  loadPage$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadPage), this.ops.loadPage()));\n}\n\n@Injectable()\nexport class LoadRangeEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  loadRange$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.LoadRange), this.ops.loadRange()));\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { ofEntityAction } from '../actions/action-operators';\nimport { EntityActionTypes } from '../actions/action-types';\nimport { EntityOperators } from './operators';\n\n@Injectable()\nexport class CreateEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  create$: Observable<Action> = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Create), this.ops.create()));\n}\n\n@Injectable()\nexport class CreateManyEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  createMany$: Observable<Action> = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.CreateMany), this.ops.createMany())\n  );\n}\n\n@Injectable()\nexport class UpdateEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  update$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Update), this.ops.update()));\n}\n\n@Injectable()\nexport class UpdateManyEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  updateMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.UpdateMany), this.ops.updateMany()));\n}\n\n@Injectable()\nexport class UpsertEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  update$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Upsert), this.ops.upsert()));\n}\n\n@Injectable()\nexport class UpsertManyEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  updateMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.UpsertMany), this.ops.upsertMany()));\n}\n\n@Injectable()\nexport class ReplaceEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  replace$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Replace), this.ops.replace()));\n}\n\n@Injectable()\nexport class ReplaceManyEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  replaceMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.ReplaceMany), this.ops.replaceMany()));\n}\n\n@Injectable()\nexport class DeleteEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  delete$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.Delete), this.ops.delete()));\n}\n\n@Injectable()\nexport class DeleteManyEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  deleteMany$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.DeleteMany), this.ops.deleteMany()));\n}\n\n@Injectable()\nexport class DeleteByKeyEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  deleteByKey$ = createEffect(() => this.actions$.pipe(ofEntityAction(EntityActionTypes.DeleteByKey), this.ops.deleteByKey()));\n}\n\n@Injectable()\nexport class DeleteManyByKeysEffect {\n  private readonly actions$ = inject(Actions);\n  private readonly ops = inject(EntityOperators);\n\n  deleteManyByKeys$ = createEffect(() =>\n    this.actions$.pipe(ofEntityAction(EntityActionTypes.DeleteManyByKeys), this.ops.deleteManyByKey())\n  );\n}\n","/*\n * Public API Surface of ngrx-auto-entity\n */\n\n/*\n * Modules\n */\nexport {\n  NgrxAutoEntityModule,\n  NgRxAutoEntityRootModuleWithEffects,\n  NgRxAutoEntityRootModuleNoEntityEffects,\n  NgRxAutoEntityRootModuleNoEffects,\n  NgRxAutoEntityFeatureModule,\n  type NgRxAutoEntityModuleConfig\n} from './lib/module';\nexport {\n  type CustomStoreFeature,\n  type EntityEffectsFeature,\n  type ExtraEffectsFeature,\n  getNgRxAutoEntityMetaReducer,\n  type NgRxAutoEntityFeatures,\n  provideAutoEntityState,\n  provideAutoEntityStore,\n  provideEntityService,\n  withCustomStore,\n  withoutEntityEffects,\n  withoutExtraEffects\n} from './lib/provider';\n\n/*\n * Injection Tokens\n */\n\n/*\n * Common models and types referenced throughout Auto-Entity\n */\nexport type { IPage, Page, IFirstLastRange, IRangeInfo, ISkipTakeRange, IStartEndRange, Range, RangeValue, IPageInfo } from './lib/models';\nexport type { EntityIdentity } from './lib/types/entity-identity';\nexport type { IEntityDictionary, IEntityState } from './lib/util/entity-state';\nexport type { IModelState, IModelClass } from './lib/util/model-state';\nexport type { IEntityFacade } from './lib/util/facade';\nexport type { ISelectorMap } from './lib/util/selector-map';\n\n/*\n * Builders\n */\nexport { buildFacade } from './lib/util/facade-builder';\nexport { buildActionMap } from './lib/util/action-map-builder';\nexport { buildSelectorMap } from './lib/util/selector-map-builder';\nexport { buildFeatureState, buildState } from './lib/util/state-builder';\n\n/*\n * Action Support\n */\nexport { EntityActionTypes } from './lib/actions/action-types';\nexport type { IEntityInfo } from './lib/actions/entity-info';\nexport { EntityAction } from './lib/actions/entity-action';\nexport type { ICorrelatedAction } from './lib/actions/entity-action';\nexport { fromEntityActions } from './lib/actions/action-operators';\nexport { ofEntityType } from './lib/actions/action-operators';\nexport { ofEntityAction } from './lib/actions/action-operators';\nexport { isEntityActionInstance, type EntityActions } from './lib/actions/entity-actions-union';\n\n/*\n * Actions\n */\nexport { Load, LoadIfNecessary, LoadFailure, LoadSuccess } from './lib/actions/load-actions';\nexport { LoadMany, LoadManyIfNecessary, LoadManyFailure, LoadManySuccess } from './lib/actions/load-many-actions';\nexport { LoadAll, LoadAllIfNecessary, LoadAllFailure, LoadAllSuccess } from './lib/actions/load-all-actions';\nexport { LoadPage, LoadPageIfNecessary, LoadPageFailure, LoadPageSuccess } from './lib/actions/load-page-actions';\nexport { LoadRange, LoadRangeIfNecessary, LoadRangeFailure, LoadRangeSuccess } from './lib/actions/load-range-actions';\n\nexport { CreateMany, CreateManyFailure, CreateManySuccess } from './lib/actions/create-actions';\nexport { Create, CreateFailure, CreateSuccess } from './lib/actions/create-actions';\nexport { UpdateMany, UpdateManyFailure, UpdateManySuccess } from './lib/actions/update-actions';\nexport { Update, UpdateFailure, UpdateSuccess } from './lib/actions/update-actions';\nexport { UpsertMany, UpsertManyFailure, UpsertManySuccess } from './lib/actions/upsert-actions';\nexport { Upsert, UpsertFailure, UpsertSuccess } from './lib/actions/upsert-actions';\nexport { ReplaceMany, ReplaceManyFailure, ReplaceManySuccess } from './lib/actions/replace-actions';\nexport { Replace, ReplaceFailure, ReplaceSuccess } from './lib/actions/replace-actions';\nexport { DeleteMany, DeleteManyFailure, DeleteManySuccess } from './lib/actions/delete-actions';\nexport { Delete, DeleteFailure, DeleteSuccess } from './lib/actions/delete-actions';\nexport {\n  DeleteManyByKeys,\n  DeleteManyByKeysFailure,\n  DeleteManyByKeysSuccess,\n  DeleteByKeyFailure,\n  DeleteByKeySuccess,\n  DeleteByKey\n} from './lib/actions/delete-by-key-actions';\n\nexport {\n  Select,\n  SelectByKey,\n  Selected,\n  SelectedMany,\n  SelectMany,\n  SelectManyByKeys,\n  SelectMore,\n  SelectMoreByKeys\n} from './lib/actions/selection-actions';\nexport { Deselected, DeselectAll, DeselectManyByKeys, DeselectMany, Deselect } from './lib/actions/deselection-actions';\nexport { EditEnded, EndEdit, Changed, Change, EditedByKey, Edited, EditByKey, Edit, EditNew } from './lib/actions/edit-actions';\nexport { Clear } from './lib/actions/actions';\n\n/*\n * Decorators\n */\nexport { Entity } from './lib/decorators/entity-decorator';\nexport { Key } from './lib/decorators/key-decorator';\n\n/*\n * Entity Metadata and Management\n */\nexport { NAE_TYPE_ACTION_CACHE } from './lib/factories/util';\nexport { ENTITY_OPTS_PROP } from './lib/decorators/entity-tokens';\nexport type { IEffectExcept, IEntityOptions, IEntityTransformer, EntityAge } from './lib/decorators/entity-options';\nexport type { IEffectExclusions } from './lib/decorators/effect-exclusions';\nexport { curd, loads, extra, all, matching, except } from './lib/decorators/effect-exclusion-utils';\n\n/*\n * Entity Metadata Utilities\n */\nexport { makeEntity } from './lib/util/make-entity';\nexport {\n  nameOfEntity,\n  pluralNameOfEntity,\n  uriNameOfEntity,\n  stateNameOfEntity,\n  entityComparer,\n  entityTransforms,\n  entityMaxAge\n} from './lib/decorators/entity-util';\nexport {\n  getKey,\n  getKeyFromModel,\n  getKeyFromEntity,\n  getKeyNames,\n  getKeyNamesFromModel,\n  getKeyNamesFromEntity,\n  checkKeyName\n} from './lib/decorators/key-util';\n\n/*\n * Reducer\n */\nexport { autoEntityReducer } from './lib/reducer/reducer';\nexport { stateNameFromAction } from './lib/reducer/reduction.utils';\nexport { autoEntityMetaReducer } from './lib/reducer/meta-reducer';\n\n/*\n * Entity Service\n */\nexport { NgrxAutoEntityService } from './lib/service/service';\nexport type { IAutoEntityService } from './lib/service/interface';\n\nexport type { IEntityRangeRef, IEntityPageRef, IEntityRef, IEntityIdentityRef, IEntityIdentitiesRef } from './lib/service/refs';\nexport type { IEntityWithRangeInfo, IEntityWithPageInfo, IEntityError } from './lib/service/wrapper-models';\n\n/*\n * Transformation utilities\n */\nexport {\n  transformEntityFromServer,\n  transformEntitiesFromServer,\n  transformEntityToServer,\n  transformEntitiesToServer\n} from './lib/service/transformation';\n\n/*\n * Operators\n */\nexport { EntityOperators } from './lib/effects/operators';\n\n/*\n * Effect Groups\n */\nexport { EntityEffects } from './lib/effects/effects-all';\nexport { LoadEffects } from './lib/effects/effects-loads';\nexport { LoadIfNecessaryEffects } from './lib/effects/if-necessary-loads';\nexport { CUDEffects } from './lib/effects/effects-cud';\nexport { ExtraEffects } from './lib/effects/effects-extra';\n\n/*\n * Effects\n */\nexport { LoadEffect, LoadAllEffect, LoadManyEffect, LoadPageEffect, LoadRangeEffect } from './lib/effects/effects-loads-discrete';\nexport {\n  CreateEffect,\n  CreateManyEffect,\n  DeleteEffect,\n  DeleteManyEffect,\n  DeleteByKeyEffect,\n  DeleteManyByKeysEffect,\n  ReplaceEffect,\n  ReplaceManyEffect,\n  UpdateEffect,\n  UpdateManyEffect,\n  UpsertEffect,\n  UpsertManyEffect\n} from './lib/effects/effects-cud-discrete';\nexport { NGRX_AUTO_ENTITY_APP_STORE } from './lib/effects/if-necessary-operator-utils';\n\n/* internal */\nexport { NAE_UNDEFINED as ɵNAE_UNDEFINED } from './lib/util/util-di';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["mapToHasEntities","fpipe","tap","map","throwError","noop"],"mappings":"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"}